Merge "Extend assist context to foreground services"
diff --git a/Android.mk b/Android.mk
index 8f62777..7e34c84 100644
--- a/Android.mk
+++ b/Android.mk
@@ -197,6 +197,7 @@
 	core/java/com/android/internal/app/IAppOpsCallback.aidl \
 	core/java/com/android/internal/app/IAppOpsService.aidl \
 	core/java/com/android/internal/app/IBatteryStats.aidl \
+	core/java/com/android/internal/app/IProcessStats.aidl \
 	core/java/com/android/internal/app/IUsageStats.aidl \
 	core/java/com/android/internal/app/IMediaContainerService.aidl \
 	core/java/com/android/internal/appwidget/IAppWidgetService.aidl \
@@ -256,7 +257,8 @@
 	telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl \
 	telephony/java/com/android/internal/telephony/IWapPushManager.aidl \
 	wifi/java/android/net/wifi/IWifiManager.aidl \
-	wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl
+	wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl \
+	packages/services/Proxy/com/android/net/IProxyService.aidl \
 
 # FRAMEWORKS_BASE_JAVA_SRC_DIRS comes from build/core/pathmap.mk
 LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
diff --git a/api/current.txt b/api/current.txt
index b0e1dab..d79a8c0 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -5784,6 +5784,7 @@
     field public static final java.lang.String ACCOUNT_SERVICE = "account";
     field public static final java.lang.String ACTIVITY_SERVICE = "activity";
     field public static final java.lang.String ALARM_SERVICE = "alarm";
+    field public static final java.lang.String APP_OPS_SERVICE = "appops";
     field public static final java.lang.String AUDIO_SERVICE = "audio";
     field public static final int BIND_ABOVE_CLIENT = 8; // 0x8
     field public static final int BIND_ADJUST_WITH_ACTIVITY = 128; // 0x80
@@ -10539,6 +10540,7 @@
     field public static final int TYPE_ALL = -1; // 0xffffffff
     field public static final int TYPE_AMBIENT_TEMPERATURE = 13; // 0xd
     field public static final int TYPE_GAME_ROTATION_VECTOR = 15; // 0xf
+    field public static final int TYPE_GEOMAGNETIC_ROTATION_VECTOR = 20; // 0x14
     field public static final int TYPE_GRAVITY = 9; // 0x9
     field public static final int TYPE_GYROSCOPE = 4; // 0x4
     field public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16; // 0x10
@@ -10552,6 +10554,8 @@
     field public static final int TYPE_RELATIVE_HUMIDITY = 12; // 0xc
     field public static final int TYPE_ROTATION_VECTOR = 11; // 0xb
     field public static final int TYPE_SIGNIFICANT_MOTION = 17; // 0x11
+    field public static final int TYPE_STEP_COUNTER = 19; // 0x13
+    field public static final int TYPE_STEP_DETECTOR = 18; // 0x12
     field public static final deprecated int TYPE_TEMPERATURE = 7; // 0x7
   }
 
@@ -12063,6 +12067,9 @@
   public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
     ctor public MediaCodec.CryptoException(int, java.lang.String);
     method public int getErrorCode();
+    field public static final int ERROR_KEY_EXPIRED = 2; // 0x2
+    field public static final int ERROR_NO_KEY = 1; // 0x1
+    field public static final int ERROR_RESOURCE_BUSY = 3; // 0x3
   }
 
   public static final class MediaCodec.CryptoInfo {
@@ -12814,6 +12821,10 @@
     method public abstract void onPlaybackPositionUpdate(long);
   }
 
+  public final class ResourceBusyException extends android.media.MediaDrmException {
+    ctor public ResourceBusyException(java.lang.String);
+  }
+
   public class Ringtone {
     method public int getStreamType();
     method public java.lang.String getTitle(android.content.Context);
@@ -14823,7 +14834,6 @@
     method public static synchronized android.nfc.cardemulation.CardEmulationManager getInstance(android.nfc.NfcAdapter);
     method public boolean isDefaultServiceForAid(android.content.ComponentName, java.lang.String);
     method public boolean isDefaultServiceForCategory(android.content.ComponentName, java.lang.String);
-    method public boolean setDefaultServiceForCategory(android.content.ComponentName, java.lang.String);
     field public static final java.lang.String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.ACTION_CHANGE_DEFAULT";
     field public static final java.lang.String CATEGORY_OTHER = "other";
     field public static final java.lang.String CATEGORY_PAYMENT = "payment";
@@ -20328,6 +20338,7 @@
     field public static final java.lang.String FLAGS = "flags";
     field public static final java.lang.String LAST_MODIFIED = "last_modified";
     field public static final java.lang.String MIME_TYPE = "mime_type";
+    field public static final java.lang.String SUMMARY = "summary";
   }
 
   public static abstract interface DocumentsContract.RootColumns {
@@ -27260,13 +27271,15 @@
     field public static final int SOUND_EFFECTS_ENABLED = 134217728; // 0x8000000
     field public static final deprecated int STATUS_BAR_HIDDEN = 1; // 0x1
     field public static final deprecated int STATUS_BAR_VISIBLE = 0; // 0x0
-    field public static final int SYSTEM_UI_FLAG_ALLOW_OVERLAY = 2048; // 0x800
+    field public static final int SYSTEM_UI_FLAG_ALLOW_TRANSIENT = 2048; // 0x800
     field public static final int SYSTEM_UI_FLAG_FULLSCREEN = 4; // 0x4
     field public static final int SYSTEM_UI_FLAG_HIDE_NAVIGATION = 2; // 0x2
     field public static final int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = 1024; // 0x400
     field public static final int SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION = 512; // 0x200
     field public static final int SYSTEM_UI_FLAG_LAYOUT_STABLE = 256; // 0x100
     field public static final int SYSTEM_UI_FLAG_LOW_PROFILE = 1; // 0x1
+    field public static final int SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION = 8192; // 0x2000
+    field public static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS = 4096; // 0x1000
     field public static final int SYSTEM_UI_FLAG_VISIBLE = 0; // 0x0
     field public static final int SYSTEM_UI_LAYOUT_FLAGS = 1536; // 0x600
     field public static final int TEXT_ALIGNMENT_CENTER = 4; // 0x4
@@ -29821,6 +29834,7 @@
     method public int pointToPosition(int, int);
     method public long pointToRowId(int, int);
     method public void reclaimViews(java.util.List<android.view.View>);
+    method public boolean scrollListBy(int);
     method public void setAdapter(android.widget.ListAdapter);
     method public void setCacheColorHint(int);
     method public void setChoiceMode(int);
@@ -30541,6 +30555,7 @@
     ctor public FrameLayout.LayoutParams(int, int, int);
     ctor public FrameLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public FrameLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
+    ctor public FrameLayout.LayoutParams(android.widget.FrameLayout.LayoutParams);
     field public int gravity;
   }
 
@@ -30805,6 +30820,7 @@
     ctor public LinearLayout.LayoutParams(int, int, float);
     ctor public LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public LinearLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
+    ctor public LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams);
     method public java.lang.String debug(java.lang.String);
     field public int gravity;
     field public float weight;
@@ -31237,6 +31253,7 @@
     ctor public RelativeLayout.LayoutParams(int, int);
     ctor public RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams);
     ctor public RelativeLayout.LayoutParams(android.view.ViewGroup.MarginLayoutParams);
+    ctor public RelativeLayout.LayoutParams(android.widget.RelativeLayout.LayoutParams);
     method public void addRule(int);
     method public void addRule(int, int);
     method public java.lang.String debug(java.lang.String);
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 64653cd..2a28b76 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -794,8 +794,8 @@
             InetAddress.clearDnsCache();
         }
 
-        public void setHttpProxy(String host, String port, String exclList) {
-            Proxy.setHttpProxySystemProperty(host, port, exclList);
+        public void setHttpProxy(String host, String port, String exclList, String pacFileUrl) {
+            Proxy.setHttpProxySystemProperty(host, port, exclList, pacFileUrl);
         }
 
         public void processInBackground() {
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java
index df5b476..c0080be 100644
--- a/core/java/android/app/ApplicationThreadNative.java
+++ b/core/java/android/app/ApplicationThreadNative.java
@@ -338,7 +338,8 @@
             final String proxy = data.readString();
             final String port = data.readString();
             final String exclList = data.readString();
-            setHttpProxy(proxy, port, exclList);
+            final String pacFileUrl = data.readString();
+            setHttpProxy(proxy, port, exclList, pacFileUrl);
             return true;
         }
 
@@ -1002,12 +1003,14 @@
         data.recycle();
     }
 
-    public void setHttpProxy(String proxy, String port, String exclList) throws RemoteException {
+    public void setHttpProxy(String proxy, String port, String exclList,
+            String pacFileUrl) throws RemoteException {
         Parcel data = Parcel.obtain();
         data.writeInterfaceToken(IApplicationThread.descriptor);
         data.writeString(proxy);
         data.writeString(port);
         data.writeString(exclList);
+        data.writeString(pacFileUrl);
         mRemote.transact(SET_HTTP_PROXY_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
         data.recycle();
     }
diff --git a/core/java/android/app/IApplicationThread.java b/core/java/android/app/IApplicationThread.java
index 4b46544..01a0a91 100644
--- a/core/java/android/app/IApplicationThread.java
+++ b/core/java/android/app/IApplicationThread.java
@@ -101,7 +101,8 @@
     void scheduleConfigurationChanged(Configuration config) throws RemoteException;
     void updateTimeZone() throws RemoteException;
     void clearDnsCache() throws RemoteException;
-    void setHttpProxy(String proxy, String port, String exclList) throws RemoteException;
+    void setHttpProxy(String proxy, String port, String exclList,
+            String pacFileUrl) throws RemoteException;
     void processInBackground() throws RemoteException;
     void dumpService(FileDescriptor fd, IBinder servicetoken, String[] args)
             throws RemoteException;
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 5c37206..81a5e57 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -2285,8 +2285,6 @@
      *
      * @see #getSystemService
      * @see android.app.AppOpsManager
-     *
-     * @hide
      */
     public static final String APP_OPS_SERVICE = "appops";
 
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index eaff7b2..eba69b6 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -101,7 +101,9 @@
     String getNameForUid(int uid);
     
     int getUidForSharedUser(String sharedUserName);
-    
+
+    int getFlagsForUid(int uid);
+
     ResolveInfo resolveIntent(in Intent intent, String resolvedType, int flags, int userId);
 
     List<ResolveInfo> queryIntentActivities(in Intent intent, 
diff --git a/core/java/android/hardware/Sensor.java b/core/java/android/hardware/Sensor.java
index c3e9cb7..9bffdbe 100644
--- a/core/java/android/hardware/Sensor.java
+++ b/core/java/android/hardware/Sensor.java
@@ -129,7 +129,7 @@
      * due to distortions that arise from magnetized iron, steel or permanent magnets on the
      * device) is not considered in the given sensor values. However, such hard iron bias values
      * are returned to you separately in the result {@link android.hardware.SensorEvent#values}
-     * so you may use them for custom calibrations. 
+     * so you may use them for custom calibrations.
      * <p>Also, no periodic calibration is performed
      * (i.e. there are no discontinuities in the data stream while using this sensor) and
      * assumptions that the magnetic field is due to the Earth's poles is avoided, but
@@ -174,7 +174,7 @@
     public static final int TYPE_GYROSCOPE_UNCALIBRATED = 16;
 
     /**
-     * A constant describing the significant motion trigger sensor.
+     * A constant describing a significant motion trigger sensor.
      * <p>
      * It triggers when an event occurs and then automatically disables
      * itself. The sensor continues to operate while the device is asleep
@@ -186,6 +186,42 @@
     public static final int TYPE_SIGNIFICANT_MOTION = 17;
 
     /**
+     * A constant describing a step detector sensor.
+     * <p>
+     * A sensor of this type triggers an event each time a step is taken by the user. The only
+     * allowed value to return is 1.0 and an event is generated for each step. Like with any other
+     * event, the timestamp indicates when the event (here the step) occurred, this corresponds to
+     * when the foot hit the ground, generating a high variation in acceleration.
+     * <p>
+     * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details.
+     */
+    public static final int TYPE_STEP_DETECTOR = 18;
+
+    /**
+     * A constant describing a step counter sensor.
+     * <p>
+     * A sensor of this type returns the number of steps taken by the user since the last reboot
+     * while activated. The value is returned as a float (with the fractional part set to zero) and
+     * is reset to zero only on a system reboot. The timestamp of the event is set to the time when
+     * the first step for that event was taken. This sensor is implemented in hardware and is
+     * expected to be low power.
+     * <p>
+     * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details.
+     */
+    public static final int TYPE_STEP_COUNTER = 19;
+
+    /**
+     * A constant describing the geo-magnetic rotation vector.
+     * <p>
+     * Similar to {@link #TYPE_ROTATION_VECTOR}, but using a magnetometer instead of using a
+     * gyroscope. This sensor uses lower power than the other rotation vectors, because it doesn't
+     * use the gyroscope. However, it is more noisy and will work best outdoors.
+     * <p>
+     * See {@link android.hardware.SensorEvent#values SensorEvent.values} for more details.
+     */
+    public static final int TYPE_GEOMAGNETIC_ROTATION_VECTOR = 20;
+
+    /**
      * A constant describing all sensor types.
      */
     public static final int TYPE_ALL = -1;
diff --git a/core/java/android/net/CaptivePortalTracker.java b/core/java/android/net/CaptivePortalTracker.java
index 21995c0..19d74ed 100644
--- a/core/java/android/net/CaptivePortalTracker.java
+++ b/core/java/android/net/CaptivePortalTracker.java
@@ -28,11 +28,23 @@
 import android.database.ContentObserver;
 import android.net.ConnectivityManager;
 import android.net.IConnectivityManager;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.UserHandle;
 import android.os.Message;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.provider.Settings;
+import android.telephony.CellIdentityCdma;
+import android.telephony.CellIdentityGsm;
+import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityWcdma;
+import android.telephony.CellInfo;
+import android.telephony.CellInfoCdma;
+import android.telephony.CellInfoGsm;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoWcdma;
 import android.telephony.TelephonyManager;
 
 import com.android.internal.util.State;
@@ -44,6 +56,7 @@
 import java.net.Inet4Address;
 import java.net.URL;
 import java.net.UnknownHostException;
+import java.util.List;
 
 import com.android.internal.R;
 
@@ -60,12 +73,29 @@
 
     private static final int SOCKET_TIMEOUT_MS = 10000;
 
+    public static final String ACTION_NETWORK_CONDITIONS_MEASURED =
+            "android.net.conn.NETWORK_CONDITIONS_MEASURED";
+    public static final String EXTRA_CONNECTIVITY_TYPE = "extra_connectivity_type";
+    public static final String EXTRA_NETWORK_TYPE = "extra_network_type";
+    public static final String EXTRA_RESPONSE_RECEIVED = "extra_response_received";
+    public static final String EXTRA_IS_CAPTIVE_PORTAL = "extra_is_captive_portal";
+    public static final String EXTRA_CELL_ID = "extra_cellid";
+    public static final String EXTRA_SSID = "extra_ssid";
+    public static final String EXTRA_BSSID = "extra_bssid";
+    /** real time since boot */
+    public static final String EXTRA_REQUEST_TIMESTAMP_MS = "extra_request_timestamp_ms";
+    public static final String EXTRA_RESPONSE_TIMESTAMP_MS = "extra_response_timestamp_ms";
+
+    private static final String PERMISSION_ACCESS_NETWORK_CONDITIONS =
+            "android.permission.ACCESS_NETWORK_CONDITIONS";
+
     private String mServer;
     private String mUrl;
     private boolean mNotificationShown = false;
     private boolean mIsCaptivePortalCheckEnabled = false;
     private IConnectivityManager mConnService;
     private TelephonyManager mTelephonyManager;
+    private WifiManager mWifiManager;
     private Context mContext;
     private NetworkInfo mNetworkInfo;
 
@@ -92,6 +122,7 @@
         mContext = context;
         mConnService = cs;
         mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
         mProvisioningObserver = new ProvisioningObserver();
 
         IntentFilter filter = new IntentFilter();
@@ -319,7 +350,8 @@
     }
 
     /**
-     * Do a URL fetch on a known server to see if we get the data we expect
+     * Do a URL fetch on a known server to see if we get the data we expect.
+     * Measure the response time and broadcast that.
      */
     private boolean isCaptivePortal(InetAddress server) {
         HttpURLConnection urlConnection = null;
@@ -327,6 +359,7 @@
 
         mUrl = "http://" + server.getHostAddress() + "/generate_204";
         if (DBG) log("Checking " + mUrl);
+        long requestTimestamp = -1;
         try {
             URL url = new URL(mUrl);
             urlConnection = (HttpURLConnection) url.openConnection();
@@ -334,11 +367,26 @@
             urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS);
             urlConnection.setReadTimeout(SOCKET_TIMEOUT_MS);
             urlConnection.setUseCaches(false);
+
+            // Time how long it takes to get a response to our request
+            requestTimestamp = SystemClock.elapsedRealtime();
+
             urlConnection.getInputStream();
+
+            // Time how long it takes to get a response to our request
+            long responseTimestamp = SystemClock.elapsedRealtime();
+
             // we got a valid response, but not from the real google
-            return urlConnection.getResponseCode() != 204;
+            boolean isCaptivePortal = urlConnection.getResponseCode() != 204;
+
+            sendNetworkConditionsBroadcast(true /* response received */, isCaptivePortal,
+                    requestTimestamp, responseTimestamp);
+            return isCaptivePortal;
         } catch (IOException e) {
             if (DBG) log("Probably not a portal: exception " + e);
+            if (requestTimestamp != -1) {
+                sendFailedCaptivePortalCheckBroadcast(requestTimestamp);
+            } // else something went wrong with setting up the urlConnection
             return false;
         } finally {
             if (urlConnection != null) {
@@ -352,12 +400,15 @@
         try {
             inetAddress = InetAddress.getAllByName(hostname);
         } catch (UnknownHostException e) {
+            sendFailedCaptivePortalCheckBroadcast(SystemClock.elapsedRealtime());
             return null;
         }
 
         for (InetAddress a : inetAddress) {
             if (a instanceof Inet4Address) return a;
         }
+
+        sendFailedCaptivePortalCheckBroadcast(SystemClock.elapsedRealtime());
         return null;
     }
 
@@ -414,4 +465,80 @@
         }
         mNotificationShown = visible;
     }
+
+    private void sendFailedCaptivePortalCheckBroadcast(long requestTimestampMs) {
+        sendNetworkConditionsBroadcast(false /* response received */, false /* ignored */,
+                requestTimestampMs, 0 /* ignored */);
+    }
+
+    /**
+     * @param responseReceived - whether or not we received a valid HTTP response to our request.
+     * If false, isCaptivePortal and responseTimestampMs are ignored
+     */
+    private void sendNetworkConditionsBroadcast(boolean responseReceived, boolean isCaptivePortal,
+            long requestTimestampMs, long responseTimestampMs) {
+        if (Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 0) {
+            if (DBG) log("Don't send network conditions - lacking user consent.");
+            return;
+        }
+
+        Intent latencyBroadcast = new Intent(ACTION_NETWORK_CONDITIONS_MEASURED);
+        switch (mNetworkInfo.getType()) {
+            case ConnectivityManager.TYPE_WIFI:
+                WifiInfo currentWifiInfo = mWifiManager.getConnectionInfo();
+                if (currentWifiInfo != null) {
+                    latencyBroadcast.putExtra(EXTRA_SSID, currentWifiInfo.getSSID());
+                    latencyBroadcast.putExtra(EXTRA_BSSID, currentWifiInfo.getBSSID());
+                } else {
+                    if (DBG) logw("network info is TYPE_WIFI but no ConnectionInfo found");
+                    return;
+                }
+                break;
+            case ConnectivityManager.TYPE_MOBILE:
+                latencyBroadcast.putExtra(EXTRA_NETWORK_TYPE, mTelephonyManager.getNetworkType());
+                List<CellInfo> info = mTelephonyManager.getAllCellInfo();
+                if (info == null) return;
+                StringBuffer uniqueCellId = new StringBuffer();
+                int numRegisteredCellInfo = 0;
+                for (CellInfo cellInfo : info) {
+                    if (cellInfo.isRegistered()) {
+                        numRegisteredCellInfo++;
+                        if (numRegisteredCellInfo > 1) {
+                            if (DBG) log("more than one registered CellInfo.  Can't " +
+                                    "tell which is active.  Bailing.");
+                            return;
+                        }
+                        if (cellInfo instanceof CellInfoCdma) {
+                            CellIdentityCdma cellId = ((CellInfoCdma) cellInfo).getCellIdentity();
+                            latencyBroadcast.putExtra(EXTRA_CELL_ID, cellId);
+                        } else if (cellInfo instanceof CellInfoGsm) {
+                            CellIdentityGsm cellId = ((CellInfoGsm) cellInfo).getCellIdentity();
+                            latencyBroadcast.putExtra(EXTRA_CELL_ID, cellId);
+                        } else if (cellInfo instanceof CellInfoLte) {
+                            CellIdentityLte cellId = ((CellInfoLte) cellInfo).getCellIdentity();
+                            latencyBroadcast.putExtra(EXTRA_CELL_ID, cellId);
+                        } else if (cellInfo instanceof CellInfoWcdma) {
+                            CellIdentityWcdma cellId = ((CellInfoWcdma) cellInfo).getCellIdentity();
+                            latencyBroadcast.putExtra(EXTRA_CELL_ID, cellId);
+                        } else {
+                            if (DBG) logw("Registered cellinfo is unrecognized");
+                            return;
+                        }
+                    }
+                }
+                break;
+            default:
+                return;
+        }
+        latencyBroadcast.putExtra(EXTRA_CONNECTIVITY_TYPE, mNetworkInfo.getType());
+        latencyBroadcast.putExtra(EXTRA_RESPONSE_RECEIVED, responseReceived);
+        latencyBroadcast.putExtra(EXTRA_REQUEST_TIMESTAMP_MS, requestTimestampMs);
+
+        if (responseReceived) {
+            latencyBroadcast.putExtra(EXTRA_IS_CAPTIVE_PORTAL, isCaptivePortal);
+            latencyBroadcast.putExtra(EXTRA_RESPONSE_TIMESTAMP_MS, responseTimestampMs);
+        }
+        mContext.sendBroadcast(latencyBroadcast, PERMISSION_ACCESS_NETWORK_CONDITIONS);
+    }
 }
diff --git a/core/java/android/net/PacProxySelector.java b/core/java/android/net/PacProxySelector.java
new file mode 100644
index 0000000..be3a31d
--- /dev/null
+++ b/core/java/android/net/PacProxySelector.java
@@ -0,0 +1,80 @@
+
+package android.net;
+
+import android.os.RemoteException;
+import android.os.ServiceManager;
+
+import com.android.net.IProxyService;
+import com.google.android.collect.Lists;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import java.net.MalformedURLException;
+import java.net.Proxy;
+import java.net.Proxy.Type;
+import java.net.ProxySelector;
+import java.net.SocketAddress;
+import java.net.URI;
+import java.util.List;
+
+/**
+ * @hide
+ */
+public class PacProxySelector extends ProxySelector {
+    public static final String PROXY_SERVICE = "com.android.net.IProxyService";
+    private IProxyService mProxyService;
+
+    public PacProxySelector() {
+        mProxyService = IProxyService.Stub.asInterface(
+                ServiceManager.getService(PROXY_SERVICE));
+    }
+
+    @Override
+    public List<Proxy> select(URI uri) {
+        String response = null;
+        String urlString;
+        try {
+            urlString = uri.toURL().toString();
+        } catch (MalformedURLException e) {
+            urlString = uri.getHost();
+        }
+        try {
+            response = mProxyService.resolvePacFile(uri.getHost(), urlString);
+        } catch (RemoteException e) {
+            e.printStackTrace();
+        }
+
+        return parseResponse(response);
+    }
+
+    private static List<Proxy> parseResponse(String response) {
+        String[] split = response.split(";");
+        List<Proxy> ret = Lists.newArrayList();
+        for (String s : split) {
+            String trimmed = s.trim();
+            if (trimmed.equals("DIRECT")) {
+                ret.add(java.net.Proxy.NO_PROXY);
+            } else if (trimmed.startsWith("PROXY ")) {
+                String[] hostPort = trimmed.substring(6).split(":");
+                String host = hostPort[0];
+                int port;
+                try {
+                    port = Integer.parseInt(hostPort[1]);
+                } catch (Exception e) {
+                    port = 8080;
+                }
+                ret.add(new Proxy(Type.HTTP, new InetSocketAddress(host, port)));
+            }
+        }
+        if (ret.size() == 0) {
+            ret.add(java.net.Proxy.NO_PROXY);
+        }
+        return ret;
+    }
+
+    @Override
+    public void connectFailed(URI uri, SocketAddress address, IOException failure) {
+
+    }
+
+}
diff --git a/core/java/android/net/Proxy.java b/core/java/android/net/Proxy.java
index a408ea0..5b38f57 100644
--- a/core/java/android/net/Proxy.java
+++ b/core/java/android/net/Proxy.java
@@ -18,38 +18,25 @@
 
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
-import android.content.ContentResolver;
 import android.content.Context;
-import android.database.ContentObserver;
-import android.net.ProxyProperties;
-import android.os.Handler;
-import android.os.SystemProperties;
 import android.text.TextUtils;
-import android.provider.Settings;
 import android.util.Log;
 
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ProxySelector;
-import java.net.SocketAddress;
-import java.net.URI;
-import java.net.UnknownHostException;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
-import junit.framework.Assert;
-
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
 import org.apache.http.conn.routing.HttpRoute;
 import org.apache.http.conn.routing.HttpRoutePlanner;
 import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
-import org.apache.http.impl.conn.ProxySelectorRoutePlanner;
 import org.apache.http.protocol.HttpContext;
 
+import java.net.InetSocketAddress;
+import java.net.ProxySelector;
+import java.net.URI;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 /**
  * A convenience class for accessing the user and default proxy
  * settings.
@@ -60,6 +47,9 @@
     private static final boolean DEBUG = false;
     private static final String TAG = "Proxy";
 
+    private static final ProxySelector sDefaultProxySelector;
+    private static PacProxySelector sPacProxySelector;
+
     /**
      * Used to notify an app that's caching the default connection proxy
      * that either the default connection or its proxy has changed.
@@ -96,6 +86,7 @@
     static {
         HOSTNAME_PATTERN = Pattern.compile(HOSTNAME_REGEXP);
         EXCLLIST_PATTERN = Pattern.compile(EXCLLIST_REGEXP);
+        sDefaultProxySelector = ProxySelector.getDefault();
     }
 
     /**
@@ -325,16 +316,19 @@
         String host = null;
         String port = null;
         String exclList = null;
+        String pacFileUrl = null;
         if (p != null) {
             host = p.getHost();
             port = Integer.toString(p.getPort());
             exclList = p.getExclusionList();
+            pacFileUrl = p.getPacFileUrl();
         }
-        setHttpProxySystemProperty(host, port, exclList);
+        setHttpProxySystemProperty(host, port, exclList, pacFileUrl);
     }
 
     /** @hide */
-    public static final void setHttpProxySystemProperty(String host, String port, String exclList) {
+    public static final void setHttpProxySystemProperty(String host, String port, String exclList,
+            String pacFileUrl) {
         if (exclList != null) exclList = exclList.replace(",", "|");
         if (false) Log.d(TAG, "setHttpProxySystemProperty :"+host+":"+port+" - "+exclList);
         if (host != null) {
@@ -358,5 +352,13 @@
             System.clearProperty("http.nonProxyHosts");
             System.clearProperty("https.nonProxyHosts");
         }
+        if ((pacFileUrl != null) && !TextUtils.isEmpty(pacFileUrl)) {
+            if (sPacProxySelector == null) {
+                sPacProxySelector = new PacProxySelector();
+            }
+            ProxySelector.setDefault(sPacProxySelector);
+        } else {
+            ProxySelector.setDefault(sDefaultProxySelector);
+        }
     }
 }
diff --git a/core/java/android/net/ProxyProperties.java b/core/java/android/net/ProxyProperties.java
index 9c4772b..76aea9f 100644
--- a/core/java/android/net/ProxyProperties.java
+++ b/core/java/android/net/ProxyProperties.java
@@ -20,9 +20,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
-import android.util.Log;
 
-import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.util.Locale;
@@ -38,17 +36,30 @@
     private String mExclusionList;
     private String[] mParsedExclusionList;
 
+    private String mPacFileUrl;
+    public static final String LOCAL_EXCL_LIST = "";
+    public static final int LOCAL_PORT = 8182;
+    public static final String LOCAL_HOST = "localhost";
+
     public ProxyProperties(String host, int port, String exclList) {
         mHost = host;
         mPort = port;
         setExclusionList(exclList);
     }
 
+    public ProxyProperties(String pacFileUrl) {
+        mHost = LOCAL_HOST;
+        mPort = LOCAL_PORT;
+        setExclusionList(LOCAL_EXCL_LIST);
+        mPacFileUrl = pacFileUrl;
+    }
+
     private ProxyProperties(String host, int port, String exclList, String[] parsedExclList) {
         mHost = host;
         mPort = port;
         mExclusionList = exclList;
         mParsedExclusionList = parsedExclList;
+        mPacFileUrl = null;
     }
 
     // copy constructor instead of clone
@@ -56,6 +67,7 @@
         if (source != null) {
             mHost = source.getHost();
             mPort = source.getPort();
+            mPacFileUrl = source.getPacFileUrl();
             mExclusionList = source.getExclusionList();
             mParsedExclusionList = source.mParsedExclusionList;
         }
@@ -69,6 +81,10 @@
         return inetSocketAddress;
     }
 
+    public String getPacFileUrl() {
+        return mPacFileUrl;
+    }
+
     public String getHost() {
         return mHost;
     }
@@ -130,7 +146,10 @@
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
-        if (mHost != null) {
+        if (mPacFileUrl != null) {
+            sb.append("PAC Script: ");
+            sb.append(mPacFileUrl);
+        } else if (mHost != null) {
             sb.append("[");
             sb.append(mHost);
             sb.append("] ");
@@ -148,6 +167,14 @@
     public boolean equals(Object o) {
         if (!(o instanceof ProxyProperties)) return false;
         ProxyProperties p = (ProxyProperties)o;
+        // If PAC URL is present in either then they must be equal.
+        // Other parameters will only be for fall back.
+        if (!TextUtils.isEmpty(mPacFileUrl)) {
+            return mPacFileUrl.equals(p.getPacFileUrl());
+        }
+        if (!TextUtils.isEmpty(p.getPacFileUrl())) {
+            return false;
+        }
         if (mExclusionList != null && !mExclusionList.equals(p.getExclusionList())) return false;
         if (mHost != null && p.getHost() != null && mHost.equals(p.getHost()) == false) {
             return false;
@@ -181,6 +208,13 @@
      * @hide
      */
     public void writeToParcel(Parcel dest, int flags) {
+        if (mPacFileUrl != null) {
+            dest.writeByte((byte)1);
+            dest.writeString(mPacFileUrl);
+            return;
+        } else {
+            dest.writeByte((byte)0);
+        }
         if (mHost != null) {
             dest.writeByte((byte)1);
             dest.writeString(mHost);
@@ -201,7 +235,10 @@
             public ProxyProperties createFromParcel(Parcel in) {
                 String host = null;
                 int port = 0;
-                if (in.readByte() == 1) {
+                if (in.readByte() != 0) {
+                    return new ProxyProperties(in.readString());
+                }
+                if (in.readByte() != 0) {
                     host = in.readString();
                     port = in.readInt();
                 }
diff --git a/core/java/android/nfc/INfcCardEmulation.aidl b/core/java/android/nfc/INfcCardEmulation.aidl
index 7369c0b..b8a5ba7 100644
--- a/core/java/android/nfc/INfcCardEmulation.aidl
+++ b/core/java/android/nfc/INfcCardEmulation.aidl
@@ -28,5 +28,6 @@
     boolean isDefaultServiceForCategory(int userHandle, in ComponentName service, String category);
     boolean isDefaultServiceForAid(int userHandle, in ComponentName service, String aid);
     boolean setDefaultServiceForCategory(int userHandle, in ComponentName service, String category);
+    boolean setDefaultForNextTap(int userHandle, in ComponentName service);
     List<ApduServiceInfo> getServices(int userHandle, in String category);
 }
diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
index 11fd39a..ffa7d7e 100644
--- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -60,7 +60,7 @@
     final ArrayList<String> mAids;
 
     /**
-     * Whether this is an {@link HostApduService} or {@link OffHostApduService}
+     * Whether this service represents AIDs running on the host CPU
      */
     final boolean mOnHost;
 
@@ -77,30 +77,37 @@
     /**
      * @hide
      */
-    public ApduServiceInfo(ResolveInfo info, String description,
+    public ApduServiceInfo(ResolveInfo info, boolean onHost, String description,
             ArrayList<AidGroup> aidGroups) {
         this.mService = info;
         this.mDescription = description;
         this.mAidGroups = aidGroups;
         this.mAids = new ArrayList<String>();
         this.mCategoryToGroup = new HashMap<String, AidGroup>();
-        this.mOnHost = false;
+        this.mOnHost = onHost;
         for (AidGroup aidGroup : aidGroups) {
             this.mCategoryToGroup.put(aidGroup.category, aidGroup);
             this.mAids.addAll(aidGroup.aids);
         }
     }
 
-    public ApduServiceInfo(PackageManager pm, ResolveInfo info) throws XmlPullParserException,
-            IOException {
+    public ApduServiceInfo(PackageManager pm, ResolveInfo info, boolean onHost)
+            throws XmlPullParserException, IOException {
         ServiceInfo si = info.serviceInfo;
-
         XmlResourceParser parser = null;
         try {
-            parser = si.loadXmlMetaData(pm, HostApduService.SERVICE_META_DATA);
-            if (parser == null) {
-                throw new XmlPullParserException("No " + HostApduService.SERVICE_META_DATA +
-                        " meta-data");
+            if (onHost) {
+                parser = si.loadXmlMetaData(pm, HostApduService.SERVICE_META_DATA);
+                if (parser == null) {
+                    throw new XmlPullParserException("No " + HostApduService.SERVICE_META_DATA +
+                            " meta-data");
+                }
+            } else {
+                parser = si.loadXmlMetaData(pm, OffHostApduService.SERVICE_META_DATA);
+                if (parser == null) {
+                    throw new XmlPullParserException("No " + OffHostApduService.SERVICE_META_DATA +
+                            " meta-data");
+                }
             }
 
             int eventType = parser.getEventType();
@@ -109,22 +116,34 @@
             }
 
             String tagName = parser.getName();
-            if (!"host-apdu-service".equals(tagName)) {
+            if (onHost && !"host-apdu-service".equals(tagName)) {
                 throw new XmlPullParserException(
                         "Meta-data does not start with <host-apdu-service> tag");
+            } else if (!onHost && !"offhost-apdu-service".equals(tagName)) {
+                throw new XmlPullParserException(
+                        "Meta-data does not start with <offhost-apdu-service> tag");
             }
 
             Resources res = pm.getResourcesForApplication(si.applicationInfo);
             AttributeSet attrs = Xml.asAttributeSet(parser);
-            TypedArray sa = res.obtainAttributes(attrs,
-                    com.android.internal.R.styleable.HostApduService);
-            mService = info;
-            mDescription = sa.getString(
-                    com.android.internal.R.styleable.HostApduService_description);
+            if (onHost) {
+                TypedArray sa = res.obtainAttributes(attrs,
+                        com.android.internal.R.styleable.HostApduService);
+                mService = info;
+                mDescription = sa.getString(
+                        com.android.internal.R.styleable.HostApduService_description);
+            } else {
+                TypedArray sa = res.obtainAttributes(attrs,
+                        com.android.internal.R.styleable.OffHostApduService);
+                mService = info;
+                mDescription = sa.getString(
+                        com.android.internal.R.styleable.OffHostApduService_description);
+            }
+
             mAidGroups = new ArrayList<AidGroup>();
             mCategoryToGroup = new HashMap<String, AidGroup>();
             mAids = new ArrayList<String>();
-            mOnHost = true; // TODO
+            mOnHost = onHost;
             final int depth = parser.getDepth();
             AidGroup currentGroup = null;
 
@@ -202,6 +221,10 @@
         return mCategoryToGroup.containsKey(category);
     }
 
+    public boolean isOnHost() {
+        return mOnHost;
+    }
+
     public CharSequence loadLabel(PackageManager pm) {
         return mService.loadLabel(pm);
     }
@@ -258,6 +281,7 @@
     public void writeToParcel(Parcel dest, int flags) {
         mService.writeToParcel(dest, flags);
         dest.writeString(mDescription);
+        dest.writeInt(mOnHost ? 1 : 0);
         dest.writeInt(mAidGroups.size());
         if (mAidGroups.size() > 0) {
             dest.writeTypedList(mAidGroups);
@@ -270,12 +294,13 @@
         public ApduServiceInfo createFromParcel(Parcel source) {
             ResolveInfo info = ResolveInfo.CREATOR.createFromParcel(source);
             String description = source.readString();
+            boolean onHost = (source.readInt() != 0) ? true : false;
             ArrayList<AidGroup> aidGroups = new ArrayList<AidGroup>();
             int numGroups = source.readInt();
             if (numGroups > 0) {
                 source.readTypedList(aidGroups, AidGroup.CREATOR);
             }
-            return new ApduServiceInfo(info, description, aidGroups);
+            return new ApduServiceInfo(info, onHost, description, aidGroups);
         }
 
         @Override
diff --git a/core/java/android/nfc/cardemulation/CardEmulationManager.java b/core/java/android/nfc/cardemulation/CardEmulationManager.java
index abfeaf9..537fded 100644
--- a/core/java/android/nfc/cardemulation/CardEmulationManager.java
+++ b/core/java/android/nfc/cardemulation/CardEmulationManager.java
@@ -56,7 +56,8 @@
     public static final String EXTRA_CATEGORY = "category";
 
     /**
-     * The ComponentName of the card emulation service component.
+     * The ComponentName object passed in as a parcelable
+     * extra for {@link #ACTION_CHANGE_DEFAULT}
      *
      * @see #ACTION_CHANGE_DEFAULT
      */
@@ -185,7 +186,7 @@
     }
 
     /**
-     * @return
+     * @hide
      */
     public boolean setDefaultServiceForCategory(ComponentName service, String category) {
         try {
@@ -210,6 +211,27 @@
     /**
      * @hide
      */
+    public boolean setDefaultForNextTap(ComponentName service) {
+        try {
+            return sService.setDefaultForNextTap(UserHandle.myUserId(), service);
+        } catch (RemoteException e) {
+            // Try one more time
+            recoverService();
+            if (sService == null) {
+                Log.e(TAG, "Failed to recover CardEmulationService.");
+                return false;
+            }
+            try {
+                return sService.setDefaultForNextTap(UserHandle.myUserId(), service);
+            } catch (RemoteException ee) {
+                Log.e(TAG, "Failed to reach CardEmulationService.");
+                return false;
+            }
+        }
+    }
+    /**
+     * @hide
+     */
     public List<ApduServiceInfo> getServices(String category) {
         try {
             return sService.getServices(UserHandle.myUserId(), category);
@@ -233,4 +255,4 @@
         NfcAdapter adapter = NfcAdapter.getDefaultAdapter(mContext);
         sService = adapter.getCardEmulationService();
     }
-}
\ No newline at end of file
+}
diff --git a/core/java/android/os/BatteryProperties.java b/core/java/android/os/BatteryProperties.java
index 2d67264..5df5214 100644
--- a/core/java/android/os/BatteryProperties.java
+++ b/core/java/android/os/BatteryProperties.java
@@ -30,6 +30,8 @@
     public boolean batteryPresent;
     public int batteryLevel;
     public int batteryVoltage;
+    public int batteryCurrentNow;
+    public int batteryChargeCounter;
     public int batteryTemperature;
     public String batteryTechnology;
 
@@ -47,6 +49,8 @@
         batteryPresent = p.readInt() == 1 ? true : false;
         batteryLevel = p.readInt();
         batteryVoltage = p.readInt();
+        batteryCurrentNow = p.readInt();
+        batteryChargeCounter = p.readInt();
         batteryTemperature = p.readInt();
         batteryTechnology = p.readString();
     }
@@ -60,6 +64,8 @@
         p.writeInt(batteryPresent ? 1 : 0);
         p.writeInt(batteryLevel);
         p.writeInt(batteryVoltage);
+        p.writeInt(batteryCurrentNow);
+        p.writeInt(batteryChargeCounter);
         p.writeInt(batteryTemperature);
         p.writeString(batteryTechnology);
     }
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index 7b91418..4627c88 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -296,7 +296,21 @@
                 disabled = sDumpDisabled;
             }
             if (disabled == null) {
-                dump(fd, pw, args);
+                try {
+                    dump(fd, pw, args);
+                } catch (SecurityException e) {
+                    pw.println();
+                    pw.println("Security exception: " + e.getMessage());
+                    throw e;
+                } catch (Throwable e) {
+                    // Unlike usual calls, in this case if an exception gets thrown
+                    // back to us we want to print it back in to the dump data, since
+                    // that is where the caller expects all interesting information to
+                    // go.
+                    pw.println();
+                    pw.println("Exception occurred while dumping:");
+                    e.printStackTrace(pw);
+                }
             } else {
                 pw.println(sDumpDisabled);
             }
@@ -443,7 +457,6 @@
         data.writeStringArray(args);
         try {
             transact(DUMP_TRANSACTION, data, reply, FLAG_ONEWAY);
-            reply.readException();
         } finally {
             data.recycle();
             reply.recycle();
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index 160ec8a..0f765fa 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -1112,6 +1112,7 @@
             try {
                 mFragmentBreadCrumbs = (FragmentBreadCrumbs)crumbs;
             } catch (ClassCastException e) {
+                setTitle(title);
                 return;
             }
             if (mFragmentBreadCrumbs == null) {
@@ -1125,12 +1126,17 @@
                 // Hide the breadcrumb section completely for single-pane
                 View bcSection = findViewById(com.android.internal.R.id.breadcrumb_section);
                 if (bcSection != null) bcSection.setVisibility(View.GONE);
+                setTitle(title);
             }
             mFragmentBreadCrumbs.setMaxVisible(2);
             mFragmentBreadCrumbs.setActivity(this);
         }
-        mFragmentBreadCrumbs.setTitle(title, shortTitle);
-        mFragmentBreadCrumbs.setParentTitle(null, null, null);
+        if (mFragmentBreadCrumbs.getVisibility() != View.VISIBLE) {
+            setTitle(title);
+        } else {
+            mFragmentBreadCrumbs.setTitle(title, shortTitle);
+            mFragmentBreadCrumbs.setParentTitle(null, null, null);
+        }
     }
 
     /**
diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java
index 9e8cfad..c067661 100644
--- a/core/java/android/print/PrintManager.java
+++ b/core/java/android/print/PrintManager.java
@@ -288,6 +288,7 @@
         private void doFinish() {
             mDocumentAdapter = null;
             mHandler = null;
+            mLayoutOrWriteCancellation = null;
         }
 
         private final class MyHandler extends Handler {
@@ -312,10 +313,10 @@
 
                     case MSG_LAYOUT: {
                         SomeArgs args = (SomeArgs) message.obj;
-                        final PrintAttributes oldAttributes = (PrintAttributes) args.arg1;
-                        final PrintAttributes newAttributes = (PrintAttributes) args.arg2;
-                        final ILayoutResultCallback callback = (ILayoutResultCallback) args.arg3;
-                        final Bundle metadata = (Bundle) args.arg4;
+                        PrintAttributes oldAttributes = (PrintAttributes) args.arg1;
+                        PrintAttributes newAttributes = (PrintAttributes) args.arg2;
+                        ILayoutResultCallback callback = (ILayoutResultCallback) args.arg3;
+                        Bundle metadata = (Bundle) args.arg4;
                         final int sequence = args.argi1;
                         args.recycle();
 
@@ -324,49 +325,15 @@
                             mLayoutOrWriteCancellation = cancellation;
                         }
 
-                        mDocumentAdapter.onLayout(oldAttributes, newAttributes,
-                                cancellation, new LayoutResultCallback() {
-                            @Override
-                            public void onLayoutFinished(PrintDocumentInfo info, boolean changed) {
-                                if (info == null) {
-                                    throw new IllegalArgumentException("info cannot be null");
-                                }
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                                try {
-                                    callback.onLayoutFinished(info, changed, sequence);
-                                } catch (RemoteException re) {
-                                    Log.e(LOG_TAG, "Error calling onLayoutFinished", re);
-                                }
-                            }
-
-                            @Override
-                            public void onLayoutFailed(CharSequence error) {
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                                try {
-                                    callback.onLayoutFailed(error, sequence);
-                                } catch (RemoteException re) {
-                                    Log.e(LOG_TAG, "Error calling onLayoutFailed", re);
-                                }
-                            }
-
-                            @Override
-                            public void onLayoutCancelled() {
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                            }
-                        }, metadata);
+                        mDocumentAdapter.onLayout(oldAttributes, newAttributes, cancellation,
+                                new MyLayoutResultCallback(callback, sequence), metadata);
                     } break;
 
                     case MSG_WRITE: {
                         SomeArgs args = (SomeArgs) message.obj;
-                        final PageRange[] pages = (PageRange[]) args.arg1;
-                        final FileDescriptor fd = (FileDescriptor) args.arg2;
-                        final IWriteResultCallback callback = (IWriteResultCallback) args.arg3;
+                        PageRange[] pages = (PageRange[]) args.arg1;
+                        FileDescriptor fd = (FileDescriptor) args.arg2;
+                        IWriteResultCallback callback = (IWriteResultCallback) args.arg3;
                         final int sequence = args.argi1;
                         args.recycle();
 
@@ -376,52 +343,7 @@
                         }
 
                         mDocumentAdapter.onWrite(pages, fd, cancellation,
-                                new WriteResultCallback() {
-                            @Override
-                            public void onWriteFinished(PageRange[] pages) {
-                                if (pages == null) {
-                                    throw new IllegalArgumentException("pages cannot be null");
-                                }
-                                if (pages.length == 0) {
-                                    throw new IllegalArgumentException("pages cannot be empty");
-                                }
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                                // Close before notifying the other end. We want
-                                // to be ready by the time we announce it.
-                                IoUtils.closeQuietly(fd);
-                                try {
-                                    callback.onWriteFinished(pages, sequence);
-                                } catch (RemoteException re) {
-                                    Log.e(LOG_TAG, "Error calling onWriteFinished", re);
-                                }
-                            }
-
-                            @Override
-                            public void onWriteFailed(CharSequence error) {
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                                // Close before notifying the other end. We want
-                                // to be ready by the time we announce it.
-                                IoUtils.closeQuietly(fd);
-                                try {
-                                    callback.onWriteFailed(error, sequence);
-                                } catch (RemoteException re) {
-                                    Log.e(LOG_TAG, "Error calling onWriteFailed", re);
-                                }
-                            }
-
-                            @Override
-                            public void onWriteCancelled() {
-                                synchronized (mLock) {
-                                    mLayoutOrWriteCancellation = null;
-                                }
-                                // Just close the fd for now.
-                                IoUtils.closeQuietly(fd);
-                            }
-                        });
+                                new MyWriteResultCallback(callback, fd, sequence));
                     } break;
 
                     case MSG_FINISH: {
@@ -436,5 +358,128 @@
                 }
             }
         }
+
+        private final class MyLayoutResultCallback extends LayoutResultCallback {
+            private ILayoutResultCallback mCallback;
+            private final int mSequence;
+
+            public MyLayoutResultCallback(ILayoutResultCallback callback,
+                    int sequence) {
+                mCallback = callback;
+                mSequence = sequence;
+            }
+
+            @Override
+            public void onLayoutFinished(PrintDocumentInfo info, boolean changed) {
+                final ILayoutResultCallback callback;
+                synchronized (mLock) {
+                    callback = mCallback;
+                    clearLocked();
+                }
+                if (info == null) {
+                    throw new IllegalArgumentException("info cannot be null");
+                }
+                if (callback != null) {
+                    try {
+                        callback.onLayoutFinished(info, changed, mSequence);
+                    } catch (RemoteException re) {
+                        Log.e(LOG_TAG, "Error calling onLayoutFinished", re);
+                    }
+                }
+            }
+
+            @Override
+            public void onLayoutFailed(CharSequence error) {
+                final ILayoutResultCallback callback;
+                synchronized (mLock) {
+                    callback = mCallback;
+                    clearLocked();
+                }
+                if (callback != null) {
+                    try {
+                        callback.onLayoutFailed(error, mSequence);
+                    } catch (RemoteException re) {
+                        Log.e(LOG_TAG, "Error calling onLayoutFailed", re);
+                    }
+                }
+            }
+
+            @Override
+            public void onLayoutCancelled() {
+                synchronized (mLock) {
+                    clearLocked();
+                }
+            }
+
+            private void clearLocked() {
+                mLayoutOrWriteCancellation = null;
+                mCallback = null;
+            }
+        }
+
+        private final class MyWriteResultCallback extends WriteResultCallback {
+            private FileDescriptor mFd;
+            private int mSequence;
+            private IWriteResultCallback mCallback;
+
+            public MyWriteResultCallback(IWriteResultCallback callback,
+                    FileDescriptor fd, int sequence) {
+                mFd = fd;
+                mSequence = sequence;
+                mCallback = callback;
+            }
+
+            @Override
+            public void onWriteFinished(PageRange[] pages) {
+                final IWriteResultCallback callback;
+                synchronized (mLock) {
+                    callback = mCallback;
+                    clearLocked();
+                }
+                if (pages == null) {
+                    throw new IllegalArgumentException("pages cannot be null");
+                }
+                if (pages.length == 0) {
+                    throw new IllegalArgumentException("pages cannot be empty");
+                }
+                if (callback != null) {
+                    try {
+                        callback.onWriteFinished(pages, mSequence);
+                    } catch (RemoteException re) {
+                        Log.e(LOG_TAG, "Error calling onWriteFinished", re);
+                    }
+                }
+            }
+
+            @Override
+            public void onWriteFailed(CharSequence error) {
+                final IWriteResultCallback callback;
+                synchronized (mLock) {
+                    callback = mCallback;
+                    clearLocked();
+                }
+                if (callback != null) {
+                    try {
+                        callback.onWriteFailed(error, mSequence);
+                    } catch (RemoteException re) {
+                        Log.e(LOG_TAG, "Error calling onWriteFailed", re);
+                    }
+                }
+            }
+
+            @Override
+            public void onWriteCancelled() {
+                synchronized (mLock) {
+                    clearLocked();
+                }
+            }
+
+            private void clearLocked() {
+                mLayoutOrWriteCancellation = null;
+                IoUtils.closeQuietly(mFd);
+                mCallback = null;
+                mFd = null;
+            }
+        }
     }
 }
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index 9c2bb49..acaed73 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -105,6 +105,8 @@
      */
     public static final int FLAG_SUPPORTS_SEARCH = 1 << 4;
 
+    // TODO: flag indicating that document is writable?
+
     /**
      * Optimal dimensions for a document thumbnail request, stored as a
      * {@link Point} object. This is only a hint, and the returned thumbnail may
@@ -267,11 +269,43 @@
          * Type: INTEGER (int)
          */
         public static final String FLAGS = "flags";
+
+        /**
+         * Summary for this document, or {@code null} to omit.
+         * <p>
+         * Type: STRING
+         */
+        public static final String SUMMARY = "summary";
     }
 
+    /**
+     * Root that represents a cloud-based storage service.
+     *
+     * @see RootColumns#ROOT_TYPE
+     */
     public static final int ROOT_TYPE_SERVICE = 1;
+
+    /**
+     * Root that represents a shortcut to content that may be available
+     * elsewhere through another storage root.
+     *
+     * @see RootColumns#ROOT_TYPE
+     */
     public static final int ROOT_TYPE_SHORTCUT = 2;
+
+    /**
+     * Root that represents a physical storage device.
+     *
+     * @see RootColumns#ROOT_TYPE
+     */
     public static final int ROOT_TYPE_DEVICE = 3;
+
+    /**
+     * Root that represents a physical storage device that should only be
+     * displayed to advanced users.
+     *
+     * @see RootColumns#ROOT_TYPE
+     */
     public static final int ROOT_TYPE_DEVICE_ADVANCED = 4;
 
     /**
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index b252641..130123f 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5292,6 +5292,14 @@
         public static final String CONNECTIVITY_CHANGE_DELAY = "connectivity_change_delay";
 
         /**
+         * The series of successively longer delays used in retrying to download PAC file.
+         * Last delay is used between successful PAC downloads.
+         *
+         * @hide
+         */
+        public static final String PAC_CHANGE_DELAY = "pac_change_delay";
+
+        /**
          * Setting to turn off captive portal detection. Feature is enabled by
          * default and the setting needs to be set to 0 to disable it.
          *
@@ -5386,6 +5394,13 @@
                 GLOBAL_HTTP_PROXY_EXCLUSION_LIST = "global_http_proxy_exclusion_list";
 
         /**
+         * The location PAC File for the proxy.
+         * @hide
+         */
+        public static final String
+                GLOBAL_HTTP_PROXY_PAC = "global_proxy_pac_url";
+
+        /**
          * Enables the UI setting to allow the user to specify the global HTTP
          * proxy and associated exclusion list.
          *
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index d9e4600..ba64f6b 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -1983,7 +1983,12 @@
                         if (map != null) {
                             GLES20Canvas.initAtlas(buffer, map);
                         }
-                        buffer.destroy();
+                        // If IAssetAtlas is not the same class as the IBinder
+                        // we are using a remote service and we can safely
+                        // destroy the graphic buffer
+                        if (atlas.getClass() != binder.getClass()) {
+                            buffer.destroy();
+                        }
                     }
                 }
             } catch (RemoteException e) {
@@ -1994,7 +1999,7 @@
         @Override
         boolean canDraw() {
             return super.canDraw() && mGlCanvas != null;
-        }                
+        }
 
         @Override
         int onPreDraw(Rect dirty) {
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index 52ad76d..b2c9f8c 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -322,7 +322,7 @@
     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
         super.onSizeChanged(w, h, oldw, oldh);
         if (mSurface != null) {
-            nSetDefaultBufferSize(mSurface, getWidth(), getHeight());
+            mSurface.setDefaultBufferSize(getWidth(), getHeight());
             updateLayer();
             if (mListener != null) {
                 mListener.onSurfaceTextureSizeChanged(mSurface, getWidth(), getHeight());
@@ -362,7 +362,7 @@
                 // Create a new SurfaceTexture for the layer.
                 mSurface = mAttachInfo.mHardwareRenderer.createSurfaceTexture(mLayer);
             }
-            nSetDefaultBufferSize(mSurface, getWidth(), getHeight());
+            mSurface.setDefaultBufferSize(getWidth(), getHeight());
             nCreateNativeWindow(mSurface);
 
             mUpdateListener = new SurfaceTexture.OnFrameAvailableListener() {
@@ -399,7 +399,7 @@
             mMatrixChanged = true;
 
             mAttachInfo.mHardwareRenderer.setSurfaceTexture(mLayer, mSurface);
-            nSetDefaultBufferSize(mSurface, getWidth(), getHeight());
+            mSurface.setDefaultBufferSize(getWidth(), getHeight());
         }
 
         applyUpdate();
@@ -816,9 +816,6 @@
     private native void nCreateNativeWindow(SurfaceTexture surface);
     private native void nDestroyNativeWindow();
 
-    private static native void nSetDefaultBufferSize(SurfaceTexture surfaceTexture,
-            int width, int height);
-
     private static native boolean nLockCanvas(int nativeWindow, Canvas canvas, Rect dirty);
     private static native void nUnlockCanvasAndPost(int nativeWindow, Canvas canvas);
 }
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 7624b56..20938f51 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2379,9 +2379,27 @@
      * when hiding the status bar with {@link #SYSTEM_UI_FLAG_FULLSCREEN} and/or hiding the
      * navigation bar with {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION} instead of having the system
      * clear these flags upon interaction.  The system may compensate by temporarily overlaying
-     * transparent system ui while also delivering the event.
+     * transparent system bars while also delivering the event.
      */
-    public static final int SYSTEM_UI_FLAG_ALLOW_OVERLAY = 0x00000800;
+    public static final int SYSTEM_UI_FLAG_ALLOW_TRANSIENT = 0x00000800;
+
+    /**
+     * Flag for {@link #setSystemUiVisibility(int)}: View would like the status bar to have
+     * transparency.
+     *
+     * <p>The transparency request may be denied if the bar is in another mode with a specific
+     * style, like {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT transient mode}.
+     */
+    public static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS = 0x00001000;
+
+    /**
+     * Flag for {@link #setSystemUiVisibility(int)}: View would like the navigation bar to have
+     * transparency.
+     *
+     * <p>The transparency request may be denied if the bar is in another mode with a specific
+     * style, like {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT transient mode}.
+     */
+    public static final int SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION = 0x00002000;
 
     /**
      * @deprecated Use {@link #SYSTEM_UI_FLAG_LOW_PROFILE} instead.
@@ -2508,11 +2526,9 @@
      * NOTE: This flag may only be used in subtreeSystemUiVisibility. It is masked
      * out of the public fields to keep the undefined bits out of the developer's way.
      *
-     * Flag to specify that the status bar should temporarily overlay underlying content
-     * that is otherwise assuming the status bar is hidden.  The status bar may
-     * have some degree of transparency while in this temporary overlay mode.
+     * Flag to specify that the status bar is displayed in transient mode.
      */
-    public static final int STATUS_BAR_OVERLAY = 0x04000000;
+    public static final int STATUS_BAR_TRANSIENT = 0x04000000;
 
     /**
      * @hide
@@ -2520,11 +2536,9 @@
      * NOTE: This flag may only be used in subtreeSystemUiVisibility. It is masked
      * out of the public fields to keep the undefined bits out of the developer's way.
      *
-     * Flag to specify that the navigation bar should temporarily overlay underlying content
-     * that is otherwise assuming the navigation bar is hidden.  The navigation bar mayu
-     * have some degree of transparency while in this temporary overlay mode.
+     * Flag to specify that the navigation bar is displayed in transient mode.
      */
-    public static final int NAVIGATION_BAR_OVERLAY = 0x08000000;
+    public static final int NAVIGATION_BAR_TRANSIENT = 0x08000000;
 
     /**
      * @hide
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 4df4734..c8ce6fa 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -613,7 +613,8 @@
     public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi,
             boolean allowsImplicitlySelectedSubtypes) {
         try {
-            return mService.getEnabledInputMethodSubtypeList(imi, allowsImplicitlySelectedSubtypes);
+            return mService.getEnabledInputMethodSubtypeList(
+                    imi == null ? null : imi.getId(), allowsImplicitlySelectedSubtypes);
         } catch (RemoteException e) {
             throw new RuntimeException(e);
         }
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index d8a2eda..3f391ad 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -223,6 +223,11 @@
     public static final int CHOICE_MODE_MULTIPLE_MODAL = 3;
 
     /**
+     * The thread that created this view.
+     */
+    private final Thread mOwnerThread;
+
+    /**
      * Controls if/how the user may choose/check items in the list
      */
     int mChoiceMode = CHOICE_MODE_NONE;
@@ -438,6 +443,11 @@
     boolean mFastScrollEnabled;
 
     /**
+     * Whether or not to always show the fast scroll feature on this list
+     */
+    boolean mFastScrollAlwaysVisible;
+
+    /**
      * Optional callback to notify client when scroll position has changed
      */
     private OnScrollListener mOnScrollListener;
@@ -756,6 +766,8 @@
         super(context);
         initAbsListView();
 
+        mOwnerThread = Thread.currentThread();
+
         setVerticalScrollBarEnabled(true);
         TypedArray a = context.obtainStyledAttributes(R.styleable.View);
         initializeScrollbars(a);
@@ -770,6 +782,8 @@
         super(context, attrs, defStyle);
         initAbsListView();
 
+        mOwnerThread = Thread.currentThread();
+
         TypedArray a = context.obtainStyledAttributes(attrs,
                 com.android.internal.R.styleable.AbsListView, defStyle, 0);
 
@@ -1205,15 +1219,29 @@
      * @see #isFastScrollEnabled()
      * @param enabled whether or not to enable fast scrolling
      */
-    public void setFastScrollEnabled(boolean enabled) {
-        mFastScrollEnabled = enabled;
+    public void setFastScrollEnabled(final boolean enabled) {
+        if (mFastScrollEnabled != enabled) {
+            mFastScrollEnabled = enabled;
 
-        if (enabled && mFastScroller == null) {
-            mFastScroller = new FastScroller(getContext(), this);
+            if (isOwnerThread()) {
+                setFastScrollerEnabledUiThread(enabled);
+            } else {
+                post(new Runnable() {
+                    @Override
+                    public void run() {
+                        setFastScrollerEnabledUiThread(enabled);
+                    }
+                });
+            }
         }
+    }
 
+    private void setFastScrollerEnabledUiThread(boolean enabled) {
         if (mFastScroller != null) {
             mFastScroller.setEnabled(enabled);
+        } else if (enabled) {
+            mFastScroller = new FastScroller(this);
+            mFastScroller.setEnabled(true);
         }
     }
 
@@ -1228,17 +1256,38 @@
      * @see #setScrollBarStyle(int)
      * @see #setFastScrollEnabled(boolean)
      */
-    public void setFastScrollAlwaysVisible(boolean alwaysShow) {
-        if (alwaysShow && !mFastScrollEnabled) {
-            setFastScrollEnabled(true);
-        }
+    public void setFastScrollAlwaysVisible(final boolean alwaysShow) {
+        if (mFastScrollAlwaysVisible != alwaysShow) {
+            if (alwaysShow && !mFastScrollEnabled) {
+                setFastScrollEnabled(true);
+            }
 
+            mFastScrollAlwaysVisible = alwaysShow;
+
+            if (isOwnerThread()) {
+                setFastScrollerAlwaysVisibleUiThread(alwaysShow);
+            } else {
+                post(new Runnable() {
+                    @Override
+                    public void run() {
+                        setFastScrollerAlwaysVisibleUiThread(alwaysShow);
+                    }
+                });
+            }
+        }
+    }
+
+    private void setFastScrollerAlwaysVisibleUiThread(boolean alwaysShow) {
         if (mFastScroller != null) {
             mFastScroller.setAlwaysShow(alwaysShow);
         }
+    }
 
-        computeOpaqueFlags();
-        recomputePadding();
+    /**
+     * @return whether the current thread is the one that created the view
+     */
+    private boolean isOwnerThread() {
+        return mOwnerThread == Thread.currentThread();
     }
 
     /**
@@ -1249,12 +1298,12 @@
      * @see #setFastScrollAlwaysVisible(boolean)
      */
     public boolean isFastScrollAlwaysVisible() {
-        return mFastScrollEnabled && mFastScroller.isAlwaysShowEnabled();
+        return mFastScrollEnabled && mFastScrollAlwaysVisible;
     }
 
     @Override
     public int getVerticalScrollbarWidth() {
-        if (isFastScrollAlwaysVisible()) {
+        if (isFastScrollAlwaysVisible() && mFastScroller != null) {
             return Math.max(super.getVerticalScrollbarWidth(), mFastScroller.getWidth());
         }
         return super.getVerticalScrollbarWidth();
@@ -4836,6 +4885,17 @@
     }
 
     /**
+     * Scrolls the list items within the view by a specified number of pixels.
+     *
+     * @param y the amount of pixels to scroll by vertically
+     * @return true if the list is able to scroll, or false if the list is
+     *         already at the beginning/end and unable to scroll any more.
+     */
+    public boolean scrollListBy(int y) {
+        return !trackMotionScroll(-y, -y);
+    }
+
+    /**
      * Track a motion scroll
      *
      * @param deltaY Amount to offset mMotionView. This is the accumulated delta since the motion
diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java
index d08e38e..393720f 100644
--- a/core/java/android/widget/FastScroller.java
+++ b/core/java/android/widget/FastScroller.java
@@ -106,6 +106,7 @@
 
     private final Rect mTempBounds = new Rect();
     private final Rect mTempMargins = new Rect();
+    private final Rect mContainerRect = new Rect();
 
     private final AbsListView mList;
     private final ViewGroupOverlay mOverlay;
@@ -159,6 +160,9 @@
 
     private Object[] mSections;
 
+    /** Whether this view is currently performing layout. */
+    private boolean mUpdatingLayout;
+
     /**
      * Current decoration state, one of:
      * <ul>
@@ -231,10 +235,11 @@
         }
     };
 
-    public FastScroller(Context context, AbsListView listView) {
+    public FastScroller(AbsListView listView) {
         mList = listView;
         mOverlay = listView.getOverlay();
 
+        final Context context = listView.getContext();
         mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
 
         final Resources res = context.getResources();
@@ -433,6 +438,16 @@
      * Measures and layouts the scrollbar and decorations.
      */
     private void updateLayout() {
+        // Prevent re-entry when RTL properties change as a side-effect of
+        // resolving padding.
+        if (mUpdatingLayout) {
+            return;
+        }
+
+        mUpdatingLayout = true;
+
+        updateContainerRect();
+
         layoutThumb();
         layoutTrack();
 
@@ -450,6 +465,8 @@
             bounds.bottom += mPreviewImage.getPaddingBottom();
             applyLayout(mPreviewImage, bounds);
         }
+
+        mUpdatingLayout = false;
     }
 
     /**
@@ -512,14 +529,15 @@
             marginRight = margins.right;
         }
 
-        final int listWidth = mList.getWidth();
+        final Rect container = mContainerRect;
+        final int containerWidth = container.width();
         final int maxWidth;
         if (adjacent == null) {
-            maxWidth = listWidth;
+            maxWidth = containerWidth;
         } else if (mLayoutFromRight) {
             maxWidth = adjacent.getLeft();
         } else {
-            maxWidth = listWidth - adjacent.getRight();
+            maxWidth = containerWidth - adjacent.getRight();
         }
 
         final int adjMaxWidth = maxWidth - marginLeft - marginRight;
@@ -532,10 +550,10 @@
         final int left;
         final int right;
         if (mLayoutFromRight) {
-            right = (adjacent == null ? listWidth : adjacent.getLeft()) - marginRight;
+            right = (adjacent == null ? container.right : adjacent.getLeft()) - marginRight;
             left = right - width;
         } else {
-            left = (adjacent == null ? 0 : adjacent.getRight()) + marginLeft;
+            left = (adjacent == null ? container.left : adjacent.getRight()) + marginLeft;
             right = left + width;
         }
 
@@ -559,22 +577,41 @@
             marginRight = margins.right;
         }
 
-        final View list = mList;
-        final int listWidth = list.getWidth();
-        final int adjMaxWidth = listWidth - marginLeft - marginRight;
+        final Rect container = mContainerRect;
+        final int containerWidth = container.width();
+        final int adjMaxWidth = containerWidth - marginLeft - marginRight;
         final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(adjMaxWidth, MeasureSpec.AT_MOST);
         final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
         preview.measure(widthMeasureSpec, heightMeasureSpec);
 
         // Align at the vertical center, 10% from the top.
+        final int containerHeight = container.height();
         final int width = preview.getMeasuredWidth();
-        final int top = list.getHeight() / 10 + marginTop;
+        final int top = containerHeight / 10 + marginTop + container.top;
         final int bottom = top + preview.getMeasuredHeight();
-        final int left = (listWidth - width) / 2;
+        final int left = (containerWidth - width) / 2 + container.left;
         final int right = left + width;
         out.set(left, top, right, bottom);
     }
 
+    private void updateContainerRect() {
+        final AbsListView list = mList;
+        final Rect container = mContainerRect;
+        container.left = 0;
+        container.top = 0;
+        container.right = list.getWidth();
+        container.bottom = list.getHeight();
+
+        final int scrollbarStyle = list.getScrollBarStyle();
+        if (scrollbarStyle == View.SCROLLBARS_INSIDE_INSET
+                || scrollbarStyle == View.SCROLLBARS_INSIDE_OVERLAY) {
+            container.left += list.getPaddingLeft();
+            container.top += list.getPaddingTop();
+            container.right -= list.getPaddingRight();
+            container.bottom -= list.getPaddingBottom();
+        }
+    }
+
     /**
      * Lays out the thumb according to the current scrollbar position.
      */
@@ -585,25 +622,24 @@
     }
 
     /**
-     * Lays out the track centered on the thumb, if available, or against the
-     * edge if no thumb is available. Must be called after {@link #layoutThumb}.
+     * Lays out the track centered on the thumb. Must be called after
+     * {@link #layoutThumb}.
      */
     private void layoutTrack() {
         final View track = mTrackImage;
         final View thumb = mThumbImage;
-        final View list = mList;
-        final int listWidth = list.getWidth();
-        final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(listWidth, MeasureSpec.AT_MOST);
+        final Rect container = mContainerRect;
+        final int containerWidth = container.width();
+        final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(containerWidth, MeasureSpec.AT_MOST);
         final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
         track.measure(widthMeasureSpec, heightMeasureSpec);
 
         final int trackWidth = track.getMeasuredWidth();
         final int thumbHalfHeight = thumb == null ? 0 : thumb.getHeight() / 2;
-        final int left = thumb == null ? listWidth - trackWidth :
-            thumb.getLeft() + (thumb.getWidth() - trackWidth) / 2;
+        final int left = thumb.getLeft() + (thumb.getWidth() - trackWidth) / 2;
         final int right = left + trackWidth;
-        final int top = thumbHalfHeight;
-        final int bottom = list.getHeight() - thumbHalfHeight;
+        final int top = container.top + thumbHalfHeight;
+        final int bottom = container.bottom - thumbHalfHeight;
         track.layout(left, top, right, bottom);
     }
 
@@ -989,36 +1025,40 @@
      *            to place the thumb.
      */
     private void setThumbPos(float position) {
-        final int top = 0;
-        final int bottom = mList.getHeight();
+        final Rect container = mContainerRect;
+        final int top = container.top;
+        final int bottom = container.bottom;
 
-        final float thumbHalfHeight = mThumbImage.getHeight() / 2f;
-        final float min = top + thumbHalfHeight;
-        final float max = bottom - thumbHalfHeight;
+        final ImageView trackImage = mTrackImage;
+        final ImageView thumbImage = mThumbImage;
+        final float min = trackImage.getTop();
+        final float max = trackImage.getBottom();
         final float offset = min;
         final float range = max - min;
         final float thumbMiddle = position * range + offset;
-        mThumbImage.setTranslationY(thumbMiddle - thumbHalfHeight);
+        thumbImage.setTranslationY(thumbMiddle - thumbImage.getHeight() / 2);
 
         // Center the preview on the thumb, constrained to the list bounds.
-        final float previewHalfHeight = mPreviewImage.getHeight() / 2f;
+        final ImageView previewImage = mPreviewImage;
+        final float previewHalfHeight = previewImage.getHeight() / 2f;
         final float minP = top + previewHalfHeight;
         final float maxP = bottom - previewHalfHeight;
         final float previewMiddle = MathUtils.constrain(thumbMiddle, minP, maxP);
         final float previewTop = previewMiddle - previewHalfHeight;
+        previewImage.setTranslationY(previewTop);
 
-        mPreviewImage.setTranslationY(previewTop);
         mPrimaryText.setTranslationY(previewTop);
         mSecondaryText.setTranslationY(previewTop);
     }
 
     private float getPosFromMotionEvent(float y) {
-        final int top = 0;
-        final int bottom = mList.getHeight();
+        final Rect container = mContainerRect;
+        final int top = container.top;
+        final int bottom = container.bottom;
 
-        final float thumbHalfHeight = mThumbImage.getHeight() / 2f;
-        final float min = top + thumbHalfHeight;
-        final float max = bottom - thumbHalfHeight;
+        final ImageView trackImage = mTrackImage;
+        final float min = trackImage.getTop();
+        final float max = trackImage.getBottom();
         final float offset = min;
         final float range = max - min;
 
diff --git a/core/java/android/widget/FrameLayout.java b/core/java/android/widget/FrameLayout.java
index 691c941..d9d4ad7 100644
--- a/core/java/android/widget/FrameLayout.java
+++ b/core/java/android/widget/FrameLayout.java
@@ -656,5 +656,17 @@
         public LayoutParams(ViewGroup.MarginLayoutParams source) {
             super(source);
         }
+
+        /**
+         * Copy constructor. Clones the width, height, margin values, and
+         * gravity of the source.
+         *
+         * @param source The layout params to copy from.
+         */
+        public LayoutParams(LayoutParams source) {
+            super(source);
+
+            this.gravity = source.gravity;
+        }
     }
 }
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java
index b0ab70d..109fcfe 100644
--- a/core/java/android/widget/GridLayout.java
+++ b/core/java/android/widget/GridLayout.java
@@ -1961,12 +1961,16 @@
         }
 
         /**
-         * {@inheritDoc}
+         * Copy constructor. Clones the width, height, margin values, row spec,
+         * and column spec of the source.
+         *
+         * @param source The layout params to copy from.
          */
-        public LayoutParams(LayoutParams that) {
-            super(that);
-            this.rowSpec = that.rowSpec;
-            this.columnSpec = that.columnSpec;
+        public LayoutParams(LayoutParams source) {
+            super(source);
+
+            this.rowSpec = source.rowSpec;
+            this.columnSpec = source.columnSpec;
         }
 
         // AttributeSet constructors
diff --git a/core/java/android/widget/LinearLayout.java b/core/java/android/widget/LinearLayout.java
index bc57c36e..ad60a95 100644
--- a/core/java/android/widget/LinearLayout.java
+++ b/core/java/android/widget/LinearLayout.java
@@ -1871,10 +1871,23 @@
         /**
          * {@inheritDoc}
          */
-        public LayoutParams(MarginLayoutParams source) {
+        public LayoutParams(ViewGroup.MarginLayoutParams source) {
             super(source);
         }
 
+        /**
+         * Copy constructor. Clones the width, height, margin values, weight,
+         * and gravity of the source.
+         *
+         * @param source The layout params to copy from.
+         */
+        public LayoutParams(LayoutParams source) {
+            super(source);
+
+            this.weight = source.weight;
+            this.gravity = source.gravity;
+        }
+
         @Override
         public String debug(String output) {
             return output + "LinearLayout.LayoutParams={width=" + sizeToString(width) +
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index fd3dc03..f73e2c4 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -1321,6 +1321,24 @@
             super(source);
         }
 
+        /**
+         * Copy constructor. Clones the width, height, margin values, and rules
+         * of the source.
+         *
+         * @param source The layout params to copy from.
+         */
+        public LayoutParams(LayoutParams source) {
+            super(source);
+
+            this.mIsRtlCompatibilityMode = source.mIsRtlCompatibilityMode;
+            this.mRulesChanged = source.mRulesChanged;
+            this.alignWithParent = source.alignWithParent;
+
+            System.arraycopy(source.mRules, LEFT_OF, this.mRules, LEFT_OF, VERB_COUNT);
+            System.arraycopy(
+                    source.mInitialRules, LEFT_OF, this.mInitialRules, LEFT_OF, VERB_COUNT);
+        }
+
         @Override
         public String debug(String output) {
             return output + "ViewGroup.LayoutParams={ width=" + sizeToString(width) +
diff --git a/core/java/com/android/internal/app/IProcessStats.aidl b/core/java/com/android/internal/app/IProcessStats.aidl
new file mode 100644
index 0000000..e4c8bd2
--- /dev/null
+++ b/core/java/com/android/internal/app/IProcessStats.aidl
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.app;
+
+import android.content.ComponentName;
+import android.os.ParcelFileDescriptor;
+import com.android.internal.app.ProcessStats;
+
+interface IProcessStats {
+    byte[] getCurrentStats(out List<ParcelFileDescriptor> historic);
+}
diff --git a/core/java/com/android/internal/app/ProcessStats.aidl b/core/java/com/android/internal/app/ProcessStats.aidl
new file mode 100644
index 0000000..48b1f85
--- /dev/null
+++ b/core/java/com/android/internal/app/ProcessStats.aidl
@@ -0,0 +1,19 @@
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+
+package com.android.internal.app;
+
+parcelable ProcessStats;
diff --git a/core/java/com/android/internal/os/ProcessStats.java b/core/java/com/android/internal/os/ProcessCpuTracker.java
similarity index 98%
rename from core/java/com/android/internal/os/ProcessStats.java
rename to core/java/com/android/internal/os/ProcessCpuTracker.java
index 874bc0e..c092807 100644
--- a/core/java/com/android/internal/os/ProcessStats.java
+++ b/core/java/com/android/internal/os/ProcessCpuTracker.java
@@ -34,11 +34,11 @@
 import java.util.Comparator;
 import java.util.StringTokenizer;
 
-public class ProcessStats {
+public class ProcessCpuTracker {
     private static final String TAG = "ProcessStats";
     private static final boolean DEBUG = false;
     private static final boolean localLOGV = DEBUG || false;
-    
+
     private static final int[] PROCESS_STATS_FORMAT = new int[] {
         PROC_SPACE_TERM,
         PROC_SPACE_TERM|PROC_PARENS,
@@ -61,7 +61,7 @@
     static final int PROCESS_STAT_MAJOR_FAULTS = 1;
     static final int PROCESS_STAT_UTIME = 2;
     static final int PROCESS_STAT_STIME = 3;
-    
+
     /** Stores user time and system time in 100ths of a second. */
     private final long[] mProcessStatsData = new long[4];
     /** Stores user time and system time in 100ths of a second. */
@@ -123,14 +123,14 @@
     private final float[] mLoadAverageData = new float[3];
 
     private final boolean mIncludeThreads;
-    
+
     private float mLoad1 = 0;
     private float mLoad5 = 0;
     private float mLoad15 = 0;
-    
+
     private long mCurrentSampleTime;
     private long mLastSampleTime;
-    
+
     private long mCurrentSampleRealTime;
     private long mLastSampleRealTime;
 
@@ -149,7 +149,7 @@
 
     private int[] mCurPids;
     private int[] mCurThreadPids;
-    
+
     private final ArrayList<Stats> mProcStats = new ArrayList<Stats>();
     private final ArrayList<Stats> mWorkingProcs = new ArrayList<Stats>();
     private boolean mWorkingProcsSorted;
@@ -202,12 +202,12 @@
         public long base_majfaults;
         public int rel_minfaults;
         public int rel_majfaults;
-        
+
         public boolean active;
         public boolean working;
         public boolean added;
         public boolean removed;
-        
+
         Stats(int _pid, int parentPid, boolean includeThreads) {
             pid = _pid;
             if (parentPid < 0) {
@@ -256,30 +256,30 @@
     };
 
 
-    public ProcessStats(boolean includeThreads) {
+    public ProcessCpuTracker(boolean includeThreads) {
         mIncludeThreads = includeThreads;
     }
-    
+
     public void onLoadChanged(float load1, float load5, float load15) {
     }
-    
+
     public int onMeasureProcessName(String name) {
         return 0;
     }
-    
+
     public void init() {
         if (DEBUG) Slog.v(TAG, "Init: " + this);
         mFirst = true;
         update();
     }
-    
+
     public void update() {
         if (DEBUG) Slog.v(TAG, "Update: " + this);
         mLastSampleTime = mCurrentSampleTime;
         mCurrentSampleTime = SystemClock.uptimeMillis();
         mLastSampleRealTime = mCurrentSampleRealTime;
         mCurrentSampleRealTime = SystemClock.elapsedRealtime();
-        
+
         final long[] sysCpu = mSystemCpuData;
         if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT,
                 null, sysCpu, null)) {
@@ -339,11 +339,11 @@
 
         mWorkingProcsSorted = false;
         mFirst = false;
-    }    
-    
+    }
+
     private int[] collectStats(String statsFile, int parentPid, boolean first,
             int[] curPids, ArrayList<Stats> allProcs) {
-        
+
         int[] pids = Process.getPids(statsFile, curPids);
         int NP = (pids == null) ? 0 : pids.length;
         int NS = allProcs.size();
@@ -355,7 +355,7 @@
                 break;
             }
             Stats st = curStatsIndex < NS ? allProcs.get(curStatsIndex) : null;
-            
+
             if (st != null && st.pid == pid) {
                 // Update an existing process...
                 st.added = false;
@@ -373,7 +373,7 @@
                             PROCESS_STATS_FORMAT, null, procStats, null)) {
                         continue;
                     }
-                    
+
                     final long minfaults = procStats[PROCESS_STAT_MINOR_FAULTS];
                     final long majfaults = procStats[PROCESS_STAT_MAJOR_FAULTS];
                     final long utime = procStats[PROCESS_STAT_UTIME];
@@ -423,7 +423,7 @@
 
                 continue;
             }
-            
+
             if (st == null || st.pid > pid) {
                 // We have a new process!
                 st = new Stats(pid, parentPid, mIncludeThreads);
@@ -477,7 +477,7 @@
                 if (DEBUG) Slog.v("Load", "Stats added " + st.name + " pid=" + st.pid
                         + " utime=" + st.base_utime + " stime=" + st.base_stime
                         + " minfaults=" + st.base_minfaults + " majfaults=" + st.base_majfaults);
-                
+
                 st.rel_utime = 0;
                 st.rel_stime = 0;
                 st.rel_minfaults = 0;
@@ -488,7 +488,7 @@
                 }
                 continue;
             }
-                
+
             // This process has gone away!
             st.rel_utime = 0;
             st.rel_stime = 0;
@@ -520,7 +520,7 @@
             NS--;
             if (localLOGV) Slog.v(TAG, "Removed pid " + st.pid + ": " + st);
         }
-        
+
         return pids;
     }
 
@@ -607,27 +607,27 @@
     final public int getLastUserTime() {
         return mRelUserTime;
     }
-    
+
     final public int getLastSystemTime() {
         return mRelSystemTime;
     }
-    
+
     final public int getLastIoWaitTime() {
         return mRelIoWaitTime;
     }
-    
+
     final public int getLastIrqTime() {
         return mRelIrqTime;
     }
-    
+
     final public int getLastSoftIrqTime() {
         return mRelSoftIrqTime;
     }
-    
+
     final public int getLastIdleTime() {
         return mRelIdleTime;
     }
-    
+
     final public float getTotalCpuPercent() {
         int denom = mRelUserTime+mRelSystemTime+mRelIrqTime+mRelIdleTime;
         if (denom <= 0) {
@@ -635,7 +635,7 @@
         }
         return ((float)(mRelUserTime+mRelSystemTime+mRelIrqTime)*100) / denom;
     }
-    
+
     final void buildWorkingProcs() {
         if (!mWorkingProcsSorted) {
             mWorkingProcs.clear();
@@ -678,7 +678,7 @@
     final public Stats getWorkingStats(int index) {
         return mWorkingProcs.get(index);
     }
-    
+
     final public String printCurrentLoad() {
         StringWriter sw = new StringWriter();
         PrintWriter pw = new FastPrintWriter(sw, false, 128);
@@ -694,10 +694,10 @@
 
     final public String printCurrentState(long now) {
         buildWorkingProcs();
-        
+
         StringWriter sw = new StringWriter();
         PrintWriter pw = new FastPrintWriter(sw, false, 1024);
-        
+
         pw.print("CPU usage from ");
         if (now > mLastSampleTime) {
             pw.print(now-mLastSampleTime);
@@ -720,10 +720,10 @@
             pw.print("% awake");
         }
         pw.println(":");
-        
+
         final int totalTime = mRelUserTime + mRelSystemTime + mRelIoWaitTime
                 + mRelIrqTime + mRelSoftIrqTime + mRelIdleTime;
-        
+
         if (DEBUG) Slog.i(TAG, "totalTime " + totalTime + " over sample time "
                 + (mCurrentSampleTime-mLastSampleTime));
 
@@ -744,14 +744,14 @@
                 }
             }
         }
-        
+
         printProcessCPU(pw, "", -1, "TOTAL", totalTime, mRelUserTime, mRelSystemTime,
                 mRelIoWaitTime, mRelIrqTime, mRelSoftIrqTime, 0, 0);
 
         pw.flush();
         return sw.toString();
     }
-    
+
     private void printRatio(PrintWriter pw, long numerator, long denominator) {
         long thousands = (numerator*1000)/denominator;
         long hundreds = thousands/10;
@@ -812,7 +812,7 @@
         }
         pw.println();
     }
-    
+
     private String readFile(String file, char endChar) {
         // Permit disk reads here, as /proc/meminfo isn't really "on
         // disk" and should be fast.  TODO: make BlockGuard ignore
diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl
index 82b2654..ebd3e1c 100644
--- a/core/java/com/android/internal/view/IInputMethodManager.aidl
+++ b/core/java/com/android/internal/view/IInputMethodManager.aidl
@@ -28,11 +28,13 @@
 /**
  * Public interface to the global input method manager, used by all client
  * applications.
+ * You need to update BridgeIInputMethodManager.java as well when changing
+ * this file.
  */
 interface IInputMethodManager {
     List<InputMethodInfo> getInputMethodList();
     List<InputMethodInfo> getEnabledInputMethodList();
-    List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in InputMethodInfo imi,
+    List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in String imiId,
             boolean allowsImplicitlySelectedSubtypes);
     InputMethodSubtype getLastInputMethodSubtype();
     // TODO: We should change the return type from List to List<Parcelable>
diff --git a/core/jni/android/graphics/SurfaceTexture.cpp b/core/jni/android/graphics/SurfaceTexture.cpp
index 31b2cad..2c482ea 100644
--- a/core/jni/android/graphics/SurfaceTexture.cpp
+++ b/core/jni/android/graphics/SurfaceTexture.cpp
@@ -40,6 +40,7 @@
 
 struct fields_t {
     jfieldID  surfaceTexture;
+    jfieldID  bufferQueue;
     jfieldID  frameAvailableListener;
     jmethodID postEvent;
 };
@@ -61,6 +62,20 @@
     env->SetIntField(thiz, fields.surfaceTexture, (int)surfaceTexture.get());
 }
 
+static void SurfaceTexture_setBufferQueue(JNIEnv* env, jobject thiz,
+        const sp<BufferQueue>& bq)
+{
+    BufferQueue* const p =
+        (BufferQueue*)env->GetIntField(thiz, fields.bufferQueue);
+    if (bq.get()) {
+        bq->incStrong((void*)SurfaceTexture_setBufferQueue);
+    }
+    if (p) {
+        p->decStrong((void*)SurfaceTexture_setBufferQueue);
+    }
+    env->SetIntField(thiz, fields.bufferQueue, (int)bq.get());
+}
+
 static void SurfaceTexture_setFrameAvailableListener(JNIEnv* env,
         jobject thiz, sp<GLConsumer::FrameAvailableListener> listener)
 {
@@ -76,23 +91,22 @@
     env->SetIntField(thiz, fields.frameAvailableListener, (int)listener.get());
 }
 
-sp<GLConsumer> SurfaceTexture_getSurfaceTexture(JNIEnv* env,
-        jobject thiz)
-{
+sp<GLConsumer> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz) {
     return (GLConsumer*)env->GetIntField(thiz, fields.surfaceTexture);
 }
 
-sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(
-        JNIEnv* env, jobject thiz)
-{
+sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz) {
+    return (BufferQueue*)env->GetIntField(thiz, fields.bufferQueue);
+}
+
+sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz) {
     sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz));
-    sp<Surface> surfaceTextureClient(surfaceTexture != NULL ?
-            new Surface(surfaceTexture->getBufferQueue()) : NULL);
+    sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, thiz));
+    sp<Surface> surfaceTextureClient(surfaceTexture != NULL ? new Surface(producer) : NULL);
     return surfaceTextureClient;
 }
 
-bool android_SurfaceTexture_isInstanceOf(JNIEnv* env, jobject thiz)
-{
+bool android_SurfaceTexture_isInstanceOf(JNIEnv* env, jobject thiz) {
     jclass surfaceTextureClass = env->FindClass(kSurfaceTextureClassPathName);
     return env->IsInstanceOf(thiz, surfaceTextureClass);
 }
@@ -175,6 +189,12 @@
 
 // ----------------------------------------------------------------------------
 
+
+#define ANDROID_GRAPHICS_SURFACETEXTURE_JNI_ID "mSurfaceTexture"
+#define ANDROID_GRAPHICS_BUFFERQUEUE_JNI_ID "mBufferQueue"
+#define ANDROID_GRAPHICS_FRAMEAVAILABLELISTENER_JNI_ID \
+                                         "mFrameAvailableListener"
+
 static void SurfaceTexture_classInit(JNIEnv* env, jclass clazz)
 {
     fields.surfaceTexture = env->GetFieldID(clazz,
@@ -183,6 +203,12 @@
         ALOGE("can't find android/graphics/SurfaceTexture.%s",
                 ANDROID_GRAPHICS_SURFACETEXTURE_JNI_ID);
     }
+    fields.bufferQueue = env->GetFieldID(clazz,
+            ANDROID_GRAPHICS_BUFFERQUEUE_JNI_ID, "I");
+    if (fields.bufferQueue == NULL) {
+        ALOGE("can't find android/graphics/SurfaceTexture.%s",
+                ANDROID_GRAPHICS_BUFFERQUEUE_JNI_ID);
+    }
     fields.frameAvailableListener = env->GetFieldID(clazz,
             ANDROID_GRAPHICS_FRAMEAVAILABLELISTENER_JNI_ID, "I");
     if (fields.frameAvailableListener == NULL) {
@@ -214,6 +240,7 @@
         return;
     }
     SurfaceTexture_setSurfaceTexture(env, thiz, surfaceTexture);
+    SurfaceTexture_setBufferQueue(env, thiz, bq);
 
     jclass clazz = env->GetObjectClass(thiz);
     if (clazz == NULL) {
@@ -234,11 +261,11 @@
     surfaceTexture->setFrameAvailableListener(0);
     SurfaceTexture_setFrameAvailableListener(env, thiz, 0);
     SurfaceTexture_setSurfaceTexture(env, thiz, 0);
+    SurfaceTexture_setBufferQueue(env, thiz, 0);
 }
 
 static void SurfaceTexture_setDefaultBufferSize(
-        JNIEnv* env, jobject thiz, jint width, jint height)
-{
+        JNIEnv* env, jobject thiz, jint width, jint height) {
     sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz));
     surfaceTexture->setDefaultBufferSize(width, height);
 }
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index dec4cd4..0018dd2 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -565,14 +565,10 @@
     sp<Camera> camera = get_native_camera(env, thiz, NULL);
     if (camera == 0) return;
 
-    sp<BufferQueue> bufferQueue = NULL;
+    sp<IGraphicBufferProducer> producer = NULL;
     if (jSurfaceTexture != NULL) {
-        sp<GLConsumer> surfaceTexture =
-            SurfaceTexture_getSurfaceTexture(env, jSurfaceTexture);
-        if (surfaceTexture != NULL) {
-            bufferQueue = surfaceTexture->getBufferQueue();
-        }
-        else {
+        producer = SurfaceTexture_getProducer(env, jSurfaceTexture);
+        if (producer == NULL) {
             jniThrowException(env, "java/lang/IllegalArgumentException",
                     "SurfaceTexture already released in setPreviewTexture");
             return;
@@ -580,7 +576,7 @@
 
     }
 
-    if (camera->setPreviewTexture(bufferQueue) != NO_ERROR) {
+    if (camera->setPreviewTexture(producer) != NO_ERROR) {
         jniThrowException(env, "java/io/IOException",
                 "setPreviewTexture failed");
     }
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp
index 86b34f5c..0cd6f4a 100644
--- a/core/jni/android_media_AudioRecord.cpp
+++ b/core/jni/android_media_AudioRecord.cpp
@@ -234,7 +234,7 @@
         recorderCallback,// callback_t
         lpCallbackData,// void* user
         0,             // notificationFrames,
-        true,          // threadCanCallJava)
+        true,          // threadCanCallJava
         sessionId);
 
     if (lpRecorder->initCheck() != NO_ERROR) {
diff --git a/core/jni/android_opengl_EGL14.cpp b/core/jni/android_opengl_EGL14.cpp
index 48babb3..1fe4b08 100644
--- a/core/jni/android_opengl_EGL14.cpp
+++ b/core/jni/android_opengl_EGL14.cpp
@@ -604,7 +604,7 @@
     jint _remaining;
     EGLint *attrib_list = (EGLint *) 0;
     android::sp<ANativeWindow> window;
-    android::sp<android::GLConsumer> glConsumer;
+    android::sp<android::IGraphicBufferProducer> producer;
 
     if (!attrib_list_ref) {
         _exception = 1;
@@ -625,12 +625,12 @@
         _exceptionMessage = "Make sure the SurfaceView or associated SurfaceHolder has a valid Surface";
         goto exit;
     }
-    glConsumer = android::SurfaceTexture_getSurfaceTexture(_env, win);
+    producer = android::SurfaceTexture_getProducer(_env, win);
 
-    if (glConsumer == NULL)
+    if (producer == NULL)
         goto not_valid_surface;
 
-    window = new android::Surface(glConsumer->getBufferQueue());
+    window = new android::Surface(producer);
 
     if (window == NULL)
         goto not_valid_surface;
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index 1007e7d..304514b 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -135,15 +135,14 @@
 
 static jint nativeCreateFromSurfaceTexture(JNIEnv* env, jclass clazz,
         jobject surfaceTextureObj) {
-    sp<GLConsumer> st(SurfaceTexture_getSurfaceTexture(env, surfaceTextureObj));
-    if (st == NULL) {
+    sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, surfaceTextureObj));
+    if (producer == NULL) {
         jniThrowException(env, "java/lang/IllegalArgumentException",
                 "SurfaceTexture has already been released");
         return 0;
     }
 
-    sp<IGraphicBufferProducer> bq = st->getBufferQueue();
-    sp<Surface> surface(new Surface(bq, true));
+    sp<Surface> surface(new Surface(producer, true));
     if (surface == NULL) {
         jniThrowException(env, OutOfResourcesException, NULL);
         return 0;
diff --git a/core/jni/android_view_TextureView.cpp b/core/jni/android_view_TextureView.cpp
index d515696..0f429005 100644
--- a/core/jni/android_view_TextureView.cpp
+++ b/core/jni/android_view_TextureView.cpp
@@ -69,13 +69,6 @@
 // Native layer
 // ----------------------------------------------------------------------------
 
-static void android_view_TextureView_setDefaultBufferSize(JNIEnv* env, jobject,
-    jobject surface, jint width, jint height) {
-
-    sp<GLConsumer> glConsumer(SurfaceTexture_getSurfaceTexture(env, surface));
-    glConsumer->setDefaultBufferSize(width, height);
-}
-
 static inline SkBitmap::Config convertPixelFormat(int32_t format) {
     switch (format) {
         case WINDOW_FORMAT_RGBA_8888:
@@ -106,8 +99,8 @@
 static void android_view_TextureView_createNativeWindow(JNIEnv* env, jobject textureView,
         jobject surface) {
 
-    sp<GLConsumer> glConsumer(SurfaceTexture_getSurfaceTexture(env, surface));
-    sp<ANativeWindow> window = new Surface(glConsumer->getBufferQueue());
+    sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(env, surface));
+    sp<ANativeWindow> window = new Surface(producer, true);
 
     window->incStrong((void*)android_view_TextureView_createNativeWindow);
     SET_INT(textureView, gTextureViewClassInfo.nativeWindow, jint(window.get()));
@@ -208,9 +201,6 @@
 const char* const kClassPathName = "android/view/TextureView";
 
 static JNINativeMethod gMethods[] = {
-    {   "nSetDefaultBufferSize", "(Landroid/graphics/SurfaceTexture;II)V",
-            (void*) android_view_TextureView_setDefaultBufferSize },
-
     {   "nCreateNativeWindow", "(Landroid/graphics/SurfaceTexture;)V",
             (void*) android_view_TextureView_createNativeWindow },
     {   "nDestroyNativeWindow", "()V",
diff --git a/core/jni/com_google_android_gles_jni_EGLImpl.cpp b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
index b0c73a2..a3ce2a5 100644
--- a/core/jni/com_google_android_gles_jni_EGLImpl.cpp
+++ b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
@@ -352,9 +352,8 @@
         return 0;
     }
     
-    sp<GLConsumer> glConsumer(SurfaceTexture_getSurfaceTexture(_env, native_window));
-
-    window = new Surface(glConsumer->getBufferQueue());
+    sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(_env, native_window));
+    window = new Surface(producer);
     if (window == NULL)
         goto not_valid_surface;
 
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index a9a14ad..d106cf2 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -201,6 +201,7 @@
     <protected-broadcast android:name="android.net.wifi.p2p.PERSISTENT_GROUPS_CHANGED" />
     <protected-broadcast android:name="android.net.conn.TETHER_STATE_CHANGED" />
     <protected-broadcast android:name="android.net.conn.INET_CONDITION_ACTION" />
+    <protected-broadcast android:name="android.net.conn.NETWORK_CONDITIONS_MEASURED" />
     <protected-broadcast android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" />
     <protected-broadcast android:name="android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE" />
     <protected-broadcast android:name="android.intent.action.AIRPLANE_MODE" />
@@ -2399,6 +2400,13 @@
         android:description="@string/permdesc_invokeCarrierSetup"
         android:protectionLevel="signature|system" />
 
+    <!-- Allows an application to listen for network condition observations.
+         @hide This is not a third-party API (intended for system apps). -->
+    <permission android:name="android.permission.ACCESS_NETWORK_CONDITIONS"
+        android:label="@string/permlab_accessNetworkConditions"
+        android:description="@string/permdesc_accessNetworkConditions"
+        android:protectionLevel="signature|system" />
+
     <!-- The system process is explicitly the only one allowed to launch the
          confirmation UI for full backup/restore -->
     <uses-permission android:name="android.permission.CONFIRM_FULL_BACKUP"/>
diff --git a/core/res/res/layout/preference_list_content.xml b/core/res/res/layout/preference_list_content.xml
index 5812053..02cd8cd 100644
--- a/core/res/res/layout/preference_list_content.xml
+++ b/core/res/res/layout/preference_list_content.xml
@@ -30,24 +30,19 @@
         android:layout_weight="1">
 
         <LinearLayout
+            style="?attr/preferenceHeaderPanelStyle"
             android:id="@+id/headers"
             android:orientation="vertical"
             android:layout_width="0px"
             android:layout_height="match_parent"
-            android:layout_marginEnd="@dimen/preference_screen_side_margin_negative"
-            android:layout_marginStart="@dimen/preference_screen_side_margin"
             android:layout_weight="@integer/preferences_left_pane_weight">
 
             <ListView android:id="@android:id/list"
+                style="?attr/preferenceListStyle"
                 android:layout_width="match_parent"
                 android:layout_height="0px"
                 android:layout_weight="1"
-                android:paddingStart="@dimen/preference_screen_header_padding_side"
-                android:paddingEnd="@dimen/preference_screen_header_padding_side"
-                android:paddingTop="@dimen/preference_screen_header_vertical_padding"
-                android:paddingBottom="@dimen/preference_screen_header_vertical_padding"
                 android:clipToPadding="false"
-                android:scrollbarStyle="@integer/preference_screen_header_scrollbarStyle"
                 android:drawSelectorOnTop="false"
                 android:cacheColorHint="@android:color/transparent"
                 android:listPreferredItemHeight="48dp"
diff --git a/core/res/res/layout/preference_list_fragment.xml b/core/res/res/layout/preference_list_fragment.xml
index abfb1f2..4e895b0 100644
--- a/core/res/res/layout/preference_list_fragment.xml
+++ b/core/res/res/layout/preference_list_fragment.xml
@@ -25,13 +25,12 @@
     android:layout_removeBorders="true">
 
     <ListView android:id="@android:id/list"
+        style="?attr/preferenceFragmentListStyle"
         android:layout_width="match_parent"
         android:layout_height="0px"
         android:layout_weight="1"
         android:paddingTop="0dip"
         android:paddingBottom="@dimen/preference_fragment_padding_bottom"
-        android:paddingStart="@dimen/preference_fragment_padding_side"
-        android:paddingEnd="@dimen/preference_fragment_padding_side"
         android:scrollbarStyle="@integer/preference_fragment_scrollbarStyle"
         android:clipToPadding="false"
         android:drawSelectorOnTop="false"
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 980ae05..06d6895 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Laat die houer toe om aan die top-koppelvlak van \'n drukdiens te verbind. Behoort nooit vir gewone programme nodig te wees nie."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"kry toegang tot alle druktake"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Gee die houer toegang tot druktake wat deur \'n ander program geskep is. Behoort nooit vir normale programme nodig te wees nie."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"bind aan NFC-diens"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Laat die houer toe om die programme wat NFC-kaarte nastrewe, te bind. Behoort nooit vir normale programme nodig te wees nie."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"bind aan \'n teksdiens"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Dit laat die houer toe om aan die topvlak-koppelvlak van \'n teksdiens (bv SpellCheckerService) te bind. Dit moet nooit vir normale programme nodig wees nie."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"bind aan \'n VPN-diens"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Laat die program toe om InputFlinger se laevlak-kenmerke te gebruik."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"stel Wi-Fi-skerms op"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Laat die program toe om Wi-Fi-skerms op te stel en daaraan te koppel."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"beheer Wi-Fi-skerms"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Laat die program toe om laevlak-kenmerke van Wi-Fi-skerms te beheer."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 0683c06..d554d54 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"መተግበሪያው ባለአነስተኛ የInputFlinger ባህሪያት እንዲጠቀም ይፈቅድለታል።"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"የWifi ማሳያዎችን አዋቅር"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"መተግበሪያው የWifi ማሳያዎችን እንዲያዋቅርና ከእነሱ ጋር እንዲገናኝ ይፈቅድለታል።"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"የWifi ማሳያዎችን ተቆጣጠር"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"መተግበሪያው በዝቅተኛ ደረጃ ላይ ያሉ የWifi ማሳያዎችን እንዲቆጣጠር ይፈቅድለታል።"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 79d15f7..60dc57e 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"للسماح للتطبيق باستخدام ميزات InputFlinger ذات المستوى المنخفض."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"تهيئة شاشات Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"للسماح للتطبيق بتهيئة شاشات Wi-Fi والاتصال بها."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"التحكم في شاشات Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"للسماح للتطبيق بالتحكم في الميزات ذات المستوى المنخفض في شاشات Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 99dfcbf..86bb766 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -484,6 +484,8 @@
     <skip />
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"налада дысплеяў Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Дазволiць прыкладанню наладжвацца i падключацца да дысплеяў Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"кіраванне дысплеямi Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Прыкладанне зможа кіраваць нізкім узроўнем функцый дысплеяў Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index c4f08b5..1452ecf 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Разрешава на притежателя да се обвърже с интерфейса от най-високото ниво на услуга за отпечатване. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"достъп до всички задания за отпечатване"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Разрешава на притежателя да осъществява достъп до създадените от друго приложение задания за отпечатване. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"обвързване с услуга за КБП"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Разрешава на притежателя да се обвързва с приложения, които емулират карти за КБП. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"обвързване с текстова услуга"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Разрешава на притежателя да се обвърже с интерфейса от най-високото ниво на текстова услуга (напр. SpellCheckerService). Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"обвързване с услуга за VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Разрешава на приложението да използва функциите на InputFlinger от ниско ниво."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"конфигуриране на дисплеите през WiFi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Разрешава на приложението да конфигурира и да се свързва с дисплеите през WiFi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"контролиране на дисплеите през WiFi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Разрешава на приложението да контролира функциите от ниско ниво на дисплеите през WiFi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index f0878d9..96a35d0 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permet que l\'aplicació utilitzi funcions InputFlinger de baix nivell."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configuració de les pantalles Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permet a l\'aplicació configurar-se i connectar-se a les pantalles Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"control de les pantalles Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permet a l\'aplicació controlar les funcions de baix nivell de les pantalles Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 86420cd..e9d65f80 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Umožňuje aplikaci používat nízkoúrovňové funkce InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurovat displeje přes Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Povoluje aplikaci připojit a konfigurovat displeje přes Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"ovládat displeje přes Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Povoluje aplikaci ovládat základní funkce displejů přes Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1481,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Obrazovka HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Překryvná vrstva č. <xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Bezdrátový displej je připojen"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Tato obrazovka se zobrazuje v jiném zařízení"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Odpojit"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 8566763..c97c7e7 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Giver appen tilladelse til at bruge SurfaceFlinger-funktioner på lavt niveau."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurer Wi-Fi-skærme"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Tillader, at appen konfigurerer og opretter forbindelse til Wi-Fi-skærme."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"kontrollér Wi-Fi-skærme"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Tillader, at appen kontrollerer Wi-Fi-skærmfunktioner på lavt niveau."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 85f252a..b26f65b 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Ermöglicht dem Inhaber, sich an die Oberfläche eines Druckdienstes auf oberster Ebene zu binden. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"Auf alle Druckaufträge zugreifen"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Ermöglicht dem Inhaber den Zugriff auf von einer anderen App erstellte Druckaufträge. Sollte für normale Apps nie benötigt werden."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"An NFC-Dienst binden"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Ermöglicht dem Inhaber die Bindung an Apps, die NFC-Karten emulieren. Dies sollte für normale Apps niemals notwendig sein."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"An einen Textdienst binden"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Ermöglicht dem Halter, sich an die Oberfläche eines Textdienstes auf oberster Ebene zu binden, z. B. eines Rechtschreibprüfungsdienstes. Sollte nie für normale Apps benötigt werden."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"An einen VPN-Dienst binden"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Ermöglicht der App, die systemnahen InputFlinger-Funktionen zu verwenden"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"WLAN-Anzeigen konfigurieren"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Erlaubt der App, WLAN-Anzeigen zu konfigurieren und eine Verbindung zu diesen herzustellen"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"WLAN-Anzeigen steuern"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Erlaubt der App, untergeordnete Funktionen von WLAN-Anzeigen zu steuern"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index b0c338b..571f155 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Επιτρέπει σε μια εφαρμογή να χρησιμοποιεί λειτουργίες InputFlinger χαμηλού επιπέδου."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"διαμόρφωση οθονών Wifi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Επιτρέπει τη διαμόρφωση της εφαρμογής και τη σύνδεσης σε οθόνες Wifi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"έλεγχος οθονών Wifi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Επιτρέπει στην εφαρμογή τον έλεγχο των λειτουργιών χαμηλού επιπέδου των οθονών Wifi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 68ef4b1..3a08f98 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Allows the app to use InputFlinger low-level features."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configure Wi-Fi displays"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Allows the app to configure and connect to Wi-Fi displays."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"control Wi-Fi displays"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Allows the app to control low-level features of Wi-Fi displays."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 16c16bd..959729b 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Permite al propietario vincularse a la interfaz de nivel superior de un servicio de impresión. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"acceder a todos los trabajos de impresión"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Permite al propietario acceder a trabajos de impresión creados con otra aplicación. Las aplicaciones normales no deberían necesitar este permiso."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"Vincular con servicio NFC"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Permite vincular con aplicaciones que emulen tarjetas NFC. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"vincular a un servicio de texto"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Permite al titular vincularse a la interfaz de nivel superior de un servicio de texto (p. ej., SpellCheckerService). Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"vincular con un servicio de VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permite que la aplicación utilice funciones de InputFlinger de bajo nivel."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurar pantallas Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permite que la aplicación configure y se conecte a pantallas Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controlar pantallas Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permite que la aplicación controle funciones de bajo nivel de las pantallas Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Pantalla HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Superposición #<xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> ppp"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", segura"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Se conectó la pantalla inalámbrica"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Esta pantalla se muestra en otro dispositivo."</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Desconectar"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index f64c0a0..c12cb76 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permite que la aplicación utilice funciones de bajo nivel de SurfaceFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurar pantallas Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permite que la aplicación configure pantallas Wi-Fi y se conecte a ellas."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controlar pantallas Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permite que la aplicación controle funciones de bajo nivel de pantallas Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 71832c8..82243c1 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -363,7 +363,7 @@
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"juurdepääs kõikidele printimistöödele"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Lubab omanikule juurdepääsu teise rakenduse loodud printimistöödele. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
     <string name="permlab_bindNfcService" msgid="2752731300419410724">"NFC-teenusega sidumine"</string>
-    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Lubab kasutajal luua seosed rakendustega, mis jäljendavad NFC-kaarte. Pole kunagi vajalik tavaliste rakenduste korral."</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Lubab õiguste omajal luua seosed rakendustega, mis emuleerivad NFC-kaarte. Pole kunagi vajalik tavaliste rakenduste korral."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"tekstiteenusega sidumine"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Võimaldab omanikul siduda tekstiteenuse (nt SpellCheckerService) ülataseme liidesega. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"seo VPN-teenusega"</string>
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Lubab rakendusel kasutada InputFlingeri madalatasemelisi funktsioone."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"WiFi-ekraanide seadistamine"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Lubab rakendusel seadistada WiFi-ekraane ja nendega ühendus luua."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"WiFi-ekraanide juhtimine"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Lubab rakendusel juhtida WiFi-ekraanide madala taseme funktsioone."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 9c863cf..3216d99 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"به برنامه اجازه می‌دهد که به رابط سطح بالای سرویس چاپ متصل شود. هرگز برای برنامه‌های معمولی مورد نیاز نیست."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"دسترسی به تمام کارهای چاپ"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"به دارنده اجازه دسترسی به کارهای چاپی ایجاد شده توسط برنامه‌ای دیگر را می‌دهد.هرگز برای برنامه‌های معمولی مورد نیاز نیست."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"اتصال به سرویس NFC"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"به دارنده اجازه می‌دهد به برنامه‌هایی متصل شود که مشابه با کارت‌های NFC عمل می‌کنند. هرگز نباید برای برنامه‌های عادی مورد نیاز باشد."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"اتصال به یک سرویس متنی"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"به دارنده اجازه می‌دهد خود را به یک رابط سطح بالای خدمات متنی مرتبط کند (برای مثال SpellCheckerService). هرگز برای برنامه‌های عادی لازم نیست."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"اتصال به یک سرویس VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"اجازه می‎دهد برنامه از قابلیت‌های سطح پایین InputFlinger استفاده کند."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"پیکربندی صفحه نمایش‌های Wi‑Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"به برنامه اجازه می‌دهد تا اتصال به صفحات نمایش Wi‑Fi را پیکربندی کند."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"کنترل صفحه نمایش‌های Wi‑Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"به برنامه اجازه می‌دهد که ویژگی‌های سطح پایین صفحه‌های نمایش Wi‑Fi را کنترل کند."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"صفحه HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"همپوشانی #<xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">"، امن"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"نمایشگر بی‌سیم متصل است"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"این صفحه در حال نمایش در دستگاه دیگری است"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"قطع اتصال"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index d431fcc..86a793f 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Antaa sovelluksen käyttää InputFlingerin matalan tason ominaisuuksia."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"määritä wifi-näyttöjen asetukset"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Antaa sovelluksen määrittää wifi-näyttöjä ja muodostaa yhteyden niihin."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"hallitse wifi-näyttöjä"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Antaa sovelluksen hallita wifi-näyttöjen matalan tason ominaisuuksia."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 7409912..f71be94 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permet à l\'application d\'utiliser les fonctionnalités de base d\'InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurer les écrans Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permet à l\'application de configurer des écrans Wi-Fi et de s\'y connecter."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"contrôler les écrans Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permet à l\'application de contrôler les fonctionnalités de base des écrans Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 9f95156..31f4cb6 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"एप्‍लिकेशन को InputFlinger निम्‍न-स्‍तर सुविधाओं का उपयोग करने देता है."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wifi डिस्प्ले को कॉन्फ़िगर करें"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"एप्लिकेशन को कॉन्फ़िगर करने देता है और Wifi डिस्प्ले से कनेक्ट करता है."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wifi डिस्प्ले को नियंत्रित करें"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"एप्लिकेशन को Wifi डिस्प्ले की निम्न-स्तर की सुविधाएं नियंत्रित करने देता है."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index ca467ec..88e6a91 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Dopušta aplikaciji upotrebu značajki niske razine InputFlingera."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfiguriraj Wifi zaslone"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Omogućuje aplikaciji konfiguriranje i povezivanje s Wi-Fi zaslonima."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"upravljaj Wifi zaslonima"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Omogućuje aplikaciji upravljanje značajkama Wi-Fi zaslona niske razine."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index ac90a93..ee458b8 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Lehetővé teszi az alkalmazás számára az InputFlinger alacsony szintű funkciók használatát."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wi-Fi kijelzők konfigurálása"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Lehetővé teszi, hogy az alkalmazás Wi-Fi kijelzőket konfiguráljon, és csatlakozzon hozzájuk."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wi-Fi kijelzők irányítása"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Lehetővé teszi, hogy az alkalmazás irányítsa a Wi-Fi kijelzők alacsonyabb szintű funkcióit."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index c197e3b..bc8517c 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Memungkinkan aplikasi menggunakan fitur tingkat rendah InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"mengonfigurasi tampilan Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Izinkan aplikasi mengonfigurasi dan terhubung ke tampilan Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"mengontrol tampilan Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Izinkan aplikasi mengontrol fitur tingkat rendah dari tampilan Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 7846956..60f40ae 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Consente all\'applicazione di utilizzare funzioni di basso livello InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurazione di schermi Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Consente all\'applicazione di configurare schermi Wi-Fi e di collegarsi a essi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controllo di schermi Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Consente all\'applicazione di controllare le funzioni di basso livello di schermi Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index c50cc14..2c84060 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"מאפשרת לאפליקציה להשתמש בתכונות ברמה נמוכה של InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"הגדר תצוגות Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"מאפשר לאפליקציה להגדיר ולהתחבר לתצוגות Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"שלוט בתצוגות Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"מאפשר לאפליקציה לשלוט בתכונות ברמה נמוכה של תצוגות Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index ba810bf..d94a978 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"InputFlingerの低レベルの機能を使用することをアプリに許可します。"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wi-Fiディスプレイの設定"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Wi-Fiディスプレイを設定して接続することをアプリに許可します。"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wi-Fiディスプレイの制御"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Wi-Fiディスプレイの低レベル機能を制御することをアプリに許可します。"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 5207c6a..3d46bb6 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"앱이 InputFlinger의 하위 수준 기능을 사용하도록 합니다."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wi-Fi 디스플레이 설정"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"앱이 Wi-Fi 디스플레이를 설정하고 연결하도록 허용합니다."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wi-Fi 디스플레이 제어"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"앱이 Wi-Fi 디스플레이의 하위 수준 기능을 제어하도록 허용합니다."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1481,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI 화면"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"<xliff:g id="ID">%1$d</xliff:g>번째 오버레이"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", 보안"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"무선 디스플레이가 연결되었습니다."</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"이 화면은 다른 기기에서 표시되고 있습니다."</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"연결 해제"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index c57832e..b802504 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Programai leidžiama naudoti „InputFlinger“ žemo lygio funkcijas."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigūruoti „Wi-Fi“ pateiktis"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Leidžiama programai konfigūruoti ir prisijungti prie „Wi-Fi“ pateikčių."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"valdyti „Wi-Fi“ pateiktis"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Leidžiama programai valdyti „Wi-Fi“ pateikčių žemo lygio funkcijas."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index ee63fa8..479a887 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Ļauj lietotnei izmantot InputFlinger zema līmeņa funkcijas."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wi-Fi displeju konfigurēšana"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Ļauj lietotnei konfigurēt Wi-Fi displejus un veidot savienojumu ar tiem."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wi-Fi displeju vadība"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Ļauj lietotnei kontrolēt zema līmeņa funkcijas Wi-Fi displejos."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index a9fe930..07aec80 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Membenarkan pemegang terikat dengan antara muka peringkat tertinggi bagi perkhidmatan cetakan. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"akses semua kerja cetakan"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Membenarkan pemegang mengakses kerja cetakan yang dibuat oleh apl lain. Tidak sekali-kali diperlukan untuk apl biasa."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"terikat kepada perkhidmatan NFC"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Membenarkan pemegang untuk terikat kepada aplikasi yang mengikuti kad NFC. Tidak sekali-kali harus diperlukan untuk apl normal."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"terikat kepada perkhidmatan teks"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Membenarkan pemegang mengikat kepada antara muka peringkat atasan perkhidmatan teks(mis. PerkhidmatanPenyemakEjaan). Tidak seharusnya diperlukan untuk apl biasa."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"terikat kepada perkhidmatan VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Membenarkan apl menggunakan ciri peringkat rendah InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurasikan paparan Wifi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Membenarkan apl mengkonfigurasi dan menyambung ke paparan Wifi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"kawal paparan Wifi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Membenarkan apl mengawal ciri tahap rendah paparan Wifi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Skrin HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Tindih #<xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", selamat"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Paparan wayarles disambungkan"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Skrin ini ditunjukkan pada peranti lain"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Putus sambungan"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 822c160..20c4778 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Lar appen bruke grunnleggende InputFlinger-funksjoner."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurere Wi-Fi-skjermer"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Tillater appen å konfigurere og koble til Wi-Fi-skjermer."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"kontrollere Wi-Fi-skjermer"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Tillater appen å kontrollere lavnivåfunksjoner i Wi-Fi-skjermer."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 5c2b315..8399369 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Hiermee kan de app InputFlinger-functies op laag niveau gebruiken."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"wifi-displays configureren"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"De app toestaan wifi-displays te configureren en hiermee verbinding te maken."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"wifi-displays beheren"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"De app toestaan minder belangrijke functies van wifi-displays te beheren."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index cbcb059..21e3228 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Zezwala aplikacji na wykorzystanie niskopoziomowych funkcji usługi InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurowanie wyświetlaczy Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Zezwala aplikacji na konfigurację wyświetlaczy Wi-Fi i łączenie z nimi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"zarządzanie wyświetlaczami Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Zezwala aplikacji na zarządzanie niskopoziomowymi funkcjami wyświetlaczy Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 4063ebf..021ebac 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permite que a aplicação utilize funcionalidades de InputFlinger de nível inferior."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurar visores Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permite que a aplicação se configure e se ligue a visores Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controlar visores Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permite que a aplicação controle funcionalidades de baixo nível em visores Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index a228799..9f206a6 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Permite que o proprietário use a interface de nível superior de um serviço de impressão. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"acessar todos os trabalhos de impressão"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Permite que o proprietário acesse trabalhos de impressão criados por outro aplicativo. Não deve ser necessário para aplicativos comuns."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"associar ao serviço NFC"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Permite ao proprietário associar a aplicativos que emulam cartões NFC. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"sujeitar-se a um serviço de texto"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Permite que o proprietário utilize interface de nível superior de um serviço de texto (por exemplo, SpellCheckerService). Nunca deve ser necessário para aplicativos normais."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"se ligam a um serviço de VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permite que o aplicativo use recursos com baixos níveis de InputFinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurar monitores Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permite que o aplicativo configure e conecte a monitores Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controlar monitores Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permite que o aplicativo controle recursos de baixo nível de monitores Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index c3eb2e7..e6d9783 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -773,6 +773,10 @@
     <skip />
     <!-- no translation found for permdesc_configureWifiDisplay (7916815158690218065) -->
     <skip />
+    <!-- no translation found for permlab_controlWifiDisplay (393641276723695496) -->
+    <skip />
+    <!-- no translation found for permdesc_controlWifiDisplay (4543912292681826986) -->
+    <skip />
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 6855a06..539762a 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Permite aplicației să utilizeze funcțiile de nivel redus InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"configurează afişaje Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Permite aplicaţiei să configureze şi să se conecteze la afişaje Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"controlează afişaje Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Permite aplicaţiei să controleze funcţiile de nivel redus ale afişajelor Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index a5e316a..361e9a4 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Приложение сможет использовать низкоуровневые функции InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"настраивать экраны, подключенные через Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Приложение сможет подключаться к экранам с помощью Wi-Fi и настраивать их."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Управление мониторами, подключенными через Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Приложение сможет управлять низкоуровневыми функциями экранов, подключенных через Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index f4e2157..de6785c 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Umožňuje aplikácii používať funkcie nízkej úrovne aplikácie InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurovať displeje cez sieť Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Umožňuje aplikácii konfigurovať displeje a pripojiť sa k nim cez siete Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"ovládať displeje cez sieť Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Umožňuje aplikácii ovládať základné funkcie displejov cez siete Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1477,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Obrazovka HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Prekrytie č. <xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", zabezpečené"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Bezdrôtový displej je pripojený"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Táto obrazovka sa zobrazuje na inom zariadení"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Odpojiť"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index c90392d..a14a080 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Aplikaciji dovoljuje uporabo funkcij InputFlinger nizke ravni."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfiguriranje zaslonov Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Omogoča aplikaciji konfiguriranje zaslonov Wi-Fi in povezovanje z njimi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"nadzor zaslonov Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Omogoča aplikaciji nadzor osnovnih funkcij zaslonov Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index a33e129..1f253cf 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Дозвољава апликацији да користи InputFlinger функције ниског нивоа."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"конфигурисање Wi-Fi екрана"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Дозвољава апликацији да конфигурише Wi-Fi екране и повезује се са њима."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"контрола Wi-Fi екрана"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Дозвољава апликацији да контролише функције Wi-Fi екрана ниског нивоа."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index aaa6b36..63ddfea 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Tillåter att appen använder lågnivåfunktioner i InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"konfigurerar Wi-Fi-skärmar"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Tillåter att appen konfigurerar och ansluter till Wi-Fi-skärmar."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"kontrollerar Wi-Fi-skärmar"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Tillåter att appen kontrollerar grundläggande funktioner för Wi-Fi-skärmar."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1477,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI-skärm"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Överlagring #<xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g> x <xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", säker"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Trådlös anslutning till skärm"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Den här skärmen visas på en annan enhet"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Koppla från"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 22c610d..0c36baf 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Inaruhusu kishikiliaji kujifungilia kiolesura cha kiwango cha juu cha huduma ya kuchapisha. Haipaswi kuhitajika kwa programu za kawaida."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"fikia kazi zote za kuchapisha"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Huruhusu mmiliki kufikia kazi za kuchapisha zilizoundwa na programu nyingine. Haipaswi kuhitajika kwa programu za kawaida kamwe."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"funga kwa huduma ya NFC"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Huruhusu mmiliki kufunga kwa programu zinazoiga kadi za NFC. Haipaswi kuhitaji kamwe kwa programu za kawaida."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"Imefungwa kwa huduma ya maandishi"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Inaruhusu kishikiliaji kushurutisha kusano ya kiwango cha juu ya huduma ya matini(k.m.SpellCheckerService). Haipaswi kuhitajika kwa programu za kawaida."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"funga kwa huduma ya VPN"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Inaruhusu programu kutumia vipengele vya chini vya InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"sanidi maonyesho ya Wifi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Inaruhusu programu kusanidi na kuunganika kwenye maonyesho ya Wifi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"dhibiti maonyesho ya Wifi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Inaruhusu programu kudhibiti vipengele vya kiwango cha chini vya maonyesho ya Wifi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"Skrini ya HDMI"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Uwekeleaji #<xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", salama"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Onyesho pasiwaya limeunganishwa"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Skrini hii inaonyesha kwenye kifaa kingine"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Tenganisha"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 8f93804..d4b08c8 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"อนุญาตให้แอปใช้คุณลักษณะระดับต่ำของ InputFlinger"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"กำหนดค่าการแสดงผลด้วย WiFi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"อนุญาตให้แอปกำหนดค่าและเชื่อมต่อกับจอแสดงผล WiFi ได้"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"ควบคุมการแสดงผลด้วย WiFi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"อนุญาตให้แอปควบคุมคุณลักษณะต่างๆ ในระดับล่างของการแสดงผลด้วย WiFi"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index d5af6a7..7f33245 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Nagbibigay-daan sa app na gumamit ng mga tampok ng InputFlinger sa mababang antas."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"mag-configure ng mga Wifi display"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Pinapayagan ang app na mag-configure at kumonekta sa mga Wifi display."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"magkontrol ng mga Wifi display"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Pinapayagan ang app na magkontrol ng mga tampok sa mababang antas ng mga dispay ng Wifi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index bf002e6..d682d37 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -362,10 +362,8 @@
     <string name="permdesc_bindPrintService" msgid="7960067623209111135">"İzin sahibine, bir yazdırma hizmetinin en üst düzey arayüzüne bağlanma izni verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
     <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"tüm yazdırma işlerine eriş"</string>
     <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"İzin sahibine, başka uygulama tarafından oluşturulan yazdırma işlerine erişim izni verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
-    <!-- no translation found for permlab_bindNfcService (2752731300419410724) -->
-    <skip />
-    <!-- no translation found for permdesc_bindNfcService (6120647629174066862) -->
-    <skip />
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"NFC hizmetine bağla"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"İzin sahibine, NFC kartlara öykünen uygulamalara bağlama izni verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="permlab_bindTextService" msgid="7358378401915287938">"kısa mesaj hizmetine bağla"</string>
     <string name="permdesc_bindTextService" msgid="8151968910973998670">"Cihazın sahibine, bir metin hizmetinin (ör. SpellCheckerService) en üst düzey arayüzüne bağlanma izni verir. Normal uygulamalarda hiçbir zaman gerekmez."</string>
     <string name="permlab_bindVpnService" msgid="4708596021161473255">"VPN hizmetine bağlan"</string>
@@ -474,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Uygulamaya, alt düzey InputFlinger özelliklerini kullanma izni verir."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Kablosuz ekranları yapılandır"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Uygulamaya kablosuz ekranları yapılandırma ve bunlara bağlanma izni verir."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Kablosuz ekranları denetle"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Uygulamaya kablosuz ekranların alt düzey özelliklerini kontrol etme izni verir."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
@@ -1479,8 +1479,7 @@
     <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI Ekran"</string>
     <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Yer Paylaşımı No. <xliff:g id="ID">%1$d</xliff:g>"</string>
     <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
-    <!-- no translation found for display_manager_overlay_display_secure_suffix (6022119702628572080) -->
-    <skip />
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", güvenli"</string>
     <string name="wifi_display_notification_title" msgid="2223050649240326557">"Kablosuz ekrana bağlandı"</string>
     <string name="wifi_display_notification_message" msgid="4498802012464170685">"Bu ekran başka bir cihazda gösteriliyor"</string>
     <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Bağlantıyı kes"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 751de53..b41171b 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Дозволяє програмі використовувати низькорівневі функції InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"налаштувати екрани Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Дозволяє програмі налаштовувати екрани Wi-Fi і під’єднуватися до них."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"керувати екранами Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Дозволяє програмі керувати низькорівневими функціями екранів Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 56f9320..9e5b36c 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Cho phép ứng dụng sử dụng các tính năng InputFlinger cấp độ thấp."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"định cấu hình màn hình Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Cho phép ứng dụng định cấu hình và kết nối với màn hình Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"kiểm soát màn hình Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Cho phép ứng dụng kiểm soát các tính năng cấp thấp của màn hình Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 161db91..a60b088 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -474,6 +474,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"允许应用使用 InputFlinger 底层功能。"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"配置 WLAN 显示设备"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"允许应用配置并连接到 WLAN 显示设备。"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"控制 WLAN 显示设备"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"允许应用控制 WLAN 显示设备的基础功能。"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index cab9de0..2ea03d7 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"允許應用程式使用 InputFlinger 的低階功能。"</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"設定 Wi-Fi 顯示裝置"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"允許應用程式設定及連接 Wi-Fi 顯示裝置。"</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"控制 Wi-Fi 顯示裝置"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"允許應用程式控制 Wi-Fi 顯示裝置的低階功能。"</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 792d40e..2e027e1 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -472,6 +472,8 @@
     <string name="permdesc_accessInputFlinger" msgid="2104864941201226616">"Ivumela uhlelo lokusebenza ukuthi lusebenzise izici zezinga eliphansi ze-InputFlinger."</string>
     <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"lungisa ukubukwa kwe-Wi-Fi"</string>
     <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Ivumela uhlelo lokusebenza ukulungisa nokuxhuma ekubukisweni kwe-Wi-Fi."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"lawula ukubukwa kwe-Wi-Fi"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Uvumela uhlelo lokusebenza ukulawula izici zeleveli ephansi zokuboniswa kwe-Wi-Fi."</string>
     <!-- no translation found for permlab_captureAudioOutput (6857134498402346708) -->
     <skip />
     <!-- no translation found for permdesc_captureAudioOutput (6210597754212208853) -->
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index f7d0282..721bc3f 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -737,6 +737,14 @@
         <attr name="preferenceLayoutChild" format="reference" />
         <!-- Preference panel style -->
         <attr name="preferencePanelStyle" format="reference" />
+        <!-- Preference headers panel style -->
+        <attr name="preferenceHeaderPanelStyle" format="reference" />
+        <!-- Preference list style -->
+        <attr name="preferenceListStyle" format="reference" />
+        <!-- Preference fragment list style -->
+        <attr name="preferenceFragmentListStyle" format="reference" />
+        <!-- Preference fragment padding side -->
+        <attr name="preferenceFragmentPaddingSide" format="dimension" />
         <!-- Default style for switch preferences. -->
         <attr name="switchPreferenceStyle" format="reference" />
 
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index f267124..138debf 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1905,6 +1905,11 @@
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_invokeCarrierSetup">Allows the holder to invoke the carrier-provided configuration app. Should never be needed for normal apps.</string>
 
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_accessNetworkConditions">listen for observations on network conditions</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_accessNetworkConditions">Allows an application to listen for observations on network conditions. Should never be needed for normal apps.</string>
+
     <!-- Policy administration -->
 
     <!-- Title of policy access to limiting the user's password choices -->
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index bd82f35..879d0f1 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -1058,6 +1058,24 @@
         <item name="android:background">@null</item>
     </style>
 
+    <style name="PreferenceHeaderPanel">
+        <item name="android:layout_marginStart">@dimen/preference_screen_side_margin</item>
+        <item name="android:layout_marginEnd">@dimen/preference_screen_side_margin_negative</item>
+        <item name="android:paddingTop">@dimen/preference_screen_header_vertical_padding</item>
+        <item name="android:paddingBottom">@dimen/preference_screen_header_vertical_padding</item>
+    </style>
+
+    <style name="PreferenceHeaderList">
+        <item name="android:paddingStart">@dimen/preference_screen_header_padding_side</item>
+        <item name="android:paddingEnd">@dimen/preference_screen_header_padding_side</item>
+        <item name="android:scrollbarStyle">@integer/preference_screen_header_scrollbarStyle</item>
+    </style>
+
+    <style name="PreferenceFragmentList">
+        <item name="android:paddingStart">@dimen/preference_fragment_padding_side</item>
+        <item name="android:paddingEnd">@dimen/preference_fragment_padding_side</item>
+    </style>
+
     <!-- Other Misc Styles -->
     <eat-comment />
 
@@ -2426,8 +2444,8 @@
     <style name="Widget.Holo.PreferenceFrameLayout">
         <item name="android:borderTop">0dip</item>
         <item name="android:borderBottom">@dimen/preference_fragment_padding_bottom</item>
-        <item name="android:borderLeft">@dimen/preference_fragment_padding_side</item>
-        <item name="android:borderRight">@dimen/preference_fragment_padding_side</item>
+        <item name="android:borderLeft">?attr/preferenceFragmentPaddingSide</item>
+        <item name="android:borderRight">?attr/preferenceFragmentPaddingSide</item>
     </style>
 
     <!-- Pointer styles -->
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 80f7486..23bd1ca 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -311,6 +311,10 @@
         <item name="ringtonePreferenceStyle">@android:style/Preference.RingtonePreference</item>
         <item name="preferenceLayoutChild">@android:layout/preference_child</item>
         <item name="preferencePanelStyle">@style/PreferencePanel</item>
+        <item name="preferenceHeaderPanelStyle">@style/PreferenceHeaderPanel</item>
+        <item name="preferenceListStyle">@style/PreferenceHeaderList</item>
+        <item name="preferenceFragmentListStyle">@style/PreferenceFragmentList</item>
+        <item name="preferenceFragmentPaddingSide">@dimen/preference_fragment_padding_side</item>
         <item name="detailsElementBackground">@android:drawable/panel_bg_holo_dark</item>
 
         <!-- Search widget styles -->
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index f8b26bc..a2cc40c 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -94,7 +94,7 @@
     <uses-permission android:name="android.permission.MOVE_PACKAGE" />
     <uses-permission android:name="android.permission.PACKAGE_VERIFICATION_AGENT" />
 
-    <!--os storage test permissions -->
+    <!-- os storage test permissions -->
     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
     <uses-permission android:name="android.permission.ASEC_ACCESS" />
     <uses-permission android:name="android.permission.ASEC_CREATE" />
@@ -103,6 +103,10 @@
     <uses-permission android:name="android.permission.ASEC_RENAME" />
     <uses-permission android:name="android.permission.SHUTDOWN" />
 
+    <!-- virtual display test permissions -->
+    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
+    <uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" />
+
     <!-- accessibility test permissions -->
     <uses-permission android:name="android.permission.RETRIEVE_WINDOW_CONTENT" />
 
diff --git a/core/tests/coretests/src/android/hardware/display/VirtualDisplayTest.java b/core/tests/coretests/src/android/hardware/display/VirtualDisplayTest.java
new file mode 100644
index 0000000..ebecf2e3
--- /dev/null
+++ b/core/tests/coretests/src/android/hardware/display/VirtualDisplayTest.java
@@ -0,0 +1,508 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.display;
+
+import android.app.Presentation;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.PixelFormat;
+import android.graphics.Point;
+import android.graphics.drawable.ColorDrawable;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.VirtualDisplay;
+import android.media.Image;
+import android.media.ImageReader;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.SystemClock;
+import android.test.AndroidTestCase;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Display;
+import android.view.Surface;
+import android.view.ViewGroup.LayoutParams;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import java.nio.ByteBuffer;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+/**
+ * Tests that applications can create virtual displays and present content on them.
+ *
+ * Contains additional tests that cannot be included in CTS because they require
+ * system permissions.  See also the CTS version of VirtualDisplayTest.
+ */
+public class VirtualDisplayTest extends AndroidTestCase {
+    private static final String TAG = "VirtualDisplayTest";
+
+    private static final String NAME = TAG;
+    private static final int WIDTH = 720;
+    private static final int HEIGHT = 480;
+    private static final int DENSITY = DisplayMetrics.DENSITY_MEDIUM;
+    private static final int TIMEOUT = 10000;
+
+    // Colors that we use as a signal to determine whether some desired content was
+    // drawn.  The colors themselves doesn't matter but we choose them to have with distinct
+    // values for each color channel so as to detect possible RGBA vs. BGRA buffer format issues.
+    // We should only observe RGBA buffers but some graphics drivers might incorrectly
+    // deliver BGRA buffers to virtual displays instead.
+    private static final int BLUEISH = 0xff1122ee;
+    private static final int GREENISH = 0xff33dd44;
+
+    private DisplayManager mDisplayManager;
+    private Handler mHandler;
+    private final Lock mImageReaderLock = new ReentrantLock(true /*fair*/);
+    private ImageReader mImageReader;
+    private Surface mSurface;
+    private ImageListener mImageListener;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        mDisplayManager = (DisplayManager)mContext.getSystemService(Context.DISPLAY_SERVICE);
+        mHandler = new Handler(Looper.getMainLooper());
+        mImageListener = new ImageListener();
+
+        mImageReaderLock.lock();
+        try {
+            mImageReader = new ImageReader(WIDTH, HEIGHT, PixelFormat.RGBA_8888, 2);
+            mImageReader.setImageAvailableListener(mImageListener, mHandler);
+            mSurface = mImageReader.getSurface();
+        } finally {
+            mImageReaderLock.unlock();
+        }
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+
+        mImageReaderLock.lock();
+        try {
+            mImageReader.close();
+            mImageReader = null;
+            mSurface = null;
+        } finally {
+            mImageReaderLock.unlock();
+        }
+    }
+
+    /**
+     * Ensures that an application can create a private virtual display and show
+     * its own windows on it.
+     */
+    public void testPrivateVirtualDisplay() throws Exception {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface, 0);
+        assertNotNull("virtual display must not be null", virtualDisplay);
+
+        Display display = virtualDisplay.getDisplay();
+        try {
+            assertDisplayRegistered(display, Display.FLAG_PRIVATE);
+
+            // Show a private presentation on the display.
+            assertDisplayCanShowPresentation("private presentation window",
+                    display, BLUEISH,
+                    WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION, 0);
+        } finally {
+            virtualDisplay.release();
+        }
+        assertDisplayUnregistered(display);
+    }
+
+    /**
+     * Ensures that an application can create a private presentation virtual display and show
+     * its own windows on it.
+     */
+    public void testPrivatePresentationVirtualDisplay() throws Exception {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface,
+                DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION);
+        assertNotNull("virtual display must not be null", virtualDisplay);
+
+        Display display = virtualDisplay.getDisplay();
+        try {
+            assertDisplayRegistered(display, Display.FLAG_PRIVATE | Display.FLAG_PRESENTATION);
+
+            // Show a private presentation on the display.
+            assertDisplayCanShowPresentation("private presentation window",
+                    display, BLUEISH,
+                    WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION, 0);
+        } finally {
+            virtualDisplay.release();
+        }
+        assertDisplayUnregistered(display);
+    }
+
+    /**
+     * Ensures that an application can create a public virtual display and show
+     * its own windows on it.  This test requires the CAPTURE_VIDEO_OUTPUT permission.
+     *
+     * Because this test does not have an activity token, we use the TOAST window
+     * type to create the window.  Another choice might be SYSTEM_ALERT_WINDOW but
+     * that requires a permission.
+     */
+    public void testPublicPresentationVirtualDisplay() throws Exception {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface,
+                DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
+                        | DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION);
+        assertNotNull("virtual display must not be null", virtualDisplay);
+
+        Display display = virtualDisplay.getDisplay();
+        try {
+            assertDisplayRegistered(display, Display.FLAG_PRESENTATION);
+
+            // Mirroring case.
+            // Show a window on the default display.  It should be mirrored to the
+            // virtual display automatically.
+            Display defaultDisplay = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY);
+            assertDisplayCanShowPresentation("mirrored window",
+                    defaultDisplay, GREENISH,
+                    WindowManager.LayoutParams.TYPE_TOAST, 0);
+
+            // Mirroring case with secure window (but display is not secure).
+            // Show a window on the default display.  It should be replaced with black on
+            // the virtual display.
+            assertDisplayCanShowPresentation("mirrored secure window on non-secure display",
+                    defaultDisplay, Color.BLACK,
+                    WindowManager.LayoutParams.TYPE_TOAST,
+                    WindowManager.LayoutParams.FLAG_SECURE);
+
+            // Presentation case.
+            // Show a normal presentation on the display.
+            assertDisplayCanShowPresentation("presentation window",
+                    display, BLUEISH,
+                    WindowManager.LayoutParams.TYPE_TOAST, 0);
+
+            // Presentation case with secure window (but display is not secure).
+            // Show a normal presentation on the display.  It should be replaced with black.
+            assertDisplayCanShowPresentation("secure presentation window on non-secure display",
+                    display, Color.BLACK,
+                    WindowManager.LayoutParams.TYPE_TOAST,
+                    WindowManager.LayoutParams.FLAG_SECURE);
+        } finally {
+            virtualDisplay.release();
+        }
+        assertDisplayUnregistered(display);
+    }
+
+    /**
+     * Ensures that an application can create a secure public virtual display and show
+     * its own windows on it.  This test requires the CAPTURE_SECURE_VIDEO_OUTPUT permission.
+     *
+     * Because this test does not have an activity token, we use the TOAST window
+     * type to create the window.  Another choice might be SYSTEM_ALERT_WINDOW but
+     * that requires a permission.
+     */
+    public void testSecurePublicPresentationVirtualDisplay() throws Exception {
+        VirtualDisplay virtualDisplay = mDisplayManager.createVirtualDisplay(NAME,
+                WIDTH, HEIGHT, DENSITY, mSurface,
+                DisplayManager.VIRTUAL_DISPLAY_FLAG_SECURE
+                        | DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC
+                        | DisplayManager.VIRTUAL_DISPLAY_FLAG_PRESENTATION);
+        assertNotNull("virtual display must not be null", virtualDisplay);
+
+        Display display = virtualDisplay.getDisplay();
+        try {
+            assertDisplayRegistered(display, Display.FLAG_PRESENTATION | Display.FLAG_SECURE);
+
+            // Mirroring case with secure window (and display is secure).
+            // Show a window on the default display.  It should be mirrored to the
+            // virtual display automatically.
+            Display defaultDisplay = mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY);
+            assertDisplayCanShowPresentation("mirrored secure window on secure display",
+                    defaultDisplay, GREENISH,
+                    WindowManager.LayoutParams.TYPE_TOAST,
+                    WindowManager.LayoutParams.FLAG_SECURE);
+
+            // Presentation case with secure window (and display is secure).
+            // Show a normal presentation on the display.
+            assertDisplayCanShowPresentation("secure presentation window on secure display",
+                    display, BLUEISH,
+                    WindowManager.LayoutParams.TYPE_TOAST,
+                    WindowManager.LayoutParams.FLAG_SECURE);
+        } finally {
+            virtualDisplay.release();
+        }
+        assertDisplayUnregistered(display);
+    }
+
+    private void assertDisplayRegistered(Display display, int flags) {
+        assertNotNull("display object must not be null", display);
+        assertTrue("display must be valid", display.isValid());
+        assertTrue("display id must be unique",
+                display.getDisplayId() != Display.DEFAULT_DISPLAY);
+        assertEquals("display must have correct flags", flags, display.getFlags());
+        assertEquals("display name must match supplied name", NAME, display.getName());
+        Point size = new Point();
+        display.getSize(size);
+        assertEquals("display width must match supplied width", WIDTH, size.x);
+        assertEquals("display height must match supplied height", HEIGHT, size.y);
+        assertEquals("display rotation must be 0",
+                Surface.ROTATION_0, display.getRotation());
+        assertNotNull("display must be registered",
+                findDisplay(mDisplayManager.getDisplays(), NAME));
+
+        if ((flags & Display.FLAG_PRESENTATION) != 0) {
+            assertNotNull("display must be registered as a presentation display",
+                    findDisplay(mDisplayManager.getDisplays(
+                            DisplayManager.DISPLAY_CATEGORY_PRESENTATION), NAME));
+        } else {
+            assertNull("display must not be registered as a presentation display",
+                    findDisplay(mDisplayManager.getDisplays(
+                            DisplayManager.DISPLAY_CATEGORY_PRESENTATION), NAME));
+        }
+    }
+
+    private void assertDisplayUnregistered(Display display) {
+        assertNull("display must no longer be registered after being removed",
+                findDisplay(mDisplayManager.getDisplays(), NAME));
+        assertFalse("display must no longer be valid", display.isValid());
+    }
+
+    private void assertDisplayCanShowPresentation(String message, final Display display,
+            final int color, final int windowType, final int windowFlags) {
+        // At this point, we should not have seen any blue.
+        assertTrue(message + ": display should not show content before window is shown",
+                mImageListener.getColor() != color);
+
+        final TestPresentation[] presentation = new TestPresentation[1];
+        try {
+            // Show the presentation.
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    presentation[0] = new TestPresentation(getContext(), display,
+                            color, windowType, windowFlags);
+                    presentation[0].show();
+                }
+            });
+
+            // Wait for the blue to be seen.
+            assertTrue(message + ": display should show content after window is shown",
+                    mImageListener.waitForColor(color, TIMEOUT));
+        } finally {
+            if (presentation[0] != null) {
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        presentation[0].dismiss();
+                    }
+                });
+            }
+        }
+    }
+
+    private void runOnUiThread(Runnable runnable) {
+        Runnable waiter = new Runnable() {
+            @Override
+            public void run() {
+                synchronized (this) {
+                    notifyAll();
+                }
+            }
+        };
+        synchronized (waiter) {
+            mHandler.post(runnable);
+            mHandler.post(waiter);
+            try {
+                waiter.wait(TIMEOUT);
+            } catch (InterruptedException ex) {
+            }
+        }
+    }
+
+    private Display findDisplay(Display[] displays, String name) {
+        for (int i = 0; i < displays.length; i++) {
+            if (displays[i].getName().equals(name)) {
+                return displays[i];
+            }
+        }
+        return null;
+    }
+
+    private final class TestPresentation extends Presentation {
+        private final int mColor;
+        private final int mWindowType;
+        private final int mWindowFlags;
+
+        public TestPresentation(Context context, Display display,
+                int color, int windowType, int windowFlags) {
+            super(context, display);
+            mColor = color;
+            mWindowType = windowType;
+            mWindowFlags = windowFlags;
+        }
+
+        @Override
+        protected void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+
+            setTitle(TAG);
+            getWindow().setType(mWindowType);
+            getWindow().addFlags(mWindowFlags);
+
+            // Create a solid color image to use as the content of the presentation.
+            ImageView view = new ImageView(getContext());
+            view.setImageDrawable(new ColorDrawable(mColor));
+            view.setLayoutParams(new LayoutParams(
+                    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+            setContentView(view);
+        }
+    }
+
+    /**
+     * Watches for an image with a large amount of some particular solid color to be shown.
+     */
+    private final class ImageListener
+            implements ImageReader.OnImageAvailableListener {
+        private int mColor = -1;
+
+        public int getColor() {
+            synchronized (this) {
+                return mColor;
+            }
+        }
+
+        public boolean waitForColor(int color, long timeoutMillis) {
+            long timeoutTime = SystemClock.uptimeMillis() + timeoutMillis;
+            synchronized (this) {
+                while (mColor != color) {
+                    long now = SystemClock.uptimeMillis();
+                    if (now >= timeoutTime) {
+                        return false;
+                    }
+                    try {
+                        wait(timeoutTime - now);
+                    } catch (InterruptedException ex) {
+                    }
+                }
+                return true;
+            }
+        }
+
+        @Override
+        public void onImageAvailable(ImageReader reader) {
+            mImageReaderLock.lock();
+            try {
+                if (reader != mImageReader) {
+                    return;
+                }
+
+                Log.d(TAG, "New image available from virtual display.");
+                Image image = reader.getNextImage();
+                if (image != null) {
+                    try {
+                        // Get the latest buffer.
+                        for (;;) {
+                            Image nextImage = reader.getNextImage();
+                            if (nextImage == null) {
+                                break;
+                            }
+                            reader.releaseImage(image);
+                            image = nextImage;
+                        }
+
+                        // Scan for colors.
+                        int color = scanImage(image);
+                        synchronized (this) {
+                            if (mColor != color) {
+                                mColor = color;
+                                notifyAll();
+                            }
+                        }
+                    } finally {
+                        reader.releaseImage(image);
+                    }
+                }
+            } finally {
+                mImageReaderLock.unlock();
+            }
+        }
+
+        private int scanImage(Image image) {
+            final Image.Plane plane = image.getPlanes()[0];
+            final ByteBuffer buffer = plane.getBuffer();
+            final int width = image.getWidth();
+            final int height = image.getHeight();
+            final int pixelStride = plane.getPixelStride();
+            final int rowStride = plane.getRowStride();
+            final int rowPadding = rowStride - pixelStride * width;
+
+            Log.d(TAG, "- Scanning image: width=" + width + ", height=" + height
+                    + ", pixelStride=" + pixelStride + ", rowStride=" + rowStride);
+
+            int offset = 0;
+            int blackPixels = 0;
+            int bluePixels = 0;
+            int greenPixels = 0;
+            int otherPixels = 0;
+            for (int y = 0; y < height; y++) {
+                for (int x = 0; x < width; x++) {
+                    int pixel = 0;
+                    pixel |= (buffer.get(offset) & 0xff) << 16;     // R
+                    pixel |= (buffer.get(offset + 1) & 0xff) << 8;  // G
+                    pixel |= (buffer.get(offset + 2) & 0xff);       // B
+                    pixel |= (buffer.get(offset + 3) & 0xff) << 24; // A
+                    if (pixel == Color.BLACK || pixel == 0) {
+                        blackPixels += 1;
+                    } else if (pixel == BLUEISH) {
+                        bluePixels += 1;
+                    } else if (pixel == GREENISH) {
+                        greenPixels += 1;
+                    } else {
+                        otherPixels += 1;
+                        if (otherPixels < 10) {
+                            Log.d(TAG, "- Found unexpected color: " + Integer.toHexString(pixel));
+                        }
+                    }
+                    offset += pixelStride;
+                }
+                offset += rowPadding;
+            }
+
+            // Return a color if it represents more than one quarter of the pixels.
+            // We use this threshold in case the display is being letterboxed when
+            // mirroring so there might be large black bars on the sides, which is normal.
+            Log.d(TAG, "- Pixels: " + blackPixels + " black, "
+                    + bluePixels + " blue, "
+                    + greenPixels + " green, "
+                    + otherPixels + " other");
+            final int threshold = width * height / 4;
+            if (bluePixels > threshold) {
+                Log.d(TAG, "- Reporting blue.");
+                return BLUEISH;
+            }
+            if (greenPixels > threshold) {
+                Log.d(TAG, "- Reporting green.");
+                return GREENISH;
+            }
+            if (blackPixels > threshold) {
+                Log.d(TAG, "- Reporting black.");
+                return Color.BLACK;
+            }
+            Log.d(TAG, "- Reporting other.");
+            return -1;
+        }
+    }
+}
+
diff --git a/core/tests/coretests/src/android/net/LinkPropertiesTest.java b/core/tests/coretests/src/android/net/LinkPropertiesTest.java
index d8290f4..9fdfd0e 100644
--- a/core/tests/coretests/src/android/net/LinkPropertiesTest.java
+++ b/core/tests/coretests/src/android/net/LinkPropertiesTest.java
@@ -25,14 +25,18 @@
 import java.util.ArrayList;
 
 public class LinkPropertiesTest extends TestCase {
-    private static String ADDRV4 = "75.208.6.1";
-    private static String ADDRV6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
-    private static String DNS1 = "75.208.7.1";
-    private static String DNS2 = "69.78.7.1";
-    private static String GATEWAY1 = "75.208.8.1";
-    private static String GATEWAY2 = "69.78.8.1";
+    private static InetAddress ADDRV4 = NetworkUtils.numericToInetAddress("75.208.6.1");
+    private static InetAddress ADDRV6 = NetworkUtils.numericToInetAddress(
+            "2001:0db8:85a3:0000:0000:8a2e:0370:7334");
+    private static InetAddress DNS1 = NetworkUtils.numericToInetAddress("75.208.7.1");
+    private static InetAddress DNS2 = NetworkUtils.numericToInetAddress("69.78.7.1");
+    private static InetAddress GATEWAY1 = NetworkUtils.numericToInetAddress("75.208.8.1");
+    private static InetAddress GATEWAY2 = NetworkUtils.numericToInetAddress("69.78.8.1");
     private static String NAME = "qmi0";
 
+    private static LinkAddress LINKADDRV4 = new LinkAddress(ADDRV4, 32);
+    private static LinkAddress LINKADDRV6 = new LinkAddress(ADDRV6, 128);
+
     public void assertLinkPropertiesEqual(LinkProperties source, LinkProperties target) {
         // Check implementation of equals(), element by element.
         assertTrue(source.isIdenticalInterfaceName(target));
@@ -76,43 +80,37 @@
             LinkProperties source = new LinkProperties();
             source.setInterfaceName(NAME);
             // set 2 link addresses
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+            source.addLinkAddress(LINKADDRV4);
+            source.addLinkAddress(LINKADDRV6);
             // set 2 dnses
-            source.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            source.addDns(NetworkUtils.numericToInetAddress(DNS2));
+            source.addDns(DNS1);
+            source.addDns(DNS2);
             // set 2 gateways
-            source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            source.addRoute(new RouteInfo(GATEWAY1));
+            source.addRoute(new RouteInfo(GATEWAY2));
 
             LinkProperties target = new LinkProperties();
 
             // All fields are same
             target.setInterfaceName(NAME);
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            target.addLinkAddress(LINKADDRV4);
+            target.addLinkAddress(LINKADDRV6);
+            target.addDns(DNS1);
+            target.addDns(DNS2);
+            target.addRoute(new RouteInfo(GATEWAY1));
+            target.addRoute(new RouteInfo(GATEWAY2));
 
             assertLinkPropertiesEqual(source, target);
 
             target.clear();
             // change Interface Name
             target.setInterfaceName("qmi1");
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            target.addLinkAddress(LINKADDRV4);
+            target.addLinkAddress(LINKADDRV6);
+            target.addDns(DNS1);
+            target.addDns(DNS2);
+            target.addRoute(new RouteInfo(GATEWAY1));
+            target.addRoute(new RouteInfo(GATEWAY2));
             assertFalse(source.equals(target));
 
             target.clear();
@@ -120,38 +118,33 @@
             // change link addresses
             target.addLinkAddress(new LinkAddress(
                     NetworkUtils.numericToInetAddress("75.208.6.2"), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            target.addLinkAddress(LINKADDRV6);
+            target.addDns(DNS1);
+            target.addDns(DNS2);
+            target.addRoute(new RouteInfo(GATEWAY1));
+            target.addRoute(new RouteInfo(GATEWAY2));
             assertFalse(source.equals(target));
 
             target.clear();
             target.setInterfaceName(NAME);
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+            target.addLinkAddress(LINKADDRV4);
+            target.addLinkAddress(LINKADDRV6);
             // change dnses
             target.addDns(NetworkUtils.numericToInetAddress("75.208.7.2"));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            target.addDns(DNS2);
+            target.addRoute(new RouteInfo(GATEWAY1));
+            target.addRoute(new RouteInfo(GATEWAY2));
             assertFalse(source.equals(target));
 
             target.clear();
             target.setInterfaceName(NAME);
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
+            target.addLinkAddress(LINKADDRV4);
+            target.addLinkAddress(LINKADDRV6);
+            target.addDns(DNS1);
+            target.addDns(DNS2);
             // change gateway
             target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress("75.208.8.2")));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            target.addRoute(new RouteInfo(GATEWAY2));
             assertFalse(source.equals(target));
 
         } catch (Exception e) {
@@ -166,28 +159,24 @@
             LinkProperties source = new LinkProperties();
             source.setInterfaceName(NAME);
             // set 2 link addresses
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+            source.addLinkAddress(LINKADDRV4);
+            source.addLinkAddress(LINKADDRV6);
             // set 2 dnses
-            source.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            source.addDns(NetworkUtils.numericToInetAddress(DNS2));
+            source.addDns(DNS1);
+            source.addDns(DNS2);
             // set 2 gateways
-            source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
-            source.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
+            source.addRoute(new RouteInfo(GATEWAY1));
+            source.addRoute(new RouteInfo(GATEWAY2));
 
             LinkProperties target = new LinkProperties();
             // Exchange order
             target.setInterfaceName(NAME);
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS2));
-            target.addDns(NetworkUtils.numericToInetAddress(DNS1));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY2)));
-            target.addRoute(new RouteInfo(NetworkUtils.numericToInetAddress(GATEWAY1)));
+            target.addLinkAddress(LINKADDRV6);
+            target.addLinkAddress(LINKADDRV4);
+            target.addDns(DNS2);
+            target.addDns(DNS1);
+            target.addRoute(new RouteInfo(GATEWAY2));
+            target.addRoute(new RouteInfo(GATEWAY1));
 
             assertLinkPropertiesEqual(source, target);
         } catch (Exception e) {
@@ -200,21 +189,15 @@
         try {
             LinkProperties source = new LinkProperties();
             // set 3 link addresses, eg, [A, A, B]
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            source.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+            source.addLinkAddress(LINKADDRV4);
+            source.addLinkAddress(LINKADDRV4);
+            source.addLinkAddress(LINKADDRV6);
 
             LinkProperties target = new LinkProperties();
             // set 3 link addresses, eg, [A, B, B]
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
-            target.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+            target.addLinkAddress(LINKADDRV4);
+            target.addLinkAddress(LINKADDRV6);
+            target.addLinkAddress(LINKADDRV6);
 
             assertLinkPropertiesEqual(source, target);
         } catch (Exception e) {
@@ -232,7 +215,7 @@
     public void testRouteInterfaces() {
         LinkAddress prefix = new LinkAddress(
             NetworkUtils.numericToInetAddress("2001:db8::"), 32);
-        InetAddress address = NetworkUtils.numericToInetAddress(ADDRV6);
+        InetAddress address = ADDRV6;
 
         // Add a route with no interface to a LinkProperties with no interface. No errors.
         LinkProperties lp = new LinkProperties();
@@ -265,7 +248,7 @@
         assertAllRoutesHaveInterface("wlan0", lp);
 
         // Routes with null interfaces are converted to wlan0.
-        r = RouteInfo.makeHostRoute(NetworkUtils.numericToInetAddress(ADDRV6), null);
+        r = RouteInfo.makeHostRoute(ADDRV6, null);
         lp.addRoute(r);
         assertEquals(3, lp.getRoutes().size());
         assertAllRoutesHaveInterface("wlan0", lp);
@@ -286,13 +269,11 @@
     public void testStackedInterfaces() {
         LinkProperties rmnet0 = new LinkProperties();
         rmnet0.setInterfaceName("rmnet0");
-        rmnet0.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV6), 128));
+        rmnet0.addLinkAddress(LINKADDRV6);
 
         LinkProperties clat4 = new LinkProperties();
         clat4.setInterfaceName("clat4");
-        clat4.addLinkAddress(new LinkAddress(
-                    NetworkUtils.numericToInetAddress(ADDRV4), 32));
+        clat4.addLinkAddress(LINKADDRV4);
 
         assertEquals(0, rmnet0.getStackedLinks().size());
         assertEquals(1, rmnet0.getAddresses().size());
diff --git a/data/fonts/AndroidEmoji.ttf b/data/fonts/AndroidEmoji.ttf
index 92bf047..569cbab 100644
--- a/data/fonts/AndroidEmoji.ttf
+++ b/data/fonts/AndroidEmoji.ttf
Binary files differ
diff --git a/docs/html/gms_navtree_data.js b/docs/html/gms_navtree_data.js
index 51c01f6..777773f 100644
--- a/docs/html/gms_navtree_data.js
+++ b/docs/html/gms_navtree_data.js
@@ -37,7 +37,7 @@
 , null ], [ "com.google.android.gms.location", "reference/com/google/android/gms/location/package-summary.html", [ [ "Interfaces", null, [ [ "Geofence", "reference/com/google/android/gms/location/Geofence.html", null, null ], [ "LocationClient.OnAddGeofencesResultListener", "reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", null, null ], [ "LocationClient.OnRemoveGeofencesResultListener", "reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", null, null ], [ "LocationListener", "reference/com/google/android/gms/location/LocationListener.html", null, null ] ]
 , null ], [ "Classes", null, [ [ "ActivityRecognitionClient", "reference/com/google/android/gms/location/ActivityRecognitionClient.html", null, null ], [ "ActivityRecognitionResult", "reference/com/google/android/gms/location/ActivityRecognitionResult.html", null, null ], [ "DetectedActivity", "reference/com/google/android/gms/location/DetectedActivity.html", null, null ], [ "Geofence.Builder", "reference/com/google/android/gms/location/Geofence.Builder.html", null, null ], [ "LocationClient", "reference/com/google/android/gms/location/LocationClient.html", null, null ], [ "LocationRequest", "reference/com/google/android/gms/location/LocationRequest.html", null, null ], [ "LocationStatusCodes", "reference/com/google/android/gms/location/LocationStatusCodes.html", null, null ] ]
 , null ] ]
-, null ], [ "com.google.android.gms.maps", "reference/com/google/android/gms/maps/package-summary.html", [ [ "Interfaces", null, [ [ "GoogleMap.CancelableCallback", "reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", null, null ], [ "GoogleMap.InfoWindowAdapter", "reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", null, null ], [ "GoogleMap.OnCameraChangeListener", "reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", null, null ], [ "GoogleMap.OnInfoWindowClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", null, null ], [ "GoogleMap.OnMapClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", null, null ], [ "GoogleMap.OnMapLongClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", null, null ], [ "GoogleMap.OnMarkerClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", null, null ], [ "GoogleMap.OnMarkerDragListener", "reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", null, null ], [ "GoogleMap.OnMyLocationChangeListener", "reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", null, null ], [ "LocationSource", "reference/com/google/android/gms/maps/LocationSource.html", null, null ], [ "LocationSource.OnLocationChangedListener", "reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", null, null ] ]
+, null ], [ "com.google.android.gms.maps", "reference/com/google/android/gms/maps/package-summary.html", [ [ "Interfaces", null, [ [ "GoogleMap.CancelableCallback", "reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", null, null ], [ "GoogleMap.InfoWindowAdapter", "reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", null, null ], [ "GoogleMap.OnCameraChangeListener", "reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", null, null ], [ "GoogleMap.OnInfoWindowClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", null, null ], [ "GoogleMap.OnMapClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", null, null ], [ "GoogleMap.OnMapLongClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", null, null ], [ "GoogleMap.OnMarkerClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", null, null ], [ "GoogleMap.OnMarkerDragListener", "reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", null, null ], [ "GoogleMap.OnMyLocationButtonClickListener", "reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html", null, null ], [ "GoogleMap.OnMyLocationChangeListener", "reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", null, null ], [ "GoogleMap.SnapshotReadyCallback", "reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html", null, null ], [ "LocationSource", "reference/com/google/android/gms/maps/LocationSource.html", null, null ], [ "LocationSource.OnLocationChangedListener", "reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", null, null ] ]
 , null ], [ "Classes", null, [ [ "CameraUpdate", "reference/com/google/android/gms/maps/CameraUpdate.html", null, null ], [ "CameraUpdateFactory", "reference/com/google/android/gms/maps/CameraUpdateFactory.html", null, null ], [ "GoogleMap", "reference/com/google/android/gms/maps/GoogleMap.html", null, null ], [ "GoogleMapOptions", "reference/com/google/android/gms/maps/GoogleMapOptions.html", null, null ], [ "MapFragment", "reference/com/google/android/gms/maps/MapFragment.html", null, null ], [ "MapsInitializer", "reference/com/google/android/gms/maps/MapsInitializer.html", null, null ], [ "MapView", "reference/com/google/android/gms/maps/MapView.html", null, null ], [ "Projection", "reference/com/google/android/gms/maps/Projection.html", null, null ], [ "SupportMapFragment", "reference/com/google/android/gms/maps/SupportMapFragment.html", null, null ], [ "UiSettings", "reference/com/google/android/gms/maps/UiSettings.html", null, null ] ]
 , null ] ]
 , null ], [ "com.google.android.gms.maps.model", "reference/com/google/android/gms/maps/model/package-summary.html", [ [ "Interfaces", null, [ [ "TileProvider", "reference/com/google/android/gms/maps/model/TileProvider.html", null, null ] ]
@@ -47,8 +47,8 @@
 , null ], [ "com.google.android.gms.panorama", "reference/com/google/android/gms/panorama/package-summary.html", [ [ "Interfaces", null, [ [ "PanoramaClient.OnPanoramaInfoLoadedListener", "reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", null, null ] ]
 , null ], [ "Classes", null, [ [ "PanoramaClient", "reference/com/google/android/gms/panorama/PanoramaClient.html", null, null ] ]
 , null ] ]
-, null ], [ "com.google.android.gms.plus", "reference/com/google/android/gms/plus/package-summary.html", [ [ "Interfaces", null, [ [ "PlusClient.OnAccessRevokedListener", "reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", null, null ], [ "PlusClient.OnMomentsLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", null, null ], [ "PlusClient.OnPeopleLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", null, null ], [ "PlusClient.OnPersonLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", null, null ], [ "PlusOneButton.OnPlusOneClickListener", "reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "GooglePlusUtil", "reference/com/google/android/gms/plus/GooglePlusUtil.html", null, null ], [ "PlusClient", "reference/com/google/android/gms/plus/PlusClient.html", null, null ], [ "PlusClient.Builder", "reference/com/google/android/gms/plus/PlusClient.Builder.html", null, null ], [ "PlusOneButton", "reference/com/google/android/gms/plus/PlusOneButton.html", null, null ], [ "PlusShare", "reference/com/google/android/gms/plus/PlusShare.html", null, null ], [ "PlusShare.Builder", "reference/com/google/android/gms/plus/PlusShare.Builder.html", null, null ] ]
+, null ], [ "com.google.android.gms.plus", "reference/com/google/android/gms/plus/package-summary.html", [ [ "Interfaces", null, [ [ "PlusClient.OnAccessRevokedListener", "reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", null, null ], [ "PlusClient.OnMomentsLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", null, null ], [ "PlusClient.OnPeopleLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", null, null ], [ "PlusClient.OnPersonLoadedListener", "reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", null, null ], [ "PlusClient.OrderBy", "reference/com/google/android/gms/plus/PlusClient.OrderBy.html", null, null ], [ "PlusOneButton.OnPlusOneClickListener", "reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "PlusClient", "reference/com/google/android/gms/plus/PlusClient.html", null, null ], [ "PlusClient.Builder", "reference/com/google/android/gms/plus/PlusClient.Builder.html", null, null ], [ "PlusOneButton", "reference/com/google/android/gms/plus/PlusOneButton.html", null, null ], [ "PlusShare", "reference/com/google/android/gms/plus/PlusShare.html", null, null ], [ "PlusShare.Builder", "reference/com/google/android/gms/plus/PlusShare.Builder.html", null, null ] ]
 , null ] ]
 , null ], [ "com.google.android.gms.plus.model.moments", "reference/com/google/android/gms/plus/model/moments/package-summary.html", [ [ "Interfaces", null, [ [ "ItemScope", "reference/com/google/android/gms/plus/model/moments/ItemScope.html", null, null ], [ "Moment", "reference/com/google/android/gms/plus/model/moments/Moment.html", null, null ] ]
 , null ], [ "Classes", null, [ [ "ItemScope.Builder", "reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", null, null ], [ "Moment.Builder", "reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", null, null ], [ "MomentBuffer", "reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", null, null ] ]
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 4c11adc..af35540 100644
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -163,8 +163,7 @@
   <dd>The OpenGL ES version required by the application. The higher 16 bits
 represent the major number and the lower 16 bits represent the minor number. For
 example, to specify OpenGL ES version 2.0, you would set the value as
-"0x00020000". To specify OpenGL ES 2.1, if/when such a version were made
-available, you would set the value as "0x00020001".
+"0x00020000", or to specify OpenGL ES 3.0, you would set the value as "0x00030000".
 
   <p>An application should specify at most one <code>android:glEsVersion</code>
 attribute in its manifest. If it specifies more than one, the
@@ -183,6 +182,10 @@
   <p>An application that can work with any of several OpenGL ES versions should
 only specify the numerically lowest version of OpenGL ES that it requires. (It
 can check at run-time whether a higher level of OpenGL ES is available.)</p>
+
+  <p>For more information about using OpenGL ES, including how to check the supported OpenGL ES
+version at runtime, see the <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES</a>
+API guide.</p>
   </dd>
 
 </dl>
diff --git a/docs/html/reference/com/google/android/gms/R.attr.html b/docs/html/reference/com/google/android/gms/R.attr.html
index 31fcc0a..896f4d0 100644
--- a/docs/html/reference/com/google/android/gms/R.attr.html
+++ b/docs/html/reference/com/google/android/gms/R.attr.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -833,6 +833,117 @@
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#content">content</a></td>
+          <td class="jd-descrcol" width="100%">The content of this global search section.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#contentProviderUri">contentProviderUri</a></td>
+          <td class="jd-descrcol" width="100%">The URI of the content provider that the index should crawl to get the data for this
+    corpus.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#defaultIntentAction">defaultIntentAction</a></td>
+          <td class="jd-descrcol" width="100%">The default value for the global search section <code>default_intent_action</code>.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#defaultIntentActivity">defaultIntentActivity</a></td>
+          <td class="jd-descrcol" width="100%">The default value for the global search section <code>default_intent_aactivity</code>.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#defaultIntentData">defaultIntentData</a></td>
+          <td class="jd-descrcol" width="100%">The default value for the global search section <code>default_intent_data</code>.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#enabled">enabled</a></td>
+          <td class="jd-descrcol" width="100%">Whether or not global search is enabled for this app.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#format">format</a></td>
+          <td class="jd-descrcol" width="100%">The format of the section.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#id">id</a></td>
+          <td class="jd-descrcol" width="100%">The ID of the corpus.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#indexPrefixes">indexPrefixes</a></td>
+          <td class="jd-descrcol" width="100%">Indicates if this section should support prefix matching.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#label">label</a></td>
+          <td class="jd-descrcol" width="100%">A localized string to identify this apps data within the global search app.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#mapType">mapType</a></td>
           <td class="jd-descrcol" width="100%"><p>Must be one of the following constant values.</td>
       </tr>
@@ -844,12 +955,67 @@
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#noIndex">noIndex</a></td>
+          <td class="jd-descrcol" width="100%">Indicates if this section should not be indexed.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#sectionId">sectionId</a></td>
+          <td class="jd-descrcol" width="100%">The global search section ID for this mapping.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#settingsDescription">settingsDescription</a></td>
+          <td class="jd-descrcol" width="100%">A localized string to describe this apps data within the global search apps settings.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#subsectionSeparator">subsectionSeparator</a></td>
+          <td class="jd-descrcol" width="100%">Subsection separator.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#trimmable">trimmable</a></td>
+          <td class="jd-descrcol" width="100%">Indicates if documents from this corpus can be trimmed when the index reaches its quota.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#uiCompass">uiCompass</a></td>
           <td class="jd-descrcol" width="100%"><p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".</td>
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -860,7 +1026,7 @@
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -871,7 +1037,7 @@
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -882,7 +1048,7 @@
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -893,7 +1059,7 @@
       </tr>
       
     
-      <tr class=" api apilevel-" >
+      <tr class="alt-color api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -904,7 +1070,7 @@
       </tr>
       
     
-      <tr class="alt-color api apilevel-" >
+      <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
@@ -915,12 +1081,34 @@
       </tr>
       
     
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#version">version</a></td>
+          <td class="jd-descrcol" width="100%">The version of the corpus.</td>
+      </tr>
+      
+    
       <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#weight">weight</a></td>
+          <td class="jd-descrcol" width="100%">The weight of the section.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#zOrderOnTop">zOrderOnTop</a></td>
           <td class="jd-descrcol" width="100%"><p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".</td>
       </tr>
@@ -983,7 +1171,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1002,7 +1190,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1021,7 +1209,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1050,7 +1238,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1114,7 +1302,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1378,6 +1566,368 @@
 
 
 
+<A NAME="content"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        content
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The content of this global search section. This is a global search section template string.
+      It should contain a reference to a string which can change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="contentProviderUri"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        contentProviderUri
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The URI of the content provider that the index should crawl to get the data for this
+    corpus. Required. This string must not change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="defaultIntentAction"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        defaultIntentAction
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The default value for the global search section <code>default_intent_action</code>. Optional.
+      This string must not change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="defaultIntentActivity"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        defaultIntentActivity
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The default value for the global search section <code>default_intent_aactivity</code>. Optional.
+      This string must not change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="defaultIntentData"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        defaultIntentData
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The default value for the global search section <code>default_intent_data</code>. Optional.
+      This string must not change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="enabled"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        enabled
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Whether or not global search is enabled for this app. Optional; defaults to <code>true</code>.
+      If set to <code>false</code>, it will be treated as if the <code>GlobalSearch</code> element did not
+      exist. 
+         <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="format"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        format
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The format of the section. Optional; default to <code>plain</code>. 
+         <p>Must be one of the following constant values.</p>
+<table>
+<colgroup align="left" />
+<colgroup align="left" />
+<colgroup align="left" />
+<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
+<tr><td><code>plain</code></td><td>0</td><td></td></tr>
+<tr><td><code>html</code></td><td>1</td><td></td></tr>
+<tr><td><code>rfc822</code></td><td>2</td><td></td></tr>
+</table>
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="id"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        id
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The ID of the corpus. Required. This string must not change between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="indexPrefixes"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        indexPrefixes
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Indicates if this section should support prefix matching. Optional; defaults to
+      <code>false</code>. 
+         <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="label"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        label
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>A localized string to identify this apps data within the global search app. Required. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="mapType"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1418,6 +1968,194 @@
 
 
 
+<A NAME="noIndex"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        noIndex
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Indicates if this section should not be indexed. Optional; defaults to <code>false</code>. 
+         <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="sectionId"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        sectionId
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The global search section ID for this mapping. 
+         <p>Must be one of the following constant values.</p>
+<table>
+<colgroup align="left" />
+<colgroup align="left" />
+<colgroup align="left" />
+<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
+<tr><td><code>text1</code></td><td>0</td><td></td></tr>
+<tr><td><code>text2</code></td><td>1</td><td></td></tr>
+<tr><td><code>icon_uri</code></td><td>2</td><td></td></tr>
+<tr><td><code>intent_action</code></td><td>3</td><td></td></tr>
+<tr><td><code>intent_data</code></td><td>4</td><td></td></tr>
+<tr><td><code>intent_data_id</code></td><td>5</td><td></td></tr>
+<tr><td><code>intent_extra_data</code></td><td>6</td><td></td></tr>
+<tr><td><code>large_icon_uri</code></td><td>7</td><td></td></tr>
+<tr><td><code>intent_activity</code></td><td>8</td><td></td></tr>
+</table>
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="settingsDescription"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        settingsDescription
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>A localized string to describe this apps data within the global search apps settings.
+      Optional. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="subsectionSeparator"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        subsectionSeparator
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Subsection separator. Optional. If not provided, the section is not split into
+      subsections. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="trimmable"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        trimmable
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Indicates if documents from this corpus can be trimmed when the index reaches its quota.
+      Optional; defaults to <code>true</code>. 
+         <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="uiCompass"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1656,6 +2394,77 @@
 
 
 
+<A NAME="version"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        version
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The version of the corpus. Optional; defaults to <code>"0"</code>. This string must not change
+      between configurations. 
+         <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="weight"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        weight
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The weight of the section. Optional; defaults to 1. 
+         <p>Must be an integer value, such as "<code>100</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="zOrderOnTop"></A>
 
 <div class="jd-details api apilevel-"> 
diff --git a/docs/html/reference/com/google/android/gms/R.color.html b/docs/html/reference/com/google/android/gms/R.color.html
index 3de6912..09d6686 100644
--- a/docs/html/reference/com/google/android/gms/R.color.html
+++ b/docs/html/reference/com/google/android/gms/R.color.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -962,7 +962,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -981,7 +981,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1000,7 +1000,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1029,7 +1029,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1093,7 +1093,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/R.drawable.html b/docs/html/reference/com/google/android/gms/R.drawable.html
index fb67137..98bfa77 100644
--- a/docs/html/reference/com/google/android/gms/R.drawable.html
+++ b/docs/html/reference/com/google/android/gms/R.drawable.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -1093,7 +1093,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1112,7 +1112,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1131,7 +1131,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1160,7 +1160,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1224,7 +1224,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/R.html b/docs/html/reference/com/google/android/gms/R.html
index 1fb4827..239efc8 100644
--- a/docs/html/reference/com/google/android/gms/R.html
+++ b/docs/html/reference/com/google/android/gms/R.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -900,7 +900,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -919,7 +919,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -938,7 +938,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -967,7 +967,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1031,7 +1031,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/R.id.html b/docs/html/reference/com/google/android/gms/R.id.html
index c2a894e..fd76dfe 100644
--- a/docs/html/reference/com/google/android/gms/R.id.html
+++ b/docs/html/reference/com/google/android/gms/R.id.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -778,11 +778,99 @@
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#html">html</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#hybrid">hybrid</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
       
     
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#icon_uri">icon_uri</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#intent_action">intent_action</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#intent_activity">intent_activity</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#intent_data">intent_data</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#intent_data_id">intent_data_id</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#intent_extra_data">intent_extra_data</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#large_icon_uri">large_icon_uri</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
       <tr class=" api apilevel-" >
           <td class="jd-typecol"><nobr>
           public
@@ -811,6 +899,28 @@
           static
           
           int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#plain">plain</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#rfc822">rfc822</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#satellite">satellite</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -827,6 +937,28 @@
       </tr>
       
     
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#text1">text1</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          
+          int</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#text2">text2</a></td>
+          <td class="jd-descrcol" width="100%"></td>
+      </tr>
+      
+    
 
 </table>
 
@@ -884,7 +1016,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -903,7 +1035,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -922,7 +1054,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -951,7 +1083,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1015,7 +1147,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1109,6 +1241,34 @@
 
 
 
+<A NAME="html"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        html
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="hybrid"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1137,6 +1297,202 @@
 
 
 
+<A NAME="icon_uri"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        icon_uri
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="intent_action"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        intent_action
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="intent_activity"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        intent_activity
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="intent_data"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        intent_data
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="intent_data_id"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        intent_data_id
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="intent_extra_data"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        intent_extra_data
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="large_icon_uri"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        large_icon_uri
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="none"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1193,6 +1549,62 @@
 
 
 
+<A NAME="plain"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        plain
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="rfc822"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        rfc822
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="satellite"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1249,6 +1661,62 @@
 
 
 
+<A NAME="text1"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        text1
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="text2"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+         
+        int
+      </span>
+        text2
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    
+    </div>
+</div>
+
+
+
 
 <!-- Public ctors -->
 
diff --git a/docs/html/reference/com/google/android/gms/R.string.html b/docs/html/reference/com/google/android/gms/R.string.html
index 9a353cd..a8ac442 100644
--- a/docs/html/reference/com/google/android/gms/R.string.html
+++ b/docs/html/reference/com/google/android/gms/R.string.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -1087,7 +1087,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1106,7 +1106,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1125,7 +1125,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1154,7 +1154,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1218,7 +1218,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/R.styleable.html b/docs/html/reference/com/google/android/gms/R.styleable.html
index a307d5a..397d0d8 100644
--- a/docs/html/reference/com/google/android/gms/R.styleable.html
+++ b/docs/html/reference/com/google/android/gms/R.styleable.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -772,13 +772,105 @@
     
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_contentProviderUri">Corpus_contentProviderUri</a></td>
+        <td class="jd-descrcol" width="100%"><p>The URI of the content provider that the index should crawl to get the data for this
+    corpus.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_id">Corpus_id</a></td>
+        <td class="jd-descrcol" width="100%"><p>The ID of the corpus.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_trimmable">Corpus_trimmable</a></td>
+        <td class="jd-descrcol" width="100%"><p>Indicates if documents from this corpus can be trimmed when the index reaches its quota.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_version">Corpus_version</a></td>
+        <td class="jd-descrcol" width="100%"><p>The version of the corpus.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchCorpus_enabled">GlobalSearchCorpus_enabled</a></td>
+        <td class="jd-descrcol" width="100%"><p>Whether or not global search is enabled for this corpus.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_content">GlobalSearchSection_content</a></td>
+        <td class="jd-descrcol" width="100%"><p>The content of this global search section.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_sectionId">GlobalSearchSection_sectionId</a></td>
+        <td class="jd-descrcol" width="100%"><p>The global search section ID for this mapping.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentAction">GlobalSearch_defaultIntentAction</a></td>
+        <td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_action</code>.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentActivity">GlobalSearch_defaultIntentActivity</a></td>
+        <td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_aactivity</code>.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentData">GlobalSearch_defaultIntentData</a></td>
+        <td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_data</code>.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_enabled">GlobalSearch_enabled</a></td>
+        <td class="jd-descrcol" width="100%"><p>Whether or not global search is enabled for this app.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_label">GlobalSearch_label</a></td>
+        <td class="jd-descrcol" width="100%"><p>A localized string to identify this apps data within the global search app.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_settingsDescription">GlobalSearch_settingsDescription</a></td>
+        <td class="jd-descrcol" width="100%"><p>A localized string to describe this apps data within the global search apps settings.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraBearing">MapAttrs_cameraBearing</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraBearing">cameraBearing</a></code>
           attribute's value can be found in the <code><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs">MapAttrs</a></code> array.</td>
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTargetLat">MapAttrs_cameraTargetLat</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTargetLat">cameraTargetLat</a></code>
@@ -786,7 +878,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTargetLng">MapAttrs_cameraTargetLng</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTargetLng">cameraTargetLng</a></code>
@@ -794,7 +886,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTilt">MapAttrs_cameraTilt</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTilt">cameraTilt</a></code>
@@ -802,7 +894,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraZoom">MapAttrs_cameraZoom</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraZoom">cameraZoom</a></code>
@@ -810,7 +902,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_mapType">MapAttrs_mapType</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#mapType">mapType</a></code>
@@ -818,7 +910,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiCompass">MapAttrs_uiCompass</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiCompass">uiCompass</a></code>
@@ -826,7 +918,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiRotateGestures">MapAttrs_uiRotateGestures</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiRotateGestures">uiRotateGestures</a></code>
@@ -834,7 +926,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiScrollGestures">MapAttrs_uiScrollGestures</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiScrollGestures">uiScrollGestures</a></code>
@@ -842,7 +934,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiTiltGestures">MapAttrs_uiTiltGestures</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiTiltGestures">uiTiltGestures</a></code>
@@ -850,7 +942,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiZoomControls">MapAttrs_uiZoomControls</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiZoomControls">uiZoomControls</a></code>
@@ -858,7 +950,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiZoomGestures">MapAttrs_uiZoomGestures</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiZoomGestures">uiZoomGestures</a></code>
@@ -866,7 +958,7 @@
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_useViewLifecycle">MapAttrs_useViewLifecycle</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#useViewLifecycle">useViewLifecycle</a></code>
@@ -874,7 +966,7 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_zOrderOnTop">MapAttrs_zOrderOnTop</a></td>
         <td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#zOrderOnTop">zOrderOnTop</a></code>
@@ -882,6 +974,48 @@
     </tr>
     
     
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_format">Section_format</a></td>
+        <td class="jd-descrcol" width="100%"><p>The format of the section.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_id">Section_id</a></td>
+        <td class="jd-descrcol" width="100%"><p>The ID of the section.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_indexPrefixes">Section_indexPrefixes</a></td>
+        <td class="jd-descrcol" width="100%"><p>Indicates if this section should support prefix matching.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_noIndex">Section_noIndex</a></td>
+        <td class="jd-descrcol" width="100%"><p>Indicates if this section should not be indexed.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_subsectionSeparator">Section_subsectionSeparator</a></td>
+        <td class="jd-descrcol" width="100%"><p>Subsection separator.</td>
+    </tr>
+    
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_weight">Section_weight</a></td>
+        <td class="jd-descrcol" width="100%"><p>The weight of the section.</td>
+    </tr>
+    
+    
 
 </table>
 
@@ -902,11 +1036,80 @@
           static
           final
           int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#AppDataSearch">AppDataSearch</a></td>
+          <td class="jd-descrcol" width="100%">Applications that index data using AppDataSearch must provide their corpus configuration
+    in an XML file, typically called <code>appdatasearch.xml</code>.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus">Corpus</a></td>
+          <td class="jd-descrcol" width="100%">The <code>Corpus</code> element represents a corpus within AppDataSearch.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch">GlobalSearch</a></td>
+          <td class="jd-descrcol" width="100%">The <code>GlobalSearch </code> element should be included if you want your apps data to appear
+    in the global search app.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchCorpus">GlobalSearchCorpus</a></td>
+          <td class="jd-descrcol" width="100%">Each <code>Corpus</code> element should include a <code>GlobalSearchCorpus</code> element if the
+    corpus is to appear in the global search app.</td>
+      </tr>
+      
+    
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection">GlobalSearchSection</a></td>
+          <td class="jd-descrcol" width="100%">This element provides a mapping of sections from this corpus to a global search section.</td>
+      </tr>
+      
+    
+      <tr class=" api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs">MapAttrs</a></td>
           <td class="jd-descrcol" width="100%">Attributes that can be used with a MapAttrs.</td>
       </tr>
       
     
+      <tr class="alt-color api apilevel-" >
+          <td class="jd-typecol"><nobr>
+          public
+          static
+          final
+          int[]</nobr></td>
+          <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section">Section</a></td>
+          <td class="jd-descrcol" width="100%">The <code>Section</code> element represents a section within a corpus.</td>
+      </tr>
+      
+    
 
 </table>
 
@@ -964,7 +1167,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -983,7 +1186,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1002,7 +1205,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1031,7 +1234,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1095,7 +1298,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1186,6 +1389,639 @@
 
 
 
+<A NAME="Corpus_contentProviderUri"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Corpus_contentProviderUri
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The URI of the content provider that the index should crawl to get the data for this
+    corpus. Required. This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                2
+                (0x00000002)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Corpus_id"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Corpus_id
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The ID of the corpus. Required. This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Corpus_trimmable"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Corpus_trimmable
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Indicates if documents from this corpus can be trimmed when the index reaches its quota.
+      Optional; defaults to <code>true</code>. 
+
+
+          <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                3
+                (0x00000003)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Corpus_version"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Corpus_version
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The version of the corpus. Optional; defaults to <code>"0"</code>. This string must not change
+      between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                1
+                (0x00000001)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearchCorpus_enabled"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearchCorpus_enabled
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Whether or not global search is enabled for this corpus. Optional; defaults to
+      <code>true</code>. If set to <code>false</code>, it will be treated as if the <code>GlobalSearchCorpus</code>
+      element did not exist. 
+
+
+          <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearchSection_content"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearchSection_content
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The content of this global search section. This is a global search section template string.
+      It should contain a reference to a string which can change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                1
+                (0x00000001)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearchSection_sectionId"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearchSection_sectionId
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The global search section ID for this mapping. 
+
+
+          <p>Must be one of the following constant values.</p>
+<table>
+<colgroup align="left" />
+<colgroup align="left" />
+<colgroup align="left" />
+<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
+<tr><td><code>text1</code></td><td>0</td><td></td></tr>
+<tr><td><code>text2</code></td><td>1</td><td></td></tr>
+<tr><td><code>icon_uri</code></td><td>2</td><td></td></tr>
+<tr><td><code>intent_action</code></td><td>3</td><td></td></tr>
+<tr><td><code>intent_data</code></td><td>4</td><td></td></tr>
+<tr><td><code>intent_data_id</code></td><td>5</td><td></td></tr>
+<tr><td><code>intent_extra_data</code></td><td>6</td><td></td></tr>
+<tr><td><code>large_icon_uri</code></td><td>7</td><td></td></tr>
+<tr><td><code>intent_activity</code></td><td>8</td><td></td></tr>
+</table>
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_defaultIntentAction"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_defaultIntentAction
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The default value for the global search section <code>default_intent_action</code>. Optional.
+      This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                3
+                (0x00000003)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_defaultIntentActivity"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_defaultIntentActivity
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The default value for the global search section <code>default_intent_aactivity</code>. Optional.
+      This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                5
+                (0x00000005)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_defaultIntentData"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_defaultIntentData
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The default value for the global search section <code>default_intent_data</code>. Optional.
+      This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                4
+                (0x00000004)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_enabled"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_enabled
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Whether or not global search is enabled for this app. Optional; defaults to <code>true</code>.
+      If set to <code>false</code>, it will be treated as if the <code>GlobalSearch</code> element did not
+      exist. 
+
+
+          <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_label"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_label
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>A localized string to identify this apps data within the global search app. Required. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                1
+                (0x00000001)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch_settingsDescription"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        GlobalSearch_settingsDescription
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>A localized string to describe this apps data within the global search apps settings.
+      Optional. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                2
+                (0x00000002)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 <A NAME="MapAttrs_cameraBearing"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1850,6 +2686,294 @@
 
 
 
+<A NAME="Section_format"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_format
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The format of the section. Optional; default to <code>plain</code>. 
+
+
+          <p>Must be one of the following constant values.</p>
+<table>
+<colgroup align="left" />
+<colgroup align="left" />
+<colgroup align="left" />
+<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
+<tr><td><code>plain</code></td><td>0</td><td></td></tr>
+<tr><td><code>html</code></td><td>1</td><td></td></tr>
+<tr><td><code>rfc822</code></td><td>2</td><td></td></tr>
+</table>
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                1
+                (0x00000001)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Section_id"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_id
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The ID of the section. Required. This string must not change between configurations. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Section_indexPrefixes"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_indexPrefixes
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Indicates if this section should support prefix matching. Optional; defaults to
+      <code>false</code>. 
+
+
+          <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                4
+                (0x00000004)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Section_noIndex"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_noIndex
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Indicates if this section should not be indexed. Optional; defaults to <code>false</code>. 
+
+
+          <p>Must be a boolean value, either "<code>true</code>" or "<code>false</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                2
+                (0x00000002)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Section_subsectionSeparator"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_subsectionSeparator
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>Subsection separator. Optional. If not provided, the section is not split into
+      subsections. 
+
+
+          <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                5
+                (0x00000005)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="Section_weight"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        Section_weight
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p><p>The weight of the section. Optional; defaults to 1. 
+
+
+          <p>Must be an integer value, such as "<code>100</code>".
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+          <p>This is a private symbol.</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                3
+                (0x00000003)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 
 <!-- Fields -->
 
@@ -1860,6 +2984,224 @@
 
 
 
+<A NAME="AppDataSearch"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        AppDataSearch
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Applications that index data using AppDataSearch must provide their corpus configuration
+    in an XML file, typically called <code>appdatasearch.xml</code>. This file is referenced in your
+    manifest with a meta-data tag with the name <code>android.gms.appdatasearch</code> in the
+    <code>Application</code> section of the <code>AndroidManifest.xml</code>.
+
+    This is the root element of the XML file. It should contain a <code>Corpus</code> element for each
+    corpus, and optionally a <code>GlobalSearch</code> element. 
+</p></div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="Corpus"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        Corpus
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The <code>Corpus</code> element represents a corpus within AppDataSearch. You should provide one
+    <code>Corpus</code> element for each corpus used by your application. This element should contain
+    a <code>Section</code> element for each section within the corpus. 
+           <p>Includes the following attributes:</p>
+           <table>
+           <colgroup align="left" />
+           <colgroup align="left" />
+           <tr><th>Attribute</th><th>Description</th></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_contentProviderUri">com.google.android.gms:contentProviderUri</a></code></code></td><td> The URI of the content provider that the index should crawl to get the data for this
+    corpus.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_id">com.google.android.gms:id</a></code></code></td><td> The ID of the corpus.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_trimmable">com.google.android.gms:trimmable</a></code></code></td><td> Indicates if documents from this corpus can be trimmed when the index reaches its quota.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_version">com.google.android.gms:version</a></code></code></td><td> The version of the corpus.</td></tr>
+           </table></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_contentProviderUri">Corpus_contentProviderUri</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_id">Corpus_id</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_trimmable">Corpus_trimmable</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_version">Corpus_version</a></code></li>
+      </ul>
+  </div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearch"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        GlobalSearch
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The <code>GlobalSearch </code> element should be included if you want your apps data to appear
+    in the global search app. It should be contained within the top level <code>AppDataSearch</code>
+    element. If you opt into global search, you should provide a <code>GlobalSearchCorpus</code>
+    element within at least one of your <code>Corpus</code> elements. 
+           <p>Includes the following attributes:</p>
+           <table>
+           <colgroup align="left" />
+           <colgroup align="left" />
+           <tr><th>Attribute</th><th>Description</th></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentAction">com.google.android.gms:defaultIntentAction</a></code></code></td><td> The default value for the global search section <code>default_intent_action</code>.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentActivity">com.google.android.gms:defaultIntentActivity</a></code></code></td><td> The default value for the global search section <code>default_intent_aactivity</code>.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentData">com.google.android.gms:defaultIntentData</a></code></code></td><td> The default value for the global search section <code>default_intent_data</code>.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_enabled">com.google.android.gms:enabled</a></code></code></td><td> Whether or not global search is enabled for this app.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_label">com.google.android.gms:label</a></code></code></td><td> A localized string to identify this apps data within the global search app.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_settingsDescription">com.google.android.gms:settingsDescription</a></code></code></td><td> A localized string to describe this apps data within the global search apps settings.</td></tr>
+           </table></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentAction">GlobalSearch_defaultIntentAction</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentActivity">GlobalSearch_defaultIntentActivity</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentData">GlobalSearch_defaultIntentData</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_enabled">GlobalSearch_enabled</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_label">GlobalSearch_label</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_settingsDescription">GlobalSearch_settingsDescription</a></code></li>
+      </ul>
+  </div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearchCorpus"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        GlobalSearchCorpus
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Each <code>Corpus</code> element should include a <code>GlobalSearchCorpus</code> element if the
+    corpus is to appear in the global search app. This element contains several
+    <code>GlobalSearchSection</code> elements describing how to present results from this corpus within
+    the global search app.
+
+    Including this element within a <code>Corpus</code> will only have any effect if you also include a
+    <code>GlobalSearch</code> element within the top level <code>AppDataSearch</code> element. 
+           <p>Includes the following attributes:</p>
+           <table>
+           <colgroup align="left" />
+           <colgroup align="left" />
+           <tr><th>Attribute</th><th>Description</th></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchCorpus_enabled">com.google.android.gms:enabled</a></code></code></td><td> Whether or not global search is enabled for this corpus.</td></tr>
+           </table></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchCorpus_enabled">GlobalSearchCorpus_enabled</a></code></li>
+      </ul>
+  </div>
+
+    
+    </div>
+</div>
+
+
+
+<A NAME="GlobalSearchSection"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        GlobalSearchSection
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>This element provides a mapping of sections from this corpus to a global search section.
+    You should provide one such element for each global search section you care about within
+    the <code>GlobalSearchCorpus</code> element. 
+           <p>Includes the following attributes:</p>
+           <table>
+           <colgroup align="left" />
+           <colgroup align="left" />
+           <tr><th>Attribute</th><th>Description</th></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_content">com.google.android.gms:content</a></code></code></td><td> The content of this global search section.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_sectionId">com.google.android.gms:sectionId</a></code></code></td><td> The global search section ID for this mapping.</td></tr>
+           </table></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_content">GlobalSearchSection_content</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_sectionId">GlobalSearchSection_sectionId</a></code></li>
+      </ul>
+  </div>
+
+    
+    </div>
+</div>
+
+
+
 <A NAME="MapAttrs"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1913,6 +3255,52 @@
 
 
 
+<A NAME="Section"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int[]
+      </span>
+        Section
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The <code>Section</code> element represents a section within a corpus. Each corpus can contain
+    up to 16 sections. 
+           <p>Includes the following attributes:</p>
+           <table>
+           <colgroup align="left" />
+           <colgroup align="left" />
+           <tr><th>Attribute</th><th>Description</th></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_format">com.google.android.gms:format</a></code></code></td><td> The format of the section.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_id">com.google.android.gms:id</a></code></code></td><td> The ID of the section.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_indexPrefixes">com.google.android.gms:indexPrefixes</a></code></code></td><td> Indicates if this section should support prefix matching.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_noIndex">com.google.android.gms:noIndex</a></code></code></td><td> Indicates if this section should not be indexed.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_subsectionSeparator">com.google.android.gms:subsectionSeparator</a></code></code></td><td> Subsection separator.</td></tr>
+           <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_weight">com.google.android.gms:weight</a></code></code></td><td> The weight of the section.</td></tr>
+           </table></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_format">Section_format</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_id">Section_id</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_indexPrefixes">Section_indexPrefixes</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_noIndex">Section_noIndex</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_subsectionSeparator">Section_subsectionSeparator</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#Section_weight">Section_weight</a></code></li>
+      </ul>
+  </div>
+
+    
+    </div>
+</div>
+
+
+
 
 <!-- Public ctors -->
 
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppState.html b/docs/html/reference/com/google/android/gms/appstate/AppState.html
index 564f1eb..8fa7007 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppState.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppState.html
@@ -797,7 +797,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppState.html#getConflictVersion()">getConflictVersion</a></span>()</nobr>
@@ -845,7 +845,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppState.html#getLocalVersion()">getLocalVersion</a></span>()</nobr>
@@ -921,6 +921,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1013,7 +1031,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getConflictVersion</span>
       <span class="normal">()</span>
@@ -1115,7 +1133,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getLocalVersion</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html b/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
index 785f9e7..6f74d48 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
index a6e3ed9..9f128c4 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -792,7 +792,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#AppStateClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">AppStateClient.Builder</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#AppStateClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">AppStateClient.Builder</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Create a new Builder object to be used to build a corresponding AppStateClient object.</div>
   
@@ -842,7 +842,7 @@
             <a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html">AppStateClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(String accountName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(<a href="/reference/java/lang/String.html">String</a> accountName)</nobr>
         
         <div class="jd-descrdiv">Specify an account name on the device that should be used.</div>
   
@@ -860,7 +860,7 @@
             <a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html">AppStateClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(String... scopes)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(<a href="/reference/java/lang/String.html">String...</a> scopes)</nobr>
         
         <div class="jd-descrdiv">Set the scopes to use when building the AppStateClient object.</div>
   
@@ -890,7 +890,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -909,7 +909,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -928,7 +928,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -957,7 +957,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1021,7 +1021,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1130,7 +1130,7 @@
         
       </span>
       <span class="sympad">AppStateClient.Builder</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1243,7 +1243,7 @@
         <a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html">AppStateClient.Builder</a>
       </span>
       <span class="sympad">setAccountName</span>
-      <span class="normal">(String accountName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> accountName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1289,7 +1289,7 @@
         <a href="/reference/com/google/android/gms/appstate/AppStateClient.Builder.html">AppStateClient.Builder</a>
       </span>
       <span class="sympad">setScopes</span>
-      <span class="normal">(String... scopes)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> scopes)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
index cf381b3..6c2138f 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
@@ -691,7 +691,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -1186,7 +1186,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#resolveState(com.google.android.gms.appstate.OnStateLoadedListener, int, java.lang.String, byte[])">resolveState</a></span>(<a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html">OnStateLoadedListener</a> listener, int stateKey, String resolvedVersion, byte[] resolvedData)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#resolveState(com.google.android.gms.appstate.OnStateLoadedListener, int, java.lang.String, byte[])">resolveState</a></span>(<a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html">OnStateLoadedListener</a> listener, int stateKey, <a href="/reference/java/lang/String.html">String</a> resolvedVersion, byte[] resolvedData)</nobr>
         
         <div class="jd-descrdiv">Resolve a previously detected conflict in app state data.</div>
   
@@ -1324,7 +1324,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1343,7 +1343,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1362,7 +1362,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1391,7 +1391,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1455,7 +1455,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2858,7 +2858,7 @@
         void
       </span>
       <span class="sympad">resolveState</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html">OnStateLoadedListener</a> listener, int stateKey, String resolvedVersion, byte[] resolvedData)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html">OnStateLoadedListener</a> listener, int stateKey, <a href="/reference/java/lang/String.html">String</a> resolvedVersion, byte[] resolvedData)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html b/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
index 3303424..96c0af9 100644
--- a/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
@@ -751,7 +751,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html#onStateConflict(int, java.lang.String, byte[], byte[])">onStateConflict</a></span>(int stateKey, String resolvedVersion, byte[] localData, byte[] serverData)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/appstate/OnStateLoadedListener.html#onStateConflict(int, java.lang.String, byte[], byte[])">onStateConflict</a></span>(int stateKey, <a href="/reference/java/lang/String.html">String</a> resolvedVersion, byte[] localData, byte[] serverData)</nobr>
         
         <div class="jd-descrdiv">Called when a conflict is detected while loading app state.</div>
   
@@ -837,7 +837,7 @@
         void
       </span>
       <span class="sympad">onStateConflict</span>
-      <span class="normal">(int stateKey, String resolvedVersion, byte[] localData, byte[] serverData)</span>
+      <span class="normal">(int stateKey, <a href="/reference/java/lang/String.html">String</a> resolvedVersion, byte[] localData, byte[] serverData)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html b/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
index ce8663d..d9dd2ad 100644
--- a/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
+++ b/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
@@ -703,7 +703,7 @@
   
 
   
-    extends Exception<br/>
+    extends <a href="/reference/java/lang/Exception.html">Exception</a><br/>
   
   
   
@@ -723,7 +723,7 @@
 
     <tr>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -731,7 +731,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -741,7 +741,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -911,7 +911,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html#GoogleAuthException(java.lang.String)">GoogleAuthException</a></span>(String err)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html#GoogleAuthException(java.lang.String)">GoogleAuthException</a></span>(<a href="/reference/java/lang/String.html">String</a> err)</nobr>
         
   </td></tr>
 
@@ -945,7 +945,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -964,7 +964,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -980,7 +980,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -996,7 +996,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -1012,7 +1012,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -1028,7 +1028,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -1044,10 +1044,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1063,7 +1063,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1079,7 +1079,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1111,7 +1111,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1124,7 +1124,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1147,7 +1147,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1166,7 +1166,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1185,7 +1185,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1214,7 +1214,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1278,7 +1278,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1389,7 +1389,7 @@
         
       </span>
       <span class="sympad">GoogleAuthException</span>
-      <span class="normal">(String err)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> err)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html b/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
index c60e6e3..370fe09 100644
--- a/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
+++ b/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -750,7 +750,7 @@
        try {
           // Retrieve a token for the given account and scope. It will always return either
           // a non-empty String or throw an exception.
-          final String token = <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a></code>.<code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">getToken(Context, String, String)</a></code>(context, email, scope);
+          final String token = GoogleAuthUtil.getToken(context, email, scope);
           // Do work with token.
           ...
           if (server indicates token is invalid) {
@@ -846,23 +846,26 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#GOOGLE_ACCOUNT_TYPE">GOOGLE_ACCOUNT_TYPE</a></td>
-        <td class="jd-descrcol" width="100%"></td>
+        <td class="jd-descrcol" width="100%">Google Account type string.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#KEY_HANDLE_NOTIFICATION">KEY_HANDLE_NOTIFICATION</a></td>
-        <td class="jd-descrcol" width="100%"></td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#KEY_REQUEST_VISIBLE_ACTIVITIES">KEY_REQUEST_VISIBLE_ACTIVITIES</a></td>
+        <td class="jd-descrcol" width="100%">Bundle key for specifying which user's app activity (moment) types can
+ be written to Google.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#KEY_REQUEST_VISIBLE_ACTIVITIES">KEY_REQUEST_VISIBLE_ACTIVITIES</a></td>
-        <td class="jd-descrcol" width="100%">Bundle key for specifying which user's app activity (moment) types can be written to Google.</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#KEY_SUPPRESS_PROGRESS_SCREEN">KEY_SUPPRESS_PROGRESS_SCREEN</a></td>
+        <td class="jd-descrcol" width="100%">Adding KEY_SUPPRESS_PROGRESS will suppress the progress screen shown
+ when getting a token when added as a boolean <code>true</code> option while
+ calling <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>.</td>
     </tr>
     
     
@@ -897,13 +900,12 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">getToken</a></span>(Context context, String accountName, String scope)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">getToken</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope)</nobr>
         
-        <div class="jd-descrdiv">Authenticates the user and returns a valid Google authentication token,
- or throws an exception if there was an error getting a token.</div>
+        <div class="jd-descrdiv">See <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>.</div>
   
   </td></tr>
 
@@ -916,13 +918,13 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken</a></span>(Context context, String accountName, String scope, Bundle extras)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras)</nobr>
         
-        <div class="jd-descrdiv">Authenticates the user and returns a valid Google authentication token, or throws an
- <code><a href="/reference/java/lang/Exception.html">Exception</a></code> if there was an error while getting the token.</div>
+        <div class="jd-descrdiv">Gets a token to be consumed by some specified services on behalf of a
+ specified user account.</div>
   
   </td></tr>
 
@@ -935,10 +937,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification</a></span>(Context context, String accountName, String scope, Bundle extras)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras)</nobr>
         
         <div class="jd-descrdiv">Authenticates the user and returns a valid Google authentication token, or throws an
  <code><a href="/reference/java/lang/Exception.html">Exception</a></code> if there was an error while getting the token.</div>
@@ -954,10 +956,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, android.content.Intent)">getTokenWithNotification</a></span>(Context context, String accountName, String scope, Bundle extras, Intent callback)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, android.content.Intent)">getTokenWithNotification</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras, <a href="/reference/android/content/Intent.html">Intent</a> callback)</nobr>
         
         <div class="jd-descrdiv">Authenticates the user and returns a valid Google authentication token, or throws an
  <code><a href="/reference/java/lang/Exception.html">Exception</a></code> if there was an error while getting the token.</div>
@@ -973,10 +975,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, java.lang.String, android.os.Bundle)">getTokenWithNotification</a></span>(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, java.lang.String, android.os.Bundle)">getTokenWithNotification</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras, <a href="/reference/java/lang/String.html">String</a> authority, <a href="/reference/android/os/Bundle.html">Bundle</a> syncBundle)</nobr>
         
         <div class="jd-descrdiv">Authenticates the user and returns a valid Google authentication token, or throws an
  <code><a href="/reference/java/lang/Exception.html">Exception</a></code> if there was an error while getting the token.</div>
@@ -995,7 +997,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#invalidateToken(android.content.Context, java.lang.String)">invalidateToken</a></span>(Context context, String token)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#invalidateToken(android.content.Context, java.lang.String)">invalidateToken</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> token)</nobr>
         
         <div class="jd-descrdiv">Invalidates the specified token with respect to the <code><a href="/reference/android/content/Context.html">Context</a></code>.</div>
   
@@ -1025,7 +1027,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1044,7 +1046,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1063,7 +1065,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1092,7 +1094,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1156,7 +1158,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1255,7 +1257,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         GOOGLE_ACCOUNT_TYPE
     </h4>
@@ -1267,7 +1269,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Google Account type string. Used for various calls to <code><a href="/reference/android/accounts/AccountManager.html">AccountManager</a></code>.
+</p></div>
 
     
         <div class="jd-tagdata">
@@ -1284,43 +1287,6 @@
 
 
 
-<A NAME="KEY_HANDLE_NOTIFICATION"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        KEY_HANDLE_NOTIFICATION
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "handle_notification"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
 <A NAME="KEY_REQUEST_VISIBLE_ACTIVITIES"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1329,7 +1295,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_REQUEST_VISIBLE_ACTIVITIES
     </h4>
@@ -1341,17 +1307,17 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Bundle key for specifying which user's app activity (moment) types can be written to Google.
- The list of activity types are represented as a space-separated string passed in the extras
- Bundle when calling <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>.
+  <div class="jd-tagdata jd-tagdescr"><p>Bundle key for specifying which user's app activity (moment) types can
+ be written to Google. The list of activity types are represented as a
+ space-separated string passed in the extras Bundle when calling <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>.
 
  <p>
  This bundle key should be included in the extras Bundle when calling
- <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code> and should only be used when
- requesting the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope.
+ <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code> and
+ should only be used when requesting the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope.
 
- See <a href="https://developers.google.com/+/api/moment-types">Types of moments</a>
- for the full list of valid activity types. Example usage:
+ See <a href="https://developers.google.com/+/api/moment-types">Types of
+ moments</a> for the full list of valid activity types. Example usage:
  <pre>
      Bundle bundle = new Bundle();
      bundle.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,
@@ -1375,6 +1341,47 @@
 
 
 
+<A NAME="KEY_SUPPRESS_PROGRESS_SCREEN"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        <a href="/reference/java/lang/String.html">String</a>
+      </span>
+        KEY_SUPPRESS_PROGRESS_SCREEN
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Adding KEY_SUPPRESS_PROGRESS will suppress the progress screen shown
+ when getting a token when added as a boolean <code>true</code> option while
+ calling <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>. This is
+ useful for apps that provide their own splash screens on initialization.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                "suppressProgressScreen"
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 
 <!-- Fields -->
 
@@ -1405,10 +1412,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getToken</span>
-      <span class="normal">(Context context, String accountName, String scope)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1418,122 +1425,22 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Authenticates the user and returns a valid Google authentication token,
- or throws an exception if there was an error getting a token.
- <p>
- The exception thrown depends upon the underlying error and support for
- recovery. <code><a href="/reference/java/io/IOException.html">IOException</a></code>s will be thrown if the underlying error
- might be solved by some intelligent retry strategy. Alternatively,
- <code><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a></code>s represent a broad class of
- <code><a href="/reference/java/lang/Exception.html">Exception</a></code>s that cannot be recovered from programmatically. Some
- may be fatal errors stemming from implementation errors while others may
- require user intervention. <code><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></code>s are
- GoogleAuthExceptions that provide <code><a href="/reference/android/content/Intent.html">Intent</a></code>s which can be used to
- initiate any user intervention required to fix the underlying error. For
- example, a UserRecoverableAuthExceptions intent might lead to a request
- for a user's consent or present the user with a device policy manager
- download screen. <code><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></code>s are
- UserRecoverableAuthExceptions along with a connection status code which
- allows clients to create a localized <code><a href="/reference/android/app/Dialog.html">Dialog</a></code> using
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, android.app.Activity, int)</a></code>.
- Finally, this method is blocking and shouldn't be called in the main
- event thread. If so an <code><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></code> will be thrown.
- <p>
- Which exceptions should be handled and how depends on the context of the
- code. For example in the case of an <code><a href="/reference/android/app/Activity.html">Activity</a></code> where
- the user is actively engaged:
-
- <pre>
- String token;
- try {
-     token = GoogleAuthUtil.getToken(context, accountName, scope);
- } catch (GooglePlayServicesAvailabilityException playEx) {
-     Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
-         playEx.getConnectionStatusCode(),
-         Activity.this,
-         AUTH_REQUEST_CODE);
-     // Use the dialog to present to the user.
- } catch (UserRecoverableAutException recoverableException) {
-     Intent recoveryIntent = recoverableException.getIntent();
-     // Use the intent in a custom dialog or just startActivityForResult.
- } catch (GoogleAuthException authEx) {
-     // This is likely unrecoverable.
-     Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMesssage(), authEx);
- } catch (IOException ioEx) {
-     Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
-     doExponentialBackoff();
- }
- </pre>
-
- On the other hand, explicitly handling a
- <code><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></code> in the absence of a UI
- thread may not be worthwhile.  Instead a <code><a href="/reference/android/app/Notification.html">Notification</a></code>
- may be preferable.
-
- <pre>
- String token;
- try {
-     token = GoogleAuthUtil.getToken(context, accountName, scope);
- } catch (UserRecoverableAuthException recoverableException) {
-     Intent recoveryIntent = recoverableException.getIntent();
-     // Use the intent to create a Notification.
- } catch (GoogleAuthException authEx) {
-     // This is likely unrecoverable.
-     Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMessage(), authEx);
- } catch (IOException ioEx) {
-     Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
-     doExponentialBackoff();
- }
- </pre></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>context</td>
-          <td>Context associated with the desired token.</td>
-        </tr>
-        <tr>
-          <th>accountName</td>
-          <td>String representing the authenticating user account.</td>
-        </tr>
-        <tr>
-          <th>scope</td>
-          <td>String representing the authentication scope. To specify multiple scopes,
-        separate them with a space (for example, "oauth2:scope1 scope2 scope3").</td>
-        </tr>
-      </table>
-  </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Returns</h5>
-      <ul class="nolist"><li>String containing a valid token.</li></ul>
-  </div>
+  <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getToken(Context, String, String, Bundle)</a></code>.
+</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></td>
-            <td>containing the appropriate
-         connection status error code.</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
+            <td></td>
         </tr>  
         <tr>
             <th><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></td>
-            <td>wrapping an Intent for initiating
-         user intervention. The wrapped intent must be called with <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code>.</td>
+            <td></td>
         </tr>  
         <tr>
             <th><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a></td>
-            <td>signaling a potentially unrecoverable
-         authentication error.</td>
-        </tr>  
-        <tr>
-            <th>IOException</td>
-            <td>signaling a potentially transient error.</td>
-        </tr>  
-        <tr>
-            <th>IllegalArgumentException</td>
-            <td>if the method is invoked in the main
-         event thread.
-</td>
+            <td></td>
         </tr>
       </table>
   </div>
@@ -1552,10 +1459,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getToken</span>
-      <span class="normal">(Context context, String accountName, String scope, Bundle extras)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1565,33 +1472,31 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Authenticates the user and returns a valid Google authentication token, or throws an
- <code><a href="/reference/java/lang/Exception.html">Exception</a></code> if there was an error while getting the token.
+  <div class="jd-tagdata jd-tagdescr"><p>Gets a token to be consumed by some specified services on behalf of a
+ specified user account. How the token is consumed depends
+ on the scope string provided. Note that this method requires substantial
+ network IO and thus should be run off the UI thread.  In the event of an
+ error, one of several <code><a href="/reference/java/lang/Exception.html">Exception</a></code>s will be thrown.
  <p>
- The exception thrown depends upon the underlying error and support for
- recovery. <code><a href="/reference/java/io/IOException.html">IOException</a></code>s will be thrown if the underlying error
- might be solved by some intelligent retry strategy. Alternatively,
- <code><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a></code>s represent a broad class of
- <code><a href="/reference/java/lang/Exception.html">Exception</a></code>s that cannot be recovered from programmatically. Some
- may be fatal errors stemming from implementation errors while others may
- require user intervention. <code><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></code>s are
- GoogleAuthExceptions that provide <code><a href="/reference/android/content/Intent.html">Intent</a></code>s which can be used to
- initiate any user intervention required to fix the underlying error. For
- example, a UserRecoverableAuthExceptions intent might lead to a request
- for a user's consent or present the user with a device policy manager
- download screen. <code><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></code>s are
- UserRecoverableAuthExceptions along with a connection status code which
- allows clients to create a localized <code><a href="/reference/android/app/Dialog.html">Dialog</a></code> using
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, android.app.Activity, int)</a></code>.
- Finally, this method is blocking and shouldn't be called in the main
- event thread. If so an <code><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></code> will be thrown.
+ In the case of a transient (typically network related) error a
+ <code><a href="/reference/java/io/IOException.html">IOException</a></code> will be thrown. It is left to clients to implement
+ a backoff/abandonment strategy appropriate to their latency
+ requirements. If user intervention is required to provide consent, enter
+ a password, etc, a <code><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a></code> will be thrown.
+ To initiate the user recovery workflow, clients must start the
+ <code><a href="/reference/android/content/Intent.html">Intent</a></code> returned by
+ <code><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html#getIntent()">getIntent()</a></code> for result. Upon
+ successfully returning a client should invoke this method again to get
+ a token. In the cases of errors that are neither transient nor
+ recoverable by the the user, a <code><a href="/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a></code> will be
+ thrown.  These errors will typically result from client errors (e.g.
+ providing an invalid scope).
  <p>
- Which exceptions should be handled and how depends on the context of the
- code. For example in the case of an <code><a href="/reference/android/app/Activity.html">Activity</a></code> where
- the user is actively engaged:
-
+ By way of example, client code might have a block of code executing in a
+ locally declared implementation of <code><a href="/reference/java/lang/Thread.html">Thread</a></code> or
+ <code><a href="/reference/android/os/AsyncTask.html">AsyncTask</a></code> as follows:
  <pre>
- String token;
+ String token = null;
  try {
      token = GoogleAuthUtil.getToken(context, accountName, scope, bundle);
  } catch (GooglePlayServicesAvailabilityException playEx) {
@@ -1603,35 +1508,26 @@
  } catch (UserRecoverableAutException recoverableException) {
      Intent recoveryIntent = recoverableException.getIntent();
      // Use the intent in a custom dialog or just startActivityForResult.
+     Activity.this.startActivityForResult(recoveryIntent, REQUEST_CODE);
  } catch (GoogleAuthException authEx) {
      // This is likely unrecoverable.
      Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMesssage(), authEx);
+     return;
  } catch (IOException ioEx) {
      Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
      doExponentialBackoff();
+     return;
+ }
+ if (token != null) {
+     makeNetworkApiCallwithToken(token);
  }
  </pre>
-
- On the other hand, explicitly handling a
- <code><a href="/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a></code> in the absence of a UI
- thread may not be worthwhile.  Instead a <code><a href="/reference/android/app/Notification.html">Notification</a></code>
- may be preferable.
-
- <pre>
- String token;
- try {
-     token = GoogleAuthUtil.getToken(context, accountName, scope, bundle);
- } catch (UserRecoverableAutException recoverableException) {
-     Intent recoveryIntent = recoverableException.getIntent();
-     // Use the intent to create a Notification.
- } catch (GoogleAuthException authEx) {
-     // This is likely unrecoverable.
-     Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMesssage(), authEx);
- } catch (IOException ioEx) {
-     Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
-     doExponentialBackoff();
- }
- </pre></p></div>
+ <p>
+ Those clients that have their own splash screens may wish to suppress
+ the progress screen provided by Google Play services.  The
+ "Signing in..." progress screen provided by Google Play services by
+ including setting <code><a href="/reference/com/google/android/gms/auth/GoogleAuthUtil.html#KEY_SUPPRESS_PROGRESS_SCREEN">KEY_SUPPRESS_PROGRESS_SCREEN</a></code> to true
+ in the supplied options <code><a href="/reference/android/os/Bundle.html">Bundle</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -1645,8 +1541,9 @@
         </tr>
         <tr>
           <th>scope</td>
-          <td>String representing the authentication scope.  To specify multiple scopes,
-        separate them with a space (for example, "oauth2:scope1 scope2 scope3").</td>
+          <td>String representing the authentication scope.  To specify
+        multiple scopes, separate them with a space (for example,
+        "oauth2:scope1 scope2 scope3").</td>
         </tr>
         <tr>
           <th>extras</td>
@@ -1678,11 +1575,11 @@
          authentication error.</td>
         </tr>  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>signaling a potentially transient error.</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the method is invoked in the main
          event thread.
 </td>
@@ -1704,10 +1601,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTokenWithNotification</span>
-      <span class="normal">(Context context, String accountName, String scope, Bundle extras)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1787,11 +1684,11 @@
          authentication error.</td>
         </tr>  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>signaling a potentially transient error.</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the method is invoked in the main
          event thread.
 </td>
@@ -1813,10 +1710,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTokenWithNotification</span>
-      <span class="normal">(Context context, String accountName, String scope, Bundle extras, Intent callback)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras, <a href="/reference/android/content/Intent.html">Intent</a> callback)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1905,11 +1802,11 @@
          authentication error.</td>
         </tr>  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>signaling a potentially transient error.</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the method is invoked in the main
          event thread.
 </td>
@@ -1931,10 +1828,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTokenWithNotification</span>
-      <span class="normal">(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> accountName, <a href="/reference/java/lang/String.html">String</a> scope, <a href="/reference/android/os/Bundle.html">Bundle</a> extras, <a href="/reference/java/lang/String.html">String</a> authority, <a href="/reference/android/os/Bundle.html">Bundle</a> syncBundle)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2027,11 +1924,11 @@
          authentication error.</td>
         </tr>  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>signaling a potentially transient error.</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the method is invoked in the main
          event thread.
 </td>
@@ -2056,7 +1953,7 @@
         void
       </span>
       <span class="sympad">invalidateToken</span>
-      <span class="normal">(Context context, String token)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/java/lang/String.html">String</a> token)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html b/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
index 367621c..85b5c5d 100644
--- a/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
+++ b/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
@@ -743,7 +743,7 @@
 
     <tr>
          	
-        <td colspan="6" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="6" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -751,7 +751,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -761,7 +761,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -943,7 +943,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html#getIntent()">getIntent</a></span>()</nobr>
@@ -972,7 +972,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -991,7 +991,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -1007,7 +1007,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -1023,7 +1023,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -1039,7 +1039,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -1055,7 +1055,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -1071,10 +1071,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1090,7 +1090,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1106,7 +1106,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1138,7 +1138,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1151,7 +1151,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1174,7 +1174,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1193,7 +1193,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1212,7 +1212,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1241,7 +1241,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1305,7 +1305,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html b/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
index d4b214c..63a17c8 100644
--- a/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
+++ b/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
@@ -735,7 +735,7 @@
 
     <tr>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -743,7 +743,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -753,7 +753,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -896,7 +896,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html#UserRecoverableAuthException(java.lang.String, android.content.Intent)">UserRecoverableAuthException</a></span>(String msg, Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html#UserRecoverableAuthException(java.lang.String, android.content.Intent)">UserRecoverableAuthException</a></span>(<a href="/reference/java/lang/String.html">String</a> msg, <a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
   </td></tr>
 
@@ -922,7 +922,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableAuthException.html#getIntent()">getIntent</a></span>()</nobr>
@@ -959,7 +959,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -978,7 +978,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -994,7 +994,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -1010,7 +1010,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -1026,7 +1026,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -1042,7 +1042,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -1058,10 +1058,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1077,7 +1077,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1093,7 +1093,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1125,7 +1125,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1138,7 +1138,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1161,7 +1161,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1180,7 +1180,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1199,7 +1199,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1228,7 +1228,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1292,7 +1292,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1403,7 +1403,7 @@
         
       </span>
       <span class="sympad">UserRecoverableAuthException</span>
-      <span class="normal">(String msg, Intent intent)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> msg, <a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1444,7 +1444,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getIntent</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html b/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
index 76fd3e0..eb1315e 100644
--- a/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
+++ b/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
@@ -732,7 +732,7 @@
 
     <tr>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -740,7 +740,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -750,7 +750,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -861,7 +861,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html#UserRecoverableNotifiedException(java.lang.String)">UserRecoverableNotifiedException</a></span>(String err)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html#UserRecoverableNotifiedException(java.lang.String)">UserRecoverableNotifiedException</a></span>(<a href="/reference/java/lang/String.html">String</a> err)</nobr>
         
   </td></tr>
 
@@ -897,7 +897,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -916,7 +916,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -932,7 +932,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -948,7 +948,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -964,7 +964,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -980,7 +980,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -996,10 +996,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1015,7 +1015,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1031,7 +1031,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1063,7 +1063,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1076,7 +1076,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1099,7 +1099,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1118,7 +1118,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1137,7 +1137,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1166,7 +1166,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1230,7 +1230,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1341,7 +1341,7 @@
         
       </span>
       <span class="sympad">UserRecoverableNotifiedException</span>
-      <span class="normal">(String err)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> err)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/AccountPicker.html b/docs/html/reference/com/google/android/gms/common/AccountPicker.html
index 93da937..36e7efb 100644
--- a/docs/html/reference/com/google/android/gms/common/AccountPicker.html
+++ b/docs/html/reference/com/google/android/gms/common/AccountPicker.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -791,10 +791,10 @@
             
             static
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/AccountPicker.html#newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle)">newChooseAccountIntent</a></span>(Account selectedAccount, ArrayList&lt;Account&gt; allowableAccounts, String[] allowableAccountTypes, boolean alwaysPromptForAccount, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/AccountPicker.html#newChooseAccountIntent(android.accounts.Account, java.util.ArrayList<android.accounts.Account>, java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], android.os.Bundle)">newChooseAccountIntent</a></span>(<a href="/reference/android/accounts/Account.html">Account</a> selectedAccount, <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/accounts/Account.html">Account</a>&gt; allowableAccounts, <a href="/reference/java/lang/String.html">String[]</a> allowableAccountTypes, boolean alwaysPromptForAccount, <a href="/reference/java/lang/String.html">String</a> descriptionOverrideText, <a href="/reference/java/lang/String.html">String</a> addAccountAuthTokenType, <a href="/reference/java/lang/String.html">String[]</a> addAccountRequiredFeatures, <a href="/reference/android/os/Bundle.html">Bundle</a> addAccountOptions)</nobr>
         
         <div class="jd-descrdiv">Returns an intent to an <code><a href="/reference/android/app/Activity.html">Activity</a></code> that prompts the user to choose from a list of
  accounts.</div>
@@ -825,7 +825,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -844,7 +844,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -863,7 +863,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -892,7 +892,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -956,7 +956,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1070,10 +1070,10 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">newChooseAccountIntent</span>
-      <span class="normal">(Account selectedAccount, ArrayList&lt;Account&gt; allowableAccounts, String[] allowableAccountTypes, boolean alwaysPromptForAccount, String descriptionOverrideText, String addAccountAuthTokenType, String[] addAccountRequiredFeatures, Bundle addAccountOptions)</span>
+      <span class="normal">(<a href="/reference/android/accounts/Account.html">Account</a> selectedAccount, <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/accounts/Account.html">Account</a>&gt; allowableAccounts, <a href="/reference/java/lang/String.html">String[]</a> allowableAccountTypes, boolean alwaysPromptForAccount, <a href="/reference/java/lang/String.html">String</a> descriptionOverrideText, <a href="/reference/java/lang/String.html">String</a> addAccountAuthTokenType, <a href="/reference/java/lang/String.html">String[]</a> addAccountRequiredFeatures, <a href="/reference/android/os/Bundle.html">Bundle</a> addAccountOptions)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/ConnectionResult.html b/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
index 5ca070d..a4d15c8 100644
--- a/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
+++ b/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -891,7 +891,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#ConnectionResult(int, android.app.PendingIntent)">ConnectionResult</a></span>(int statusCode, PendingIntent pendingIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#ConnectionResult(int, android.app.PendingIntent)">ConnectionResult</a></span>(int statusCode, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent)</nobr>
         
         <div class="jd-descrdiv">Creates a connection result.</div>
   
@@ -937,7 +937,7 @@
             
             
             
-            PendingIntent</nobr>
+            <a href="/reference/android/app/PendingIntent.html">PendingIntent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#getResolution()">getResolution</a></span>()</nobr>
@@ -995,7 +995,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult</a></span>(Activity activity, int requestCode)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode)</nobr>
         
         <div class="jd-descrdiv">Resolves an error by starting any intents requiring user
  interaction.</div>
@@ -1011,7 +1011,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/ConnectionResult.html#toString()">toString</a></span>()</nobr>
@@ -1042,7 +1042,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1061,7 +1061,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1080,7 +1080,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1109,7 +1109,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1173,7 +1173,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1777,7 +1777,7 @@
         
       </span>
       <span class="sympad">ConnectionResult</span>
-      <span class="normal">(int statusCode, PendingIntent pendingIntent)</span>
+      <span class="normal">(int statusCode, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1866,7 +1866,7 @@
          
          
          
-        PendingIntent
+        <a href="/reference/android/app/PendingIntent.html">PendingIntent</a>
       </span>
       <span class="sympad">getResolution</span>
       <span class="normal">()</span>
@@ -1974,7 +1974,7 @@
         void
       </span>
       <span class="sympad">startResolutionForResult</span>
-      <span class="normal">(Activity activity, int requestCode)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2007,7 +2007,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IntentSender.SendIntentException</td>
+            <th><a href="/reference/android/content/IntentSender.SendIntentException.html">IntentSender.SendIntentException</a></td>
             <td>If the resolution intent has been canceled or is
              no longer able to execute the request.
 </td>
@@ -2029,7 +2029,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
index dad761f..09730fa 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
@@ -754,7 +754,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected</a></span>(Bundle connectionHint)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> connectionHint)</nobr>
         
         <div class="jd-descrdiv">After calling <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#connect()">connect()</a></code>, this method will be invoked
  asynchronously when the connect request has successfully completed.</div>
@@ -841,7 +841,7 @@
         void
       </span>
       <span class="sympad">onConnected</span>
-      <span class="normal">(Bundle connectionHint)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> connectionHint)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
index 96f7aa1..a7ed6db 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
@@ -706,7 +706,7 @@
   
 
   
-    extends Exception<br/>
+    extends <a href="/reference/java/lang/Exception.html">Exception</a><br/>
   
   
   
@@ -726,7 +726,7 @@
 
     <tr>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -734,7 +734,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -744,7 +744,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -894,7 +894,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -913,7 +913,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -929,7 +929,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -945,7 +945,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -961,7 +961,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -977,7 +977,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -993,10 +993,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1012,7 +1012,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1028,7 +1028,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1060,7 +1060,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1073,7 +1073,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1096,7 +1096,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1115,7 +1115,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1134,7 +1134,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1163,7 +1163,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1227,7 +1227,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
index a9d9023..12b8b1b 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -775,7 +775,7 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GOOGLE_PLAY_SERVICES_PACKAGE">GOOGLE_PLAY_SERVICES_PACKAGE</a></td>
         <td class="jd-descrcol" width="100%">Package name for Google Play services.</td>
     </tr>
@@ -790,7 +790,7 @@
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#GOOGLE_PLAY_STORE_PACKAGE">GOOGLE_PLAY_STORE_PACKAGE</a></td>
         <td class="jd-descrcol" width="100%">Package name for Google Play services.</td>
     </tr>
@@ -827,10 +827,10 @@
             
             static
             
-            Dialog</nobr>
+            <a href="/reference/android/app/Dialog.html">Dialog</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)">getErrorDialog</a></span>(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int, android.content.DialogInterface.OnCancelListener)">getErrorDialog</a></span>(int errorCode, <a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode, <a href="/reference/android/content/DialogInterface.OnCancelListener.html">DialogInterface.OnCancelListener</a> cancelListener)</nobr>
         
         <div class="jd-descrdiv">Returns a dialog to address the provided errorCode.</div>
   
@@ -845,10 +845,10 @@
             
             static
             
-            Dialog</nobr>
+            <a href="/reference/android/app/Dialog.html">Dialog</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog</a></span>(int errorCode, Activity activity, int requestCode)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog</a></span>(int errorCode, <a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode)</nobr>
         
         <div class="jd-descrdiv">Returns a dialog to address the provided errorCode.</div>
   
@@ -863,10 +863,10 @@
             
             static
             
-            PendingIntent</nobr>
+            <a href="/reference/android/app/PendingIntent.html">PendingIntent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorPendingIntent(int, android.content.Context, int)">getErrorPendingIntent</a></span>(int errorCode, Context context, int requestCode)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorPendingIntent(int, android.content.Context, int)">getErrorPendingIntent</a></span>(int errorCode, <a href="/reference/android/content/Context.html">Context</a> context, int requestCode)</nobr>
         
         <div class="jd-descrdiv">Returns a PendingIntent to address the provided errorCode.</div>
   
@@ -881,7 +881,7 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorString(int)">getErrorString</a></span>(int errorCode)</nobr>
@@ -900,10 +900,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)">getOpenSourceSoftwareLicenseInfo</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getOpenSourceSoftwareLicenseInfo(android.content.Context)">getOpenSourceSoftwareLicenseInfo</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Returns the open source software license information for the Google Play services
  application, or null if Google Play services is not available on this device.</div>
@@ -919,10 +919,10 @@
             
             static
             
-            Context</nobr>
+            <a href="/reference/android/content/Context.html">Context</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteContext(android.content.Context)">getRemoteContext</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteContext(android.content.Context)">getRemoteContext</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">This gets the Context object of the Buddy APK.</div>
   
@@ -937,10 +937,10 @@
             
             static
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteResource(android.content.Context)">getRemoteResource</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getRemoteResource(android.content.Context)">getRemoteResource</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">This gets the Resources object of the Buddy APK.</div>
   
@@ -958,7 +958,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Verifies that Google Play services is installed and enabled on this device, and that the
  version installed on this device is no older than the one required by this client.</div>
@@ -1007,7 +1007,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1026,7 +1026,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1045,7 +1045,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1074,7 +1074,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1138,7 +1138,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1237,7 +1237,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         GOOGLE_PLAY_SERVICES_PACKAGE
     </h4>
@@ -1296,8 +1296,8 @@
         <span class="jd-tagtitle">Constant Value: </span>
         <span>
             
-                3159000
-                (0x003033d8)
+                3225000
+                (0x003135a8)
             
         </span>
         </div>
@@ -1315,7 +1315,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         GOOGLE_PLAY_STORE_PACKAGE
     </h4>
@@ -1375,10 +1375,10 @@
          
          
          
-        Dialog
+        <a href="/reference/android/app/Dialog.html">Dialog</a>
       </span>
       <span class="sympad">getErrorDialog</span>
-      <span class="normal">(int errorCode, Activity activity, int requestCode, DialogInterface.OnCancelListener cancelListener)</span>
+      <span class="normal">(int errorCode, <a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode, <a href="/reference/android/content/DialogInterface.OnCancelListener.html">DialogInterface.OnCancelListener</a> cancelListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1432,10 +1432,10 @@
          
          
          
-        Dialog
+        <a href="/reference/android/app/Dialog.html">Dialog</a>
       </span>
       <span class="sympad">getErrorDialog</span>
-      <span class="normal">(int errorCode, Activity activity, int requestCode)</span>
+      <span class="normal">(int errorCode, <a href="/reference/android/app/Activity.html">Activity</a> activity, int requestCode)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1484,10 +1484,10 @@
          
          
          
-        PendingIntent
+        <a href="/reference/android/app/PendingIntent.html">PendingIntent</a>
       </span>
       <span class="sympad">getErrorPendingIntent</span>
-      <span class="normal">(int errorCode, Context context, int requestCode)</span>
+      <span class="normal">(int errorCode, <a href="/reference/android/content/Context.html">Context</a> context, int requestCode)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1534,7 +1534,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getErrorString</span>
       <span class="normal">(int errorCode)</span>
@@ -1565,10 +1565,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getOpenSourceSoftwareLicenseInfo</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1596,10 +1596,10 @@
          
          
          
-        Context
+        <a href="/reference/android/content/Context.html">Context</a>
       </span>
       <span class="sympad">getRemoteContext</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1633,10 +1633,10 @@
          
          
          
-        Resources
+        <a href="/reference/android/content/res/Resources.html">Resources</a>
       </span>
       <span class="sympad">getRemoteResource</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1671,7 +1671,7 @@
         int
       </span>
       <span class="sympad">isGooglePlayServicesAvailable</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/Scopes.html b/docs/html/reference/com/google/android/gms/common/Scopes.html
index 6ffb3296..04d9531 100644
--- a/docs/html/reference/com/google/android/gms/common/Scopes.html
+++ b/docs/html/reference/com/google/android/gms/common/Scopes.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -770,21 +770,21 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#APP_STATE">APP_STATE</a></td>
         <td class="jd-descrcol" width="100%">Scope for using the App State service.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#GAMES">GAMES</a></td>
         <td class="jd-descrcol" width="100%">Scope for accessing data from Google Play Games.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></td>
         <td class="jd-descrcol" width="100%">OAuth 2.0 scope for accessing the user's name, basic profile info, list of people in the
  user's circles, and writing app activities to Google.</td>
@@ -792,7 +792,7 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_PROFILE">PLUS_PROFILE</a></td>
         <td class="jd-descrcol" width="100%">OAuth 2.0 scope for accessing the user's Google+ profile data.</td>
     </tr>
@@ -835,7 +835,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -854,7 +854,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -873,7 +873,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -902,7 +902,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -966,7 +966,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1065,7 +1065,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         APP_STATE
     </h4>
@@ -1103,7 +1103,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         GAMES
     </h4>
@@ -1141,7 +1141,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         PLUS_LOGIN
     </h4>
@@ -1188,7 +1188,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         PLUS_PROFILE
     </h4>
diff --git a/docs/html/reference/com/google/android/gms/common/SignInButton.html b/docs/html/reference/com/google/android/gms/common/SignInButton.html
index 1c00a4c..f3b4257 100644
--- a/docs/html/reference/com/google/android/gms/common/SignInButton.html
+++ b/docs/html/reference/com/google/android/gms/common/SignInButton.html
@@ -771,7 +771,7 @@
   
 
   
-    extends FrameLayout<br/>
+    extends <a href="/reference/android/widget/FrameLayout.html">FrameLayout</a><br/>
   
   
   
@@ -780,7 +780,7 @@
   
       implements 
       
-        View.OnClickListener 
+        <a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> 
       
   
   
@@ -796,7 +796,7 @@
 
     <tr>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -804,7 +804,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">android.view.View</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/android/view/View.html">android.view.View</a></td>
     </tr>
     
 
@@ -814,7 +814,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">android.view.ViewGroup</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a></td>
     </tr>
     
 
@@ -826,7 +826,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">android.widget.FrameLayout</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/android/widget/FrameLayout.html">android.widget.FrameLayout</a></td>
     </tr>
     
 
@@ -1426,7 +1426,7 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol">VIEW_LOG_TAG</td>
         <td class="jd-descrcol" width="100%"></td>
     </tr>
@@ -1499,7 +1499,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ALPHA</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1818,7 +1818,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1829,7 +1829,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1840,7 +1840,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1851,7 +1851,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1862,7 +1862,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1895,7 +1895,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1906,7 +1906,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1928,7 +1928,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1939,7 +1939,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1986,7 +1986,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context)">SignInButton</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context)">SignInButton</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
   </td></tr>
 
@@ -2002,7 +2002,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context, android.util.AttributeSet)">SignInButton</a></span>(Context context, AttributeSet attrs)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context, android.util.AttributeSet)">SignInButton</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</nobr>
         
   </td></tr>
 
@@ -2018,7 +2018,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context, android.util.AttributeSet, int)">SignInButton</a></span>(Context context, AttributeSet attrs, int defStyle)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#SignInButton(android.content.Context, android.util.AttributeSet, int)">SignInButton</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, int defStyle)</nobr>
         
   </td></tr>
 
@@ -2047,7 +2047,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#onClick(android.view.View)">onClick</a></span>(View view)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#onClick(android.view.View)">onClick</a></span>(<a href="/reference/android/view/View.html">View</a> view)</nobr>
         
   </td></tr>
 
@@ -2097,7 +2097,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#setOnClickListener(android.view.View.OnClickListener)">setOnClickListener</a></span>(View.OnClickListener listener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/SignInButton.html#setOnClickListener(android.view.View.OnClickListener)">setOnClickListener</a></span>(<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> listener)</nobr>
         
   </td></tr>
 
@@ -2161,7 +2161,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.widget.FrameLayout
+  <a href="/reference/android/widget/FrameLayout.html">android.widget.FrameLayout</a>
 
 <div id="inherited-methods-android.widget.FrameLayout">
   <div id="inherited-methods-android.widget.FrameLayout-list"
@@ -2183,7 +2183,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">checkLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2199,7 +2199,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">draw</span>(Canvas arg0)</nobr>
+        <span class="sympad">draw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2231,7 +2231,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+        <span class="sympad">gatherTransparentRegion</span>(<a href="/reference/android/graphics/Region.html">Region</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2244,7 +2244,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
@@ -2260,10 +2260,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2276,10 +2276,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2308,7 +2308,7 @@
             
             
             
-            Drawable</nobr>
+            <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getForeground</span>()</nobr>
@@ -2375,7 +2375,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onInitializeAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2455,7 +2455,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setForeground</span>(Drawable arg0)</nobr>
+        <span class="sympad">setForeground</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2519,7 +2519,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">verifyDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2539,7 +2539,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.ViewGroup
+  <a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a>
 
 <div id="inherited-methods-android.view.ViewGroup">
   <div id="inherited-methods-android.view.ViewGroup-list"
@@ -2561,7 +2561,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2577,7 +2577,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2609,7 +2609,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2625,7 +2625,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2641,7 +2641,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2657,7 +2657,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2673,7 +2673,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2689,7 +2689,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2705,7 +2705,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2, boolean arg3)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2, boolean arg3)</nobr>
         
   </td></tr>
 
@@ -2721,7 +2721,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2737,7 +2737,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachLayoutAnimationParameters</span>(View arg0, ViewGroup.LayoutParams arg1, int arg2, int arg3)</nobr>
+        <span class="sympad">attachLayoutAnimationParameters</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1, int arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -2753,7 +2753,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachViewToParent</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">attachViewToParent</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2769,7 +2769,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2801,7 +2801,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">checkLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2817,7 +2817,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2833,7 +2833,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">cleanupLayoutState</span>(View arg0)</nobr>
+        <span class="sympad">cleanupLayoutState</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2849,7 +2849,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2929,7 +2929,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">detachViewFromParent</span>(View arg0)</nobr>
+        <span class="sympad">detachViewFromParent</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2977,7 +2977,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3025,7 +3025,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3041,7 +3041,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchFreezeSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchFreezeSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3057,7 +3057,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3073,7 +3073,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3089,7 +3089,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3105,7 +3105,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3121,7 +3121,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3137,7 +3137,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3153,7 +3153,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3169,7 +3169,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3249,7 +3249,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchThawSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchThawSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3265,7 +3265,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3281,7 +3281,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3297,7 +3297,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3313,7 +3313,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3377,7 +3377,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">drawChild</span>(Canvas arg0, View arg1, long arg2)</nobr>
+        <span class="sympad">drawChild</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -3409,7 +3409,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">endViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">endViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3422,7 +3422,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -3441,7 +3441,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3457,7 +3457,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3470,10 +3470,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3489,7 +3489,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3505,7 +3505,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+        <span class="sympad">gatherTransparentRegion</span>(<a href="/reference/android/graphics/Region.html">Region</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3518,7 +3518,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
@@ -3534,10 +3534,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3550,10 +3550,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3566,7 +3566,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getChildAt</span>(int arg0)</nobr>
@@ -3633,7 +3633,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildStaticTransformation</span>(View arg0, Transformation arg1)</nobr>
+        <span class="sympad">getChildStaticTransformation</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/animation/Transformation.html">Transformation</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3649,7 +3649,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -3678,7 +3678,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusedChild</span>()</nobr>
@@ -3694,7 +3694,7 @@
             
             
             
-            LayoutAnimationController</nobr>
+            <a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimation</span>()</nobr>
@@ -3710,7 +3710,7 @@
             
             
             
-            Animation.AnimationListener</nobr>
+            <a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimationListener</span>()</nobr>
@@ -3793,7 +3793,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">indexOfChild</span>(View arg0)</nobr>
+        <span class="sympad">indexOfChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3809,7 +3809,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3822,10 +3822,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3953,7 +3953,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChild</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">measureChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3969,7 +3969,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChildWithMargins</span>(View arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+        <span class="sympad">measureChildWithMargins</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
         
   </td></tr>
 
@@ -4001,7 +4001,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetDescendantRectToMyCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetDescendantRectToMyCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4017,7 +4017,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetRectIntoDescendantCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetRectIntoDescendantCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4081,7 +4081,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4097,7 +4097,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4129,7 +4129,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4145,7 +4145,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">onRequestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4161,7 +4161,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4209,7 +4209,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeDetachedView</span>(View arg0, boolean arg1)</nobr>
+        <span class="sympad">removeDetachedView</span>(<a href="/reference/android/view/View.html">View</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -4225,7 +4225,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4257,7 +4257,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeViewInLayout</span>(View arg0)</nobr>
+        <span class="sympad">removeViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4305,7 +4305,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4321,7 +4321,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -4353,7 +4353,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4369,7 +4369,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4385,7 +4385,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4561,7 +4561,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimation</span>(LayoutAnimationController arg0)</nobr>
+        <span class="sympad">setLayoutAnimation</span>(<a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4577,7 +4577,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimationListener</span>(Animation.AnimationListener arg0)</nobr>
+        <span class="sympad">setLayoutAnimationListener</span>(<a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4625,7 +4625,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnHierarchyChangeListener</span>(ViewGroup.OnHierarchyChangeListener arg0)</nobr>
+        <span class="sympad">setOnHierarchyChangeListener</span>(<a href="/reference/android/view/ViewGroup.OnHierarchyChangeListener.html">ViewGroup.OnHierarchyChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4705,7 +4705,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4721,7 +4721,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -4753,7 +4753,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">startViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4769,7 +4769,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4789,7 +4789,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.View
+  <a href="/reference/android/view/View.html">android.view.View</a>
 
 <div id="inherited-methods-android.view.View">
   <div id="inherited-methods-android.view.View-list"
@@ -4811,7 +4811,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4827,7 +4827,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -4843,7 +4843,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -4891,7 +4891,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4923,7 +4923,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">announceForAccessibility</span>(CharSequence arg0)</nobr>
+        <span class="sympad">announceForAccessibility</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5115,7 +5115,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkInputConnectionProxy</span>(View arg0)</nobr>
+        <span class="sympad">checkInputConnectionProxy</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5307,7 +5307,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5339,7 +5339,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5387,7 +5387,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5403,7 +5403,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5419,7 +5419,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5435,7 +5435,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5451,7 +5451,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5467,7 +5467,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5483,7 +5483,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5499,7 +5499,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5515,7 +5515,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5531,7 +5531,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5547,7 +5547,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5627,7 +5627,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5643,7 +5643,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5659,7 +5659,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5675,7 +5675,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5739,7 +5739,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">draw</span>(Canvas arg0)</nobr>
+        <span class="sympad">draw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5768,7 +5768,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -5784,7 +5784,7 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findViewById</span>(int arg0)</nobr>
@@ -5800,10 +5800,10 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewWithTag</span>(Object arg0)</nobr>
+        <span class="sympad">findViewWithTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5819,7 +5819,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -5835,7 +5835,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5848,7 +5848,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">focusSearch</span>(int arg0)</nobr>
@@ -5912,7 +5912,7 @@
             
             
             
-            Animation</nobr>
+            <a href="/reference/android/view/animation/Animation.html">Animation</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getAnimation</span>()</nobr>
@@ -5928,7 +5928,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getApplicationWindowToken</span>()</nobr>
@@ -5944,7 +5944,7 @@
             
             
             
-            Drawable</nobr>
+            <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getBackground</span>()</nobr>
@@ -6040,7 +6040,7 @@
             
             
             
-            CharSequence</nobr>
+            <a href="/reference/java/lang/CharSequence.html">CharSequence</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContentDescription</span>()</nobr>
@@ -6056,7 +6056,7 @@
             final
             
             
-            Context</nobr>
+            <a href="/reference/android/content/Context.html">Context</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContext</span>()</nobr>
@@ -6072,7 +6072,7 @@
             
             
             
-            ContextMenu.ContextMenuInfo</nobr>
+            <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContextMenuInfo</span>()</nobr>
@@ -6120,7 +6120,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>(boolean arg0)</nobr>
@@ -6136,7 +6136,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>()</nobr>
@@ -6187,7 +6187,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDrawingRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getDrawingRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6248,7 +6248,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusables</span>(int arg0)</nobr>
@@ -6267,7 +6267,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getFocusedRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getFocusedRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6283,7 +6283,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0, Point arg1)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, <a href="/reference/android/graphics/Point.html">Point</a> arg1)</nobr>
         
   </td></tr>
 
@@ -6299,7 +6299,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6312,7 +6312,7 @@
             
             
             
-            Handler</nobr>
+            <a href="/reference/android/os/Handler.html">Handler</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getHandler</span>()</nobr>
@@ -6347,7 +6347,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getHitRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getHitRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6440,7 +6440,7 @@
             
             
             
-            KeyEvent.DispatcherState</nobr>
+            <a href="/reference/android/view/KeyEvent.DispatcherState.html">KeyEvent.DispatcherState</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getKeyDispatcherState</span>()</nobr>
@@ -6472,7 +6472,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutParams</span>()</nobr>
@@ -6539,7 +6539,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getLocalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6584,7 +6584,7 @@
             
             
             
-            Matrix</nobr>
+            <a href="/reference/android/graphics/Matrix.html">Matrix</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMatrix</span>()</nobr>
@@ -6792,7 +6792,7 @@
             
             
             
-            View.OnFocusChangeListener</nobr>
+            <a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getOnFocusChangeListener</span>()</nobr>
@@ -6888,7 +6888,7 @@
             final
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -6904,7 +6904,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -6952,7 +6952,7 @@
             
             
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getResources</span>()</nobr>
@@ -7016,7 +7016,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getRootView</span>()</nobr>
@@ -7272,7 +7272,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>(int arg0)</nobr>
@@ -7288,7 +7288,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>()</nobr>
@@ -7352,7 +7352,7 @@
             
             
             
-            TouchDelegate</nobr>
+            <a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchDelegate</span>()</nobr>
@@ -7368,7 +7368,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchables</span>()</nobr>
@@ -7464,7 +7464,7 @@
             
             
             
-            ViewTreeObserver</nobr>
+            <a href="/reference/android/view/ViewTreeObserver.html">ViewTreeObserver</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getViewTreeObserver</span>()</nobr>
@@ -7544,7 +7544,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getWindowToken</span>()</nobr>
@@ -7579,7 +7579,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getWindowVisibleDisplayFrame</span>(Rect arg0)</nobr>
+        <span class="sympad">getWindowVisibleDisplayFrame</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7720,10 +7720,10 @@
             
             static
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">inflate</span>(Context arg0, int arg1, ViewGroup arg2)</nobr>
+        <span class="sympad">inflate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> arg2)</nobr>
         
   </td></tr>
 
@@ -7739,7 +7739,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeFadingEdge</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeFadingEdge</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7755,7 +7755,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeScrollbars</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeScrollbars</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7771,7 +7771,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidate</span>(Rect arg0)</nobr>
+        <span class="sympad">invalidate</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7819,7 +7819,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8475,7 +8475,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8491,7 +8491,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8520,10 +8520,10 @@
             
             
             
-            InputConnection</nobr>
+            <a href="/reference/android/view/inputmethod/InputConnection.html">InputConnection</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateInputConnection</span>(EditorInfo arg0)</nobr>
+        <span class="sympad">onCreateInputConnection</span>(<a href="/reference/android/view/inputmethod/EditorInfo.html">EditorInfo</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8587,7 +8587,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8603,7 +8603,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDrawScrollBars</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDrawScrollBars</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8619,7 +8619,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFilterTouchEventForSecurity</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onFilterTouchEventForSecurity</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8667,7 +8667,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, Rect arg2)</nobr>
+        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, <a href="/reference/android/graphics/Rect.html">Rect</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8683,7 +8683,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8715,7 +8715,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8731,7 +8731,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onInitializeAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8763,7 +8763,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8779,7 +8779,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8795,7 +8795,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8811,7 +8811,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyPreIme</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyPreIme</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8827,7 +8827,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyShortcut</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyShortcut</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8843,7 +8843,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8907,7 +8907,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8923,7 +8923,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRestoreInstanceState</span>(Parcelable arg0)</nobr>
+        <span class="sympad">onRestoreInstanceState</span>(<a href="/reference/android/os/Parcelable.html">Parcelable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8936,7 +8936,7 @@
             
             
             
-            Parcelable</nobr>
+            <a href="/reference/android/os/Parcelable.html">Parcelable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">onSaveInstanceState</span>()</nobr>
@@ -9035,7 +9035,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9051,7 +9051,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9067,7 +9067,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">onVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -9147,7 +9147,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">performAccessibilityAction</span>(int arg0, Bundle arg1)</nobr>
+        <span class="sympad">performAccessibilityAction</span>(int arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9243,7 +9243,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">post</span>(Runnable arg0)</nobr>
+        <span class="sympad">post</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9259,7 +9259,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -9371,7 +9371,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimation</span>(Runnable arg0)</nobr>
+        <span class="sympad">postOnAnimation</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9387,7 +9387,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimationDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postOnAnimationDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -9419,7 +9419,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeCallbacks</span>(Runnable arg0)</nobr>
+        <span class="sympad">removeCallbacks</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9483,7 +9483,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9563,7 +9563,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9579,7 +9579,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0, boolean arg1)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -9627,7 +9627,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">restoreHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">restoreHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9643,7 +9643,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">saveHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">saveHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9659,7 +9659,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -9723,7 +9723,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9787,7 +9787,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">setAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9803,7 +9803,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackground</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackground</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9835,7 +9835,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackgroundDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackgroundDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9915,7 +9915,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setContentDescription</span>(CharSequence arg0)</nobr>
+        <span class="sympad">setContentDescription</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10219,7 +10219,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayerType</span>(int arg0, Paint arg1)</nobr>
+        <span class="sympad">setLayerType</span>(int arg0, <a href="/reference/android/graphics/Paint.html">Paint</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10235,7 +10235,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">setLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10411,7 +10411,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnClickListener</span>(View.OnClickListener arg0)</nobr>
+        <span class="sympad">setOnClickListener</span>(<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10427,7 +10427,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnCreateContextMenuListener</span>(View.OnCreateContextMenuListener arg0)</nobr>
+        <span class="sympad">setOnCreateContextMenuListener</span>(<a href="/reference/android/view/View.OnCreateContextMenuListener.html">View.OnCreateContextMenuListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10459,7 +10459,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnFocusChangeListener</span>(View.OnFocusChangeListener arg0)</nobr>
+        <span class="sympad">setOnFocusChangeListener</span>(<a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10507,7 +10507,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnKeyListener</span>(View.OnKeyListener arg0)</nobr>
+        <span class="sympad">setOnKeyListener</span>(<a href="/reference/android/view/View.OnKeyListener.html">View.OnKeyListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10523,7 +10523,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnLongClickListener</span>(View.OnLongClickListener arg0)</nobr>
+        <span class="sympad">setOnLongClickListener</span>(<a href="/reference/android/view/View.OnLongClickListener.html">View.OnLongClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10555,7 +10555,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnTouchListener</span>(View.OnTouchListener arg0)</nobr>
+        <span class="sympad">setOnTouchListener</span>(<a href="/reference/android/view/View.OnTouchListener.html">View.OnTouchListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10955,7 +10955,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(int arg0, Object arg1)</nobr>
+        <span class="sympad">setTag</span>(int arg0, <a href="/reference/java/lang/Object.html">Object</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10971,7 +10971,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(Object arg0)</nobr>
+        <span class="sympad">setTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11003,7 +11003,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTouchDelegate</span>(TouchDelegate arg0)</nobr>
+        <span class="sympad">setTouchDelegate</span>(<a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11211,7 +11211,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">startAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11227,7 +11227,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, Object arg2, int arg3)</nobr>
+        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, <a href="/reference/java/lang/Object.html">Object</a> arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -11243,7 +11243,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11259,7 +11259,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11275,7 +11275,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">verifyDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11327,7 +11327,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -11346,7 +11346,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -11365,7 +11365,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11394,7 +11394,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -11458,7 +11458,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -11529,7 +11529,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.graphics.drawable.Drawable.Callback
+  <a href="/reference/android/graphics/drawable/Drawable.Callback.html">android.graphics.drawable.Drawable.Callback</a>
 
 <div id="inherited-methods-android.graphics.drawable.Drawable.Callback">
   <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-list"
@@ -11551,7 +11551,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11567,7 +11567,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -11583,7 +11583,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11603,7 +11603,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.KeyEvent.Callback
+  <a href="/reference/android/view/KeyEvent.Callback.html">android.view.KeyEvent.Callback</a>
 
 <div id="inherited-methods-android.view.KeyEvent.Callback">
   <div id="inherited-methods-android.view.KeyEvent.Callback-list"
@@ -11625,7 +11625,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11641,7 +11641,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11657,7 +11657,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11673,7 +11673,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11693,7 +11693,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.View.OnClickListener
+  <a href="/reference/android/view/View.OnClickListener.html">android.view.View.OnClickListener</a>
 
 <div id="inherited-methods-android.view.View.OnClickListener">
   <div id="inherited-methods-android.view.View.OnClickListener-list"
@@ -11715,7 +11715,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onClick</span>(View arg0)</nobr>
+        <span class="sympad">onClick</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11735,7 +11735,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewManager
+  <a href="/reference/android/view/ViewManager.html">android.view.ViewManager</a>
 
 <div id="inherited-methods-android.view.ViewManager">
   <div id="inherited-methods-android.view.ViewManager-list"
@@ -11757,7 +11757,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11773,7 +11773,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11789,7 +11789,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11809,7 +11809,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewParent
+  <a href="/reference/android/view/ViewParent.html">android.view.ViewParent</a>
 
 <div id="inherited-methods-android.view.ViewParent">
   <div id="inherited-methods-android.view.ViewParent-list"
@@ -11831,7 +11831,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11847,7 +11847,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11863,7 +11863,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11879,7 +11879,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11892,10 +11892,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -11911,7 +11911,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11927,7 +11927,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11940,7 +11940,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -11956,7 +11956,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -11975,7 +11975,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11988,10 +11988,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -12023,7 +12023,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12039,7 +12039,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -12055,7 +12055,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -12119,7 +12119,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -12135,7 +12135,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12151,7 +12151,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12167,7 +12167,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -12187,7 +12187,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.accessibility.AccessibilityEventSource
+  <a href="/reference/android/view/accessibility/AccessibilityEventSource.html">android.view.accessibility.AccessibilityEventSource</a>
 
 <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource">
   <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-list"
@@ -12225,7 +12225,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12485,7 +12485,7 @@
         
       </span>
       <span class="sympad">SignInButton</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12514,7 +12514,7 @@
         
       </span>
       <span class="sympad">SignInButton</span>
-      <span class="normal">(Context context, AttributeSet attrs)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12543,7 +12543,7 @@
         
       </span>
       <span class="sympad">SignInButton</span>
-      <span class="normal">(Context context, AttributeSet attrs, int defStyle)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, int defStyle)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12587,7 +12587,7 @@
         void
       </span>
       <span class="sympad">onClick</span>
-      <span class="normal">(View view)</span>
+      <span class="normal">(<a href="/reference/android/view/View.html">View</a> view)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12685,7 +12685,7 @@
         void
       </span>
       <span class="sympad">setOnClickListener</span>
-      <span class="normal">(View.OnClickListener listener)</span>
+      <span class="normal">(<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> listener)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html b/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
index e5f2ea93..b45a205 100644
--- a/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
+++ b/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
@@ -685,7 +685,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -694,7 +694,7 @@
   
       implements 
       
-        Iterable&lt;T&gt; 
+        <a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;T&gt; 
       
   
   
@@ -710,7 +710,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -970,7 +970,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -1001,7 +1001,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1020,7 +1020,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1039,7 +1039,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1068,7 +1068,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1132,7 +1132,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1203,7 +1203,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1222,7 +1222,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
@@ -1453,7 +1453,7 @@
          
          
          
-        Iterator&lt;T&gt;
+        <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;
       </span>
       <span class="sympad">iterator</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html b/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
index 9f3baa5..a865899 100644
--- a/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
+++ b/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -790,7 +790,7 @@
             
             static
             &lt;T,&nbsp;E&nbsp;extends&nbsp;<a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt;&gt;
-            ArrayList&lt;T&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBufferUtils.html#freezeAndClose(com.google.android.gms.common.data.DataBuffer<E>)">freezeAndClose</a></span>(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a>&lt;E&gt; buffer)</nobr>
@@ -823,7 +823,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -842,7 +842,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -861,7 +861,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -890,7 +890,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -954,7 +954,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1068,7 +1068,7 @@
          
          
          
-        ArrayList&lt;T&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;T&gt;
       </span>
       <span class="sympad">freezeAndClose</span>
       <span class="normal">(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a>&lt;E&gt; buffer)</span>
diff --git a/docs/html/reference/com/google/android/gms/common/data/Freezable.html b/docs/html/reference/com/google/android/gms/common/data/Freezable.html
index 4610b1e..386ab28 100644
--- a/docs/html/reference/com/google/android/gms/common/data/Freezable.html
+++ b/docs/html/reference/com/google/android/gms/common/data/Freezable.html
@@ -954,6 +954,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 
 </table>
 
@@ -1049,6 +1067,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 
 
 
diff --git a/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html b/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
index c51f59f..dc2a816 100644
--- a/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
@@ -751,7 +751,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html#onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable)">onImageLoaded</a></span>(Uri uri, Drawable drawable)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html#onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable)">onImageLoaded</a></span>(<a href="/reference/android/net/Uri.html">Uri</a> uri, <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> drawable)</nobr>
         
         <div class="jd-descrdiv">Listener method invoked when an image has been loaded.</div>
   
@@ -819,7 +819,7 @@
         void
       </span>
       <span class="sympad">onImageLoaded</span>
-      <span class="normal">(Uri uri, Drawable drawable)</span>
+      <span class="normal">(<a href="/reference/android/net/Uri.html">Uri</a> uri, <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> drawable)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/common/images/ImageManager.html b/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
index a89fb11..e78d13e 100644
--- a/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
+++ b/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -816,7 +816,7 @@
             <a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#create(android.content.Context)">create</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#create(android.content.Context)">create</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Returns a new ImageManager for loading images from the network.</div>
   
@@ -834,7 +834,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, android.net.Uri)">loadImage</a></span>(ImageView imageView, Uri uri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, android.net.Uri)">loadImage</a></span>(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, <a href="/reference/android/net/Uri.html">Uri</a> uri)</nobr>
         
         <div class="jd-descrdiv">Loads an image to display from a URI.</div>
   
@@ -852,7 +852,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, int)">loadImage</a></span>(ImageView imageView, int resId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, int)">loadImage</a></span>(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, int resId)</nobr>
         
         <div class="jd-descrdiv">Loads an image to display from the given resource ID.</div>
   
@@ -870,9 +870,10 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(com.google.android.gms.common.images.ImageManager.OnImageLoadedListener, android.net.Uri, int)">loadImage</a></span>(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, Uri uri, int defaultResId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(com.google.android.gms.common.images.ImageManager.OnImageLoadedListener, android.net.Uri, int)">loadImage</a></span>(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri, int defaultResId)</nobr>
         
-        <div class="jd-descrdiv">Load an image to display from a URI.</div>
+        <div class="jd-descrdiv">Load an image to display from a URI, using the given resource ID as the default if no
+ image if found for the given URI.</div>
   
   </td></tr>
 
@@ -888,7 +889,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(com.google.android.gms.common.images.ImageManager.OnImageLoadedListener, android.net.Uri)">loadImage</a></span>(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, Uri uri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(com.google.android.gms.common.images.ImageManager.OnImageLoadedListener, android.net.Uri)">loadImage</a></span>(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</nobr>
         
         <div class="jd-descrdiv">Load an image to display from a URI.</div>
   
@@ -906,9 +907,10 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, android.net.Uri, int)">loadImage</a></span>(ImageView imageView, Uri uri, int defaultResId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, android.net.Uri, int)">loadImage</a></span>(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, <a href="/reference/android/net/Uri.html">Uri</a> uri, int defaultResId)</nobr>
         
-        <div class="jd-descrdiv">Loads an image to display from a URI, using the given resource ID as the default.</div>
+        <div class="jd-descrdiv">Loads an image to display from a URI, using the given resource ID as the default if no
+ image if found for the given URI.</div>
   
   </td></tr>
 
@@ -936,7 +938,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -955,7 +957,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -974,7 +976,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1003,7 +1005,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1067,7 +1069,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1184,7 +1186,7 @@
         <a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a>
       </span>
       <span class="sympad">create</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1227,7 +1229,7 @@
         void
       </span>
       <span class="sympad">loadImage</span>
-      <span class="normal">(ImageView imageView, Uri uri)</span>
+      <span class="normal">(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, <a href="/reference/android/net/Uri.html">Uri</a> uri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1245,9 +1247,9 @@
  <p>
  The result (if non-null) is set on the given image view on the main thread.
  <p>
- Note that if the <code>ImageView</code> used for this call is hosted in a ListAdapter (or any
- other class that recycles <code>ImageView</code> instances), then ALL calls to set the contents of
- that <code>ImageView</code> must be done via one of the calls on this <code>ImageManager</code>.</p></div>
+ Note that if the <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> used for this call is hosted in a ListAdapter (or any
+ other class that recycles <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> instances), then ALL calls to set the contents of
+ that <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> must be done via one of the calls on this <code><a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -1257,15 +1259,11 @@
         </tr>
         <tr>
           <th>uri</td>
-          <td>URI to load the image data from.</td>
+          <td>URI to load the image data from.
+</td>
         </tr>
       </table>
   </div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/images/ImageManager.html#loadImage(android.widget.ImageView, android.net.Uri, int)">loadImage(ImageView, Uri, int)</a></code></li>
-      </ul>
-  </div>
 
     </div>
 </div>
@@ -1284,7 +1282,7 @@
         void
       </span>
       <span class="sympad">loadImage</span>
-      <span class="normal">(ImageView imageView, int resId)</span>
+      <span class="normal">(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, int resId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1294,9 +1292,11 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Loads an image to display from the given resource ID. If your <code>ImageView</code> is hosted in
- a ListAdapter (or any other class that recycles <code>ImageView</code> instances), then this call
- should be used rather than setting the resource directly.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Loads an image to display from the given resource ID.
+ <p/>
+ If you also use <code><a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a></code>s for Views hosted in a ListAdapter (or any
+ other class that recycles Views instances), then this call should be used rather than
+ setting the resource directly. This avoids clobbering images when views are recycled.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -1329,7 +1329,7 @@
         void
       </span>
       <span class="sympad">loadImage</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, Uri uri, int defaultResId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri, int defaultResId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1339,7 +1339,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Load an image to display from a URI. Note that this does not support arbitrary URIs - the URI
+  <div class="jd-tagdata jd-tagdescr"><p>Load an image to display from a URI, using the given resource ID as the default if no
+ image if found for the given URI. Note that this does not support arbitrary URIs - the URI
  must be something that was retrieved from another call to Google Play services.
  <p>
  The result is delivered to the given listener on the main thread.
@@ -1382,7 +1383,7 @@
         void
       </span>
       <span class="sympad">loadImage</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, Uri uri)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html">ImageManager.OnImageLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1428,7 +1429,7 @@
         void
       </span>
       <span class="sympad">loadImage</span>
-      <span class="normal">(ImageView imageView, Uri uri, int defaultResId)</span>
+      <span class="normal">(<a href="/reference/android/widget/ImageView.html">ImageView</a> imageView, <a href="/reference/android/net/Uri.html">Uri</a> uri, int defaultResId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1438,18 +1439,18 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Loads an image to display from a URI, using the given resource ID as the default. Note that
- this does not support arbitrary URIs - the URI must be something that was retrieved from
- another call to Google Play services.
+  <div class="jd-tagdata jd-tagdescr"><p>Loads an image to display from a URI, using the given resource ID as the default if no
+ image if found for the given URI. Note that this does not support arbitrary URIs - the URI
+ must be something that was retrieved from another call to Google Play services.
  <p>
  The image view will be set to the given default resource if the image needs to be loaded
  asynchronously.
  <p>
  The result (if non-null) is set on the given image view on the main thread.
  <p>
- Note that if the <code>ImageView</code> used for this call is hosted in a ListAdapter (or any
- other class that recycles <code>ImageView</code> instances), then ALL calls to set the contents of
- that <code>ImageView</code> must be done via one of the calls on this <code>ImageManager</code>.</p></div>
+ Note that if the <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> used for this call is hosted in a ListAdapter (or any
+ other class that recycles <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> instances), then ALL calls to set the contents of
+ that <code><a href="/reference/android/widget/ImageView.html">ImageView</a></code> must be done via one of the calls on this <code><a href="/reference/com/google/android/gms/common/images/ImageManager.html">ImageManager</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
diff --git a/docs/html/reference/com/google/android/gms/games/Game.html b/docs/html/reference/com/google/android/gms/games/Game.html
index e9f4a6b..ac73eff 100644
--- a/docs/html/reference/com/google/android/gms/games/Game.html
+++ b/docs/html/reference/com/google/android/gms/games/Game.html
@@ -693,7 +693,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt; 
       
@@ -892,7 +892,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getApplicationId()">getApplicationId</a></span>()</nobr>
@@ -910,7 +910,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription()">getDescription</a></span>()</nobr>
@@ -931,7 +931,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the description string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -946,7 +946,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName()">getDeveloperName</a></span>()</nobr>
@@ -967,7 +967,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the developer name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -982,7 +982,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1003,7 +1003,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1018,7 +1018,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getFeaturedImageUri()">getFeaturedImageUri</a></span>()</nobr>
@@ -1037,7 +1037,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1055,7 +1055,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1091,7 +1091,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getPrimaryCategory()">getPrimaryCategory</a></span>()</nobr>
@@ -1109,7 +1109,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getSecondaryCategory()">getSecondaryCategory</a></span>()</nobr>
@@ -1142,7 +1142,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1180,7 +1180,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1229,6 +1229,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1321,7 +1339,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getApplicationId</span>
       <span class="normal">()</span>
@@ -1355,7 +1373,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -1392,7 +1410,7 @@
         void
       </span>
       <span class="sympad">getDescription</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1428,7 +1446,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDeveloperName</span>
       <span class="normal">()</span>
@@ -1465,7 +1483,7 @@
         void
       </span>
       <span class="sympad">getDeveloperName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1501,7 +1519,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1538,7 +1556,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1574,7 +1592,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getFeaturedImageUri</span>
       <span class="normal">()</span>
@@ -1612,7 +1630,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -1650,7 +1668,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -1721,7 +1739,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPrimaryCategory</span>
       <span class="normal">()</span>
@@ -1755,7 +1773,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getSecondaryCategory</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/GameBuffer.html b/docs/html/reference/com/google/android/gms/games/GameBuffer.html
index 61678a6..234f316 100644
--- a/docs/html/reference/com/google/android/gms/games/GameBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/GameBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/GameEntity.html b/docs/html/reference/com/google/android/gms/games/GameEntity.html
index 82e1ef0..f3167ad 100644
--- a/docs/html/reference/com/google/android/gms/games/GameEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/GameEntity.html
@@ -679,6 +679,9 @@
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -707,7 +710,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,6 +719,8 @@
   
       implements 
       
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
+      
         <a href="/reference/com/google/android/gms/games/Game.html">Game</a> 
       
   
@@ -732,7 +737,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -867,7 +872,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/GameEntity.html">GameEntity</a>&gt;</nobr></td>
+          <a href="/reference/com/google/android/gms/games/GameEntityCreator.html">GameEntityCreator</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GameEntity.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -918,7 +923,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> obj)</nobr>
         
   </td></tr>
 
@@ -967,7 +972,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getApplicationId()">getApplicationId</a></span>()</nobr>
@@ -985,7 +990,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDescription()">getDescription</a></span>()</nobr>
@@ -1006,7 +1011,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the description string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1021,7 +1026,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDeveloperName()">getDeveloperName</a></span>()</nobr>
@@ -1042,7 +1047,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the developer name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1057,7 +1062,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1078,7 +1083,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1093,7 +1098,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getFeaturedImageUri()">getFeaturedImageUri</a></span>()</nobr>
@@ -1128,7 +1133,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1146,7 +1151,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1164,7 +1169,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getInstancePackageName()">getInstancePackageName</a></span>()</nobr>
@@ -1198,7 +1203,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getPrimaryCategory()">getPrimaryCategory</a></span>()</nobr>
@@ -1216,7 +1221,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getSecondaryCategory()">getSecondaryCategory</a></span>()</nobr>
@@ -1253,13 +1258,31 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#isInstanceInstalled()">isInstanceInstalled</a></span>()</nobr>
         
   </td></tr>
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1275,6 +1298,22 @@
 
 
 	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            <a href="/reference/java/lang/String.html">String</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#toString()">toString</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1282,10 +1321,37 @@
             
             
             
-            String</nobr>
+            void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#toString()">toString</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</nobr>
+        
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getUnparcelClassLoader()">getUnparcelClassLoader</a></span>()</nobr>
         
   </td></tr>
 
@@ -1296,12 +1362,28 @@
             
             
             
+            static
             
-            
-            void</nobr>
+            <a href="/reference/java/lang/Integer.html">Integer</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#getUnparcelClientVersion()">getUnparcelClientVersion</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#shouldDowngrade()">shouldDowngrade</a></span>()</nobr>
         
   </td></tr>
 
@@ -1313,8 +1395,6 @@
 
 
 
-
-
 <!-- ========== METHOD SUMMARY =========== -->
 <table id="inhmethods" class="jd-sumtable"><tr><th>
   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
@@ -1329,7 +1409,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1348,7 +1428,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1367,7 +1447,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1396,7 +1476,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1460,7 +1540,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1531,7 +1611,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1569,7 +1649,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1618,6 +1698,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1670,7 +1768,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getApplicationId()">getApplicationId</a></span>()</nobr>
@@ -1688,7 +1786,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription()">getDescription</a></span>()</nobr>
@@ -1709,7 +1807,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the description string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1724,7 +1822,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName()">getDeveloperName</a></span>()</nobr>
@@ -1745,7 +1843,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDeveloperName(android.database.CharArrayBuffer)">getDeveloperName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the developer name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1760,7 +1858,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1781,7 +1879,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name string into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1796,7 +1894,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getFeaturedImageUri()">getFeaturedImageUri</a></span>()</nobr>
@@ -1815,7 +1913,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1833,7 +1931,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1869,7 +1967,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getPrimaryCategory()">getPrimaryCategory</a></span>()</nobr>
@@ -1887,7 +1985,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#getSecondaryCategory()">getSecondaryCategory</a></span>()</nobr>
@@ -1943,7 +2041,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/GameEntity.html">GameEntity</a>&gt;
+        <a href="/reference/com/google/android/gms/games/GameEntityCreator.html">GameEntityCreator</a>
       </span>
         CREATOR
     </h4>
@@ -2022,7 +2120,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object obj)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> obj)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2129,7 +2227,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getApplicationId</span>
       <span class="normal">()</span>
@@ -2163,7 +2261,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -2200,7 +2298,7 @@
         void
       </span>
       <span class="sympad">getDescription</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2236,7 +2334,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDeveloperName</span>
       <span class="normal">()</span>
@@ -2273,7 +2371,7 @@
         void
       </span>
       <span class="sympad">getDeveloperName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2309,7 +2407,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -2346,7 +2444,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2382,7 +2480,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getFeaturedImageUri</span>
       <span class="normal">()</span>
@@ -2449,7 +2547,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -2487,7 +2585,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -2524,7 +2622,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getInstancePackageName</span>
       <span class="normal">()</span>
@@ -2587,7 +2685,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPrimaryCategory</span>
       <span class="normal">()</span>
@@ -2621,7 +2719,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getSecondaryCategory</span>
       <span class="normal">()</span>
@@ -2674,6 +2772,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="isInstanceInstalled()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2742,7 +2876,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2774,7 +2908,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel dest, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2795,6 +2929,113 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getUnparcelClassLoader()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a>
+      </span>
+      <span class="sympad">getUnparcelClassLoader</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The ClassLoader to use for unparceling, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getUnparcelClientVersion()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/Integer.html">Integer</a>
+      </span>
+      <span class="sympad">getUnparcelClientVersion</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The client version to use for unparceling, if known.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="shouldDowngrade()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">shouldDowngrade</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Whether or not this object has been downgraded to hand back to a client.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html b/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
index d4d7253..478b4f4 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -843,7 +843,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -862,7 +862,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -881,7 +881,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -910,7 +910,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -974,7 +974,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html b/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
index 5cfd8ab..3e23650 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -792,7 +792,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#GamesClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">GamesClient.Builder</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#GamesClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">GamesClient.Builder</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Create a new Builder object to be used to build a corresponding GamesClient object.</div>
   
@@ -842,7 +842,7 @@
             <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(String accountName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(<a href="/reference/java/lang/String.html">String</a> accountName)</nobr>
         
         <div class="jd-descrdiv">Specify an account name on the device that should be used.</div>
   
@@ -879,7 +879,7 @@
             <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(String... scopes)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(<a href="/reference/java/lang/String.html">String...</a> scopes)</nobr>
         
         <div class="jd-descrdiv">Set the scopes to use when building the GamesClient object.</div>
   
@@ -897,7 +897,7 @@
             <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(View gamesContentView)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(<a href="/reference/android/view/View.html">View</a> gamesContentView)</nobr>
         
         <div class="jd-descrdiv">Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</div>
   
@@ -927,7 +927,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -946,7 +946,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -965,7 +965,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -994,7 +994,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1058,7 +1058,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1167,7 +1167,7 @@
         
       </span>
       <span class="sympad">GamesClient.Builder</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1283,7 +1283,7 @@
         <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a>
       </span>
       <span class="sympad">setAccountName</span>
-      <span class="normal">(String accountName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> accountName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1371,7 +1371,7 @@
         <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a>
       </span>
       <span class="sympad">setScopes</span>
-      <span class="normal">(String... scopes)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> scopes)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1417,7 +1417,7 @@
         <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a>
       </span>
       <span class="sympad">setViewForPopups</span>
-      <span class="normal">(View gamesContentView)</span>
+      <span class="normal">(<a href="/reference/android/view/View.html">View</a> gamesContentView)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/GamesClient.html b/docs/html/reference/com/google/android/gms/games/GamesClient.html
index 63c4d3a..74ab6b0 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesClient.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesClient.html
@@ -691,7 +691,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -807,42 +807,42 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_EXCLUSIVE_BIT_MASK">EXTRA_EXCLUSIVE_BIT_MASK</a></td>
         <td class="jd-descrcol" width="100%">Used to bundle the exclusive bit mask of the player for auto-match criteria.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_INVITATION">EXTRA_INVITATION</a></td>
         <td class="jd-descrcol" width="100%">Used to return an <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MAX_AUTOMATCH_PLAYERS">EXTRA_MAX_AUTOMATCH_PLAYERS</a></td>
         <td class="jd-descrcol" width="100%">Used to return the maximum number of players that should be added to a room by auto-matching.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MIN_AUTOMATCH_PLAYERS">EXTRA_MIN_AUTOMATCH_PLAYERS</a></td>
         <td class="jd-descrcol" width="100%">Used to return the minimum number of players that should be added to a room by auto-matching.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYERS">EXTRA_PLAYERS</a></td>
         <td class="jd-descrcol" width="100%">Used to return a list of player IDs.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_ROOM">EXTRA_ROOM</a></td>
         <td class="jd-descrcol" width="100%">Used to return a <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a></code>.</td>
     </tr>
@@ -1152,7 +1152,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#declineRoomInvitation(java.lang.String)">declineRoomInvitation</a></span>(String invitationId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#declineRoomInvitation(java.lang.String)">declineRoomInvitation</a></span>(<a href="/reference/java/lang/String.html">String</a> invitationId)</nobr>
         
         <div class="jd-descrdiv">Decline an invitation for a real-time room.</div>
   
@@ -1188,7 +1188,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#dismissRoomInvitation(java.lang.String)">dismissRoomInvitation</a></span>(String invitationId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#dismissRoomInvitation(java.lang.String)">dismissRoomInvitation</a></span>(<a href="/reference/java/lang/String.html">String</a> invitationId)</nobr>
         
         <div class="jd-descrdiv">Dismiss an invitation to a real-time room.</div>
   
@@ -1203,7 +1203,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getAchievementsIntent()">getAchievementsIntent</a></span>()</nobr>
@@ -1221,7 +1221,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getAllLeaderboardsIntent()">getAllLeaderboardsIntent</a></span>()</nobr>
@@ -1239,7 +1239,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getAppId()">getAppId</a></span>()</nobr>
@@ -1257,7 +1257,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getCurrentAccountName()">getCurrentAccountName</a></span>()</nobr>
@@ -1307,7 +1307,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getCurrentPlayerId()">getCurrentPlayerId</a></span>()</nobr>
@@ -1323,7 +1323,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getInvitationInboxIntent()">getInvitationInboxIntent</a></span>()</nobr>
@@ -1341,10 +1341,10 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getLeaderboardIntent(java.lang.String)">getLeaderboardIntent</a></span>(String leaderboardId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getLeaderboardIntent(java.lang.String)">getLeaderboardIntent</a></span>(<a href="/reference/java/lang/String.html">String</a> leaderboardId)</nobr>
         
         <div class="jd-descrdiv">Gets an intent to show a leaderboard for a game.</div>
   
@@ -1362,7 +1362,7 @@
             <a href="/reference/com/google/android/gms/games/RealTimeSocket.html">RealTimeSocket</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeSocketForParticipant(java.lang.String, java.lang.String)">getRealTimeSocketForParticipant</a></span>(String roomId, String participantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeSocketForParticipant(java.lang.String, java.lang.String)">getRealTimeSocketForParticipant</a></span>(<a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
         
         <div class="jd-descrdiv">Returns a <code><a href="/reference/com/google/android/gms/games/RealTimeSocket.html">RealTimeSocket</a></code> for carrying network traffic to the given peer.</div>
   
@@ -1377,7 +1377,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeWaitingRoomIntent(com.google.android.gms.games.multiplayer.realtime.Room, int)">getRealTimeWaitingRoomIntent</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, int minParticipantsToStart)</nobr>
@@ -1396,7 +1396,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getSelectPlayersIntent(int, int)">getSelectPlayersIntent</a></span>(int minPlayers, int maxPlayers)</nobr>
@@ -1414,7 +1414,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getSettingsIntent()">getSettingsIntent</a></span>()</nobr>
@@ -1436,7 +1436,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#incrementAchievement(java.lang.String, int)">incrementAchievement</a></span>(String id, int numSteps)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#incrementAchievement(java.lang.String, int)">incrementAchievement</a></span>(<a href="/reference/java/lang/String.html">String</a> id, int numSteps)</nobr>
         
         <div class="jd-descrdiv">Increments an achievement by the given number of steps.</div>
   
@@ -1454,7 +1454,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#incrementAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String, int)">incrementAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id, int numSteps)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#incrementAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String, int)">incrementAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id, int numSteps)</nobr>
         
         <div class="jd-descrdiv">Increments an achievement by the given number of steps.</div>
   
@@ -1565,7 +1565,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveRoom(com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener, java.lang.String)">leaveRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html">RoomUpdateListener</a> listener, String roomId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveRoom(com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener, java.lang.String)">leaveRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html">RoomUpdateListener</a> listener, <a href="/reference/java/lang/String.html">String</a> roomId)</nobr>
         
         <div class="jd-descrdiv">Leave the specified room.</div>
   
@@ -1601,6 +1601,24 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadAchievements(com.google.android.gms.games.achievement.OnAchievementsLoadedListener, boolean)">loadAchievements</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html">OnAchievementsLoadedListener</a> listener, boolean forceReload)</nobr>
+        
+        <div class="jd-descrdiv">Asynchronously load achievement data for the currently signed in player.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadGame(com.google.android.gms.games.OnGamesLoadedListener)">loadGame</a></span>(<a href="/reference/com/google/android/gms/games/OnGamesLoadedListener.html">OnGamesLoadedListener</a> listener)</nobr>
         
         <div class="jd-descrdiv">Load the details for the current game.</div>
@@ -1609,7 +1627,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1628,7 +1646,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1646,7 +1664,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1656,7 +1674,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String)">loadLeaderboardMetadata</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, String leaderboardId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String)">loadLeaderboardMetadata</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId)</nobr>
         
         <div class="jd-descrdiv">Asynchronously load a specific leaderboard's metadata for this game.</div>
   
@@ -1664,7 +1682,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1682,7 +1700,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1700,7 +1718,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1718,7 +1736,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1728,7 +1746,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayer(com.google.android.gms.games.OnPlayersLoadedListener, java.lang.String)">loadPlayer</a></span>(<a href="/reference/com/google/android/gms/games/OnPlayersLoadedListener.html">OnPlayersLoadedListener</a> listener, String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayer(com.google.android.gms.games.OnPlayersLoadedListener, java.lang.String)">loadPlayer</a></span>(<a href="/reference/com/google/android/gms/games/OnPlayersLoadedListener.html">OnPlayersLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
         <div class="jd-descrdiv">Asynchronously loads the profile for the requested player ID.</div>
   
@@ -1736,24 +1754,6 @@
 
 
 	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayerCenteredScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int, boolean)">loadPlayerCenteredScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</nobr>
-        
-        <div class="jd-descrdiv">Asynchronously load the player-centered page of scores for a given leaderboard.</div>
-  
-  </td></tr>
-
-
-	 
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1764,7 +1764,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayerCenteredScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int)">loadPlayerCenteredScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayerCenteredScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int, boolean)">loadPlayerCenteredScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</nobr>
         
         <div class="jd-descrdiv">Asynchronously load the player-centered page of scores for a given leaderboard.</div>
   
@@ -1782,9 +1782,9 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadTopScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int)">loadTopScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadPlayerCenteredScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int)">loadPlayerCenteredScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults)</nobr>
         
-        <div class="jd-descrdiv">Asynchronously load the top page of scores for a given leaderboard.</div>
+        <div class="jd-descrdiv">Asynchronously load the player-centered page of scores for a given leaderboard.</div>
   
   </td></tr>
 
@@ -1800,7 +1800,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadTopScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int, boolean)">loadTopScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadTopScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int)">loadTopScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults)</nobr>
         
         <div class="jd-descrdiv">Asynchronously load the top page of scores for a given leaderboard.</div>
   
@@ -1818,6 +1818,24 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadTopScores(com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener, java.lang.String, int, int, int, boolean)">loadTopScores</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</nobr>
+        
+        <div class="jd-descrdiv">Asynchronously load the top page of scores for a given leaderboard.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#reconnect()">reconnect</a></span>()</nobr>
         
         <div class="jd-descrdiv">Closes the current connection to Google Play services and creates a new connection.</div>
@@ -1826,7 +1844,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1844,7 +1862,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1863,7 +1881,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1881,6 +1899,24 @@
 
 
 	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#revealAchievement(java.lang.String)">revealAchievement</a></span>(<a href="/reference/java/lang/String.html">String</a> id)</nobr>
+        
+        <div class="jd-descrdiv">Reveal a hidden achievement to the currently signed in player.</div>
+  
+  </td></tr>
+
+
+	 
     <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1891,7 +1927,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#revealAchievement(java.lang.String)">revealAchievement</a></span>(String id)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#revealAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String)">revealAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id)</nobr>
         
         <div class="jd-descrdiv">Reveal a hidden achievement to the currently signed in player.</div>
   
@@ -1906,28 +1942,10 @@
             
             
             
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#revealAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String)">revealAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id)</nobr>
-        
-        <div class="jd-descrdiv">Reveal a hidden achievement to the currently signed in player.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html">RealTimeReliableMessageSentListener</a> listener, byte[] messageData, String roomId, String recipientParticipantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html">RealTimeReliableMessageSentListener</a> listener, byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</nobr>
         
         <div class="jd-descrdiv">Send a message to a participant in a real-time room reliably.</div>
   
@@ -1935,7 +1953,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1945,7 +1963,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.util.List<java.lang.String>)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, String roomId, List&lt;String&gt; recipientParticipantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.util.List<java.lang.String>)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; recipientParticipantIds)</nobr>
         
         <div class="jd-descrdiv">Send a message to one or more participants in a real-time room.</div>
   
@@ -1953,24 +1971,6 @@
 
 
 	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            int</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, String roomId, String recipientParticipantId)</nobr>
-        
-        <div class="jd-descrdiv">Send a message to a participant in a real-time room.</div>
-  
-  </td></tr>
-
-
-	 
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1981,7 +1981,25 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessageToAll(byte[], java.lang.String)">sendUnreliableRealTimeMessageToAll</a></span>(byte[] messageData, String roomId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</nobr>
+        
+        <div class="jd-descrdiv">Send a message to a participant in a real-time room.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessageToAll(byte[], java.lang.String)">sendUnreliableRealTimeMessageToAll</a></span>(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId)</nobr>
         
         <div class="jd-descrdiv">Send a message to all participants in a real-time room.</div>
   
@@ -1989,7 +2007,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2008,7 +2026,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2027,7 +2045,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2037,7 +2055,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(View gamesContentView)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(<a href="/reference/android/view/View.html">View</a> gamesContentView)</nobr>
         
         <div class="jd-descrdiv">Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</div>
   
@@ -2045,7 +2063,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2063,7 +2081,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2081,24 +2099,6 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            void</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScore(java.lang.String, long)">submitScore</a></span>(String leaderboardId, long score)</nobr>
-        
-        <div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
-  
-  </td></tr>
-
-
-	 
     <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -2109,7 +2109,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScoreImmediate(com.google.android.gms.games.leaderboard.OnScoreSubmittedListener, java.lang.String, long)">submitScoreImmediate</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a> listener, String leaderboardId, long score)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScore(java.lang.String, long)">submitScore</a></span>(<a href="/reference/java/lang/String.html">String</a> leaderboardId, long score)</nobr>
         
         <div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
   
@@ -2127,9 +2127,9 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievement(java.lang.String)">unlockAchievement</a></span>(String id)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScoreImmediate(com.google.android.gms.games.leaderboard.OnScoreSubmittedListener, java.lang.String, long)">submitScoreImmediate</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, long score)</nobr>
         
-        <div class="jd-descrdiv">Unlock an achievement for the currently signed in player.</div>
+        <div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
   
   </td></tr>
 
@@ -2145,7 +2145,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String)">unlockAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievement(java.lang.String)">unlockAchievement</a></span>(<a href="/reference/java/lang/String.html">String</a> id)</nobr>
         
         <div class="jd-descrdiv">Unlock an achievement for the currently signed in player.</div>
   
@@ -2163,6 +2163,24 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievementImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String)">unlockAchievementImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id)</nobr>
+        
+        <div class="jd-descrdiv">Unlock an achievement for the currently signed in player.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> listener)</nobr>
         
         <div class="jd-descrdiv">Removes a connection listener from this <code>GooglePlayServicesClient</code>.</div>
@@ -2171,7 +2189,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2189,7 +2207,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -2229,7 +2247,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -2248,7 +2266,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -2267,7 +2285,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2296,7 +2314,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -2360,7 +2378,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2669,7 +2687,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_EXCLUSIVE_BIT_MASK
     </h4>
@@ -2707,7 +2725,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_INVITATION
     </h4>
@@ -2746,7 +2764,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_MAX_AUTOMATCH_PLAYERS
     </h4>
@@ -2789,7 +2807,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_MIN_AUTOMATCH_PLAYERS
     </h4>
@@ -2832,7 +2850,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_PLAYERS
     </h4>
@@ -2875,7 +2893,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_ROOM
     </h4>
@@ -4134,7 +4152,7 @@
         void
       </span>
       <span class="sympad">declineRoomInvitation</span>
-      <span class="normal">(String invitationId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> invitationId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -4203,7 +4221,7 @@
         void
       </span>
       <span class="sympad">dismissRoomInvitation</span>
-      <span class="normal">(String invitationId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> invitationId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -4240,7 +4258,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getAchievementsIntent</span>
       <span class="normal">()</span>
@@ -4281,7 +4299,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getAllLeaderboardsIntent</span>
       <span class="normal">()</span>
@@ -4321,7 +4339,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAppId</span>
       <span class="normal">()</span>
@@ -4355,7 +4373,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCurrentAccountName</span>
       <span class="normal">()</span>
@@ -4382,7 +4400,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>SecurityException</td>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
             <td>If your app doesn't have the
              <code><a href="/reference/android/Manifest.permission.html#GET_ACCOUNTS">GET_ACCOUNTS</a></code> permission.
 </td>
@@ -4473,7 +4491,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCurrentPlayerId</span>
       <span class="normal">()</span>
@@ -4507,7 +4525,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getInvitationInboxIntent</span>
       <span class="normal">()</span>
@@ -4548,10 +4566,10 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getLeaderboardIntent</span>
-      <span class="normal">(String leaderboardId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> leaderboardId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -4600,7 +4618,7 @@
         <a href="/reference/com/google/android/gms/games/RealTimeSocket.html">RealTimeSocket</a>
       </span>
       <span class="sympad">getRealTimeSocketForParticipant</span>
-      <span class="normal">(String roomId, String participantId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> participantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -4648,7 +4666,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getRealTimeWaitingRoomIntent</span>
       <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, int minParticipantsToStart)</span>
@@ -4735,7 +4753,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getSelectPlayersIntent</span>
       <span class="normal">(int minPlayers, int maxPlayers)</span>
@@ -4799,7 +4817,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getSettingsIntent</span>
       <span class="normal">()</span>
@@ -4847,7 +4865,7 @@
         void
       </span>
       <span class="sympad">incrementAchievement</span>
-      <span class="normal">(String id, int numSteps)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id, int numSteps)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -4899,7 +4917,7 @@
         void
       </span>
       <span class="sympad">incrementAchievementImmediate</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id, int numSteps)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id, int numSteps)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5158,7 +5176,7 @@
         void
       </span>
       <span class="sympad">leaveRoom</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html">RoomUpdateListener</a> listener, String roomId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html">RoomUpdateListener</a> listener, <a href="/reference/java/lang/String.html">String</a> roomId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5170,7 +5188,10 @@
       
   <div class="jd-tagdata jd-tagdescr"><p>Leave the specified room. This will disconnect the player from the room, but allow other
  players to continue playing the game. The result is delivered by the callback
- <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html#onLeftRoom(int, java.lang.String)">onLeftRoom(int, String)</a></code> to the given listener on the main thread.</p></div>
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html#onLeftRoom(int, java.lang.String)">onLeftRoom(int, String)</a></code> to the given listener on the main thread.
+ <p>
+ After this method is called, you cannot perform any further actions on the room. You can
+ create or join another room only after <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html#onLeftRoom(int, java.lang.String)">onLeftRoom(int, String)</a></code> is received.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -5217,7 +5238,10 @@
   <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load achievement data for the currently signed in player.
  <p>
  The result is delivered to the given listener on the main thread. If <code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code> is
- called before the result is ready it will not be delivered.</p></div>
+ called before the result is ready it will not be delivered.
+ <p>
+ This form of the API is deprecated and will be removed in a future release. Please use
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#loadAchievements(com.google.android.gms.games.achievement.OnAchievementsLoadedListener, boolean)">loadAchievements(OnAchievementsLoadedListener, boolean)</a></code> instead.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -5234,6 +5258,56 @@
 </div>
 
 
+<A NAME="loadAchievements(com.google.android.gms.games.achievement.OnAchievementsLoadedListener, boolean)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">loadAchievements</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html">OnAchievementsLoadedListener</a> listener, boolean forceReload)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load achievement data for the currently signed in player.
+ <p>
+ The result is delivered to the given listener on the main thread. If <code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code> is
+ called before the result is ready it will not be delivered.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>listener</td>
+          <td>The listener that is called when the load is complete. The listener is called
+            on the main thread.</td>
+        </tr>
+        <tr>
+          <th>forceReload</td>
+          <td>If true, this call will clear any locally cached data and attempt to fetch
+            the latest data from the server. This would commonly be used for something like a
+            user-initiated refresh. Normally, this should be set to false to gain advantages
+            of data caching.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="loadGame(com.google.android.gms.games.OnGamesLoadedListener)"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -5388,7 +5462,7 @@
         void
       </span>
       <span class="sympad">loadLeaderboardMetadata</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, String leaderboardId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5584,7 +5658,7 @@
         void
       </span>
       <span class="sympad">loadPlayer</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/OnPlayersLoadedListener.html">OnPlayersLoadedListener</a> listener, String playerId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/OnPlayersLoadedListener.html">OnPlayersLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> playerId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5631,7 +5705,7 @@
         void
       </span>
       <span class="sympad">loadPlayerCenteredScores</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5703,7 +5777,7 @@
         void
       </span>
       <span class="sympad">loadPlayerCenteredScores</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5768,7 +5842,7 @@
         void
       </span>
       <span class="sympad">loadTopScores</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -5832,7 +5906,7 @@
         void
       </span>
       <span class="sympad">loadTopScores</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html">OnLeaderboardScoresLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6094,7 +6168,7 @@
         void
       </span>
       <span class="sympad">revealAchievement</span>
-      <span class="normal">(String id)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6145,7 +6219,7 @@
         void
       </span>
       <span class="sympad">revealAchievementImmediate</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6201,7 +6275,7 @@
         int
       </span>
       <span class="sympad">sendReliableRealTimeMessage</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html">RealTimeReliableMessageSentListener</a> listener, byte[] messageData, String roomId, String recipientParticipantId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html">RealTimeReliableMessageSentListener</a> listener, byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6263,7 +6337,7 @@
         int
       </span>
       <span class="sympad">sendUnreliableRealTimeMessage</span>
-      <span class="normal">(byte[] messageData, String roomId, List&lt;String&gt; recipientParticipantIds)</span>
+      <span class="normal">(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; recipientParticipantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6320,7 +6394,7 @@
         int
       </span>
       <span class="sympad">sendUnreliableRealTimeMessage</span>
-      <span class="normal">(byte[] messageData, String roomId, String recipientParticipantId)</span>
+      <span class="normal">(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6377,7 +6451,7 @@
         int
       </span>
       <span class="sympad">sendUnreliableRealTimeMessageToAll</span>
-      <span class="normal">(byte[] messageData, String roomId)</span>
+      <span class="normal">(byte[] messageData, <a href="/reference/java/lang/String.html">String</a> roomId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6510,7 +6584,7 @@
         void
       </span>
       <span class="sympad">setViewForPopups</span>
-      <span class="normal">(View gamesContentView)</span>
+      <span class="normal">(<a href="/reference/android/view/View.html">View</a> gamesContentView)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6622,7 +6696,7 @@
         void
       </span>
       <span class="sympad">submitScore</span>
-      <span class="normal">(String leaderboardId, long score)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> leaderboardId, long score)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6687,7 +6761,7 @@
         void
       </span>
       <span class="sympad">submitScoreImmediate</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a> listener, String leaderboardId, long score)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> leaderboardId, long score)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6763,7 +6837,7 @@
         void
       </span>
       <span class="sympad">unlockAchievement</span>
-      <span class="normal">(String id)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -6814,7 +6888,7 @@
         void
       </span>
       <span class="sympad">unlockAchievementImmediate</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/PageDirection.html b/docs/html/reference/com/google/android/gms/games/PageDirection.html
index c9a5c723..4022f29 100644
--- a/docs/html/reference/com/google/android/gms/games/PageDirection.html
+++ b/docs/html/reference/com/google/android/gms/games/PageDirection.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -826,7 +826,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -845,7 +845,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -864,7 +864,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -893,7 +893,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -957,7 +957,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/Player.html b/docs/html/reference/com/google/android/gms/games/Player.html
index 55099dc..c5343a6 100644
--- a/docs/html/reference/com/google/android/gms/games/Player.html
+++ b/docs/html/reference/com/google/android/gms/games/Player.html
@@ -693,7 +693,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt; 
       
@@ -874,7 +874,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -895,7 +895,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the player's display name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -910,7 +910,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -928,7 +928,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -946,7 +946,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getPlayerId()">getPlayerId</a></span>()</nobr>
@@ -1033,7 +1033,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1071,7 +1071,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1120,6 +1120,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1178,7 +1196,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1215,7 +1233,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1251,7 +1269,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -1288,7 +1306,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -1326,7 +1344,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPlayerId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html b/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
index 23425bc..0857022 100644
--- a/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/PlayerEntity.html b/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
index af2b2ef..e3f858e 100644
--- a/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
@@ -679,6 +679,9 @@
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -707,7 +710,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,6 +719,8 @@
   
       implements 
       
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
+      
         <a href="/reference/com/google/android/gms/games/Player.html">Player</a> 
       
   
@@ -732,7 +737,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -867,7 +872,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/PlayerEntity.html">PlayerEntity</a>&gt;</nobr></td>
+          <a href="/reference/com/google/android/gms/games/PlayerEntityCreator.html">PlayerEntityCreator</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -918,7 +923,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> obj)</nobr>
         
   </td></tr>
 
@@ -949,7 +954,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -970,7 +975,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the player's display name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -985,7 +990,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1003,7 +1008,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1021,7 +1026,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getPlayerId()">getPlayerId</a></span>()</nobr>
@@ -1109,11 +1114,13 @@
             
             
             
-            String</nobr>
+            boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#toString()">toString</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
         
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
   </td></tr>
 
 
@@ -1125,10 +1132,26 @@
             
             
             
+            <a href="/reference/java/lang/String.html">String</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#toString()">toString</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</nobr>
         
   </td></tr>
 
@@ -1139,6 +1162,63 @@
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getUnparcelClassLoader()">getUnparcelClassLoader</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/Integer.html">Integer</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#getUnparcelClientVersion()">getUnparcelClientVersion</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/PlayerEntity.html#shouldDowngrade()">shouldDowngrade</a></span>()</nobr>
+        
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -1156,7 +1236,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1175,7 +1255,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1194,7 +1274,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1223,7 +1303,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1287,7 +1367,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1358,7 +1438,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1396,7 +1476,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1445,6 +1525,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1479,7 +1577,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1500,7 +1598,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the player's display name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1515,7 +1613,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1533,7 +1631,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1551,7 +1649,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/Player.html#getPlayerId()">getPlayerId</a></span>()</nobr>
@@ -1661,7 +1759,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/PlayerEntity.html">PlayerEntity</a>&gt;
+        <a href="/reference/com/google/android/gms/games/PlayerEntityCreator.html">PlayerEntityCreator</a>
       </span>
         CREATOR
     </h4>
@@ -1740,7 +1838,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object obj)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> obj)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1813,7 +1911,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1850,7 +1948,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1886,7 +1984,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -1923,7 +2021,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -1961,7 +2059,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPlayerId</span>
       <span class="normal">()</span>
@@ -2116,6 +2214,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="toString()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2126,7 +2260,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2158,7 +2292,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel dest, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2179,6 +2313,113 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getUnparcelClassLoader()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a>
+      </span>
+      <span class="sympad">getUnparcelClassLoader</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The ClassLoader to use for unparceling, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getUnparcelClientVersion()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/Integer.html">Integer</a>
+      </span>
+      <span class="sympad">getUnparcelClientVersion</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The client version to use for unparceling, if known.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="shouldDowngrade()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">shouldDowngrade</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Whether or not this object has been downgraded to hand back to a client.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/games/RealTimeSocket.html b/docs/html/reference/com/google/android/gms/games/RealTimeSocket.html
index 1e42cdd..ca4ce65 100644
--- a/docs/html/reference/com/google/android/gms/games/RealTimeSocket.html
+++ b/docs/html/reference/com/google/android/gms/games/RealTimeSocket.html
@@ -779,7 +779,7 @@
             
             
             
-            InputStream</nobr>
+            <a href="/reference/java/io/InputStream.html">InputStream</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getInputStream()">getInputStream</a></span>()</nobr>
@@ -797,7 +797,7 @@
             
             
             
-            OutputStream</nobr>
+            <a href="/reference/java/io/OutputStream.html">OutputStream</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getOutputStream()">getOutputStream</a></span>()</nobr>
@@ -815,7 +815,7 @@
             
             
             
-            ParcelFileDescriptor</nobr>
+            <a href="/reference/android/os/ParcelFileDescriptor.html">ParcelFileDescriptor</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/RealTimeSocket.html#getParcelFileDescriptor()">getParcelFileDescriptor</a></span>()</nobr>
@@ -919,7 +919,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>on error.
 </td>
         </tr>
@@ -940,7 +940,7 @@
          
         abstract 
          
-        InputStream
+        <a href="/reference/java/io/InputStream.html">InputStream</a>
       </span>
       <span class="sympad">getInputStream</span>
       <span class="normal">()</span>
@@ -963,7 +963,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>on error.
 </td>
         </tr>
@@ -984,7 +984,7 @@
          
         abstract 
          
-        OutputStream
+        <a href="/reference/java/io/OutputStream.html">OutputStream</a>
       </span>
       <span class="sympad">getOutputStream</span>
       <span class="normal">()</span>
@@ -1012,7 +1012,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>on error.
 </td>
         </tr>
@@ -1033,7 +1033,7 @@
          
         abstract 
          
-        ParcelFileDescriptor
+        <a href="/reference/android/os/ParcelFileDescriptor.html">ParcelFileDescriptor</a>
       </span>
       <span class="sympad">getParcelFileDescriptor</span>
       <span class="normal">()</span>
@@ -1057,7 +1057,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>in case of error.
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html b/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
index c40d4df..805c159 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
@@ -792,7 +792,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getAchievementId()">getAchievementId</a></span>()</nobr>
@@ -829,7 +829,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getDescription()">getDescription</a></span>()</nobr>
@@ -850,7 +850,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the achievement description into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -868,7 +868,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedCurrentSteps(android.database.CharArrayBuffer)">getFormattedCurrentSteps</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedCurrentSteps(android.database.CharArrayBuffer)">getFormattedCurrentSteps</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Retrieves the number of steps this user has gone toward unlocking this achievement (formatted
  for the user's locale) into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
@@ -884,7 +884,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedCurrentSteps()">getFormattedCurrentSteps</a></span>()</nobr>
@@ -907,7 +907,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedTotalSteps(android.database.CharArrayBuffer)">getFormattedTotalSteps</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedTotalSteps(android.database.CharArrayBuffer)">getFormattedTotalSteps</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the total number of steps necessary to unlock this achievement (formatted for the
  user's locale) into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>; only applicable for
@@ -924,7 +924,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getFormattedTotalSteps()">getFormattedTotalSteps</a></span>()</nobr>
@@ -965,7 +965,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getName(android.database.CharArrayBuffer)">getName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getName(android.database.CharArrayBuffer)">getName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the achievement name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -980,7 +980,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getName()">getName</a></span>()</nobr>
@@ -1016,7 +1016,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getRevealedImageUri()">getRevealedImageUri</a></span>()</nobr>
@@ -1091,7 +1091,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/Achievement.html#getUnlockedImageUri()">getUnlockedImageUri</a></span>()</nobr>
@@ -1361,7 +1361,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAchievementId</span>
       <span class="normal">()</span>
@@ -1430,7 +1430,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -1467,7 +1467,7 @@
         void
       </span>
       <span class="sympad">getDescription</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1506,7 +1506,7 @@
         void
       </span>
       <span class="sympad">getFormattedCurrentSteps</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1543,7 +1543,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getFormattedCurrentSteps</span>
       <span class="normal">()</span>
@@ -1582,7 +1582,7 @@
         void
       </span>
       <span class="sympad">getFormattedTotalSteps</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1620,7 +1620,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getFormattedTotalSteps</span>
       <span class="normal">()</span>
@@ -1693,7 +1693,7 @@
         void
       </span>
       <span class="sympad">getName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1729,7 +1729,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getName</span>
       <span class="normal">()</span>
@@ -1800,7 +1800,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getRevealedImageUri</span>
       <span class="normal">()</span>
@@ -1943,7 +1943,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getUnlockedImageUri</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html b/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
index 06bd27a..f503274 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
index d104974..1d5312f 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
@@ -752,7 +752,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html#onAchievementUpdated(int, java.lang.String)">onAchievementUpdated</a></span>(int statusCode, String achievementId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html#onAchievementUpdated(int, java.lang.String)">onAchievementUpdated</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String</a> achievementId)</nobr>
         
         <div class="jd-descrdiv">Called when achievement data has been loaded.</div>
   
@@ -820,7 +820,7 @@
         void
       </span>
       <span class="sympad">onAchievementUpdated</span>
-      <span class="normal">(int statusCode, String achievementId)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String</a> achievementId)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html b/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
index 4072832..0536eef0 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
@@ -771,7 +771,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -792,7 +792,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads this leaderboard's display name into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -807,7 +807,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -826,7 +826,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getLeaderboardId()">getLeaderboardId</a></span>()</nobr>
@@ -862,7 +862,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html">LeaderboardVariant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html">LeaderboardVariant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html#getVariants()">getVariants</a></span>()</nobr>
@@ -1015,7 +1015,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1052,7 +1052,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1088,7 +1088,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -1126,7 +1126,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getLeaderboardId</span>
       <span class="normal">()</span>
@@ -1195,7 +1195,7 @@
          
         abstract 
          
-        ArrayList&lt;<a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html">LeaderboardVariant</a>&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html">LeaderboardVariant</a>&gt;
       </span>
       <span class="sympad">getVariants</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
index 2186179..add3ff47 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
@@ -719,7 +719,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -884,7 +884,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html#getPrimaryDataMarkerColumn()">getPrimaryDataMarkerColumn</a></span>()</nobr>
@@ -1017,7 +1017,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -1040,7 +1040,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1059,7 +1059,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1078,7 +1078,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1107,7 +1107,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1171,7 +1171,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1242,7 +1242,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1261,7 +1261,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
@@ -1461,7 +1461,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPrimaryDataMarkerColumn</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
index 93d96d3..5a2898c 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
@@ -784,7 +784,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayRank(android.database.CharArrayBuffer)">getDisplayRank</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayRank(android.database.CharArrayBuffer)">getDisplayRank</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Load the formatted display rank into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -799,7 +799,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayRank()">getDisplayRank</a></span>()</nobr>
@@ -817,7 +817,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayScore()">getDisplayScore</a></span>()</nobr>
@@ -838,7 +838,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayScore(android.database.CharArrayBuffer)">getDisplayScore</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getDisplayScore(android.database.CharArrayBuffer)">getDisplayScore</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the formatted display score into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -907,7 +907,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getScoreHolderDisplayName()">getScoreHolderDisplayName</a></span>()</nobr>
@@ -928,7 +928,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getScoreHolderDisplayName(android.database.CharArrayBuffer)">getScoreHolderDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getScoreHolderDisplayName(android.database.CharArrayBuffer)">getScoreHolderDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Load the display name of the player who scored this score into the provided
  <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
@@ -944,7 +944,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getScoreHolderHiResImageUri()">getScoreHolderHiResImageUri</a></span>()</nobr>
@@ -962,7 +962,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#getScoreHolderIconImageUri()">getScoreHolderIconImageUri</a></span>()</nobr>
@@ -1042,6 +1042,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1103,7 +1121,7 @@
         void
       </span>
       <span class="sympad">getDisplayRank</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1139,7 +1157,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayRank</span>
       <span class="normal">()</span>
@@ -1174,7 +1192,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayScore</span>
       <span class="normal">()</span>
@@ -1212,7 +1230,7 @@
         void
       </span>
       <span class="sympad">getDisplayScore</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1356,7 +1374,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getScoreHolderDisplayName</span>
       <span class="normal">()</span>
@@ -1394,7 +1412,7 @@
         void
       </span>
       <span class="sympad">getScoreHolderDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1431,7 +1449,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getScoreHolderHiResImageUri</span>
       <span class="normal">()</span>
@@ -1469,7 +1487,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getScoreHolderIconImageUri</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
index 2ee0f33..29b23c2 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
index f67626d..5e213be 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
@@ -839,7 +839,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#getDisplayPlayerRank()">getDisplayPlayerRank</a></span>()</nobr>
@@ -857,7 +857,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#getDisplayPlayerScore()">getDisplayPlayerScore</a></span>()</nobr>
@@ -1410,7 +1410,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayPlayerRank</span>
       <span class="normal">()</span>
@@ -1446,7 +1446,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayPlayerScore</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html b/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
index 42b4e40..a8fa8ff4 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
@@ -858,7 +858,7 @@
           <th>result</td>
           <td>Detailed results of the operation, which includes data regarding whether this
             was the new high score for any of the supported time spans. Note that the results
-            will only be populated if <code>statusCodes</code> is <code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code>.
+            will only be populated if <code>statusCode</code> is <code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code>.
 </td>
         </tr>
       </table>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
index b41a311..93d45c6 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -784,7 +784,7 @@
           public
           
           final
-          String</nobr></td>
+          <a href="/reference/java/lang/String.html">String</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html#formattedScore">formattedScore</a></td>
           <td class="jd-descrcol" width="100%">String containing the score data in a display-appropriate format.</td>
       </tr>
@@ -838,7 +838,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html#SubmitScoreResult.Result(long, java.lang.String, boolean)">SubmitScoreResult.Result</a></span>(long rawScore, String formattedScore, boolean newBest)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html#SubmitScoreResult.Result(long, java.lang.String, boolean)">SubmitScoreResult.Result</a></span>(long rawScore, <a href="/reference/java/lang/String.html">String</a> formattedScore, boolean newBest)</nobr>
         
   </td></tr>
 
@@ -864,7 +864,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html#toString()">toString</a></span>()</nobr>
@@ -895,7 +895,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -914,7 +914,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -933,7 +933,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -962,7 +962,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1026,7 +1026,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1128,7 +1128,7 @@
         public 
          
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         formattedScore
     </h4>
@@ -1230,7 +1230,7 @@
         
       </span>
       <span class="sympad">SubmitScoreResult.Result</span>
-      <span class="normal">(long rawScore, String formattedScore, boolean newBest)</span>
+      <span class="normal">(long rawScore, <a href="/reference/java/lang/String.html">String</a> formattedScore, boolean newBest)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1271,7 +1271,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
index e33b848..ca4cf75 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -815,7 +815,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#SubmitScoreResult(int, java.lang.String, java.lang.String, java.util.HashMap<java.lang.Integer, com.google.android.gms.games.leaderboard.SubmitScoreResult.Result>)">SubmitScoreResult</a></span>(int statusCode, String leaderboardId, String playerId, HashMap&lt;Integer,&nbsp;<a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a>&gt; results)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#SubmitScoreResult(int, java.lang.String, java.lang.String, java.util.HashMap<java.lang.Integer, com.google.android.gms.games.leaderboard.SubmitScoreResult.Result>)">SubmitScoreResult</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String</a> leaderboardId, <a href="/reference/java/lang/String.html">String</a> playerId, <a href="/reference/java/util/HashMap.html">HashMap</a>&lt;<a href="/reference/java/lang/Integer.html">Integer</a>,&nbsp;<a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a>&gt; results)</nobr>
         
         <div class="jd-descrdiv">Construct a new result describing a SubmitScore operation.</div>
   
@@ -833,7 +833,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#SubmitScoreResult(int, java.lang.String, java.lang.String)">SubmitScoreResult</a></span>(int statusCode, String leaderboardId, String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#SubmitScoreResult(int, java.lang.String, java.lang.String)">SubmitScoreResult</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String</a> leaderboardId, <a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
   </td></tr>
 
@@ -859,7 +859,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#getLeaderboardId()">getLeaderboardId</a></span>()</nobr>
@@ -877,7 +877,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#getPlayerId()">getPlayerId</a></span>()</nobr>
@@ -931,7 +931,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html#toString()">toString</a></span>()</nobr>
@@ -962,7 +962,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -981,7 +981,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1000,7 +1000,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1029,7 +1029,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1093,7 +1093,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1202,7 +1202,7 @@
         
       </span>
       <span class="sympad">SubmitScoreResult</span>
-      <span class="normal">(int statusCode, String leaderboardId, String playerId, HashMap&lt;Integer,&nbsp;<a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a>&gt; results)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String</a> leaderboardId, <a href="/reference/java/lang/String.html">String</a> playerId, <a href="/reference/java/util/HashMap.html">HashMap</a>&lt;<a href="/reference/java/lang/Integer.html">Integer</a>,&nbsp;<a href="/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html">SubmitScoreResult.Result</a>&gt; results)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1253,7 +1253,7 @@
         
       </span>
       <span class="sympad">SubmitScoreResult</span>
-      <span class="normal">(int statusCode, String leaderboardId, String playerId)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String</a> leaderboardId, <a href="/reference/java/lang/String.html">String</a> playerId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1294,7 +1294,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getLeaderboardId</span>
       <span class="normal">()</span>
@@ -1328,7 +1328,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPlayerId</span>
       <span class="normal">()</span>
@@ -1451,7 +1451,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
index 95eac22..b4e7bce 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
@@ -700,7 +700,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt; 
       
@@ -921,7 +921,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getInvitationId()">getInvitationId</a></span>()</nobr>
@@ -949,6 +949,24 @@
   </td></tr>
 
 
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getVariant()">getVariant</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any.</div>
+  
+  </td></tr>
+
+
 
 </table>
 
@@ -972,7 +990,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1010,7 +1028,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1059,6 +1077,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1093,7 +1129,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -1229,7 +1265,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getInvitationId</span>
       <span class="normal">()</span>
@@ -1287,6 +1323,43 @@
 </div>
 
 
+<A NAME="getVariant()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        int
+      </span>
+      <span class="sympad">getVariant</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any. A variant is an optional
+ developer-controlled parameter describing the type of game to play. If specified, this value
+ will be a positive integer. If this invitation had no variant specified, returns
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code>.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Variant specified for this invitation, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 
 
 
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
index 6f906a6..ae9ee17 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
@@ -719,7 +719,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -884,7 +884,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html#getPrimaryDataMarkerColumn()">getPrimaryDataMarkerColumn</a></span>()</nobr>
@@ -1017,7 +1017,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -1040,7 +1040,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1059,7 +1059,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1078,7 +1078,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1107,7 +1107,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1171,7 +1171,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1242,7 +1242,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1261,7 +1261,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
@@ -1461,7 +1461,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPrimaryDataMarkerColumn</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
index 9615ad3f..65b1d8f 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
@@ -686,6 +686,9 @@
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -714,7 +717,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -723,6 +726,8 @@
   
       implements 
       
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
+      
         <a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a> 
       
   
@@ -739,7 +744,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -876,7 +881,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html">InvitationEntity</a>&gt;</nobr></td>
+          <a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntityCreator.html">InvitationEntityCreator</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -927,7 +932,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> obj)</nobr>
         
   </td></tr>
 
@@ -994,7 +999,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getInvitationId()">getInvitationId</a></span>()</nobr>
@@ -1012,11 +1017,13 @@
             
             
             
-            int</nobr>
+            <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getInvitationType()">getInvitationType</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getInviter()">getInviter</a></span>()</nobr>
         
+        <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</div>
+  
   </td></tr>
 
 
@@ -1028,12 +1035,12 @@
             
             
             
-            <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getInviter()">getInviter</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getParticipants()">getParticipants</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code> who created this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</div>
+        <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.</div>
   
   </td></tr>
 
@@ -1046,12 +1053,12 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getParticipants()">getParticipants</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getVariant()">getVariant</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.</div>
+        <div class="jd-descrdiv">Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any.</div>
   
   </td></tr>
 
@@ -1080,11 +1087,13 @@
             
             
             
-            String</nobr>
+            boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#toString()">toString</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
         
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
   </td></tr>
 
 
@@ -1096,10 +1105,26 @@
             
             
             
+            <a href="/reference/java/lang/String.html">String</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#toString()">toString</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</nobr>
         
   </td></tr>
 
@@ -1110,6 +1135,63 @@
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getUnparcelClassLoader()">getUnparcelClassLoader</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/Integer.html">Integer</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#getUnparcelClientVersion()">getUnparcelClientVersion</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html#shouldDowngrade()">shouldDowngrade</a></span>()</nobr>
+        
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -1127,7 +1209,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1146,7 +1228,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1165,7 +1247,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1194,7 +1276,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1258,7 +1340,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1329,7 +1411,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1367,7 +1449,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1416,6 +1498,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1486,7 +1586,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getInvitationId()">getInvitationId</a></span>()</nobr>
@@ -1514,6 +1614,24 @@
   </td></tr>
 
 
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getVariant()">getVariant</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1548,7 +1666,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -1604,7 +1722,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html">InvitationEntity</a>&gt;
+        <a href="/reference/com/google/android/gms/games/multiplayer/InvitationEntityCreator.html">InvitationEntityCreator</a>
       </span>
         CREATOR
     </h4>
@@ -1683,7 +1801,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object obj)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> obj)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1824,7 +1942,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getInvitationId</span>
       <span class="normal">()</span>
@@ -1848,35 +1966,6 @@
 </div>
 
 
-<A NAME="getInvitationType()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        int
-      </span>
-      <span class="sympad">getInvitationType</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
 <A NAME="getInviter()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1921,7 +2010,7 @@
          
          
          
-        ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
       </span>
       <span class="sympad">getParticipants</span>
       <span class="normal">()</span>
@@ -1946,6 +2035,43 @@
 </div>
 
 
+<A NAME="getVariant()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        int
+      </span>
+      <span class="sympad">getVariant</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any. A variant is an optional
+ developer-controlled parameter describing the type of game to play. If specified, this value
+ will be a positive integer. If this invitation had no variant specified, returns
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code>.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Variant specified for this invitation, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="hashCode()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1975,6 +2101,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="toString()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1985,7 +2147,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2017,7 +2179,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel dest, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2038,6 +2200,113 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getUnparcelClassLoader()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a>
+      </span>
+      <span class="sympad">getUnparcelClassLoader</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The ClassLoader to use for unparceling, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getUnparcelClientVersion()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/Integer.html">Integer</a>
+      </span>
+      <span class="sympad">getUnparcelClientVersion</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The client version to use for unparceling, if known.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="shouldDowngrade()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">shouldDowngrade</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Whether or not this object has been downgraded to hand back to a client.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
index c5d0c77..02e4c54 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
@@ -696,7 +696,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt; 
       
@@ -914,7 +914,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -935,7 +935,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name for this participant into the provided <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -950,7 +950,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -968,7 +968,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -986,7 +986,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getParticipantId()">getParticipantId</a></span>()</nobr>
@@ -1073,7 +1073,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1111,7 +1111,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1160,6 +1160,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1381,7 +1399,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1419,7 +1437,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1455,7 +1473,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -1492,7 +1510,7 @@
          
         abstract 
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -1530,7 +1548,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getParticipantId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
index 59e0f54..0277169 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
index a1c876a..45c5b00 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
@@ -681,6 +681,9 @@
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -709,7 +712,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -718,7 +721,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a> 
       
@@ -736,7 +739,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -921,7 +924,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html">ParticipantEntity</a>&gt;</nobr></td>
+          <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntityCreator.html">ParticipantEntityCreator</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -972,7 +975,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> obj)</nobr>
         
   </td></tr>
 
@@ -1003,23 +1006,7 @@
             
             
             
-            String</nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getClientAddress()">getClientAddress</a></span>()</nobr>
-        
-  </td></tr>
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1030,7 +1017,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1040,7 +1027,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name for this participant into the provided <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1048,14 +1035,14 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1066,14 +1053,14 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1084,14 +1071,14 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getParticipantId()">getParticipantId</a></span>()</nobr>
@@ -1102,7 +1089,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1120,7 +1107,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1138,7 +1125,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1154,7 +1141,7 @@
 
 
 	 
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1172,6 +1159,24 @@
 
 
 	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
+	 
     <tr class=" api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1179,7 +1184,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#toString()">toString</a></span>()</nobr>
@@ -1198,7 +1203,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</nobr>
         
   </td></tr>
 
@@ -1209,6 +1214,63 @@
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getUnparcelClassLoader()">getUnparcelClassLoader</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/Integer.html">Integer</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getUnparcelClientVersion()">getUnparcelClientVersion</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#shouldDowngrade()">shouldDowngrade</a></span>()</nobr>
+        
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -1226,7 +1288,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1245,7 +1307,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1264,7 +1326,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1293,7 +1355,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1357,7 +1419,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1428,7 +1490,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1466,7 +1528,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1515,6 +1577,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1549,7 +1629,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1570,7 +1650,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getDisplayName(android.database.CharArrayBuffer)">getDisplayName</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the display name for this participant into the provided <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1585,7 +1665,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getHiResImageUri()">getHiResImageUri</a></span>()</nobr>
@@ -1603,7 +1683,7 @@
             
             
             
-            Uri</nobr>
+            <a href="/reference/android/net/Uri.html">Uri</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getIconImageUri()">getIconImageUri</a></span>()</nobr>
@@ -1621,7 +1701,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getParticipantId()">getParticipantId</a></span>()</nobr>
@@ -1731,7 +1811,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html">ParticipantEntity</a>&gt;
+        <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntityCreator.html">ParticipantEntityCreator</a>
       </span>
         CREATOR
     </h4>
@@ -1810,7 +1890,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object obj)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> obj)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1873,35 +1953,6 @@
 </div>
 
 
-<A NAME="getClientAddress()"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-         
-         
-         
-         
-        String
-      </span>
-      <span class="sympad">getClientAddress</span>
-      <span class="normal">()</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    </div>
-</div>
-
-
 <A NAME="getDisplayName()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1912,7 +1963,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -1950,7 +2001,7 @@
         void
       </span>
       <span class="sympad">getDisplayName</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1986,7 +2037,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getHiResImageUri</span>
       <span class="normal">()</span>
@@ -2023,7 +2074,7 @@
          
          
          
-        Uri
+        <a href="/reference/android/net/Uri.html">Uri</a>
       </span>
       <span class="sympad">getIconImageUri</span>
       <span class="normal">()</span>
@@ -2061,7 +2112,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getParticipantId</span>
       <span class="normal">()</span>
@@ -2221,6 +2272,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="toString()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2231,7 +2318,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2263,7 +2350,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel dest, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2284,6 +2371,113 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getUnparcelClassLoader()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a>
+      </span>
+      <span class="sympad">getUnparcelClassLoader</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The ClassLoader to use for unparceling, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getUnparcelClientVersion()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/Integer.html">Integer</a>
+      </span>
+      <span class="sympad">getUnparcelClientVersion</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The client version to use for unparceling, if known.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="shouldDowngrade()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">shouldDowngrade</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Whether or not this object has been downgraded to hand back to a client.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
index 8b1f848..f8720d0 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -790,10 +790,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html#getParticipantId(java.util.ArrayList<com.google.android.gms.games.multiplayer.Participant>, java.lang.String)">getParticipantId</a></span>(ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt; participants, String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html#getParticipantId(java.util.ArrayList<com.google.android.gms.games.multiplayer.Participant>, java.lang.String)">getParticipantId</a></span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt; participants, <a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
         <div class="jd-descrdiv">Get the participant ID corresponding to a given player ID.</div>
   
@@ -823,7 +823,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -842,7 +842,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -861,7 +861,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -890,7 +890,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -954,7 +954,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1068,10 +1068,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getParticipantId</span>
-      <span class="normal">(ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt; participants, String playerId)</span>
+      <span class="normal">(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt; participants, <a href="/reference/java/lang/String.html">String</a> playerId)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
index d543bef..abec87c 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
@@ -816,7 +816,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -884,7 +884,7 @@
          
         abstract 
          
-        ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
       </span>
       <span class="sympad">getParticipants</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html b/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
index 927bb18..4a3ddf4 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
@@ -640,11 +640,6 @@
 <div id="jd-content" class="api apilevel-">
 
 
-  <div class="jd-descr">
-    Contains data classes for multiplayer functionality.
-
-  </div>
-
 
 
 
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
index a0cefc2..5c52969 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
@@ -696,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -705,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -721,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -872,7 +872,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html">RealTimeMessage</a>&gt;</nobr></td>
+          <a href="/reference/android/os/Parcelable.Creator.html">Creator</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html">RealTimeMessage</a>&gt;</nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -936,7 +936,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html#getSenderParticipantId()">getSenderParticipantId</a></span>()</nobr>
@@ -971,7 +971,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel parcel, int flag)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> parcel, int flag)</nobr>
         
   </td></tr>
 
@@ -999,7 +999,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1018,7 +1018,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1037,7 +1037,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1066,7 +1066,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1130,7 +1130,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1201,7 +1201,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1239,7 +1239,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1373,7 +1373,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html">RealTimeMessage</a>&gt;
+        <a href="/reference/android/os/Parcelable.Creator.html">Creator</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html">RealTimeMessage</a>&gt;
       </span>
         CREATOR
     </h4>
@@ -1483,7 +1483,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getSenderParticipantId</span>
       <span class="normal">()</span>
@@ -1554,7 +1554,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel parcel, int flag)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> parcel, int flag)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
index f3e4f9f..55dc99f 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
@@ -751,7 +751,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html#onRealTimeMessageSent(int, int, java.lang.String)">onRealTimeMessageSent</a></span>(int statusCode, int tokenId, String recipientParticipantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html#onRealTimeMessageSent(int, int, java.lang.String)">onRealTimeMessageSent</a></span>(int statusCode, int tokenId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</nobr>
         
         <div class="jd-descrdiv">Called to notify the client that a reliable message was sent for a room.</div>
   
@@ -819,7 +819,7 @@
         void
       </span>
       <span class="sympad">onRealTimeMessageSent</span>
-      <span class="normal">(int statusCode, int tokenId, String recipientParticipantId)</span>
+      <span class="normal">(int statusCode, int tokenId, <a href="/reference/java/lang/String.html">String</a> recipientParticipantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
index 1b12a08..fdec653 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
@@ -703,7 +703,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
         <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a>&lt;T&gt; 
       
@@ -936,7 +936,7 @@
             
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
@@ -970,7 +970,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getCreatorId()">getCreatorId</a></span>()</nobr>
@@ -986,7 +986,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription()">getDescription</a></span>()</nobr>
@@ -1005,7 +1005,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the room description into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1020,10 +1020,10 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(<a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
         <div class="jd-descrdiv">Get the participant ID for a given player.</div>
   
@@ -1038,7 +1038,7 @@
             
             
             
-            ArrayList&lt;String&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
@@ -1057,7 +1057,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(<a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
         
         <div class="jd-descrdiv">Get the status of a participant in a room.</div>
   
@@ -1072,7 +1072,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getRoomId()">getRoomId</a></span>()</nobr>
@@ -1135,7 +1135,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1173,7 +1173,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1222,6 +1222,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1256,7 +1274,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -1530,7 +1548,7 @@
          
         abstract 
          
-        Bundle
+        <a href="/reference/android/os/Bundle.html">Bundle</a>
       </span>
       <span class="sympad">getAutoMatchCriteria</span>
       <span class="normal">()</span>
@@ -1599,7 +1617,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCreatorId</span>
       <span class="normal">()</span>
@@ -1633,7 +1651,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -1670,7 +1688,7 @@
         void
       </span>
       <span class="sympad">getDescription</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1706,10 +1724,10 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getParticipantId</span>
-      <span class="normal">(String playerId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> playerId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1751,7 +1769,7 @@
          
         abstract 
          
-        ArrayList&lt;String&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;
       </span>
       <span class="sympad">getParticipantIds</span>
       <span class="normal">()</span>
@@ -1789,7 +1807,7 @@
         int
       </span>
       <span class="sympad">getParticipantStatus</span>
-      <span class="normal">(String participantId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> participantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1841,7 +1859,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getRoomId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
index df6fb49..17c3c86 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -793,7 +793,7 @@
             <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#addPlayersToInvite(java.lang.String...)">addPlayersToInvite</a></span>(String... playerIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#addPlayersToInvite(java.lang.String...)">addPlayersToInvite</a></span>(<a href="/reference/java/lang/String.html">String...</a> playerIds)</nobr>
         
         <div class="jd-descrdiv">Add one or more player IDs to invite to the room.</div>
   
@@ -811,7 +811,7 @@
             <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#addPlayersToInvite(java.util.ArrayList<java.lang.String>)">addPlayersToInvite</a></span>(ArrayList&lt;String&gt; playerIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#addPlayersToInvite(java.util.ArrayList<java.lang.String>)">addPlayersToInvite</a></span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; playerIds)</nobr>
         
         <div class="jd-descrdiv">Add a list of player IDs to invite to the room.</div>
   
@@ -847,7 +847,7 @@
             <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setAutoMatchCriteria(android.os.Bundle)">setAutoMatchCriteria</a></span>(Bundle autoMatchCriteria)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setAutoMatchCriteria(android.os.Bundle)">setAutoMatchCriteria</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> autoMatchCriteria)</nobr>
         
         <div class="jd-descrdiv">Sets the auto-match criteria for the room.</div>
   
@@ -865,7 +865,7 @@
             <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setInvitationIdToAccept(java.lang.String)">setInvitationIdToAccept</a></span>(String invitationId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setInvitationIdToAccept(java.lang.String)">setInvitationIdToAccept</a></span>(<a href="/reference/java/lang/String.html">String</a> invitationId)</nobr>
         
         <div class="jd-descrdiv">Set the ID of the invitation to accept.</div>
   
@@ -967,7 +967,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -986,7 +986,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1005,7 +1005,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1034,7 +1034,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1098,7 +1098,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1215,7 +1215,7 @@
         <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a>
       </span>
       <span class="sympad">addPlayersToInvite</span>
-      <span class="normal">(String... playerIds)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> playerIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1259,7 +1259,7 @@
         <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a>
       </span>
       <span class="sympad">addPlayersToInvite</span>
-      <span class="normal">(ArrayList&lt;String&gt; playerIds)</span>
+      <span class="normal">(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; playerIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1337,7 +1337,7 @@
         <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a>
       </span>
       <span class="sympad">setAutoMatchCriteria</span>
-      <span class="normal">(Bundle autoMatchCriteria)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> autoMatchCriteria)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1381,7 +1381,7 @@
         <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html">RoomConfig.Builder</a>
       </span>
       <span class="sympad">setInvitationIdToAccept</span>
-      <span class="normal">(String invitationId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> invitationId)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
index 926eeda..1a493a6 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -831,7 +831,7 @@
             
             static
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html#createAutoMatchCriteria(int, int, long)">createAutoMatchCriteria</a></span>(int minAutoMatchPlayers, int maxAutoMatchPlayers, long exclusiveBitMask)</nobr>
@@ -849,7 +849,7 @@
             
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
@@ -867,7 +867,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html#getInvitationId()">getInvitationId</a></span>()</nobr>
@@ -885,7 +885,7 @@
             
             
             
-            String[]</nobr>
+            <a href="/reference/java/lang/String.html">String[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html#getInvitedPlayerIds()">getInvitedPlayerIds</a></span>()</nobr>
@@ -1008,7 +1008,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1027,7 +1027,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1046,7 +1046,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1075,7 +1075,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1139,7 +1139,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1297,7 +1297,7 @@
          
          
          
-        Bundle
+        <a href="/reference/android/os/Bundle.html">Bundle</a>
       </span>
       <span class="sympad">createAutoMatchCriteria</span>
       <span class="normal">(int minAutoMatchPlayers, int maxAutoMatchPlayers, long exclusiveBitMask)</span>
@@ -1351,7 +1351,7 @@
          
          
          
-        Bundle
+        <a href="/reference/android/os/Bundle.html">Bundle</a>
       </span>
       <span class="sympad">getAutoMatchCriteria</span>
       <span class="normal">()</span>
@@ -1385,7 +1385,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getInvitationId</span>
       <span class="normal">()</span>
@@ -1420,7 +1420,7 @@
          
          
          
-        String[]
+        <a href="/reference/java/lang/String.html">String[]</a>
       </span>
       <span class="sympad">getInvitedPlayerIds</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
index 7e6861b..b2e7fb1 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
@@ -688,6 +688,9 @@
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -716,7 +719,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -725,6 +728,8 @@
   
       implements 
       
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
+      
         <a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> 
       
   
@@ -741,7 +746,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -939,7 +944,7 @@
           public
           static
           final
-          Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a>&gt;</nobr></td>
+          <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntityCreator.html">RoomEntityCreator</a></nobr></td>
           <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#CREATOR">CREATOR</a></td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -990,7 +995,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> obj)</nobr>
         
   </td></tr>
 
@@ -1021,7 +1026,7 @@
             
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
@@ -1055,7 +1060,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getCreatorId()">getCreatorId</a></span>()</nobr>
@@ -1071,7 +1076,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getDescription()">getDescription</a></span>()</nobr>
@@ -1090,7 +1095,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the room description into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1105,10 +1110,10 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(<a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
         <div class="jd-descrdiv">Get the participant ID for a given player.</div>
   
@@ -1123,7 +1128,7 @@
             
             
             
-            ArrayList&lt;String&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
@@ -1142,7 +1147,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(<a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
         
         <div class="jd-descrdiv">Get the status of a participant in a room.</div>
   
@@ -1157,7 +1162,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -1175,7 +1180,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getRoomId()">getRoomId</a></span>()</nobr>
@@ -1239,11 +1244,13 @@
             
             
             
-            String</nobr>
+            boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#toString()">toString</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
         
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
   </td></tr>
 
 
@@ -1255,10 +1262,26 @@
             
             
             
+            <a href="/reference/java/lang/String.html">String</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#toString()">toString</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</nobr>
         
   </td></tr>
 
@@ -1269,6 +1292,63 @@
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getUnparcelClassLoader()">getUnparcelClassLoader</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            static
+            
+            <a href="/reference/java/lang/Integer.html">Integer</a></nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getUnparcelClientVersion()">getUnparcelClientVersion</a></span>()</nobr>
+        
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#shouldDowngrade()">shouldDowngrade</a></span>()</nobr>
+        
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -1286,7 +1366,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1305,7 +1385,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1324,7 +1404,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1353,7 +1433,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1417,7 +1497,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1488,7 +1568,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1526,7 +1606,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1575,6 +1655,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1609,7 +1707,7 @@
             
             
             
-            ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
@@ -1653,7 +1751,7 @@
             
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
@@ -1687,7 +1785,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getCreatorId()">getCreatorId</a></span>()</nobr>
@@ -1703,7 +1801,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription()">getDescription</a></span>()</nobr>
@@ -1722,7 +1820,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(CharArrayBuffer dataOut)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getDescription(android.database.CharArrayBuffer)">getDescription</a></span>(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</nobr>
         
         <div class="jd-descrdiv">Loads the room description into the given <code><a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a></code>.</div>
   
@@ -1737,10 +1835,10 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(<a href="/reference/java/lang/String.html">String</a> playerId)</nobr>
         
         <div class="jd-descrdiv">Get the participant ID for a given player.</div>
   
@@ -1755,7 +1853,7 @@
             
             
             
-            ArrayList&lt;String&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
@@ -1774,7 +1872,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(<a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
         
         <div class="jd-descrdiv">Get the status of a participant in a room.</div>
   
@@ -1789,7 +1887,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getRoomId()">getRoomId</a></span>()</nobr>
@@ -1875,7 +1973,7 @@
         public 
         static 
         final 
-        Creator&lt;<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a>&gt;
+        <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntityCreator.html">RoomEntityCreator</a>
       </span>
         CREATOR
     </h4>
@@ -1954,7 +2052,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object obj)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> obj)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2027,7 +2125,7 @@
          
          
          
-        Bundle
+        <a href="/reference/android/os/Bundle.html">Bundle</a>
       </span>
       <span class="sympad">getAutoMatchCriteria</span>
       <span class="normal">()</span>
@@ -2091,7 +2189,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCreatorId</span>
       <span class="normal">()</span>
@@ -2120,7 +2218,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -2152,7 +2250,7 @@
         void
       </span>
       <span class="sympad">getDescription</span>
-      <span class="normal">(CharArrayBuffer dataOut)</span>
+      <span class="normal">(<a href="/reference/android/database/CharArrayBuffer.html">CharArrayBuffer</a> dataOut)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2188,10 +2286,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getParticipantId</span>
-      <span class="normal">(String playerId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> playerId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2233,7 +2331,7 @@
          
          
          
-        ArrayList&lt;String&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;
       </span>
       <span class="sympad">getParticipantIds</span>
       <span class="normal">()</span>
@@ -2265,7 +2363,7 @@
         int
       </span>
       <span class="sympad">getParticipantStatus</span>
-      <span class="normal">(String participantId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> participantId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2307,7 +2405,7 @@
          
          
          
-        ArrayList&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
+        <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>&gt;
       </span>
       <span class="sympad">getParticipants</span>
       <span class="normal">()</span>
@@ -2342,7 +2440,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getRoomId</span>
       <span class="normal">()</span>
@@ -2448,6 +2546,42 @@
 </div>
 
 
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isDataValid</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="toString()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2458,7 +2592,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2490,7 +2624,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel dest, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> dest, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2511,6 +2645,113 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getUnparcelClassLoader()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/ClassLoader.html">ClassLoader</a>
+      </span>
+      <span class="sympad">getUnparcelClassLoader</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The ClassLoader to use for unparceling, if any.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="getUnparcelClientVersion()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+        static 
+         
+         
+         
+        <a href="/reference/java/lang/Integer.html">Integer</a>
+      </span>
+      <span class="sympad">getUnparcelClientVersion</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>The client version to use for unparceling, if known.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="shouldDowngrade()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">shouldDowngrade</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>Whether or not this object has been downgraded to hand back to a client.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
index 988cc0c..ab365b1 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
@@ -788,7 +788,43 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerDeclined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerDeclined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onP2PConnected(java.lang.String)">onP2PConnected</a></span>(<a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
+        
+        <div class="jd-descrdiv">Called when the client is successfully connected to a peer participant.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onP2PDisconnected(java.lang.String)">onP2PDisconnected</a></span>(<a href="/reference/java/lang/String.html">String</a> participantId)</nobr>
+        
+        <div class="jd-descrdiv">Called when client gets disconnected from a peer participant.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerDeclined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerDeclined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peers decline the invitation to a room.</div>
   
@@ -806,7 +842,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerInvitedToRoom(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerInvitedToRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerInvitedToRoom(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerInvitedToRoom</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peers are invited to a room.</div>
   
@@ -824,7 +860,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerJoined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerJoined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerJoined(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerJoined</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peer participants join a room.</div>
   
@@ -842,7 +878,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerLeft(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerLeft</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeerLeft(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeerLeft</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peer participant leave a room.</div>
   
@@ -860,7 +896,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersConnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersConnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersConnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersConnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peer participants are connected to a room.</div>
   
@@ -878,7 +914,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersDisconnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersDisconnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html#onPeersDisconnected(com.google.android.gms.games.multiplayer.realtime.Room, java.util.List<java.lang.String>)">onPeersDisconnected</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</nobr>
         
         <div class="jd-descrdiv">Called when one or more peer participants are disconnected from a room.</div>
   
@@ -993,8 +1029,18 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Called when the client is connected to the connected set in a room.
-</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Called when the client is connected to the connected set in a room.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.
+</td>
+        </tr>
+      </table>
+  </div>
 
     </div>
 </div>
@@ -1023,8 +1069,96 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Called when the client is disconnected from the connected set in a room.
-</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Called when the client is disconnected from the connected set in a room.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="onP2PConnected(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        void
+      </span>
+      <span class="sympad">onP2PConnected</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> participantId)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Called when the client is successfully connected to a peer participant.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>participantId</td>
+          <td>ID of the peer participant who was successfully connected.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="onP2PDisconnected(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        void
+      </span>
+      <span class="sympad">onP2PDisconnected</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> participantId)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Called when client gets disconnected from a peer participant.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>participantId</td>
+          <td>ID of the peer participant who was disconnected.
+</td>
+        </tr>
+      </table>
+  </div>
 
     </div>
 </div>
@@ -1043,7 +1177,7 @@
         void
       </span>
       <span class="sympad">onPeerDeclined</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1058,6 +1192,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of the peers invited to a room.
 </td>
@@ -1082,7 +1221,7 @@
         void
       </span>
       <span class="sympad">onPeerInvitedToRoom</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1097,6 +1236,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of the peers invited to a room.
 </td>
@@ -1121,7 +1265,7 @@
         void
       </span>
       <span class="sympad">onPeerJoined</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1136,6 +1280,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of peer participants who joined a room.
 </td>
@@ -1160,7 +1309,7 @@
         void
       </span>
       <span class="sympad">onPeerLeft</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1175,6 +1324,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of peer participants who left the room.
 </td>
@@ -1199,7 +1353,7 @@
         void
       </span>
       <span class="sympad">onPeersConnected</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1214,6 +1368,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of peer participants who were connected.
 </td>
@@ -1238,7 +1397,7 @@
         void
       </span>
       <span class="sympad">onPeersDisconnected</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, List&lt;String&gt; participantIds)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a> room, <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; participantIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1253,6 +1412,11 @@
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
+          <th>room</td>
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.</td>
+        </tr>
+        <tr>
           <th>participantIds</td>
           <td>IDs of peer participants who were disconnected.
 </td>
@@ -1294,7 +1458,8 @@
       <table class="jd-tagtable">
         <tr>
           <th>room</td>
-          <td>The room data with the status of a room and its participants.
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.
 </td>
         </tr>
       </table>
@@ -1334,7 +1499,9 @@
       <table class="jd-tagtable">
         <tr>
           <th>room</td>
-          <td>The room data with the status of a room and its participants.
+          <td>The room data with the status of a room and its participants. The room can be
+              <code>null</code> if it could not be loaded successfully.
+
 </td>
         </tr>
       </table>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
index 08deae8..2235af7 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
@@ -769,7 +769,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html#onLeftRoom(int, java.lang.String)">onLeftRoom</a></span>(int statusCode, String roomId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html#onLeftRoom(int, java.lang.String)">onLeftRoom</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String</a> roomId)</nobr>
         
         <div class="jd-descrdiv">Called when the client attempts to leaves the real-time room.</div>
   
@@ -904,7 +904,8 @@
         </tr>
         <tr>
           <th>room</td>
-          <td>The data of the real-time room that was joined.
+          <td>The data of the room that was joined. The room can be <code>null</code> if the
+              <code><a href="/reference/com/google/android/gms/games/GamesClient.html#joinRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">joinRoom(RoomConfig)</a></code> operation failed.
 </td>
         </tr>
       </table>
@@ -927,7 +928,7 @@
         void
       </span>
       <span class="sympad">onLeftRoom</span>
-      <span class="normal">(int statusCode, String roomId)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String</a> roomId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -987,13 +988,22 @@
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>Called when all the participants in a real-time room are fully connected. This gets called
- once all invitations are accepted and any necessary automatching has been completed</p></div>
+ once all invitations are accepted and any necessary automatching has been completed
+ Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
+ service.</li>
+ </ul></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
           <th>room</td>
-          <td>The fully connected room object.
+          <td>The fully connected room object. The room can be <code>null</code> if it could not be
+              loaded successfully.
 </td>
         </tr>
       </table>
@@ -1047,7 +1057,9 @@
         </tr>
         <tr>
           <th>room</td>
-          <td>The real-time room data that was created.
+          <td>The room data that was created if successful. The room can be <code>null</code> if the
+              <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code> operation failed.
+
 </td>
         </tr>
       </table>
diff --git a/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html b/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
index 562cc55..757aed5 100644
--- a/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
+++ b/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -822,14 +822,14 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#ERROR_MAIN_THREAD">ERROR_MAIN_THREAD</a></td>
         <td class="jd-descrcol" width="100%">GCM methods are blocking.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#ERROR_SERVICE_NOT_AVAILABLE">ERROR_SERVICE_NOT_AVAILABLE</a></td>
         <td class="jd-descrcol" width="100%">The device can't read the response, or there was a 500/503 from the
  server that can be retried later.</td>
@@ -837,7 +837,7 @@
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#MESSAGE_TYPE_DELETED">MESSAGE_TYPE_DELETED</a></td>
         <td class="jd-descrcol" width="100%">Returned by <code><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getMessageType(android.content.Intent)">getMessageType(Intent)</a></code> to indicate that the server deleted
  some pending messages because they were collapsible.</td>
@@ -845,14 +845,14 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#MESSAGE_TYPE_MESSAGE">MESSAGE_TYPE_MESSAGE</a></td>
         <td class="jd-descrcol" width="100%">Returned by <code><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getMessageType(android.content.Intent)">getMessageType(Intent)</a></code> to indicate a regular message.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#MESSAGE_TYPE_SEND_ERROR">MESSAGE_TYPE_SEND_ERROR</a></td>
         <td class="jd-descrcol" width="100%">Returned by <code><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getMessageType(android.content.Intent)">getMessageType(Intent)</a></code> to indicate a send error.</td>
     </tr>
@@ -936,7 +936,7 @@
             <a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">GoogleCloudMessaging</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getInstance(android.content.Context)">getInstance</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getInstance(android.content.Context)">getInstance</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Return the singleton instance of GCM.</div>
   
@@ -951,10 +951,10 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getMessageType(android.content.Intent)">getMessageType</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#getMessageType(android.content.Intent)">getMessageType</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Return the message type.</div>
   
@@ -969,10 +969,10 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#register(java.lang.String...)">register</a></span>(String... senderIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#register(java.lang.String...)">register</a></span>(<a href="/reference/java/lang/String.html">String...</a> senderIds)</nobr>
         
         <div class="jd-descrdiv">Register the application for GCM and return the registration ID.</div>
   
@@ -990,7 +990,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#send(java.lang.String, java.lang.String, long, android.os.Bundle)">send</a></span>(String to, String msgId, long timeToLive, Bundle data)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#send(java.lang.String, java.lang.String, long, android.os.Bundle)">send</a></span>(<a href="/reference/java/lang/String.html">String</a> to, <a href="/reference/java/lang/String.html">String</a> msgId, long timeToLive, <a href="/reference/android/os/Bundle.html">Bundle</a> data)</nobr>
         
         <div class="jd-descrdiv">Send a "device to cloud" message.</div>
   
@@ -1008,7 +1008,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#send(java.lang.String, java.lang.String, android.os.Bundle)">send</a></span>(String to, String msgId, Bundle data)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html#send(java.lang.String, java.lang.String, android.os.Bundle)">send</a></span>(<a href="/reference/java/lang/String.html">String</a> to, <a href="/reference/java/lang/String.html">String</a> msgId, <a href="/reference/android/os/Bundle.html">Bundle</a> data)</nobr>
         
         <div class="jd-descrdiv">Send a "device to cloud" message.</div>
   
@@ -1056,7 +1056,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1075,7 +1075,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1094,7 +1094,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1123,7 +1123,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1187,7 +1187,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1286,7 +1286,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         ERROR_MAIN_THREAD
     </h4>
@@ -1325,7 +1325,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         ERROR_SERVICE_NOT_AVAILABLE
     </h4>
@@ -1365,7 +1365,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         MESSAGE_TYPE_DELETED
     </h4>
@@ -1404,7 +1404,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         MESSAGE_TYPE_MESSAGE
     </h4>
@@ -1442,7 +1442,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         MESSAGE_TYPE_SEND_ERROR
     </h4>
@@ -1573,7 +1573,7 @@
         <a href="/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">GoogleCloudMessaging</a>
       </span>
       <span class="sympad">getInstance</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1599,10 +1599,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getMessageType</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1643,10 +1643,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">register</span>
-      <span class="normal">(String... senderIds)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> senderIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1684,7 +1684,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td></td>
         </tr>
       </table>
@@ -1707,7 +1707,7 @@
         void
       </span>
       <span class="sympad">send</span>
-      <span class="normal">(String to, String msgId, long timeToLive, Bundle data)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> to, <a href="/reference/java/lang/String.html">String</a> msgId, long timeToLive, <a href="/reference/android/os/Bundle.html">Bundle</a> data)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1721,7 +1721,7 @@
 
  The current limits for max storage time and number of outstanding messages per
  application are documented in the
- <a href="http://developer.android.com/google/gcm/gcm.html">GCM Dev Guide</a>.</p></div>
+ <a href="/google/gcm/gcm.html">GCM Dev Guide</a>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -1756,7 +1756,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td></td>
         </tr>
       </table>
@@ -1779,7 +1779,7 @@
         void
       </span>
       <span class="sympad">send</span>
-      <span class="normal">(String to, String msgId, Bundle data)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> to, <a href="/reference/java/lang/String.html">String</a> msgId, <a href="/reference/android/os/Bundle.html">Bundle</a> data)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1817,7 +1817,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td></td>
         </tr>
       </table>
@@ -1864,7 +1864,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IOException</td>
+            <th><a href="/reference/java/io/IOException.html">IOException</a></td>
             <td>if we can't connect to server to unregister.
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
index 5b50466..b2fe29b 100644
--- a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
+++ b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
@@ -688,7 +688,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -713,7 +713,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -756,7 +756,7 @@
  ActivityRecognitionClient mActivityRecognitionClient =
          new ActivityRecognitionClient(this, this, this);
  mActivityRecognitionClient.connect();
-
+ 
   // Called when a connection to the ActivityRecognitionService has been established.
  public void onConnected(Bundle connectionHint) {
      Intent intent = new Intent(this, MyIntentService.class);
@@ -842,7 +842,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#ActivityRecognitionClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">ActivityRecognitionClient</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#ActivityRecognitionClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">ActivityRecognitionClient</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Creates a <code><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html">ActivityRecognitionClient</a></code>.</div>
   
@@ -1021,7 +1021,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#removeActivityUpdates(android.app.PendingIntent)">removeActivityUpdates</a></span>(PendingIntent callbackIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#removeActivityUpdates(android.app.PendingIntent)">removeActivityUpdates</a></span>(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</nobr>
         
         <div class="jd-descrdiv">Removes all activity updates for the specified PendingIntent.</div>
   
@@ -1039,7 +1039,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#requestActivityUpdates(long, android.app.PendingIntent)">requestActivityUpdates</a></span>(long detectionIntervalMillis, PendingIntent callbackIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionClient.html#requestActivityUpdates(long, android.app.PendingIntent)">requestActivityUpdates</a></span>(long detectionIntervalMillis, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</nobr>
         
         <div class="jd-descrdiv">Register for activity recognition updates.</div>
   
@@ -1105,7 +1105,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1124,7 +1124,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1143,7 +1143,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1172,7 +1172,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1236,7 +1236,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1555,7 +1555,7 @@
         
       </span>
       <span class="sympad">ActivityRecognitionClient</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1944,7 +1944,7 @@
         void
       </span>
       <span class="sympad">removeActivityUpdates</span>
-      <span class="normal">(PendingIntent callbackIntent)</span>
+      <span class="normal">(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1972,7 +1972,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if this method was called at an
              inappropriate time, such as before the LocationServiceClient
              has bound to the remote service.
@@ -1998,7 +1998,7 @@
         void
       </span>
       <span class="sympad">requestActivityUpdates</span>
-      <span class="normal">(long detectionIntervalMillis, PendingIntent callbackIntent)</span>
+      <span class="normal">(long detectionIntervalMillis, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2067,7 +2067,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if this method was called at an
              inappropriate time, such as before the LocationServiceClient
              has bound to the remote service.
diff --git a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
index 2ac9352..ecd5eaa 100644
--- a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
+++ b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
@@ -699,7 +699,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +708,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +724,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -803,19 +803,12 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#EXTRA_ACTIVITY_RESULT">EXTRA_ACTIVITY_RESULT</a></td>
         <td class="jd-descrcol" width="100%"></td>
     </tr>
     
     
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
 
 </table>
 
@@ -914,7 +907,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#ActivityRecognitionResult(java.util.List<com.google.android.gms.location.DetectedActivity>, long, long)">ActivityRecognitionResult</a></span>(List&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt; probableActivities, long time, long elapsedRealtimeMillis)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#ActivityRecognitionResult(java.util.List<com.google.android.gms.location.DetectedActivity>, long, long)">ActivityRecognitionResult</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt; probableActivities, long time, long elapsedRealtimeMillis)</nobr>
         
         <div class="jd-descrdiv">Constructs an ActivityRecognitionResult.</div>
   
@@ -979,7 +972,7 @@
             <a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html">ActivityRecognitionResult</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#extractResult(android.content.Intent)">extractResult</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#extractResult(android.content.Intent)">extractResult</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Extracts the ActivityRecognitionResult from an Intent.</div>
   
@@ -1050,7 +1043,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#getProbableActivities()">getProbableActivities</a></span>()</nobr>
@@ -1091,7 +1084,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#hasResult(android.content.Intent)">hasResult</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#hasResult(android.content.Intent)">hasResult</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Returns true if an Intent contains an ActivityRecognitionResult.</div>
   
@@ -1106,7 +1099,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#toString()">toString</a></span>()</nobr>
@@ -1125,7 +1118,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1153,7 +1146,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1172,7 +1165,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1191,7 +1184,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1220,7 +1213,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1284,7 +1277,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1355,7 +1348,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1393,7 +1386,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1441,7 +1434,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_ACTIVITY_RESULT
     </h4>
@@ -1470,43 +1463,6 @@
 
 
 
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
 
 <!-- Fields -->
 
@@ -1567,7 +1523,7 @@
         
       </span>
       <span class="sympad">ActivityRecognitionResult</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt; probableActivities, long time, long elapsedRealtimeMillis)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt; probableActivities, long time, long elapsedRealtimeMillis)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1708,7 +1664,7 @@
         <a href="/reference/com/google/android/gms/location/ActivityRecognitionResult.html">ActivityRecognitionResult</a>
       </span>
       <span class="sympad">extractResult</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1836,7 +1792,7 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/DetectedActivity.html">DetectedActivity</a>&gt;
       </span>
       <span class="sympad">getProbableActivities</span>
       <span class="normal">()</span>
@@ -1905,7 +1861,7 @@
         boolean
       </span>
       <span class="sympad">hasResult</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1940,7 +1896,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -1972,7 +1928,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/DetectedActivity.html b/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
index 99f56ad..a2a6bac 100644
--- a/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
+++ b/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
@@ -699,7 +699,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +708,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +724,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -804,41 +804,34 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#ON_BICYCLE">ON_BICYCLE</a></td>
         <td class="jd-descrcol" width="100%">The device is on a bicycle.</td>
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#ON_FOOT">ON_FOOT</a></td>
         <td class="jd-descrcol" width="100%">The device is on a user who is walking or running.</td>
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#STILL">STILL</a></td>
         <td class="jd-descrcol" width="100%">The device is still (not moving).</td>
     </tr>
     
     
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#TILTING">TILTING</a></td>
         <td class="jd-descrcol" width="100%">The device angle relative to gravity changed significantly.</td>
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#UNKNOWN">UNKNOWN</a></td>
         <td class="jd-descrcol" width="100%">Unable to detect the current activity.</td>
@@ -1024,7 +1017,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#toString()">toString</a></span>()</nobr>
@@ -1043,7 +1036,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/DetectedActivity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1071,7 +1064,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1090,7 +1083,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1109,7 +1102,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1138,7 +1131,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1202,7 +1195,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1273,7 +1266,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1311,7 +1304,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1390,43 +1383,6 @@
 
 
 
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
 <A NAME="ON_BICYCLE"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1838,7 +1794,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -1870,7 +1826,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html b/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
index d8a96c3..88e56ac 100644
--- a/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
+++ b/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -875,7 +875,7 @@
             <a href="/reference/com/google/android/gms/location/Geofence.Builder.html">Geofence.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/Geofence.Builder.html#setRequestId(java.lang.String)">setRequestId</a></span>(String requestId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/Geofence.Builder.html#setRequestId(java.lang.String)">setRequestId</a></span>(<a href="/reference/java/lang/String.html">String</a> requestId)</nobr>
         
         <div class="jd-descrdiv">Sets the request ID of the geofence.</div>
   
@@ -923,7 +923,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -942,7 +942,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -961,7 +961,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -990,7 +990,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1054,7 +1054,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1222,7 +1222,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if any parameters are not set or out
              of range
 </td>
@@ -1339,7 +1339,7 @@
         <a href="/reference/com/google/android/gms/location/Geofence.Builder.html">Geofence.Builder</a>
       </span>
       <span class="sympad">setRequestId</span>
-      <span class="normal">(String requestId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> requestId)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/Geofence.html b/docs/html/reference/com/google/android/gms/location/Geofence.html
index b449285..00d8e4b 100644
--- a/docs/html/reference/com/google/android/gms/location/Geofence.html
+++ b/docs/html/reference/com/google/android/gms/location/Geofence.html
@@ -800,7 +800,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/Geofence.html#getRequestId()">getRequestId</a></span>()</nobr>
@@ -992,7 +992,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getRequestId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html b/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
index 660fd973..dfd088c 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
@@ -752,7 +752,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html#onAddGeofencesResult(int, java.lang.String[])">onAddGeofencesResult</a></span>(int statusCode, String[] geofenceRequestIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html#onAddGeofencesResult(int, java.lang.String[])">onAddGeofencesResult</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String[]</a> geofenceRequestIds)</nobr>
         
         <div class="jd-descrdiv">Called when the <code><a href="/reference/com/google/android/gms/location/LocationClient.html#addGeofences(java.util.List<com.google.android.gms.location.Geofence>, android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener)">addGeofences(List, PendingIntent, OnAddGeofencesResultListener)</a></code> operation completes successfully
  or unsuccessfully.</div>
@@ -821,7 +821,7 @@
         void
       </span>
       <span class="sympad">onAddGeofencesResult</span>
-      <span class="normal">(int statusCode, String[] geofenceRequestIds)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String[]</a> geofenceRequestIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html b/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
index d9f0438..c273503 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
@@ -752,7 +752,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html#onRemoveGeofencesByPendingIntentResult(int, android.app.PendingIntent)">onRemoveGeofencesByPendingIntentResult</a></span>(int statusCode, PendingIntent pendingIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html#onRemoveGeofencesByPendingIntentResult(int, android.app.PendingIntent)">onRemoveGeofencesByPendingIntentResult</a></span>(int statusCode, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent)</nobr>
         
         <div class="jd-descrdiv">Called when the <code><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences(PendingIntent, OnRemoveGeofencesResultListener)</a></code> operation completes successfully or
  unsuccessfully.</div>
@@ -771,7 +771,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html#onRemoveGeofencesByRequestIdsResult(int, java.lang.String[])">onRemoveGeofencesByRequestIdsResult</a></span>(int statusCode, String[] geofenceRequestIds)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html#onRemoveGeofencesByRequestIdsResult(int, java.lang.String[])">onRemoveGeofencesByRequestIdsResult</a></span>(int statusCode, <a href="/reference/java/lang/String.html">String[]</a> geofenceRequestIds)</nobr>
         
         <div class="jd-descrdiv">Called when the <code><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(java.util.List<java.lang.String>, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences(List, OnRemoveGeofencesResultListener)</a></code> operation completes successfully or
  unsuccessfully.</div>
@@ -840,7 +840,7 @@
         void
       </span>
       <span class="sympad">onRemoveGeofencesByPendingIntentResult</span>
-      <span class="normal">(int statusCode, PendingIntent pendingIntent)</span>
+      <span class="normal">(int statusCode, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -889,7 +889,7 @@
         void
       </span>
       <span class="sympad">onRemoveGeofencesByRequestIdsResult</span>
-      <span class="normal">(int statusCode, String[] geofenceRequestIds)</span>
+      <span class="normal">(int statusCode, <a href="/reference/java/lang/String.html">String[]</a> geofenceRequestIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.html b/docs/html/reference/com/google/android/gms/location/LocationClient.html
index d7bd08a..6bdbc94 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.html
@@ -694,7 +694,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -719,7 +719,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -835,13 +835,21 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationClient.html#KEY_LOCATION_CHANGED">KEY_LOCATION_CHANGED</a></td>
         <td class="jd-descrcol" width="100%">Key used for a Bundle extra holding a Location value when a location change is broadcast
  using a PendingIntent.</td>
     </tr>
     
     
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationClient.html#KEY_MOCK_LOCATION">KEY_MOCK_LOCATION</a></td>
+        <td class="jd-descrcol" width="100%">Key used for the Bundle extra in Location object holding a boolean indicating whether
+ the location was set using <code><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockLocation(android.location.Location)">setMockLocation(Location)</a></code>.</td>
+    </tr>
+    
+    
 
 </table>
 
@@ -872,7 +880,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#LocationClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">LocationClient</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#LocationClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">LocationClient</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Creates a <code><a href="/reference/com/google/android/gms/location/LocationClient.html">LocationClient</a></code>.</div>
   
@@ -903,7 +911,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#addGeofences(java.util.List<com.google.android.gms.location.Geofence>, android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener)">addGeofences</a></span>(List&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt; geofences, PendingIntent pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html">LocationClient.OnAddGeofencesResultListener</a> listener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#addGeofences(java.util.List<com.google.android.gms.location.Geofence>, android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener)">addGeofences</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt; geofences, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html">LocationClient.OnAddGeofencesResultListener</a> listener)</nobr>
         
         <div class="jd-descrdiv">Sets alerts to be notified when the device enters or exits one of the
  specified geofences.</div>
@@ -958,7 +966,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getErrorCode(android.content.Intent)">getErrorCode</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getErrorCode(android.content.Intent)">getErrorCode</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Returns the error code that explains the error that triggered this
  intent.</div>
@@ -977,7 +985,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getGeofenceTransition(android.content.Intent)">getGeofenceTransition</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getGeofenceTransition(android.content.Intent)">getGeofenceTransition</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Returns the transition type of geofence transition alert.</div>
   
@@ -992,7 +1000,7 @@
             
             
             
-            Location</nobr>
+            <a href="/reference/android/location/Location.html">Location</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getLastLocation()">getLastLocation</a></span>()</nobr>
@@ -1010,10 +1018,10 @@
             
             static
             
-            List&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getTriggeringGeofences(android.content.Intent)">getTriggeringGeofences</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#getTriggeringGeofences(android.content.Intent)">getTriggeringGeofences</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Returns a list of geofences that triggers this geofence transition alert.</div>
   
@@ -1031,7 +1039,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#hasError(android.content.Intent)">hasError</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#hasError(android.content.Intent)">hasError</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Whether an error triggered this intent.</div>
   
@@ -1161,7 +1169,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(java.util.List<java.lang.String>, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences</a></span>(List&lt;String&gt; geofenceRequestIds, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(java.util.List<java.lang.String>, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; geofenceRequestIds, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</nobr>
         
         <div class="jd-descrdiv">Removes geofences by their request IDs.</div>
   
@@ -1179,7 +1187,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences</a></span>(PendingIntent pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeGeofences(android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener)">removeGeofences</a></span>(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</nobr>
         
         <div class="jd-descrdiv">Removes all geofences associated with the given <code>pendingIntent</code>.</div>
   
@@ -1215,7 +1223,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeLocationUpdates(android.app.PendingIntent)">removeLocationUpdates</a></span>(PendingIntent callbackIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#removeLocationUpdates(android.app.PendingIntent)">removeLocationUpdates</a></span>(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</nobr>
         
         <div class="jd-descrdiv">Removes all location updates for the given pending intent.</div>
   
@@ -1233,7 +1241,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#requestLocationUpdates(com.google.android.gms.location.LocationRequest, android.app.PendingIntent)">requestLocationUpdates</a></span>(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, PendingIntent callbackIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#requestLocationUpdates(com.google.android.gms.location.LocationRequest, android.app.PendingIntent)">requestLocationUpdates</a></span>(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</nobr>
         
         <div class="jd-descrdiv">Requests location updates with a callback on the specified PendingIntent.</div>
   
@@ -1269,7 +1277,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#requestLocationUpdates(com.google.android.gms.location.LocationRequest, com.google.android.gms.location.LocationListener, android.os.Looper)">requestLocationUpdates</a></span>(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/com/google/android/gms/location/LocationListener.html">LocationListener</a> listener, Looper looper)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#requestLocationUpdates(com.google.android.gms.location.LocationRequest, com.google.android.gms.location.LocationListener, android.os.Looper)">requestLocationUpdates</a></span>(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/com/google/android/gms/location/LocationListener.html">LocationListener</a> listener, <a href="/reference/android/os/Looper.html">Looper</a> looper)</nobr>
         
         <div class="jd-descrdiv">Requests location updates with a callback on the specified Looper thread.</div>
   
@@ -1287,6 +1295,42 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockLocation(android.location.Location)">setMockLocation</a></span>(<a href="/reference/android/location/Location.html">Location</a> mockLocation)</nobr>
+        
+        <div class="jd-descrdiv">Sets the mock location to be used for the location provider.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockMode(boolean)">setMockMode</a></span>(boolean isMockMode)</nobr>
+        
+        <div class="jd-descrdiv">Sets whether or not the location provider is in mock mode.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> listener)</nobr>
         
         <div class="jd-descrdiv">Removes a connection listener from this <code>GooglePlayServicesClient</code>.</div>
@@ -1335,7 +1379,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1354,7 +1398,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1373,7 +1417,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1402,7 +1446,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1466,7 +1510,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1775,7 +1819,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_LOCATION_CHANGED
     </h4>
@@ -1806,6 +1850,46 @@
 
 
 
+<A NAME="KEY_MOCK_LOCATION"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        <a href="/reference/java/lang/String.html">String</a>
+      </span>
+        KEY_MOCK_LOCATION
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Key used for the Bundle extra in Location object holding a boolean indicating whether
+ the location was set using <code><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockLocation(android.location.Location)">setMockLocation(Location)</a></code>.  If the value is false this
+ extra is not set.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                "mockLocation"
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 
 <!-- Fields -->
 
@@ -1831,7 +1915,7 @@
         
       </span>
       <span class="sympad">LocationClient</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1894,7 +1978,7 @@
         void
       </span>
       <span class="sympad">addGeofences</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt; geofences, PendingIntent pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html">LocationClient.OnAddGeofencesResultListener</a> listener)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt; geofences, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html">LocationClient.OnAddGeofencesResultListener</a> listener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1956,23 +2040,23 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>SecurityException</td>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
             <td>if the app does not have
              <code><a href="/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION">ACCESS_FINE_LOCATION</a></code>
              permission</td>
         </tr>  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the connection to Google Play Store
              Services hasn't been established</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if <code>geofences</code> is <code>null</code> or
              empty</td>
         </tr>  
         <tr>
-            <th>NullPointerException</td>
+            <th><a href="/reference/java/lang/NullPointerException.html">NullPointerException</a></td>
             <td>if <code>intent</code> or <code>listener</code> is
              <code>null</code>
 </td>
@@ -2060,7 +2144,7 @@
         int
       </span>
       <span class="sympad">getErrorCode</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2105,7 +2189,7 @@
         int
       </span>
       <span class="sympad">getGeofenceTransition</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2147,7 +2231,7 @@
          
          
          
-        Location
+        <a href="/reference/android/location/Location.html">Location</a>
       </span>
       <span class="sympad">getLastLocation</span>
       <span class="normal">()</span>
@@ -2184,10 +2268,10 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/location/Geofence.html">Geofence</a>&gt;
       </span>
       <span class="sympad">getTriggeringGeofences</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2232,7 +2316,7 @@
         boolean
       </span>
       <span class="sympad">hasError</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2538,7 +2622,7 @@
         void
       </span>
       <span class="sympad">removeGeofences</span>
-      <span class="normal">(List&lt;String&gt; geofenceRequestIds, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; geofenceRequestIds, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2576,23 +2660,23 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if <code>geofenceRequestIds</code> is
              <code>null</code> or empty</td>
         </tr>  
         <tr>
-            <th>SecurityException</td>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
             <td>if the app does not have
              <code><a href="/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION">ACCESS_FINE_LOCATION</a></code>
              permission</td>
         </tr>  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the connection to Google Play Store
              Services hasn't been established</td>
         </tr>  
         <tr>
-            <th>NullPointerException</td>
+            <th><a href="/reference/java/lang/NullPointerException.html">NullPointerException</a></td>
             <td>if <code>listener</code> is <code>null</code>
 </td>
         </tr>
@@ -2616,7 +2700,7 @@
         void
       </span>
       <span class="sympad">removeGeofences</span>
-      <span class="normal">(PendingIntent pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</span>
+      <span class="normal">(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> pendingIntent, <a href="/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html">LocationClient.OnRemoveGeofencesResultListener</a> listener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2659,18 +2743,18 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>SecurityException</td>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
             <td>if the app does not have
              <code><a href="/reference/android/Manifest.permission.html#ACCESS_FINE_LOCATION">ACCESS_FINE_LOCATION</a></code>
              permission</td>
         </tr>  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the connection to Google Play Store
              Services hasn't been established</td>
         </tr>  
         <tr>
-            <th>NullPointerException</td>
+            <th><a href="/reference/java/lang/NullPointerException.html">NullPointerException</a></td>
             <td>if <code>intent</code> or <code>listener</code> is
              null
 </td>
@@ -2734,7 +2818,7 @@
         void
       </span>
       <span class="sympad">removeLocationUpdates</span>
-      <span class="normal">(PendingIntent callbackIntent)</span>
+      <span class="normal">(<a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2773,7 +2857,7 @@
         void
       </span>
       <span class="sympad">requestLocationUpdates</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, PendingIntent callbackIntent)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/android/app/PendingIntent.html">PendingIntent</a> callbackIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2883,7 +2967,7 @@
         void
       </span>
       <span class="sympad">requestLocationUpdates</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/com/google/android/gms/location/LocationListener.html">LocationListener</a> listener, Looper looper)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/location/LocationRequest.html">LocationRequest</a> request, <a href="/reference/com/google/android/gms/location/LocationListener.html">LocationListener</a> listener, <a href="/reference/android/os/Looper.html">Looper</a> looper)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2929,6 +3013,125 @@
 </div>
 
 
+<A NAME="setMockLocation(android.location.Location)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">setMockLocation</span>
+      <span class="normal">(<a href="/reference/android/location/Location.html">Location</a> mockLocation)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Sets the mock location to be used for the location provider.  This location will be used
+ in place of any actual locations from the underlying providers (network or gps).
+
+ <p><code><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockMode(boolean)">setMockMode(boolean)</a></code> must be called and set to true prior to calling this method.
+ <p>Care should be taken in specifying the timestamps as many applications require them
+ to be monotonically increasing.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>mockLocation</td>
+          <td>The mock location.  Must have a minimum number of fields set to be
+                     considered a valild location, as per documentation in the
+                     <code><a href="/reference/android/location/Location.html">Location</a></code> class.</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">  
+        <tr>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
+            <td>if the ACCESS_MOCK_LOCATION permission is not present or the
+                           <code><a href="/reference/android/provider/Settings.Secure.html#ALLOW_MOCK_LOCATION">Settings.Secure.ALLOW_MOCK_LOCATION</a></code> system setting is
+                           not enabled.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="setMockMode(boolean)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">setMockMode</span>
+      <span class="normal">(boolean isMockMode)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Sets whether or not the location provider is in mock mode.
+
+ <p>The underlying providers (network and gps) will be stopped (except by direct
+ <code><a href="/reference/android/location/LocationManager.html">LocationManager</a></code> access), and only locations specified in
+ <code><a href="/reference/com/google/android/gms/location/LocationClient.html#setMockLocation(android.location.Location)">setMockLocation(Location)</a></code> will be reported.  This will effect all location clients
+ connected using the <code><a href="/reference/com/google/android/gms/location/LocationClient.html">LocationClient</a></code>, including geofencer clients (i.e.
+ geofences can be triggered based on mock locations).
+
+ <p>The client must remain connected in order for mock mode to remain active.  If the client
+ dies the system will return to its normal state.
+
+ <p>Calls are not nested, and mock mode will be set directly regardless of previous calls.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>isMockMode</td>
+          <td>If true the location provider will be set to mock mode.  If false it
+                   will be returned to its normal state.</td>
+        </tr>
+      </table>
+  </div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable">  
+        <tr>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
+            <td>if the ACCESS_MOCK_LOCATION permission is not present or the
+                           <code><a href="/reference/android/provider/Settings.Secure.html#ALLOW_MOCK_LOCATION">Settings.Secure.ALLOW_MOCK_LOCATION</a></code> system setting is
+                           not enabled.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)"></A>
 
 <div class="jd-details api apilevel-"> 
diff --git a/docs/html/reference/com/google/android/gms/location/LocationListener.html b/docs/html/reference/com/google/android/gms/location/LocationListener.html
index 42b1971..48e3487 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationListener.html
@@ -755,7 +755,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationListener.html#onLocationChanged(android.location.Location)">onLocationChanged</a></span>(Location location)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationListener.html#onLocationChanged(android.location.Location)">onLocationChanged</a></span>(<a href="/reference/android/location/Location.html">Location</a> location)</nobr>
         
         <div class="jd-descrdiv">Called when the location has changed.</div>
   
@@ -823,7 +823,7 @@
         void
       </span>
       <span class="sympad">onLocationChanged</span>
-      <span class="normal">(Location location)</span>
+      <span class="normal">(<a href="/reference/android/location/Location.html">Location</a> location)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationRequest.html b/docs/html/reference/com/google/android/gms/location/LocationRequest.html
index 3ce6ef9..c5d4a7b 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationRequest.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationRequest.html
@@ -696,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -705,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -721,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -837,26 +837,26 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationRequest.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_BALANCED_POWER_ACCURACY">PRIORITY_BALANCED_POWER_ACCURACY</a></td>
         <td class="jd-descrcol" width="100%">Used with <code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">setPriority(int)</a></code> to request "block" level accuracy.</td>
     </tr>
     
     
-    <tr class="alt-color api apilevel-" >
+    <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_HIGH_ACCURACY">PRIORITY_HIGH_ACCURACY</a></td>
         <td class="jd-descrcol" width="100%">Used with <code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">setPriority(int)</a></code> to request the most accurate locations available.</td>
     </tr>
     
     
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_LOW_POWER">PRIORITY_LOW_POWER</a></td>
+        <td class="jd-descrcol" width="100%">Used with <code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">setPriority(int)</a></code> to request "city" level accuracy.</td>
+    </tr>
+    
+    
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationRequest.html#PRIORITY_NO_POWER">PRIORITY_NO_POWER</a></td>
@@ -1001,7 +1001,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#equals(java.lang.Object)">equals</a></span>(Object object)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> object)</nobr>
         
   </td></tr>
 
@@ -1268,7 +1268,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#toString()">toString</a></span>()</nobr>
@@ -1287,7 +1287,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel parcel, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/location/LocationRequest.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> parcel, int flags)</nobr>
         
   </td></tr>
 
@@ -1315,7 +1315,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1334,7 +1334,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1353,7 +1353,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1382,7 +1382,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1446,7 +1446,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1517,7 +1517,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1555,7 +1555,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1595,43 +1595,6 @@
 
 
 
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
 <A NAME="PRIORITY_BALANCED_POWER_ACCURACY"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1715,6 +1678,48 @@
 
 
 
+<A NAME="PRIORITY_LOW_POWER"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        PRIORITY_LOW_POWER
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Used with <code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setPriority(int)">setPriority(int)</a></code> to request "city" level accuracy.
+
+ <p>City level accuracy is considered to be about 10km accuracy. Using a coarse accuracy
+ such as this often consumes less power.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                104
+                (0x00000068)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 <A NAME="PRIORITY_NO_POWER"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1892,7 +1897,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object object)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> object)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2314,7 +2319,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the interval is less than zero</td>
         </tr>
       </table>
@@ -2385,7 +2390,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the interval is less than zero</td>
         </tr>
       </table>
@@ -2442,7 +2447,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if numUpdates is 0 or less</td>
         </tr>
       </table>
@@ -2506,7 +2511,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the quality constant is not valid</td>
         </tr>
       </table>
@@ -2561,7 +2566,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if smallestDisplacementMeters is negative</td>
         </tr>
       </table>
@@ -2581,7 +2586,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2613,7 +2618,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel parcel, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> parcel, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html b/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
index c0f34ee..b53f716 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -842,7 +842,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -861,7 +861,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -880,7 +880,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -909,7 +909,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -973,7 +973,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html b/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
index e1a8b68..daa83cf 100644
--- a/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
+++ b/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
@@ -675,7 +675,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -695,7 +695,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -808,7 +808,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -827,7 +827,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -846,7 +846,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -875,7 +875,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -939,7 +939,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html b/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
index cfe6f52..3d2d223 100644
--- a/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
+++ b/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -932,7 +932,7 @@
             <a href="/reference/com/google/android/gms/maps/CameraUpdate.html">CameraUpdate</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/CameraUpdateFactory.html#zoomBy(float, android.graphics.Point)">zoomBy</a></span>(float amount, Point focus)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/CameraUpdateFactory.html#zoomBy(float, android.graphics.Point)">zoomBy</a></span>(float amount, <a href="/reference/android/graphics/Point.html">Point</a> focus)</nobr>
         
         <div class="jd-descrdiv">Returns a <code><a href="/reference/com/google/android/gms/maps/CameraUpdate.html">CameraUpdate</a></code> that shifts the zoom level of the current camera viewpoint.</div>
   
@@ -1036,7 +1036,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1055,7 +1055,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1074,7 +1074,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1103,7 +1103,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1167,7 +1167,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1601,7 +1601,7 @@
         <a href="/reference/com/google/android/gms/maps/CameraUpdate.html">CameraUpdate</a>
       </span>
       <span class="sympad">zoomBy</span>
-      <span class="normal">(float amount, Point focus)</span>
+      <span class="normal">(float amount, <a href="/reference/android/graphics/Point.html">Point</a> focus)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
index 89125be..46f599d 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
@@ -768,7 +768,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html#getInfoContents(com.google.android.gms.maps.model.Marker)">getInfoContents</a></span>(<a href="/reference/com/google/android/gms/maps/model/Marker.html">Marker</a> marker)</nobr>
@@ -786,7 +786,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html#getInfoWindow(com.google.android.gms.maps.model.Marker)">getInfoWindow</a></span>(<a href="/reference/com/google/android/gms/maps/model/Marker.html">Marker</a> marker)</nobr>
@@ -854,7 +854,7 @@
          
         abstract 
          
-        View
+        <a href="/reference/android/view/View.html">View</a>
       </span>
       <span class="sympad">getInfoContents</span>
       <span class="normal">(<a href="/reference/com/google/android/gms/maps/model/Marker.html">Marker</a> marker)</span>
@@ -903,7 +903,7 @@
          
         abstract 
          
-        View
+        <a href="/reference/android/view/View.html">View</a>
       </span>
       <span class="sympad">getInfoWindow</span>
       <span class="normal">(<a href="/reference/com/google/android/gms/maps/model/Marker.html">Marker</a> marker)</span>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html
new file mode 100644
index 0000000..851a613
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html
@@ -0,0 +1,899 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleMap.OnMyLocationButtonClickListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+  var toRoot = "/";
+  var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-5831155-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+</script>
+</head>
+<body class="gc-documentation google
+  develop" itemscope itemtype="http://schema.org/Article">
+  <div id="doc-api-level" class="" style="display:none"></div>
+  <a name="top"></a>
+
+<a name="top"></a>
+
+    <!-- Header -->
+    <div id="header">
+        <div class="wrap" id="header-wrap">
+          <div class="col-3 logo">
+          <a href="/index.html">
+            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+          </a>
+          <div class="btn-quicknav" id="btn-quicknav">
+          	<a href="#" class="arrow-inactive">Quicknav</a>
+			      <a href="#" class="arrow-active">Quicknav</a>
+          </div>
+          </div>
+            <ul class="nav-x col-9">
+                <li class="design">
+                  <a href="/design/index.html"
+                  zh-tw-lang="設計"
+                  zh-cn-lang="设计"
+                  ru-lang="Проектирование"
+                  ko-lang="디자인"
+                  ja-lang="設計"
+                  es-lang="Diseñar"               
+                  >Design</a></li>
+                <li class="develop"><a href="/develop/index.html"
+                  zh-tw-lang="開發"
+                  zh-cn-lang="开发"
+                  ru-lang="Разработка"
+                  ko-lang="개발"
+                  ja-lang="開発"
+                  es-lang="Desarrollar"               
+                  >Develop</a></li>
+                <li class="distribute last"><a href="/distribute/index.html"
+                  zh-tw-lang="發佈"
+                  zh-cn-lang="分发"
+                  ru-lang="Распространение"
+                  ko-lang="배포"
+                  ja-lang="配布"
+                  es-lang="Distribuir"               
+                  >Distribute</a></li>
+            </ul>
+            
+            <!-- New Search -->
+            <div class="menu-container">
+            <div class="moremenu">
+    <div id="more-btn"></div>
+  </div>
+  <div class="morehover" id="moremenu">
+    <div class="top"></div>
+    <div class="mid">
+      <div class="header">Links</div>
+      <ul>
+        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+        <li><a href="/about/index.html">About Android</a></li>
+      </ul>
+      <div class="header">Android Sites</div>
+      <ul>
+        <li><a href="http://www.android.com">Android.com</a></li>
+        <li class="active"><a>Android Developers</a></li>
+        <li><a href="http://source.android.com">Android Open Source Project</a></li>
+      </ul>
+      
+      
+      
+        <div class="header">Language</div>
+          <div id="language" class="locales">
+            <select name="language" onChange="changeLangPref(this.value, true)">
+                <option value="en">English</option>
+                <option value="es">Español</option>
+                <option value="ja">日本語</option>
+                <option value="ko">한국어</option>
+                <option value="ru">Русский</option>
+                <option value="zh-cn">中文 (中国)</option>
+                <option value="zh-tw">中文 (台灣)</option>
+            </select>
+          </div>
+        <script type="text/javascript">
+          <!--
+          loadLangPref();
+            //-->
+        </script>
+      
+      
+
+
+      <br class="clearfix" />
+    </div>
+    <div class="bottom"></div>
+  </div>
+  <div class="search" id="search-container">
+    <div class="search-inner">
+      <div id="search-btn"></div>
+      <div class="left"></div>
+      <form onsubmit="return submit_search()">
+        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')" 
+onkeyup="return search_changed(event, false, '/')" />
+      </form>
+      <div class="right"></div>
+        <a class="close hide">close</a>
+        <div class="left"></div>
+        <div class="right"></div>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper reference">
+    <div class="suggest-card reference no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper docs">
+    <div class="suggest-card dummy no-display">&nbsp;</div>
+    <div class="suggest-card develop no-display">
+      <ul class="search_filtered">
+      </ul>
+      <div class="child-card guides no-display">
+      </div>
+      <div class="child-card training no-display">
+      </div>
+    </div>
+    <div class="suggest-card design no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+    <div class="suggest-card distribute no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  </div>
+  <!-- /New Search>
+          
+          
+          <!-- Expanded quicknav -->
+           <div id="quicknav" class="col-9">
+                <ul>
+                    <li class="design">
+                      <ul>
+                        <li><a href="/design/index.html">Get Started</a></li>
+                        <li><a href="/design/style/index.html">Style</a></li>
+                        <li><a href="/design/patterns/index.html">Patterns</a></li>
+                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+                        <li><a href="/design/downloads/index.html">Downloads</a></li>
+                        <li><a href="/design/videos/index.html">Videos</a></li>
+                      </ul>
+                    </li>
+                    <li class="develop">
+                      <ul>
+                        <li><a href="/training/index.html"
+                          zh-tw-lang="訓練課程"
+                          zh-cn-lang="培训"
+                          ru-lang="Курсы"
+                          ko-lang="교육"
+                          ja-lang="トレーニング"
+                          es-lang="Capacitación"               
+                          >Training</a></li>
+                        <li><a href="/guide/components/index.html"
+                          zh-tw-lang="API 指南"
+                          zh-cn-lang="API 指南"
+                          ru-lang="Руководства по API"
+                          ko-lang="API 가이드"
+                          ja-lang="API ガイド"
+                          es-lang="Guías de la API"               
+                          >API Guides</a></li>
+                        <li><a href="/reference/packages.html"
+                          zh-tw-lang="參考資源"
+                          zh-cn-lang="参考"
+                          ru-lang="Справочник"
+                          ko-lang="참조문서"
+                          ja-lang="リファレンス"
+                          es-lang="Referencia"               
+                          >Reference</a></li>
+                        <li><a href="/tools/index.html"
+                          zh-tw-lang="相關工具"
+                          zh-cn-lang="工具"
+                          ru-lang="Инструменты"
+                          ko-lang="도구"
+                          ja-lang="ツール"
+                          es-lang="Herramientas"               
+                          >Tools</a>
+                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+                        </li>
+                        <li><a href="/google/index.html">Google Services</a>
+                        </li>
+                      </ul>
+                    </li>
+                    <li class="distribute last">
+                      <ul>
+                        <li><a href="/distribute/index.html">Google Play</a></li>
+                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+                        <li><a href="/distribute/open.html">Open Distribution</a></li>
+                      </ul>
+                    </li>
+                </ul>
+          </div>
+          <!-- /Expanded quicknav -->
+        </div>
+    </div>
+    <!-- /Header -->
+    
+    
+  <div id="searchResults" class="wrap" style="display:none;">
+          <h2 id="searchTitle">Results</h2>
+          <div id="leftSearchControl" class="search-control">Loading...</div>
+  </div>
+    
+    
+  
+    <!-- Secondary x-nav -->
+    <div id="nav-x">
+        <div class="wrap">
+            <ul class="nav-x col-9 develop" style="width:100%">
+                <li class="training"><a href="/training/index.html"
+                  zh-tw-lang="訓練課程"
+                  zh-cn-lang="培训"
+                  ru-lang="Курсы"
+                  ko-lang="교육"
+                  ja-lang="トレーニング"
+                  es-lang="Capacitación"               
+                  >Training</a></li>
+                <li class="guide"><a href="/guide/components/index.html"
+                  zh-tw-lang="API 指南"
+                  zh-cn-lang="API 指南"
+                  ru-lang="Руководства по API"
+                  ko-lang="API 가이드"
+                  ja-lang="API ガイド"
+                  es-lang="Guías de la API"               
+                  >API Guides</a></li>
+                <li class="reference"><a href="/reference/packages.html"
+                  zh-tw-lang="參考資源"
+                  zh-cn-lang="参考"
+                  ru-lang="Справочник"
+                  ko-lang="참조문서"
+                  ja-lang="リファレンス"
+                  es-lang="Referencia"               
+                  >Reference</a></li>
+                <li class="tools"><a href="/tools/index.html"
+                  zh-tw-lang="相關工具"
+                  zh-cn-lang="工具"
+                  ru-lang="Инструменты"
+                  ko-lang="도구"
+                  ja-lang="ツール"
+                  es-lang="Herramientas"
+                  >Tools</a></li>
+                <li class="google"><a href="/google/index.html"
+                  >Google Services</a>
+                </li>
+            </ul>
+        </div>
+        
+    </div>
+    <!-- /Sendondary x-nav -->
+  
+
+
+
+
+  
+
+
+  
+  <div class="wrap clearfix" id="body-content">
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/index.html">
+          <span class="en">Overview</span>
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+          <span class="en">Games</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+          <span class="en">Location</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+          <span class="en">Google+</span>
+                </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+          <span class="en">Google Maps</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+          <span class="en">Authorization</span>
+      </a></div>
+  </li>
+
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play-services/index.html">
+      <span class="en">Google Play Services</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play-services/setup.html">
+          <span class="en">Setup</span></a>
+      </li>
+      <li id="gms-tree-list" class="nav-section">
+        <div class="nav-section-header">
+          <a href="/reference/gms-packages.html">
+            <span class="en">Reference</span>
+          </a>
+        <div>
+      </li>
+    </ul>
+  </li>
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/billing/index.html">
+      <span class="en">Google Play In-app Billing</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/billing/billing_overview.html">
+              <span class="en">Overview</span></a>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+              <span class="en">Version 3 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+              <span class="en">Version 2 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/v2/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li><a href="/google/play/billing/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_best_practices.html">
+              <span class="en">Security and Design</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_testing.html">
+              <span class="en">Testing In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_admin.html">
+              <span class="en">Administering In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/gp-purchase-status-api.html">
+              <span class="en">Purchase Status API</span></a>
+      </li>
+      <li><a href="/google/play/billing/versions.html">
+              <span class="en">Version Notes</span></a>
+      </li>
+    </ul>
+  </li>
+
+
+
+  <li class="nav-section">
+      <div class="nav-section-header"><a href="/google/gcm/index.html">
+        <span class="en">Google Cloud Messaging</span></a>
+      </div>
+      <ul>
+        <li><a href="/google/gcm/gs.html">
+            <span class="en">Getting Started</span></a>
+        </li>
+        <li><a href="/google/gcm/gcm.html">
+            <span class="en">Architectural Overview</span></a>
+        </li>
+         <li><a href="/google/gcm/ccs.html">
+              <span class="en">Cloud Connection Server</span></a>
+        </li>
+        <li><a href="/google/gcm/notifications.html">
+              <span class="en">User Notifications</span></a>
+        </li>
+        <li><a href="/google/gcm/client.html">
+            <span class="en">GCM Client</span></a>
+        </li>
+        <li><a href="/google/gcm/server.html">
+            <span class="en">GCM Server</span></a>
+        </li>
+        <li><a href="/google/gcm/adv.html">
+            <span class="en">Advanced Topics</span></a>
+        </li>
+        <li><a href="/google/gcm/c2dm.html">
+            <span class="en">Migration</span></a>
+        </li>
+        <li id="gcm-tree-list" class="nav-section">
+          <div class="nav-section-header">
+            <a href="/reference/gcm-packages.html">
+              <span class="en">Reference</span>
+            </a>
+          <div>
+        </li>
+      </ul>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/dist.html">
+      <span class="en">Google Play Distribution</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/filters.html">
+          <span class="en">Filters on Google Play</span></a>
+      </li>
+
+      <li><a href="/google/play/publishing/multiple-apks.html">
+          <span class="en">Multiple APK Support</span></a>
+      </li>
+      <li><a href="/google/play/expansion-files.html">
+          <span class="en">APK Expansion Files</span></a>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+          <span class="en">Application Licensing</span></a>
+        </div>
+        <ul>
+          <li><a href="/google/play/licensing/overview.html">
+              <span class="en">Licensing Overview</span></a>
+          </li>
+          <li><a href="/google/play/licensing/setting-up.html">
+              <span class="en">Setting Up for Licensing</span></a>
+          </li>
+          <li><a href="/google/play/licensing/adding-licensing.html">
+              <span class="en">Adding Licensing to Your App</span></a>
+          </li>
+          <li><a href="/google/play/licensing/licensing-reference.html">
+              <span class="en">Licensing Reference</span></a>
+          </li>
+        </ul>
+      </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/backup/index.html">
+      Android Backup Service</a>
+    </div>
+    <ul>
+      <li><a href="/google/backup/signup.html">
+          Register</a>
+      </li>
+    </ul>
+  </li>
+
+  </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+    buildToggleLists();
+    changeNavLang(getLangPref());
+//-->
+</script>
+
+
+        
+
+      </div>
+      <script type="text/javascript">
+       showGoogleRefTree();
+    
+      </script>
+    </div> <!-- end side-nav -->
+    <script>
+      $(document).ready(function() {
+        scrollIntoView("devdoc-nav");
+        });
+    </script>
+
+
+     
+
+
+
+<div class="col-12"  id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+  
+  
+  
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+    public
+    static 
+     
+    
+    interface
+<h1 itemprop="name">GoogleMap.OnMyLocationButtonClickListener</h1>
+
+
+
+  
+  
+  
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+    <tr>
+         	
+        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener</td>
+    </tr>
+    
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Callback interface for when the My Location button is clicked.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html#onMyLocationButtonClick()">onMyLocationButtonClick</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Called when the my location button is clicked.</div>
+  
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onMyLocationButtonClick()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        boolean
+      </span>
+      <span class="sympad">onMyLocationButtonClick</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Called when the my location button is clicked.
+ <p>
+ <p>Use <code><a href="/reference/com/google/android/gms/location/LocationClient.html">LocationClient</a></code> if you need to obtain the
+ user's current location.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li><code>true</code> if the listener has consumed the event (i.e., the default behavior
+         should not occur), <code>false</code> otherwise (i.e., the default behavior should
+         occur). The default behavior is for the camera move such that it is centered on
+         the user location.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+        
+
+  <div id="copyright">
+    
+  Except as noted, this content is licensed under <a
+  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
+  For details and restrictions, see the <a href="/license.html">
+  Content License</a>.
+  </div>
+  <div id="build_info">
+    
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+  </div>
+
+
+  <div id="footerlinks">
+    
+  <p>
+    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/support.html">Support</a>
+  </p>
+  </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content --> 
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
index 092c472..fed973d 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
@@ -761,7 +761,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html#onMyLocationChange(android.location.Location)">onMyLocationChange</a></span>(Location location)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html#onMyLocationChange(android.location.Location)">onMyLocationChange</a></span>(<a href="/reference/android/location/Location.html">Location</a> location)</nobr>
         
         <div class="jd-descrdiv">Called when the Location of the My Location dot has changed (be it latitude/longitude,
  bearing or accuracy).</div>
@@ -830,7 +830,7 @@
         void
       </span>
       <span class="sympad">onMyLocationChange</span>
-      <span class="normal">(Location location)</span>
+      <span class="normal">(<a href="/reference/android/location/Location.html">Location</a> location)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html
new file mode 100644
index 0000000..12e63d6
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html
@@ -0,0 +1,899 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleMap.SnapshotReadyCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+  var toRoot = "/";
+  var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-5831155-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+</script>
+</head>
+<body class="gc-documentation google
+  develop" itemscope itemtype="http://schema.org/Article">
+  <div id="doc-api-level" class="" style="display:none"></div>
+  <a name="top"></a>
+
+<a name="top"></a>
+
+    <!-- Header -->
+    <div id="header">
+        <div class="wrap" id="header-wrap">
+          <div class="col-3 logo">
+          <a href="/index.html">
+            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+          </a>
+          <div class="btn-quicknav" id="btn-quicknav">
+          	<a href="#" class="arrow-inactive">Quicknav</a>
+			      <a href="#" class="arrow-active">Quicknav</a>
+          </div>
+          </div>
+            <ul class="nav-x col-9">
+                <li class="design">
+                  <a href="/design/index.html"
+                  zh-tw-lang="設計"
+                  zh-cn-lang="设计"
+                  ru-lang="Проектирование"
+                  ko-lang="디자인"
+                  ja-lang="設計"
+                  es-lang="Diseñar"               
+                  >Design</a></li>
+                <li class="develop"><a href="/develop/index.html"
+                  zh-tw-lang="開發"
+                  zh-cn-lang="开发"
+                  ru-lang="Разработка"
+                  ko-lang="개발"
+                  ja-lang="開発"
+                  es-lang="Desarrollar"               
+                  >Develop</a></li>
+                <li class="distribute last"><a href="/distribute/index.html"
+                  zh-tw-lang="發佈"
+                  zh-cn-lang="分发"
+                  ru-lang="Распространение"
+                  ko-lang="배포"
+                  ja-lang="配布"
+                  es-lang="Distribuir"               
+                  >Distribute</a></li>
+            </ul>
+            
+            <!-- New Search -->
+            <div class="menu-container">
+            <div class="moremenu">
+    <div id="more-btn"></div>
+  </div>
+  <div class="morehover" id="moremenu">
+    <div class="top"></div>
+    <div class="mid">
+      <div class="header">Links</div>
+      <ul>
+        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+        <li><a href="/about/index.html">About Android</a></li>
+      </ul>
+      <div class="header">Android Sites</div>
+      <ul>
+        <li><a href="http://www.android.com">Android.com</a></li>
+        <li class="active"><a>Android Developers</a></li>
+        <li><a href="http://source.android.com">Android Open Source Project</a></li>
+      </ul>
+      
+      
+      
+        <div class="header">Language</div>
+          <div id="language" class="locales">
+            <select name="language" onChange="changeLangPref(this.value, true)">
+                <option value="en">English</option>
+                <option value="es">Español</option>
+                <option value="ja">日本語</option>
+                <option value="ko">한국어</option>
+                <option value="ru">Русский</option>
+                <option value="zh-cn">中文 (中国)</option>
+                <option value="zh-tw">中文 (台灣)</option>
+            </select>
+          </div>
+        <script type="text/javascript">
+          <!--
+          loadLangPref();
+            //-->
+        </script>
+      
+      
+
+
+      <br class="clearfix" />
+    </div>
+    <div class="bottom"></div>
+  </div>
+  <div class="search" id="search-container">
+    <div class="search-inner">
+      <div id="search-btn"></div>
+      <div class="left"></div>
+      <form onsubmit="return submit_search()">
+        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')" 
+onkeyup="return search_changed(event, false, '/')" />
+      </form>
+      <div class="right"></div>
+        <a class="close hide">close</a>
+        <div class="left"></div>
+        <div class="right"></div>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper reference">
+    <div class="suggest-card reference no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper docs">
+    <div class="suggest-card dummy no-display">&nbsp;</div>
+    <div class="suggest-card develop no-display">
+      <ul class="search_filtered">
+      </ul>
+      <div class="child-card guides no-display">
+      </div>
+      <div class="child-card training no-display">
+      </div>
+    </div>
+    <div class="suggest-card design no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+    <div class="suggest-card distribute no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  </div>
+  <!-- /New Search>
+          
+          
+          <!-- Expanded quicknav -->
+           <div id="quicknav" class="col-9">
+                <ul>
+                    <li class="design">
+                      <ul>
+                        <li><a href="/design/index.html">Get Started</a></li>
+                        <li><a href="/design/style/index.html">Style</a></li>
+                        <li><a href="/design/patterns/index.html">Patterns</a></li>
+                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+                        <li><a href="/design/downloads/index.html">Downloads</a></li>
+                        <li><a href="/design/videos/index.html">Videos</a></li>
+                      </ul>
+                    </li>
+                    <li class="develop">
+                      <ul>
+                        <li><a href="/training/index.html"
+                          zh-tw-lang="訓練課程"
+                          zh-cn-lang="培训"
+                          ru-lang="Курсы"
+                          ko-lang="교육"
+                          ja-lang="トレーニング"
+                          es-lang="Capacitación"               
+                          >Training</a></li>
+                        <li><a href="/guide/components/index.html"
+                          zh-tw-lang="API 指南"
+                          zh-cn-lang="API 指南"
+                          ru-lang="Руководства по API"
+                          ko-lang="API 가이드"
+                          ja-lang="API ガイド"
+                          es-lang="Guías de la API"               
+                          >API Guides</a></li>
+                        <li><a href="/reference/packages.html"
+                          zh-tw-lang="參考資源"
+                          zh-cn-lang="参考"
+                          ru-lang="Справочник"
+                          ko-lang="참조문서"
+                          ja-lang="リファレンス"
+                          es-lang="Referencia"               
+                          >Reference</a></li>
+                        <li><a href="/tools/index.html"
+                          zh-tw-lang="相關工具"
+                          zh-cn-lang="工具"
+                          ru-lang="Инструменты"
+                          ko-lang="도구"
+                          ja-lang="ツール"
+                          es-lang="Herramientas"               
+                          >Tools</a>
+                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+                        </li>
+                        <li><a href="/google/index.html">Google Services</a>
+                        </li>
+                      </ul>
+                    </li>
+                    <li class="distribute last">
+                      <ul>
+                        <li><a href="/distribute/index.html">Google Play</a></li>
+                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+                        <li><a href="/distribute/open.html">Open Distribution</a></li>
+                      </ul>
+                    </li>
+                </ul>
+          </div>
+          <!-- /Expanded quicknav -->
+        </div>
+    </div>
+    <!-- /Header -->
+    
+    
+  <div id="searchResults" class="wrap" style="display:none;">
+          <h2 id="searchTitle">Results</h2>
+          <div id="leftSearchControl" class="search-control">Loading...</div>
+  </div>
+    
+    
+  
+    <!-- Secondary x-nav -->
+    <div id="nav-x">
+        <div class="wrap">
+            <ul class="nav-x col-9 develop" style="width:100%">
+                <li class="training"><a href="/training/index.html"
+                  zh-tw-lang="訓練課程"
+                  zh-cn-lang="培训"
+                  ru-lang="Курсы"
+                  ko-lang="교육"
+                  ja-lang="トレーニング"
+                  es-lang="Capacitación"               
+                  >Training</a></li>
+                <li class="guide"><a href="/guide/components/index.html"
+                  zh-tw-lang="API 指南"
+                  zh-cn-lang="API 指南"
+                  ru-lang="Руководства по API"
+                  ko-lang="API 가이드"
+                  ja-lang="API ガイド"
+                  es-lang="Guías de la API"               
+                  >API Guides</a></li>
+                <li class="reference"><a href="/reference/packages.html"
+                  zh-tw-lang="參考資源"
+                  zh-cn-lang="参考"
+                  ru-lang="Справочник"
+                  ko-lang="참조문서"
+                  ja-lang="リファレンス"
+                  es-lang="Referencia"               
+                  >Reference</a></li>
+                <li class="tools"><a href="/tools/index.html"
+                  zh-tw-lang="相關工具"
+                  zh-cn-lang="工具"
+                  ru-lang="Инструменты"
+                  ko-lang="도구"
+                  ja-lang="ツール"
+                  es-lang="Herramientas"
+                  >Tools</a></li>
+                <li class="google"><a href="/google/index.html"
+                  >Google Services</a>
+                </li>
+            </ul>
+        </div>
+        
+    </div>
+    <!-- /Sendondary x-nav -->
+  
+
+
+
+
+  
+
+
+  
+  <div class="wrap clearfix" id="body-content">
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/index.html">
+          <span class="en">Overview</span>
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+          <span class="en">Games</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+          <span class="en">Location</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+          <span class="en">Google+</span>
+                </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+          <span class="en">Google Maps</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+          <span class="en">Authorization</span>
+      </a></div>
+  </li>
+
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play-services/index.html">
+      <span class="en">Google Play Services</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play-services/setup.html">
+          <span class="en">Setup</span></a>
+      </li>
+      <li id="gms-tree-list" class="nav-section">
+        <div class="nav-section-header">
+          <a href="/reference/gms-packages.html">
+            <span class="en">Reference</span>
+          </a>
+        <div>
+      </li>
+    </ul>
+  </li>
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/billing/index.html">
+      <span class="en">Google Play In-app Billing</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/billing/billing_overview.html">
+              <span class="en">Overview</span></a>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+              <span class="en">Version 3 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+              <span class="en">Version 2 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/v2/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li><a href="/google/play/billing/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_best_practices.html">
+              <span class="en">Security and Design</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_testing.html">
+              <span class="en">Testing In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_admin.html">
+              <span class="en">Administering In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/gp-purchase-status-api.html">
+              <span class="en">Purchase Status API</span></a>
+      </li>
+      <li><a href="/google/play/billing/versions.html">
+              <span class="en">Version Notes</span></a>
+      </li>
+    </ul>
+  </li>
+
+
+
+  <li class="nav-section">
+      <div class="nav-section-header"><a href="/google/gcm/index.html">
+        <span class="en">Google Cloud Messaging</span></a>
+      </div>
+      <ul>
+        <li><a href="/google/gcm/gs.html">
+            <span class="en">Getting Started</span></a>
+        </li>
+        <li><a href="/google/gcm/gcm.html">
+            <span class="en">Architectural Overview</span></a>
+        </li>
+         <li><a href="/google/gcm/ccs.html">
+              <span class="en">Cloud Connection Server</span></a>
+        </li>
+        <li><a href="/google/gcm/notifications.html">
+              <span class="en">User Notifications</span></a>
+        </li>
+        <li><a href="/google/gcm/client.html">
+            <span class="en">GCM Client</span></a>
+        </li>
+        <li><a href="/google/gcm/server.html">
+            <span class="en">GCM Server</span></a>
+        </li>
+        <li><a href="/google/gcm/adv.html">
+            <span class="en">Advanced Topics</span></a>
+        </li>
+        <li><a href="/google/gcm/c2dm.html">
+            <span class="en">Migration</span></a>
+        </li>
+        <li id="gcm-tree-list" class="nav-section">
+          <div class="nav-section-header">
+            <a href="/reference/gcm-packages.html">
+              <span class="en">Reference</span>
+            </a>
+          <div>
+        </li>
+      </ul>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/dist.html">
+      <span class="en">Google Play Distribution</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/filters.html">
+          <span class="en">Filters on Google Play</span></a>
+      </li>
+
+      <li><a href="/google/play/publishing/multiple-apks.html">
+          <span class="en">Multiple APK Support</span></a>
+      </li>
+      <li><a href="/google/play/expansion-files.html">
+          <span class="en">APK Expansion Files</span></a>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+          <span class="en">Application Licensing</span></a>
+        </div>
+        <ul>
+          <li><a href="/google/play/licensing/overview.html">
+              <span class="en">Licensing Overview</span></a>
+          </li>
+          <li><a href="/google/play/licensing/setting-up.html">
+              <span class="en">Setting Up for Licensing</span></a>
+          </li>
+          <li><a href="/google/play/licensing/adding-licensing.html">
+              <span class="en">Adding Licensing to Your App</span></a>
+          </li>
+          <li><a href="/google/play/licensing/licensing-reference.html">
+              <span class="en">Licensing Reference</span></a>
+          </li>
+        </ul>
+      </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/backup/index.html">
+      Android Backup Service</a>
+    </div>
+    <ul>
+      <li><a href="/google/backup/signup.html">
+          Register</a>
+      </li>
+    </ul>
+  </li>
+
+  </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+    buildToggleLists();
+    changeNavLang(getLangPref());
+//-->
+</script>
+
+
+        
+
+      </div>
+      <script type="text/javascript">
+       showGoogleRefTree();
+    
+      </script>
+    </div> <!-- end side-nav -->
+    <script>
+      $(document).ready(function() {
+        scrollIntoView("devdoc-nav");
+        });
+    </script>
+
+
+     
+
+
+
+<div class="col-12"  id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+  
+  
+  
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+    public
+    static 
+     
+    
+    interface
+<h1 itemprop="name">GoogleMap.SnapshotReadyCallback</h1>
+
+
+
+  
+  
+  
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+    <tr>
+         	
+        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback</td>
+    </tr>
+    
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Callback interface to notify when the snapshot has been taken.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html#onSnapshotReady(android.graphics.Bitmap)">onSnapshotReady</a></span>(<a href="/reference/android/graphics/Bitmap.html">Bitmap</a> snapshot)</nobr>
+        
+        <div class="jd-descrdiv">Invoked when the snapshot has been taken.</div>
+  
+  </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onSnapshotReady(android.graphics.Bitmap)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        void
+      </span>
+      <span class="sympad">onSnapshotReady</span>
+      <span class="normal">(<a href="/reference/android/graphics/Bitmap.html">Bitmap</a> snapshot)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Invoked when the snapshot has been taken.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>snapshot</td>
+          <td>A bitmap containing the map as it is currently rendered, or
+     <code>null</code> if the snapshot could not be taken.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+        
+
+  <div id="copyright">
+    
+  Except as noted, this content is licensed under <a
+  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
+  For details and restrictions, see the <a href="/license.html">
+  Content License</a>.
+  </div>
+  <div id="build_info">
+    
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+  </div>
+
+
+  <div id="footerlinks">
+    
+  <p>
+    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/support.html">Support</a>
+  </p>
+  </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content --> 
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
index 7d47ff4..ebb59c3 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -880,6 +880,18 @@
          
         
         interface</nobr></td>
+      <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html">GoogleMap.OnMyLocationButtonClickListener</a></td>
+      <td class="jd-descrcol" width="100%">Callback interface for when the My Location button is clicked.&nbsp;</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+      <td class="jd-typecol"><nobr>
+        
+         
+         
+        
+        interface</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html">GoogleMap.OnMyLocationChangeListener</a></td>
       <td class="jd-descrcol" width="100%"><em>
       This interface is deprecated.
@@ -893,6 +905,18 @@
     </tr>
     
     
+    <tr class="alt-color api apilevel-" >
+      <td class="jd-typecol"><nobr>
+        
+         
+         
+        
+        interface</nobr></td>
+      <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a></td>
+      <td class="jd-descrcol" width="100%">Callback interface to notify when the snapshot has been taken.&nbsp;</td>
+    </tr>
+    
+    
 
 
 
@@ -1232,7 +1256,7 @@
             final
             
             
-            Location</nobr>
+            <a href="/reference/android/location/Location.html">Location</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#getMyLocation()">getMyLocation</a></span>()</nobr>
@@ -1568,6 +1592,24 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#setOnMyLocationButtonClickListener(com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener)">setOnMyLocationButtonClickListener</a></span>(<a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html">GoogleMap.OnMyLocationButtonClickListener</a> listener)</nobr>
+        
+        <div class="jd-descrdiv">Sets a callback that's invoked when the my location button is clicked.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            final
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#setOnMyLocationChangeListener(com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener)">setOnMyLocationChangeListener</a></span>(<a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html">GoogleMap.OnMyLocationChangeListener</a> listener)</nobr>
         
         <div class="jd-descrdiv"><em>
@@ -1584,7 +1626,7 @@
 
 
 	 
-    <tr class=" api apilevel-" >
+    <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
             
@@ -1602,6 +1644,24 @@
 
 
 	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            final
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback, android.graphics.Bitmap)">snapshot</a></span>(<a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a> callback, <a href="/reference/android/graphics/Bitmap.html">Bitmap</a> bitmap)</nobr>
+        
+        <div class="jd-descrdiv">Takes a snapshot of the map.</div>
+  
+  </td></tr>
+
+
+	 
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             
@@ -1612,6 +1672,24 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback)">snapshot</a></span>(<a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a> callback)</nobr>
+        
+        <div class="jd-descrdiv">Takes a snapshot of the map.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            final
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMap.html#stopAnimation()">stopAnimation</a></span>()</nobr>
         
         <div class="jd-descrdiv">Stops the camera animation if there is one in progress.</div>
@@ -1642,7 +1720,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1661,7 +1739,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1680,7 +1758,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1709,7 +1787,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1773,7 +1851,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2159,7 +2237,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if either the image or the position is unspecified in the
              options.
 </td>
@@ -2351,7 +2429,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the <code><a href="/reference/com/google/android/gms/maps/model/TileProvider.html">TileProvider</a></code> is unspecified in the options.
 </td>
         </tr>
@@ -2691,7 +2769,7 @@
         final 
          
          
-        Location
+        <a href="/reference/android/location/Location.html">Location</a>
       </span>
       <span class="sympad">getMyLocation</span>
       <span class="normal">()</span>
@@ -2724,7 +2802,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the my-location layer is not enabled.</td>
         </tr>
       </table>
@@ -3412,6 +3490,49 @@
 </div>
 
 
+<A NAME="setOnMyLocationButtonClickListener(com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+        final 
+         
+         
+        void
+      </span>
+      <span class="sympad">setOnMyLocationButtonClickListener</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html">GoogleMap.OnMyLocationButtonClickListener</a> listener)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Sets a callback that's invoked when the my location button is clicked.
+
+ <p>If the <code>listener</code> returns <code>true</code>, the event is consumed and the default
+ behavior will not occur. If it returns <code>false</code>, the default behavior will occur (i.e.
+ The camera moves such that it is centered on the user location).</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>listener</td>
+          <td>The callback that's invoked when the my location button is clicked.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="setOnMyLocationChangeListener(com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener)"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -3489,6 +3610,110 @@
 </div>
 
 
+<A NAME="snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback, android.graphics.Bitmap)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+        final 
+         
+         
+        void
+      </span>
+      <span class="sympad">snapshot</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a> callback, <a href="/reference/android/graphics/Bitmap.html">Bitmap</a> bitmap)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Takes a snapshot of the map.
+ <p>
+ <p>This method is equivalent to <code><a href="/reference/com/google/android/gms/maps/GoogleMap.html#snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback)">snapshot(SnapshotReadyCallback)</a></code> but lets you
+ provide a preallocated <code><a href="/reference/android/graphics/Bitmap.html">Bitmap</a></code>. If the bitmap does not match the current dimensions of
+ the map, another bitmap will be allocated that fits the map's dimensions.
+ <p>
+ <p>Although in most cases the object passed by the callback method is the same as the one
+ given in parameter to this method, in some cases the returned object can be different (e.g.
+ if the view's dimensions have changed by the time the snapshot is actually taken). Thus, you
+ should only trust the content of the bitmap passed by the callback method.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>callback</td>
+          <td>Callback method invoked when the snapshot is taken.</td>
+        </tr>
+        <tr>
+          <th>bitmap</td>
+          <td>A preallocated bitmap. If <code>null</code>, behaves like
+     <code><a href="/reference/com/google/android/gms/maps/GoogleMap.html#snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback)">snapshot(SnapshotReadyCallback)</a></code>.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="snapshot(com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+        final 
+         
+         
+        void
+      </span>
+      <span class="sympad">snapshot</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a> callback)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Takes a snapshot of the map.
+
+ <p>You can use snapshots within your application when an interactive
+ map would be difficult, or impossible, to use. For example, images
+ produced with the <code>snapshot()</code> method can be used to display a
+ thumbnail of the map in your app, or a snapshot in the notification
+ center.
+
+ <p><strong>Note:</strong> Images of the map must not be
+ transmitted to your servers, or otherwise used outside of the
+ application. If you need to send a map to another application or user,
+ send data that allows them to reconstruct the map for the new user
+ instead of a snapshot.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>callback</td>
+          <td>Callback method invoked when the snapshot is taken.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
 <A NAME="stopAnimation()"></A>
 
 <div class="jd-details api apilevel-"> 
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html b/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
index 7afae2a..fa78bc6 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -795,22 +792,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -972,7 +953,7 @@
             <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#createFromAttributes(android.content.Context, android.util.AttributeSet)">createFromAttributes</a></span>(Context context, AttributeSet attrs)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#createFromAttributes(android.content.Context, android.util.AttributeSet)">createFromAttributes</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</nobr>
         
         <div class="jd-descrdiv">Creates a GoogleMapsOptions from the attribute set
 </div>
@@ -1020,7 +1001,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getCompassEnabled()">getCompassEnabled</a></span>()</nobr>
@@ -1052,7 +1033,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getRotateGesturesEnabled()">getRotateGesturesEnabled</a></span>()</nobr>
@@ -1068,7 +1049,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getScrollGesturesEnabled()">getScrollGesturesEnabled</a></span>()</nobr>
@@ -1084,7 +1065,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getTiltGesturesEnabled()">getTiltGesturesEnabled</a></span>()</nobr>
@@ -1100,7 +1081,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getUseViewLifecycleInFragment()">getUseViewLifecycleInFragment</a></span>()</nobr>
@@ -1116,7 +1097,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getZOrderOnTop()">getZOrderOnTop</a></span>()</nobr>
@@ -1132,7 +1113,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getZoomControlsEnabled()">getZoomControlsEnabled</a></span>()</nobr>
@@ -1148,7 +1129,7 @@
             
             
             
-            Boolean</nobr>
+            <a href="/reference/java/lang/Boolean.html">Boolean</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#getZoomGesturesEnabled()">getZoomGesturesEnabled</a></span>()</nobr>
@@ -1258,7 +1239,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1340,7 +1321,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1359,7 +1340,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1378,7 +1359,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1407,7 +1388,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1471,7 +1452,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1542,7 +1523,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1580,7 +1561,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1614,50 +1595,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1824,7 +1761,7 @@
         <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a>
       </span>
       <span class="sympad">createFromAttributes</span>
-      <span class="normal">(Context context, AttributeSet attrs)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1913,7 +1850,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getCompassEnabled</span>
       <span class="normal">()</span>
@@ -1979,7 +1916,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getRotateGesturesEnabled</span>
       <span class="normal">()</span>
@@ -2012,7 +1949,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getScrollGesturesEnabled</span>
       <span class="normal">()</span>
@@ -2045,7 +1982,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getTiltGesturesEnabled</span>
       <span class="normal">()</span>
@@ -2078,7 +2015,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getUseViewLifecycleInFragment</span>
       <span class="normal">()</span>
@@ -2111,7 +2048,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getZOrderOnTop</span>
       <span class="normal">()</span>
@@ -2144,7 +2081,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getZoomControlsEnabled</span>
       <span class="normal">()</span>
@@ -2177,7 +2114,7 @@
          
          
          
-        Boolean
+        <a href="/reference/java/lang/Boolean.html">Boolean</a>
       </span>
       <span class="sympad">getZoomGesturesEnabled</span>
       <span class="normal">()</span>
@@ -2381,7 +2318,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html b/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
index d97f165..94a6ae1 100644
--- a/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
@@ -751,7 +751,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html#onLocationChanged(android.location.Location)">onLocationChanged</a></span>(Location location)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html#onLocationChanged(android.location.Location)">onLocationChanged</a></span>(<a href="/reference/android/location/Location.html">Location</a> location)</nobr>
         
         <div class="jd-descrdiv">Called when a new user location is known.</div>
   
@@ -819,7 +819,7 @@
         void
       </span>
       <span class="sympad">onLocationChanged</span>
-      <span class="normal">(Location location)</span>
+      <span class="normal">(<a href="/reference/android/location/Location.html">Location</a> location)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/LocationSource.html b/docs/html/reference/com/google/android/gms/maps/LocationSource.html
index d4d0103b..afc5cc4 100644
--- a/docs/html/reference/com/google/android/gms/maps/LocationSource.html
+++ b/docs/html/reference/com/google/android/gms/maps/LocationSource.html
@@ -895,11 +895,11 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if this provider is already active</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if <code>listener</code> is <code>null</code>
 </td>
         </tr>
@@ -939,7 +939,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if this provider is already inactive
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapFragment.html b/docs/html/reference/com/google/android/gms/maps/MapFragment.html
index 72f86e5..dbff4ab 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapFragment.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapFragment.html
@@ -738,7 +738,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -1045,7 +1045,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -1061,7 +1061,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> activity)</nobr>
         
   </td></tr>
 
@@ -1077,7 +1077,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -1090,10 +1090,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)">onCreateView</a></span>(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)">onCreateView</a></span>(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> inflater, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> container, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -1141,7 +1141,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle)">onInflate</a></span>(Activity activity, AttributeSet attrs, Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle)">onInflate</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> activity, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
         <div class="jd-descrdiv">Parse attributes during inflation from a view hierarchy into the arguments we handle.</div>
   
@@ -1207,7 +1207,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(Bundle outState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</nobr>
         
   </td></tr>
 
@@ -1223,7 +1223,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#setArguments(android.os.Bundle)">setArguments</a></span>(Bundle args)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapFragment.html#setArguments(android.os.Bundle)">setArguments</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> args)</nobr>
         
   </td></tr>
 
@@ -1273,7 +1273,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dump</span>(String arg0, FileDescriptor arg1, PrintWriter arg2, String[] arg3)</nobr>
+        <span class="sympad">dump</span>(<a href="/reference/java/lang/String.html">String</a> arg0, <a href="/reference/java/io/FileDescriptor.html">FileDescriptor</a> arg1, <a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg2, <a href="/reference/java/lang/String.html">String[]</a> arg3)</nobr>
         
   </td></tr>
 
@@ -1289,7 +1289,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1302,7 +1302,7 @@
             final
             
             
-            Activity</nobr>
+            <a href="/reference/android/app/Activity.html">Activity</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getActivity</span>()</nobr>
@@ -1318,7 +1318,7 @@
             final
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getArguments</span>()</nobr>
@@ -1382,7 +1382,7 @@
             final
             
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getResources</span>()</nobr>
@@ -1414,7 +1414,7 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getString</span>(int arg0)</nobr>
@@ -1430,10 +1430,10 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getString</span>(int arg0, Object... arg1)</nobr>
+        <span class="sympad">getString</span>(int arg0, <a href="/reference/java/lang/Object.html">Object...</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1446,7 +1446,7 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>()</nobr>
@@ -1494,7 +1494,7 @@
             final
             
             
-            CharSequence</nobr>
+            <a href="/reference/java/lang/CharSequence.html">CharSequence</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getText</span>(int arg0)</nobr>
@@ -1526,7 +1526,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getView</span>()</nobr>
@@ -1561,7 +1561,7 @@
             Fragment</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">instantiate</span>(Context arg0, String arg1)</nobr>
+        <span class="sympad">instantiate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, <a href="/reference/java/lang/String.html">String</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1577,7 +1577,7 @@
             Fragment</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">instantiate</span>(Context arg0, String arg1, Bundle arg2)</nobr>
+        <span class="sympad">instantiate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, <a href="/reference/java/lang/String.html">String</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1705,7 +1705,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onActivityCreated</span>(Bundle arg0)</nobr>
+        <span class="sympad">onActivityCreated</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1721,7 +1721,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onActivityResult</span>(int arg0, int arg1, Intent arg2)</nobr>
+        <span class="sympad">onActivityResult</span>(int arg0, int arg1, <a href="/reference/android/content/Intent.html">Intent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1737,7 +1737,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onAttach</span>(Activity arg0)</nobr>
+        <span class="sympad">onAttach</span>(<a href="/reference/android/app/Activity.html">Activity</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1753,7 +1753,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1769,7 +1769,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onContextItemSelected</span>(MenuItem arg0)</nobr>
+        <span class="sympad">onContextItemSelected</span>(<a href="/reference/android/view/MenuItem.html">MenuItem</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1785,7 +1785,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreate</span>(Bundle arg0)</nobr>
+        <span class="sympad">onCreate</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1817,7 +1817,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0, View arg1, ContextMenu.ContextMenuInfo arg2)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1833,7 +1833,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateOptionsMenu</span>(Menu arg0, MenuInflater arg1)</nobr>
+        <span class="sympad">onCreateOptionsMenu</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0, <a href="/reference/android/view/MenuInflater.html">MenuInflater</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1846,10 +1846,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateView</span>(LayoutInflater arg0, ViewGroup arg1, Bundle arg2)</nobr>
+        <span class="sympad">onCreateView</span>(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> arg0, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1945,7 +1945,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInflate</span>(AttributeSet arg0, Bundle arg1)</nobr>
+        <span class="sympad">onInflate</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1961,7 +1961,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInflate</span>(Activity arg0, AttributeSet arg1, Bundle arg2)</nobr>
+        <span class="sympad">onInflate</span>(<a href="/reference/android/app/Activity.html">Activity</a> arg0, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1993,7 +1993,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onOptionsItemSelected</span>(MenuItem arg0)</nobr>
+        <span class="sympad">onOptionsItemSelected</span>(<a href="/reference/android/view/MenuItem.html">MenuItem</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2009,7 +2009,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onOptionsMenuClosed</span>(Menu arg0)</nobr>
+        <span class="sympad">onOptionsMenuClosed</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2041,7 +2041,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onPrepareOptionsMenu</span>(Menu arg0)</nobr>
+        <span class="sympad">onPrepareOptionsMenu</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2073,7 +2073,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onSaveInstanceState</span>(Bundle arg0)</nobr>
+        <span class="sympad">onSaveInstanceState</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2137,7 +2137,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onViewCreated</span>(View arg0, Bundle arg1)</nobr>
+        <span class="sympad">onViewCreated</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2153,7 +2153,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">registerForContextMenu</span>(View arg0)</nobr>
+        <span class="sympad">registerForContextMenu</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2169,7 +2169,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setArguments</span>(Bundle arg0)</nobr>
+        <span class="sympad">setArguments</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2281,7 +2281,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivity</span>(Intent arg0)</nobr>
+        <span class="sympad">startActivity</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2297,7 +2297,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivity</span>(Intent arg0, Bundle arg1)</nobr>
+        <span class="sympad">startActivity</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2313,7 +2313,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivityForResult</span>(Intent arg0, int arg1)</nobr>
+        <span class="sympad">startActivityForResult</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2329,7 +2329,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivityForResult</span>(Intent arg0, int arg1, Bundle arg2)</nobr>
+        <span class="sympad">startActivityForResult</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0, int arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2342,7 +2342,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2361,7 +2361,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unregisterForContextMenu</span>(View arg0)</nobr>
+        <span class="sympad">unregisterForContextMenu</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2381,7 +2381,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -2400,7 +2400,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -2419,7 +2419,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2448,7 +2448,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -2512,7 +2512,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2583,7 +2583,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.content.ComponentCallbacks
+  <a href="/reference/android/content/ComponentCallbacks.html">android.content.ComponentCallbacks</a>
 
 <div id="inherited-methods-android.content.ComponentCallbacks">
   <div id="inherited-methods-android.content.ComponentCallbacks-list"
@@ -2605,7 +2605,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2683,7 +2683,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.View.OnCreateContextMenuListener
+  <a href="/reference/android/view/View.OnCreateContextMenuListener.html">android.view.View.OnCreateContextMenuListener</a>
 
 <div id="inherited-methods-android.view.View.OnCreateContextMenuListener">
   <div id="inherited-methods-android.view.View.OnCreateContextMenuListener-list"
@@ -2705,7 +2705,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0, View arg1, ContextMenu.ContextMenuInfo arg2)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2908,7 +2908,7 @@
         void
       </span>
       <span class="sympad">onActivityCreated</span>
-      <span class="normal">(Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2937,7 +2937,7 @@
         void
       </span>
       <span class="sympad">onAttach</span>
-      <span class="normal">(Activity activity)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> activity)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2966,7 +2966,7 @@
         void
       </span>
       <span class="sympad">onCreate</span>
-      <span class="normal">(Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2992,10 +2992,10 @@
          
          
          
-        View
+        <a href="/reference/android/view/View.html">View</a>
       </span>
       <span class="sympad">onCreateView</span>
-      <span class="normal">(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> inflater, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> container, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3082,7 +3082,7 @@
         void
       </span>
       <span class="sympad">onInflate</span>
-      <span class="normal">(Activity activity, AttributeSet attrs, Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> activity, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3199,7 +3199,7 @@
         void
       </span>
       <span class="sympad">onSaveInstanceState</span>
-      <span class="normal">(Bundle outState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3228,7 +3228,7 @@
         void
       </span>
       <span class="sympad">setArguments</span>
-      <span class="normal">(Bundle args)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> args)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapView.html b/docs/html/reference/com/google/android/gms/maps/MapView.html
index c9c6047..11bf3f6 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapView.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapView.html
@@ -761,7 +761,7 @@
   
 
   
-    extends FrameLayout<br/>
+    extends <a href="/reference/android/widget/FrameLayout.html">FrameLayout</a><br/>
   
   
   
@@ -781,7 +781,7 @@
 
     <tr>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -789,7 +789,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">android.view.View</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/android/view/View.html">android.view.View</a></td>
     </tr>
     
 
@@ -799,7 +799,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">android.view.ViewGroup</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a></td>
     </tr>
     
 
@@ -811,7 +811,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">android.widget.FrameLayout</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/android/widget/FrameLayout.html">android.widget.FrameLayout</a></td>
     </tr>
     
 
@@ -1393,7 +1393,7 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol">VIEW_LOG_TAG</td>
         <td class="jd-descrcol" width="100%"></td>
     </tr>
@@ -1464,7 +1464,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ALPHA</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1783,7 +1783,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1794,7 +1794,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1805,7 +1805,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1816,7 +1816,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1827,7 +1827,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1860,7 +1860,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1871,7 +1871,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1893,7 +1893,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1904,7 +1904,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1949,7 +1949,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context)">MapView</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context)">MapView</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
   </td></tr>
 
@@ -1965,7 +1965,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, android.util.AttributeSet)">MapView</a></span>(Context context, AttributeSet attrs)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, android.util.AttributeSet)">MapView</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</nobr>
         
   </td></tr>
 
@@ -1981,7 +1981,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, android.util.AttributeSet, int)">MapView</a></span>(Context context, AttributeSet attrs, int defStyle)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, android.util.AttributeSet, int)">MapView</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, int defStyle)</nobr>
         
   </td></tr>
 
@@ -1997,7 +1997,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, com.google.android.gms.maps.GoogleMapOptions)">MapView</a></span>(Context context, <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a> options)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#MapView(android.content.Context, com.google.android.gms.maps.GoogleMapOptions)">MapView</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a> options)</nobr>
         
   </td></tr>
 
@@ -2044,7 +2044,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#onCreate(android.os.Bundle)">onCreate</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
         <div class="jd-descrdiv">You must call this method from the parent Activity/Fragment's corresponding method.</div>
   
@@ -2134,7 +2134,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(Bundle outState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapView.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</nobr>
         
         <div class="jd-descrdiv">You must call this method from the parent Activity/Fragment's corresponding method.</div>
   
@@ -2164,7 +2164,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.widget.FrameLayout
+  <a href="/reference/android/widget/FrameLayout.html">android.widget.FrameLayout</a>
 
 <div id="inherited-methods-android.widget.FrameLayout">
   <div id="inherited-methods-android.widget.FrameLayout-list"
@@ -2186,7 +2186,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">checkLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2202,7 +2202,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">draw</span>(Canvas arg0)</nobr>
+        <span class="sympad">draw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2234,7 +2234,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+        <span class="sympad">gatherTransparentRegion</span>(<a href="/reference/android/graphics/Region.html">Region</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2247,7 +2247,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
@@ -2263,10 +2263,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2279,10 +2279,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2311,7 +2311,7 @@
             
             
             
-            Drawable</nobr>
+            <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getForeground</span>()</nobr>
@@ -2378,7 +2378,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onInitializeAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2458,7 +2458,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setForeground</span>(Drawable arg0)</nobr>
+        <span class="sympad">setForeground</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2522,7 +2522,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">verifyDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2542,7 +2542,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.ViewGroup
+  <a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a>
 
 <div id="inherited-methods-android.view.ViewGroup">
   <div id="inherited-methods-android.view.ViewGroup-list"
@@ -2564,7 +2564,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2580,7 +2580,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2612,7 +2612,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2628,7 +2628,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2644,7 +2644,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2660,7 +2660,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2676,7 +2676,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2692,7 +2692,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2708,7 +2708,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2, boolean arg3)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2, boolean arg3)</nobr>
         
   </td></tr>
 
@@ -2724,7 +2724,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2740,7 +2740,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachLayoutAnimationParameters</span>(View arg0, ViewGroup.LayoutParams arg1, int arg2, int arg3)</nobr>
+        <span class="sympad">attachLayoutAnimationParameters</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1, int arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -2756,7 +2756,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachViewToParent</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">attachViewToParent</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2772,7 +2772,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2804,7 +2804,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">checkLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2820,7 +2820,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2836,7 +2836,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">cleanupLayoutState</span>(View arg0)</nobr>
+        <span class="sympad">cleanupLayoutState</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2852,7 +2852,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2932,7 +2932,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">detachViewFromParent</span>(View arg0)</nobr>
+        <span class="sympad">detachViewFromParent</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2980,7 +2980,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3028,7 +3028,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3044,7 +3044,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchFreezeSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchFreezeSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3060,7 +3060,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3076,7 +3076,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3092,7 +3092,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3108,7 +3108,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3124,7 +3124,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3140,7 +3140,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3156,7 +3156,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3172,7 +3172,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3252,7 +3252,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchThawSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchThawSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -3268,7 +3268,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3284,7 +3284,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3300,7 +3300,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3316,7 +3316,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3380,7 +3380,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">drawChild</span>(Canvas arg0, View arg1, long arg2)</nobr>
+        <span class="sympad">drawChild</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -3412,7 +3412,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">endViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">endViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3425,7 +3425,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -3444,7 +3444,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3460,7 +3460,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3473,10 +3473,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3492,7 +3492,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3508,7 +3508,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+        <span class="sympad">gatherTransparentRegion</span>(<a href="/reference/android/graphics/Region.html">Region</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3521,7 +3521,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
@@ -3537,10 +3537,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3553,10 +3553,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3569,7 +3569,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getChildAt</span>(int arg0)</nobr>
@@ -3636,7 +3636,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildStaticTransformation</span>(View arg0, Transformation arg1)</nobr>
+        <span class="sympad">getChildStaticTransformation</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/animation/Transformation.html">Transformation</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3652,7 +3652,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -3681,7 +3681,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusedChild</span>()</nobr>
@@ -3697,7 +3697,7 @@
             
             
             
-            LayoutAnimationController</nobr>
+            <a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimation</span>()</nobr>
@@ -3713,7 +3713,7 @@
             
             
             
-            Animation.AnimationListener</nobr>
+            <a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimationListener</span>()</nobr>
@@ -3796,7 +3796,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">indexOfChild</span>(View arg0)</nobr>
+        <span class="sympad">indexOfChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3812,7 +3812,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3825,10 +3825,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3956,7 +3956,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChild</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">measureChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3972,7 +3972,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChildWithMargins</span>(View arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+        <span class="sympad">measureChildWithMargins</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
         
   </td></tr>
 
@@ -4004,7 +4004,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetDescendantRectToMyCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetDescendantRectToMyCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4020,7 +4020,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetRectIntoDescendantCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetRectIntoDescendantCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4084,7 +4084,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4100,7 +4100,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4132,7 +4132,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4148,7 +4148,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">onRequestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4164,7 +4164,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4212,7 +4212,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeDetachedView</span>(View arg0, boolean arg1)</nobr>
+        <span class="sympad">removeDetachedView</span>(<a href="/reference/android/view/View.html">View</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -4228,7 +4228,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4260,7 +4260,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeViewInLayout</span>(View arg0)</nobr>
+        <span class="sympad">removeViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4308,7 +4308,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4324,7 +4324,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -4356,7 +4356,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4372,7 +4372,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4388,7 +4388,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4564,7 +4564,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimation</span>(LayoutAnimationController arg0)</nobr>
+        <span class="sympad">setLayoutAnimation</span>(<a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4580,7 +4580,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimationListener</span>(Animation.AnimationListener arg0)</nobr>
+        <span class="sympad">setLayoutAnimationListener</span>(<a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4628,7 +4628,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnHierarchyChangeListener</span>(ViewGroup.OnHierarchyChangeListener arg0)</nobr>
+        <span class="sympad">setOnHierarchyChangeListener</span>(<a href="/reference/android/view/ViewGroup.OnHierarchyChangeListener.html">ViewGroup.OnHierarchyChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4708,7 +4708,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4724,7 +4724,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -4756,7 +4756,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">startViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4772,7 +4772,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4792,7 +4792,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.View
+  <a href="/reference/android/view/View.html">android.view.View</a>
 
 <div id="inherited-methods-android.view.View">
   <div id="inherited-methods-android.view.View-list"
@@ -4814,7 +4814,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4830,7 +4830,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -4846,7 +4846,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -4894,7 +4894,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4926,7 +4926,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">announceForAccessibility</span>(CharSequence arg0)</nobr>
+        <span class="sympad">announceForAccessibility</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5118,7 +5118,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkInputConnectionProxy</span>(View arg0)</nobr>
+        <span class="sympad">checkInputConnectionProxy</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5310,7 +5310,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5342,7 +5342,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5390,7 +5390,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5406,7 +5406,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5422,7 +5422,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5438,7 +5438,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5454,7 +5454,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5470,7 +5470,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5486,7 +5486,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5502,7 +5502,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5518,7 +5518,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5534,7 +5534,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5550,7 +5550,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5630,7 +5630,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5646,7 +5646,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5662,7 +5662,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5678,7 +5678,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5742,7 +5742,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">draw</span>(Canvas arg0)</nobr>
+        <span class="sympad">draw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5771,7 +5771,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -5787,7 +5787,7 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findViewById</span>(int arg0)</nobr>
@@ -5803,10 +5803,10 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewWithTag</span>(Object arg0)</nobr>
+        <span class="sympad">findViewWithTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5822,7 +5822,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -5838,7 +5838,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5851,7 +5851,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">focusSearch</span>(int arg0)</nobr>
@@ -5915,7 +5915,7 @@
             
             
             
-            Animation</nobr>
+            <a href="/reference/android/view/animation/Animation.html">Animation</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getAnimation</span>()</nobr>
@@ -5931,7 +5931,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getApplicationWindowToken</span>()</nobr>
@@ -5947,7 +5947,7 @@
             
             
             
-            Drawable</nobr>
+            <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getBackground</span>()</nobr>
@@ -6043,7 +6043,7 @@
             
             
             
-            CharSequence</nobr>
+            <a href="/reference/java/lang/CharSequence.html">CharSequence</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContentDescription</span>()</nobr>
@@ -6059,7 +6059,7 @@
             final
             
             
-            Context</nobr>
+            <a href="/reference/android/content/Context.html">Context</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContext</span>()</nobr>
@@ -6075,7 +6075,7 @@
             
             
             
-            ContextMenu.ContextMenuInfo</nobr>
+            <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContextMenuInfo</span>()</nobr>
@@ -6123,7 +6123,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>(boolean arg0)</nobr>
@@ -6139,7 +6139,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>()</nobr>
@@ -6190,7 +6190,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDrawingRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getDrawingRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6251,7 +6251,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusables</span>(int arg0)</nobr>
@@ -6270,7 +6270,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getFocusedRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getFocusedRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6286,7 +6286,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0, Point arg1)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, <a href="/reference/android/graphics/Point.html">Point</a> arg1)</nobr>
         
   </td></tr>
 
@@ -6302,7 +6302,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6315,7 +6315,7 @@
             
             
             
-            Handler</nobr>
+            <a href="/reference/android/os/Handler.html">Handler</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getHandler</span>()</nobr>
@@ -6350,7 +6350,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getHitRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getHitRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6443,7 +6443,7 @@
             
             
             
-            KeyEvent.DispatcherState</nobr>
+            <a href="/reference/android/view/KeyEvent.DispatcherState.html">KeyEvent.DispatcherState</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getKeyDispatcherState</span>()</nobr>
@@ -6475,7 +6475,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutParams</span>()</nobr>
@@ -6542,7 +6542,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getLocalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6587,7 +6587,7 @@
             
             
             
-            Matrix</nobr>
+            <a href="/reference/android/graphics/Matrix.html">Matrix</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMatrix</span>()</nobr>
@@ -6795,7 +6795,7 @@
             
             
             
-            View.OnFocusChangeListener</nobr>
+            <a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getOnFocusChangeListener</span>()</nobr>
@@ -6891,7 +6891,7 @@
             final
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -6907,7 +6907,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -6955,7 +6955,7 @@
             
             
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getResources</span>()</nobr>
@@ -7019,7 +7019,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getRootView</span>()</nobr>
@@ -7275,7 +7275,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>(int arg0)</nobr>
@@ -7291,7 +7291,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>()</nobr>
@@ -7355,7 +7355,7 @@
             
             
             
-            TouchDelegate</nobr>
+            <a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchDelegate</span>()</nobr>
@@ -7371,7 +7371,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchables</span>()</nobr>
@@ -7467,7 +7467,7 @@
             
             
             
-            ViewTreeObserver</nobr>
+            <a href="/reference/android/view/ViewTreeObserver.html">ViewTreeObserver</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getViewTreeObserver</span>()</nobr>
@@ -7547,7 +7547,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getWindowToken</span>()</nobr>
@@ -7582,7 +7582,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getWindowVisibleDisplayFrame</span>(Rect arg0)</nobr>
+        <span class="sympad">getWindowVisibleDisplayFrame</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7723,10 +7723,10 @@
             
             static
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">inflate</span>(Context arg0, int arg1, ViewGroup arg2)</nobr>
+        <span class="sympad">inflate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> arg2)</nobr>
         
   </td></tr>
 
@@ -7742,7 +7742,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeFadingEdge</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeFadingEdge</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7758,7 +7758,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeScrollbars</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeScrollbars</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7774,7 +7774,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidate</span>(Rect arg0)</nobr>
+        <span class="sympad">invalidate</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7822,7 +7822,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8478,7 +8478,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8494,7 +8494,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8523,10 +8523,10 @@
             
             
             
-            InputConnection</nobr>
+            <a href="/reference/android/view/inputmethod/InputConnection.html">InputConnection</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateInputConnection</span>(EditorInfo arg0)</nobr>
+        <span class="sympad">onCreateInputConnection</span>(<a href="/reference/android/view/inputmethod/EditorInfo.html">EditorInfo</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8590,7 +8590,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8606,7 +8606,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDrawScrollBars</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDrawScrollBars</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8622,7 +8622,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFilterTouchEventForSecurity</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onFilterTouchEventForSecurity</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8670,7 +8670,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, Rect arg2)</nobr>
+        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, <a href="/reference/android/graphics/Rect.html">Rect</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8686,7 +8686,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8718,7 +8718,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8734,7 +8734,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onInitializeAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8766,7 +8766,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8782,7 +8782,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8798,7 +8798,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8814,7 +8814,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyPreIme</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyPreIme</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8830,7 +8830,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyShortcut</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyShortcut</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8846,7 +8846,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8910,7 +8910,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8926,7 +8926,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRestoreInstanceState</span>(Parcelable arg0)</nobr>
+        <span class="sympad">onRestoreInstanceState</span>(<a href="/reference/android/os/Parcelable.html">Parcelable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8939,7 +8939,7 @@
             
             
             
-            Parcelable</nobr>
+            <a href="/reference/android/os/Parcelable.html">Parcelable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">onSaveInstanceState</span>()</nobr>
@@ -9038,7 +9038,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9054,7 +9054,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9070,7 +9070,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">onVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -9150,7 +9150,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">performAccessibilityAction</span>(int arg0, Bundle arg1)</nobr>
+        <span class="sympad">performAccessibilityAction</span>(int arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9246,7 +9246,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">post</span>(Runnable arg0)</nobr>
+        <span class="sympad">post</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9262,7 +9262,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -9374,7 +9374,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimation</span>(Runnable arg0)</nobr>
+        <span class="sympad">postOnAnimation</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9390,7 +9390,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimationDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postOnAnimationDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -9422,7 +9422,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeCallbacks</span>(Runnable arg0)</nobr>
+        <span class="sympad">removeCallbacks</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9486,7 +9486,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9566,7 +9566,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9582,7 +9582,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0, boolean arg1)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -9630,7 +9630,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">restoreHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">restoreHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9646,7 +9646,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">saveHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">saveHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9662,7 +9662,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -9726,7 +9726,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9790,7 +9790,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">setAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9806,7 +9806,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackground</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackground</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9838,7 +9838,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackgroundDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackgroundDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9918,7 +9918,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setContentDescription</span>(CharSequence arg0)</nobr>
+        <span class="sympad">setContentDescription</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10222,7 +10222,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayerType</span>(int arg0, Paint arg1)</nobr>
+        <span class="sympad">setLayerType</span>(int arg0, <a href="/reference/android/graphics/Paint.html">Paint</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10238,7 +10238,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">setLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10414,7 +10414,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnClickListener</span>(View.OnClickListener arg0)</nobr>
+        <span class="sympad">setOnClickListener</span>(<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10430,7 +10430,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnCreateContextMenuListener</span>(View.OnCreateContextMenuListener arg0)</nobr>
+        <span class="sympad">setOnCreateContextMenuListener</span>(<a href="/reference/android/view/View.OnCreateContextMenuListener.html">View.OnCreateContextMenuListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10462,7 +10462,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnFocusChangeListener</span>(View.OnFocusChangeListener arg0)</nobr>
+        <span class="sympad">setOnFocusChangeListener</span>(<a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10510,7 +10510,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnKeyListener</span>(View.OnKeyListener arg0)</nobr>
+        <span class="sympad">setOnKeyListener</span>(<a href="/reference/android/view/View.OnKeyListener.html">View.OnKeyListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10526,7 +10526,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnLongClickListener</span>(View.OnLongClickListener arg0)</nobr>
+        <span class="sympad">setOnLongClickListener</span>(<a href="/reference/android/view/View.OnLongClickListener.html">View.OnLongClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10558,7 +10558,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnTouchListener</span>(View.OnTouchListener arg0)</nobr>
+        <span class="sympad">setOnTouchListener</span>(<a href="/reference/android/view/View.OnTouchListener.html">View.OnTouchListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10958,7 +10958,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(int arg0, Object arg1)</nobr>
+        <span class="sympad">setTag</span>(int arg0, <a href="/reference/java/lang/Object.html">Object</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10974,7 +10974,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(Object arg0)</nobr>
+        <span class="sympad">setTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11006,7 +11006,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTouchDelegate</span>(TouchDelegate arg0)</nobr>
+        <span class="sympad">setTouchDelegate</span>(<a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11214,7 +11214,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">startAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11230,7 +11230,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, Object arg2, int arg3)</nobr>
+        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, <a href="/reference/java/lang/Object.html">Object</a> arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -11246,7 +11246,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11262,7 +11262,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11278,7 +11278,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">verifyDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11330,7 +11330,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -11349,7 +11349,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -11368,7 +11368,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11397,7 +11397,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -11461,7 +11461,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -11532,7 +11532,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.graphics.drawable.Drawable.Callback
+  <a href="/reference/android/graphics/drawable/Drawable.Callback.html">android.graphics.drawable.Drawable.Callback</a>
 
 <div id="inherited-methods-android.graphics.drawable.Drawable.Callback">
   <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-list"
@@ -11554,7 +11554,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11570,7 +11570,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -11586,7 +11586,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11606,7 +11606,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.KeyEvent.Callback
+  <a href="/reference/android/view/KeyEvent.Callback.html">android.view.KeyEvent.Callback</a>
 
 <div id="inherited-methods-android.view.KeyEvent.Callback">
   <div id="inherited-methods-android.view.KeyEvent.Callback-list"
@@ -11628,7 +11628,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11644,7 +11644,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11660,7 +11660,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11676,7 +11676,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11696,7 +11696,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewManager
+  <a href="/reference/android/view/ViewManager.html">android.view.ViewManager</a>
 
 <div id="inherited-methods-android.view.ViewManager">
   <div id="inherited-methods-android.view.ViewManager-list"
@@ -11718,7 +11718,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11734,7 +11734,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11750,7 +11750,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11770,7 +11770,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewParent
+  <a href="/reference/android/view/ViewParent.html">android.view.ViewParent</a>
 
 <div id="inherited-methods-android.view.ViewParent">
   <div id="inherited-methods-android.view.ViewParent-list"
@@ -11792,7 +11792,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11808,7 +11808,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11824,7 +11824,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11840,7 +11840,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11853,10 +11853,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -11872,7 +11872,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11888,7 +11888,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11901,7 +11901,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -11917,7 +11917,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -11936,7 +11936,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11949,10 +11949,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11984,7 +11984,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12000,7 +12000,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -12016,7 +12016,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -12080,7 +12080,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -12096,7 +12096,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12112,7 +12112,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12128,7 +12128,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -12148,7 +12148,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.accessibility.AccessibilityEventSource
+  <a href="/reference/android/view/accessibility/AccessibilityEventSource.html">android.view.accessibility.AccessibilityEventSource</a>
 
 <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource">
   <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-list"
@@ -12186,7 +12186,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12244,7 +12244,7 @@
         
       </span>
       <span class="sympad">MapView</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12273,7 +12273,7 @@
         
       </span>
       <span class="sympad">MapView</span>
-      <span class="normal">(Context context, AttributeSet attrs)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12302,7 +12302,7 @@
         
       </span>
       <span class="sympad">MapView</span>
-      <span class="normal">(Context context, AttributeSet attrs, int defStyle)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, int defStyle)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12331,7 +12331,7 @@
         
       </span>
       <span class="sympad">MapView</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a> options)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/maps/GoogleMapOptions.html">GoogleMapOptions</a> options)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12411,7 +12411,7 @@
         void
       </span>
       <span class="sympad">onCreate</span>
-      <span class="normal">(Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12581,7 +12581,7 @@
         void
       </span>
       <span class="sympad">onSaveInstanceState</span>
-      <span class="normal">(Bundle outState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html b/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
index aa2079c..a7c65ab 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -799,7 +799,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapsInitializer.html#initialize(android.content.Context)">initialize</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/MapsInitializer.html#initialize(android.content.Context)">initialize</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Initializes the Google Maps Android API so that its classes are ready for use.</div>
   
@@ -829,7 +829,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -848,7 +848,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -867,7 +867,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -896,7 +896,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -960,7 +960,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1077,7 +1077,7 @@
         void
       </span>
       <span class="sympad">initialize</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/Projection.html b/docs/html/reference/com/google/android/gms/maps/Projection.html
index 5692e24..d75fd9b 100644
--- a/docs/html/reference/com/google/android/gms/maps/Projection.html
+++ b/docs/html/reference/com/google/android/gms/maps/Projection.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -795,7 +795,7 @@
             <a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/Projection.html#fromScreenLocation(android.graphics.Point)">fromScreenLocation</a></span>(Point point)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/Projection.html#fromScreenLocation(android.graphics.Point)">fromScreenLocation</a></span>(<a href="/reference/android/graphics/Point.html">Point</a> point)</nobr>
         
         <div class="jd-descrdiv">Returns the geographic location that corresponds to a screen location.</div>
   
@@ -829,7 +829,7 @@
             
             
             
-            Point</nobr>
+            <a href="/reference/android/graphics/Point.html">Point</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/Projection.html#toScreenLocation(com.google.android.gms.maps.model.LatLng)">toScreenLocation</a></span>(<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a> location)</nobr>
@@ -862,7 +862,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -881,7 +881,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -900,7 +900,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -929,7 +929,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -993,7 +993,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1110,7 +1110,7 @@
         <a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>
       </span>
       <span class="sympad">fromScreenLocation</span>
-      <span class="normal">(Point point)</span>
+      <span class="normal">(<a href="/reference/android/graphics/Point.html">Point</a> point)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1189,7 +1189,7 @@
          
          
          
-        Point
+        <a href="/reference/android/graphics/Point.html">Point</a>
       </span>
       <span class="sympad">toScreenLocation</span>
       <span class="normal">(<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a> location)</span>
diff --git a/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html b/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
index 3bccdee..1750f2c 100644
--- a/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
+++ b/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
@@ -726,7 +726,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -944,7 +944,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onActivityCreated(android.os.Bundle)">onActivityCreated</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -960,7 +960,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(Activity activity)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onAttach(android.app.Activity)">onAttach</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> activity)</nobr>
         
   </td></tr>
 
@@ -976,7 +976,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreate(android.os.Bundle)">onCreate</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -989,10 +989,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)">onCreateView</a></span>(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)">onCreateView</a></span>(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> inflater, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> container, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
   </td></tr>
 
@@ -1040,7 +1040,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle)">onInflate</a></span>(Activity activity, AttributeSet attrs, Bundle savedInstanceState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle)">onInflate</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> activity, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</nobr>
         
         <div class="jd-descrdiv">Parse attributes during inflation from a view hierarchy into the arguments we handle.</div>
   
@@ -1106,7 +1106,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(Bundle outState)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#onSaveInstanceState(android.os.Bundle)">onSaveInstanceState</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</nobr>
         
   </td></tr>
 
@@ -1122,7 +1122,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#setArguments(android.os.Bundle)">setArguments</a></span>(Bundle args)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/SupportMapFragment.html#setArguments(android.os.Bundle)">setArguments</a></span>(<a href="/reference/android/os/Bundle.html">Bundle</a> args)</nobr>
         
   </td></tr>
 
@@ -1172,7 +1172,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dump</span>(String arg0, FileDescriptor arg1, PrintWriter arg2, String[] arg3)</nobr>
+        <span class="sympad">dump</span>(<a href="/reference/java/lang/String.html">String</a> arg0, <a href="/reference/java/io/FileDescriptor.html">FileDescriptor</a> arg1, <a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg2, <a href="/reference/java/lang/String.html">String[]</a> arg3)</nobr>
         
   </td></tr>
 
@@ -1188,7 +1188,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1217,7 +1217,7 @@
             final
             
             
-            Bundle</nobr>
+            <a href="/reference/android/os/Bundle.html">Bundle</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getArguments</span>()</nobr>
@@ -1281,10 +1281,10 @@
             
             
             
-            LayoutInflater</nobr>
+            <a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLayoutInflater</span>(Bundle arg0)</nobr>
+        <span class="sympad">getLayoutInflater</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1329,7 +1329,7 @@
             final
             
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getResources</span>()</nobr>
@@ -1361,7 +1361,7 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getString</span>(int arg0)</nobr>
@@ -1377,10 +1377,10 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getString</span>(int arg0, Object... arg1)</nobr>
+        <span class="sympad">getString</span>(int arg0, <a href="/reference/java/lang/Object.html">Object...</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1393,7 +1393,7 @@
             final
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>()</nobr>
@@ -1441,7 +1441,7 @@
             final
             
             
-            CharSequence</nobr>
+            <a href="/reference/java/lang/CharSequence.html">CharSequence</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getText</span>(int arg0)</nobr>
@@ -1473,7 +1473,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getView</span>()</nobr>
@@ -1524,7 +1524,7 @@
             Fragment</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">instantiate</span>(Context arg0, String arg1)</nobr>
+        <span class="sympad">instantiate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, <a href="/reference/java/lang/String.html">String</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1540,7 +1540,7 @@
             Fragment</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">instantiate</span>(Context arg0, String arg1, Bundle arg2)</nobr>
+        <span class="sympad">instantiate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, <a href="/reference/java/lang/String.html">String</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1684,7 +1684,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onActivityCreated</span>(Bundle arg0)</nobr>
+        <span class="sympad">onActivityCreated</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1700,7 +1700,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onActivityResult</span>(int arg0, int arg1, Intent arg2)</nobr>
+        <span class="sympad">onActivityResult</span>(int arg0, int arg1, <a href="/reference/android/content/Intent.html">Intent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1716,7 +1716,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onAttach</span>(Activity arg0)</nobr>
+        <span class="sympad">onAttach</span>(<a href="/reference/android/app/Activity.html">Activity</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1732,7 +1732,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1748,7 +1748,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onContextItemSelected</span>(MenuItem arg0)</nobr>
+        <span class="sympad">onContextItemSelected</span>(<a href="/reference/android/view/MenuItem.html">MenuItem</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1764,7 +1764,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreate</span>(Bundle arg0)</nobr>
+        <span class="sympad">onCreate</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1777,7 +1777,7 @@
             
             
             
-            Animation</nobr>
+            <a href="/reference/android/view/animation/Animation.html">Animation</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">onCreateAnimation</span>(int arg0, boolean arg1, int arg2)</nobr>
@@ -1796,7 +1796,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0, View arg1, ContextMenu.ContextMenuInfo arg2)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1812,7 +1812,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateOptionsMenu</span>(Menu arg0, MenuInflater arg1)</nobr>
+        <span class="sympad">onCreateOptionsMenu</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0, <a href="/reference/android/view/MenuInflater.html">MenuInflater</a> arg1)</nobr>
         
   </td></tr>
 
@@ -1825,10 +1825,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateView</span>(LayoutInflater arg0, ViewGroup arg1, Bundle arg2)</nobr>
+        <span class="sympad">onCreateView</span>(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> arg0, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1924,7 +1924,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInflate</span>(Activity arg0, AttributeSet arg1, Bundle arg2)</nobr>
+        <span class="sympad">onInflate</span>(<a href="/reference/android/app/Activity.html">Activity</a> arg0, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg1, <a href="/reference/android/os/Bundle.html">Bundle</a> arg2)</nobr>
         
   </td></tr>
 
@@ -1956,7 +1956,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onOptionsItemSelected</span>(MenuItem arg0)</nobr>
+        <span class="sympad">onOptionsItemSelected</span>(<a href="/reference/android/view/MenuItem.html">MenuItem</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1972,7 +1972,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onOptionsMenuClosed</span>(Menu arg0)</nobr>
+        <span class="sympad">onOptionsMenuClosed</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2004,7 +2004,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onPrepareOptionsMenu</span>(Menu arg0)</nobr>
+        <span class="sympad">onPrepareOptionsMenu</span>(<a href="/reference/android/view/Menu.html">Menu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2036,7 +2036,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onSaveInstanceState</span>(Bundle arg0)</nobr>
+        <span class="sympad">onSaveInstanceState</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2084,7 +2084,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onViewCreated</span>(View arg0, Bundle arg1)</nobr>
+        <span class="sympad">onViewCreated</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2100,7 +2100,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onViewStateRestored</span>(Bundle arg0)</nobr>
+        <span class="sympad">onViewStateRestored</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2116,7 +2116,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">registerForContextMenu</span>(View arg0)</nobr>
+        <span class="sympad">registerForContextMenu</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2132,7 +2132,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setArguments</span>(Bundle arg0)</nobr>
+        <span class="sympad">setArguments</span>(<a href="/reference/android/os/Bundle.html">Bundle</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2244,7 +2244,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivity</span>(Intent arg0)</nobr>
+        <span class="sympad">startActivity</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2260,7 +2260,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActivityForResult</span>(Intent arg0, int arg1)</nobr>
+        <span class="sympad">startActivityForResult</span>(<a href="/reference/android/content/Intent.html">Intent</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2273,7 +2273,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2292,7 +2292,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unregisterForContextMenu</span>(View arg0)</nobr>
+        <span class="sympad">unregisterForContextMenu</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2312,7 +2312,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -2331,7 +2331,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -2350,7 +2350,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2379,7 +2379,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -2443,7 +2443,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2514,7 +2514,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.content.ComponentCallbacks
+  <a href="/reference/android/content/ComponentCallbacks.html">android.content.ComponentCallbacks</a>
 
 <div id="inherited-methods-android.content.ComponentCallbacks">
   <div id="inherited-methods-android.content.ComponentCallbacks-list"
@@ -2536,7 +2536,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2572,7 +2572,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.View.OnCreateContextMenuListener
+  <a href="/reference/android/view/View.OnCreateContextMenuListener.html">android.view.View.OnCreateContextMenuListener</a>
 
 <div id="inherited-methods-android.view.View.OnCreateContextMenuListener">
   <div id="inherited-methods-android.view.View.OnCreateContextMenuListener-list"
@@ -2594,7 +2594,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0, View arg1, ContextMenu.ContextMenuInfo arg2)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2797,7 +2797,7 @@
         void
       </span>
       <span class="sympad">onActivityCreated</span>
-      <span class="normal">(Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2826,7 +2826,7 @@
         void
       </span>
       <span class="sympad">onAttach</span>
-      <span class="normal">(Activity activity)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> activity)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2855,7 +2855,7 @@
         void
       </span>
       <span class="sympad">onCreate</span>
-      <span class="normal">(Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2881,10 +2881,10 @@
          
          
          
-        View
+        <a href="/reference/android/view/View.html">View</a>
       </span>
       <span class="sympad">onCreateView</span>
-      <span class="normal">(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/view/LayoutInflater.html">LayoutInflater</a> inflater, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> container, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2971,7 +2971,7 @@
         void
       </span>
       <span class="sympad">onInflate</span>
-      <span class="normal">(Activity activity, AttributeSet attrs, Bundle savedInstanceState)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> activity, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs, <a href="/reference/android/os/Bundle.html">Bundle</a> savedInstanceState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3088,7 +3088,7 @@
         void
       </span>
       <span class="sympad">onSaveInstanceState</span>
-      <span class="normal">(Bundle outState)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> outState)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3117,7 +3117,7 @@
         void
       </span>
       <span class="sympad">setArguments</span>
-      <span class="normal">(Bundle args)</span>
+      <span class="normal">(<a href="/reference/android/os/Bundle.html">Bundle</a> args)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/UiSettings.html b/docs/html/reference/com/google/android/gms/maps/UiSettings.html
index 2bf944b..ebb7d92b 100644
--- a/docs/html/reference/com/google/android/gms/maps/UiSettings.html
+++ b/docs/html/reference/com/google/android/gms/maps/UiSettings.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -1076,7 +1076,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1095,7 +1095,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1114,7 +1114,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1143,7 +1143,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1207,7 +1207,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
index 15bd350..f96147c 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
@@ -675,7 +675,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -695,7 +695,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -805,7 +805,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -824,7 +824,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -843,7 +843,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -872,7 +872,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -936,7 +936,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
index 65dbe7b..213428c 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -923,7 +923,7 @@
             <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromAsset(java.lang.String)">fromAsset</a></span>(String assetName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromAsset(java.lang.String)">fromAsset</a></span>(<a href="/reference/java/lang/String.html">String</a> assetName)</nobr>
         
         <div class="jd-descrdiv">Creates a <code><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></code> using the name of an image in the assets directory.</div>
   
@@ -941,7 +941,7 @@
             <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromBitmap(android.graphics.Bitmap)">fromBitmap</a></span>(Bitmap image)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromBitmap(android.graphics.Bitmap)">fromBitmap</a></span>(<a href="/reference/android/graphics/Bitmap.html">Bitmap</a> image)</nobr>
         
         <div class="jd-descrdiv">Creates a bitmap descriptor from a given image.</div>
   
@@ -959,7 +959,7 @@
             <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromFile(java.lang.String)">fromFile</a></span>(String fileName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromFile(java.lang.String)">fromFile</a></span>(<a href="/reference/java/lang/String.html">String</a> fileName)</nobr>
         
         <div class="jd-descrdiv">Creates a <code><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></code> using the name of an image file located in the internal
  storage.</div>
@@ -978,7 +978,7 @@
             <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromPath(java.lang.String)">fromPath</a></span>(String absolutePath)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html#fromPath(java.lang.String)">fromPath</a></span>(<a href="/reference/java/lang/String.html">String</a> absolutePath)</nobr>
         
         <div class="jd-descrdiv">Creates a bitmap descriptor from an absolute file path.</div>
   
@@ -1026,7 +1026,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1045,7 +1045,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1064,7 +1064,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1093,7 +1093,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1157,7 +1157,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1720,7 +1720,7 @@
         <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a>
       </span>
       <span class="sympad">fromAsset</span>
-      <span class="normal">(String assetName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> assetName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1764,7 +1764,7 @@
         <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a>
       </span>
       <span class="sympad">fromBitmap</span>
-      <span class="normal">(Bitmap image)</span>
+      <span class="normal">(<a href="/reference/android/graphics/Bitmap.html">Bitmap</a> image)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1794,7 +1794,7 @@
         <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a>
       </span>
       <span class="sympad">fromFile</span>
-      <span class="normal">(String fileName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> fileName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1823,7 +1823,7 @@
   </div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><a href="http://developer.android.com/guide/topics/data/data-storage.html#filesInternal">
+      <ul class="nolist"><li><a href="/guide/topics/data/data-storage.html#filesInternal">
  Using the Internal Storage</a></li>
       </ul>
   </div>
@@ -1845,7 +1845,7 @@
         <a href="/reference/com/google/android/gms/maps/model/BitmapDescriptor.html">BitmapDescriptor</a>
       </span>
       <span class="sympad">fromPath</span>
-      <span class="normal">(String absolutePath)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> absolutePath)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
index f582429..d54bcf6 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -940,7 +940,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -959,7 +959,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -978,7 +978,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1007,7 +1007,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1071,7 +1071,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
index 4364ca3..b96d938 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
@@ -652,9 +652,6 @@
 
 
 
-  &#124; <a href="#constants">Constants</a>
-  
-
 
   &#124; <a href="#inhconstants">Inherited Constants</a>
   
@@ -702,7 +699,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -711,7 +708,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -727,7 +724,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -819,22 +816,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1040,7 +1021,7 @@
             <a href="/reference/com/google/android/gms/maps/model/CameraPosition.html">CameraPosition</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#createFromAttributes(android.content.Context, android.util.AttributeSet)">createFromAttributes</a></span>(Context context, AttributeSet attrs)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#createFromAttributes(android.content.Context, android.util.AttributeSet)">createFromAttributes</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</nobr>
         
         <div class="jd-descrdiv">Creates a CameraPostion from the attribute set
 </div>
@@ -1075,7 +1056,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> o)</nobr>
         
   </td></tr>
 
@@ -1122,7 +1103,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#toString()">toString</a></span>()</nobr>
@@ -1141,7 +1122,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/CameraPosition.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1169,7 +1150,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1188,7 +1169,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1207,7 +1188,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1236,7 +1217,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1300,7 +1281,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1371,7 +1352,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1409,7 +1390,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1443,50 +1424,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1706,11 +1643,11 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>NullPointerException</td>
+            <th><a href="/reference/java/lang/NullPointerException.html">NullPointerException</a></td>
             <td>if <code>target</code> is null</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if <code>tilt</code> is outside the range of 0 degress inclusive
              to 90 degrees inclusive.
 </td>
@@ -1808,7 +1745,7 @@
         <a href="/reference/com/google/android/gms/maps/model/CameraPosition.html">CameraPosition</a>
       </span>
       <span class="sympad">createFromAttributes</span>
-      <span class="normal">(Context context, AttributeSet attrs)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1867,7 +1804,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> o)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1970,7 +1907,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -2002,7 +1939,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Circle.html b/docs/html/reference/com/google/android/gms/maps/model/Circle.html
index 1428de7..1c99a24 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Circle.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Circle.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -882,7 +882,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Circle.html#getId()">getId</a></span>()</nobr>
@@ -1149,7 +1149,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1168,7 +1168,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1187,7 +1187,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1216,7 +1216,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1280,7 +1280,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1462,7 +1462,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -1721,7 +1721,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>NullPointerException</td>
+            <th><a href="/reference/java/lang/NullPointerException.html">NullPointerException</a></td>
             <td>if center is null
 </td>
         </tr>
@@ -1814,7 +1814,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if radius is negative
 </td>
         </tr>
@@ -1909,7 +1909,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if width is negative
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html b/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
index ee8a364..0fde34b 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -795,22 +792,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/CircleOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1200,7 +1181,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1219,7 +1200,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1238,7 +1219,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1267,7 +1248,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1331,7 +1312,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1402,7 +1383,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1440,7 +1421,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1474,50 +1455,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
diff --git a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
index 54000c1..9e0556e 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -849,7 +849,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/GroundOverlay.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/GroundOverlay.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> other)</nobr>
         
   </td></tr>
 
@@ -916,7 +916,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/GroundOverlay.html#getId()">getId</a></span>()</nobr>
@@ -1218,7 +1218,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1237,7 +1237,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1256,7 +1256,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1285,7 +1285,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1349,7 +1349,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1466,7 +1466,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object other)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> other)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1594,7 +1594,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
index e262d1d..25209e9 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
@@ -699,7 +699,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +708,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +724,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -800,13 +800,6 @@
     </tr>
     
     
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
 
 </table>
 
@@ -1296,7 +1289,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1342,7 +1335,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1361,7 +1354,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1380,7 +1373,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1409,7 +1402,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1473,7 +1466,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1544,7 +1537,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1582,7 +1575,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1659,43 +1652,6 @@
 
 
 
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
 
 <!-- Fields -->
 
@@ -2409,15 +2365,15 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if anchor is null</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if width or height are negative</td>
         </tr>  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the position was already set using
              <code><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#positionFromBounds(com.google.android.gms.maps.model.LatLngBounds)">positionFromBounds(LatLngBounds)</a></code>
 </td>
@@ -2481,15 +2437,15 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if anchor is null</td>
         </tr>  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if width is negative</td>
         </tr>  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the position was already set using
              <code><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#positionFromBounds(com.google.android.gms.maps.model.LatLngBounds)">positionFromBounds(LatLngBounds)</a></code>
 </td>
@@ -2543,7 +2499,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if the position was already set using
              <code><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#position(com.google.android.gms.maps.model.LatLng, float)">position(LatLng, float)</a></code> or <code><a href="/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html#position(com.google.android.gms.maps.model.LatLng, float, float)">position(LatLng, float, float)</a></code>
 </td>
@@ -2599,7 +2555,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the transparency is outside the range [0..1].
 </td>
         </tr>
@@ -2657,7 +2613,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLng.html b/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
index 04666da..0fbd2d2 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -789,22 +786,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -968,7 +949,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> o)</nobr>
         
         <div class="jd-descrdiv">Tests if this <code><a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a></code> is equal to another.</div>
   
@@ -999,7 +980,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#toString()">toString</a></span>()</nobr>
@@ -1018,7 +999,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLng.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1046,7 +1027,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1065,7 +1046,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1084,7 +1065,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1113,7 +1094,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1177,7 +1158,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1248,7 +1229,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1286,7 +1267,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1320,50 +1301,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1568,7 +1505,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> o)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1628,7 +1565,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -1660,7 +1597,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
index 5deb567..eafb4d9 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -868,7 +868,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -887,7 +887,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -906,7 +906,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -935,7 +935,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -999,7 +999,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1167,7 +1167,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalStateException</td>
+            <th><a href="/reference/java/lang/IllegalStateException.html">IllegalStateException</a></td>
             <td>if no points have been included.
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
index f53eb5f..5322c91 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
@@ -652,9 +652,6 @@
 
 
 
-  &#124; <a href="#constants">Constants</a>
-  
-
 
   &#124; <a href="#inhconstants">Inherited Constants</a>
   
@@ -702,7 +699,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -711,7 +708,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -727,7 +724,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -812,22 +809,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1027,7 +1008,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> o)</nobr>
         
   </td></tr>
 
@@ -1075,7 +1056,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#toString()">toString</a></span>()</nobr>
@@ -1094,7 +1075,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/LatLngBounds.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1122,7 +1103,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1141,7 +1122,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1160,7 +1141,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1189,7 +1170,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1253,7 +1234,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1324,7 +1305,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1362,7 +1343,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1396,50 +1377,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1592,7 +1529,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if the latitude of the northeast corner is below the
              latitude of the southwest corner.
 </td>
@@ -1733,7 +1670,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> o)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1838,7 +1775,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -1870,7 +1807,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Marker.html b/docs/html/reference/com/google/android/gms/maps/model/Marker.html
index 473f3f8..c5766ca 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Marker.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Marker.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -836,7 +836,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> other)</nobr>
         
   </td></tr>
 
@@ -849,7 +849,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#getId()">getId</a></span>()</nobr>
@@ -885,7 +885,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#getSnippet()">getSnippet</a></span>()</nobr>
@@ -903,7 +903,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#getTitle()">getTitle</a></span>()</nobr>
@@ -1100,7 +1100,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#setSnippet(java.lang.String)">setSnippet</a></span>(String snippet)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#setSnippet(java.lang.String)">setSnippet</a></span>(<a href="/reference/java/lang/String.html">String</a> snippet)</nobr>
         
         <div class="jd-descrdiv">Sets the snippet of the marker.</div>
   
@@ -1118,7 +1118,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#setTitle(java.lang.String)">setTitle</a></span>(String title)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Marker.html#setTitle(java.lang.String)">setTitle</a></span>(<a href="/reference/java/lang/String.html">String</a> title)</nobr>
         
         <div class="jd-descrdiv">Sets the title of the marker.</div>
   
@@ -1184,7 +1184,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1203,7 +1203,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1222,7 +1222,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1251,7 +1251,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1315,7 +1315,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1432,7 +1432,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object other)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> other)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1458,7 +1458,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -1531,7 +1531,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getSnippet</span>
       <span class="normal">()</span>
@@ -1565,7 +1565,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTitle</span>
       <span class="normal">()</span>
@@ -1961,7 +1961,7 @@
         void
       </span>
       <span class="sympad">setSnippet</span>
-      <span class="normal">(String snippet)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> snippet)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1991,7 +1991,7 @@
         void
       </span>
       <span class="sympad">setTitle</span>
-      <span class="normal">(String title)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> title)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2067,7 +2067,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>IllegalArgumentException</td>
+            <th><a href="/reference/java/lang/IllegalArgumentException.html">IllegalArgumentException</a></td>
             <td>if <code>marker</code> is not on this map
 </td>
         </tr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html b/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
index 29c838b..68b9bb5 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -796,22 +793,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1058,7 +1039,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#getSnippet()">getSnippet</a></span>()</nobr>
@@ -1076,7 +1057,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#getTitle()">getTitle</a></span>()</nobr>
@@ -1169,7 +1150,7 @@
             <a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html">MarkerOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#snippet(java.lang.String)">snippet</a></span>(String snippet)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#snippet(java.lang.String)">snippet</a></span>(<a href="/reference/java/lang/String.html">String</a> snippet)</nobr>
         
         <div class="jd-descrdiv">Sets the snippet for the marker.</div>
   
@@ -1187,7 +1168,7 @@
             <a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html">MarkerOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#title(java.lang.String)">title</a></span>(String title)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#title(java.lang.String)">title</a></span>(<a href="/reference/java/lang/String.html">String</a> title)</nobr>
         
         <div class="jd-descrdiv">Sets the title for the marker.</div>
   
@@ -1223,7 +1204,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1251,7 +1232,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1270,7 +1251,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1289,7 +1270,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1318,7 +1299,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1382,7 +1363,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1453,7 +1434,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1491,7 +1472,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1525,50 +1506,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1944,7 +1881,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getSnippet</span>
       <span class="normal">()</span>
@@ -1978,7 +1915,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTitle</span>
       <span class="normal">()</span>
@@ -2160,7 +2097,7 @@
         <a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html">MarkerOptions</a>
       </span>
       <span class="sympad">snippet</span>
-      <span class="normal">(String snippet)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> snippet)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2194,7 +2131,7 @@
         <a href="/reference/com/google/android/gms/maps/model/MarkerOptions.html">MarkerOptions</a>
       </span>
       <span class="sympad">title</span>
-      <span class="normal">(String title)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> title)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2262,7 +2199,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Polygon.html b/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
index 790c4c0..03db7ab 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -848,7 +848,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> other)</nobr>
         
   </td></tr>
 
@@ -879,7 +879,7 @@
             
             
             
-            List&lt;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#getHoles()">getHoles</a></span>()</nobr>
@@ -897,7 +897,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#getId()">getId</a></span>()</nobr>
@@ -915,7 +915,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#getPoints()">getPoints</a></span>()</nobr>
@@ -1096,7 +1096,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#setHoles(java.util.List<? extends java.util.List<com.google.android.gms.maps.model.LatLng>>)">setHoles</a></span>(List&lt;?&nbsp;extends&nbsp;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt; holes)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#setHoles(java.util.List<? extends java.util.List<com.google.android.gms.maps.model.LatLng>>)">setHoles</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;?&nbsp;extends&nbsp;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt; holes)</nobr>
         
         <div class="jd-descrdiv">Sets the holes of this polygon.</div>
   
@@ -1114,7 +1114,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#setPoints(java.util.List<com.google.android.gms.maps.model.LatLng>)">setPoints</a></span>(List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polygon.html#setPoints(java.util.List<com.google.android.gms.maps.model.LatLng>)">setPoints</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
         
         <div class="jd-descrdiv">Sets the points of this polygon.</div>
   
@@ -1216,7 +1216,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1235,7 +1235,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1254,7 +1254,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1283,7 +1283,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1347,7 +1347,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1464,7 +1464,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object other)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> other)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1524,7 +1524,7 @@
          
          
          
-        List&lt;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;
       </span>
       <span class="sympad">getHoles</span>
       <span class="normal">()</span>
@@ -1556,7 +1556,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -1586,7 +1586,7 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
       </span>
       <span class="sympad">getPoints</span>
       <span class="normal">()</span>
@@ -1931,7 +1931,7 @@
         void
       </span>
       <span class="sympad">setHoles</span>
-      <span class="normal">(List&lt;?&nbsp;extends&nbsp;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt; holes)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;?&nbsp;extends&nbsp;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt; holes)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1971,7 +1971,7 @@
         void
       </span>
       <span class="sympad">setPoints</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html b/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
index ca23a4f..c372f98 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -795,22 +792,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -972,7 +953,7 @@
             <a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html">PolygonOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#addAll(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addAll</a></span>(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#addAll(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addAll</a></span>(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
         
         <div class="jd-descrdiv">Adds vertices to the outline of the polygon being built.</div>
   
@@ -990,7 +971,7 @@
             <a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html">PolygonOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#addHole(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addHole</a></span>(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#addHole(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addHole</a></span>(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
         
         <div class="jd-descrdiv">Adds a hole to the polygon being built.</div>
   
@@ -1075,7 +1056,7 @@
             
             
             
-            List&lt;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#getHoles()">getHoles</a></span>()</nobr>
@@ -1093,7 +1074,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#getPoints()">getPoints</a></span>()</nobr>
@@ -1258,7 +1239,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1304,7 +1285,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1323,7 +1304,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1342,7 +1323,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1371,7 +1352,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1435,7 +1416,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1506,7 +1487,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1544,7 +1525,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1578,50 +1559,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1794,7 +1731,7 @@
         <a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html">PolygonOptions</a>
       </span>
       <span class="sympad">addAll</span>
-      <span class="normal">(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
+      <span class="normal">(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1828,7 +1765,7 @@
         <a href="/reference/com/google/android/gms/maps/model/PolygonOptions.html">PolygonOptions</a>
       </span>
       <span class="sympad">addHole</span>
-      <span class="normal">(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
+      <span class="normal">(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1992,7 +1929,7 @@
          
          
          
-        List&lt;List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;&gt;
       </span>
       <span class="sympad">getHoles</span>
       <span class="normal">()</span>
@@ -2026,7 +1963,7 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
       </span>
       <span class="sympad">getPoints</span>
       <span class="normal">()</span>
@@ -2337,7 +2274,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Polyline.html b/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
index d9ef6a2..8e02c73 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -867,7 +867,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> other)</nobr>
         
   </td></tr>
 
@@ -898,7 +898,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#getId()">getId</a></span>()</nobr>
@@ -916,7 +916,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#getPoints()">getPoints</a></span>()</nobr>
@@ -1079,7 +1079,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#setPoints(java.util.List<com.google.android.gms.maps.model.LatLng>)">setPoints</a></span>(List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Polyline.html#setPoints(java.util.List<com.google.android.gms.maps.model.LatLng>)">setPoints</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
         
         <div class="jd-descrdiv">Sets the points of this polyline.</div>
   
@@ -1163,7 +1163,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1182,7 +1182,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1201,7 +1201,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1230,7 +1230,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1294,7 +1294,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1447,7 +1447,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object other)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> other)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1507,7 +1507,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -1546,7 +1546,7 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
       </span>
       <span class="sympad">getPoints</span>
       <span class="normal">()</span>
@@ -1858,7 +1858,7 @@
         void
       </span>
       <span class="sympad">setPoints</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html b/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
index 21432e9..87c6794 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -795,22 +792,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -970,7 +951,7 @@
             <a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html">PolylineOptions</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#addAll(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addAll</a></span>(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#addAll(java.lang.Iterable<com.google.android.gms.maps.model.LatLng>)">addAll</a></span>(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</nobr>
         
         <div class="jd-descrdiv">Adds vertices to the end of the polyline being built.</div>
   
@@ -1055,7 +1036,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#getPoints()">getPoints</a></span>()</nobr>
@@ -1184,7 +1165,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1230,7 +1211,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1249,7 +1230,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1268,7 +1249,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1297,7 +1278,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1361,7 +1342,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1432,7 +1413,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1470,7 +1451,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1504,50 +1485,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1719,7 +1656,7 @@
         <a href="/reference/com/google/android/gms/maps/model/PolylineOptions.html">PolylineOptions</a>
       </span>
       <span class="sympad">addAll</span>
-      <span class="normal">(Iterable&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
+      <span class="normal">(<a href="/reference/java/lang/Iterable.html">Iterable</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt; points)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1883,7 +1820,7 @@
          
          
          
-        List&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/maps/model/LatLng.html">LatLng</a>&gt;
       </span>
       <span class="sympad">getPoints</span>
       <span class="normal">()</span>
@@ -2125,7 +2062,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html b/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
index 96a2a45..21a1a97 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
@@ -712,7 +712,7 @@
   
 
   
-    extends RuntimeException<br/>
+    extends <a href="/reference/java/lang/RuntimeException.html">RuntimeException</a><br/>
   
   
   
@@ -732,7 +732,7 @@
 
     <tr>
          	
-        <td colspan="5" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="5" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -740,7 +740,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Throwable</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a></td>
     </tr>
     
 
@@ -750,7 +750,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Exception</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Exception.html">java.lang.Exception</a></td>
     </tr>
     
 
@@ -762,7 +762,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.RuntimeException</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/RuntimeException.html">java.lang.RuntimeException</a></td>
     </tr>
     
 
@@ -860,7 +860,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html#RuntimeRemoteException(android.os.RemoteException)">RuntimeRemoteException</a></span>(RemoteException e)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html#RuntimeRemoteException(android.os.RemoteException)">RuntimeRemoteException</a></span>(<a href="/reference/android/os/RemoteException.html">RemoteException</a> e)</nobr>
         
   </td></tr>
 
@@ -896,7 +896,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Throwable
+  <a href="/reference/java/lang/Throwable.html">java.lang.Throwable</a>
 
 <div id="inherited-methods-java.lang.Throwable">
   <div id="inherited-methods-java.lang.Throwable-list"
@@ -915,7 +915,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">fillInStackTrace</span>()</nobr>
@@ -931,7 +931,7 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getCause</span>()</nobr>
@@ -947,7 +947,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLocalizedMessage</span>()</nobr>
@@ -963,7 +963,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMessage</span>()</nobr>
@@ -979,7 +979,7 @@
             
             
             
-            StackTraceElement[]</nobr>
+            <a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getStackTrace</span>()</nobr>
@@ -995,10 +995,10 @@
             
             
             
-            Throwable</nobr>
+            <a href="/reference/java/lang/Throwable.html">Throwable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initCause</span>(Throwable arg0)</nobr>
+        <span class="sympad">initCause</span>(<a href="/reference/java/lang/Throwable.html">Throwable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1014,7 +1014,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintWriter.html">PrintWriter</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1030,7 +1030,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+        <span class="sympad">printStackTrace</span>(<a href="/reference/java/io/PrintStream.html">PrintStream</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1062,7 +1062,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)</nobr>
+        <span class="sympad">setStackTrace</span>(<a href="/reference/java/lang/StackTraceElement.html">StackTraceElement[]</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1075,7 +1075,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1098,7 +1098,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1117,7 +1117,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1136,7 +1136,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1165,7 +1165,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1229,7 +1229,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1340,7 +1340,7 @@
         
       </span>
       <span class="sympad">RuntimeRemoteException</span>
-      <span class="normal">(RemoteException e)</span>
+      <span class="normal">(<a href="/reference/android/os/RemoteException.html">RemoteException</a> e)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Tile.html b/docs/html/reference/com/google/android/gms/maps/model/Tile.html
index 8c499a9..235f104 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Tile.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Tile.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -789,22 +786,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/Tile.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -979,7 +960,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Tile.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/Tile.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1007,7 +988,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1026,7 +1007,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1045,7 +1026,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1074,7 +1055,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1138,7 +1119,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1209,7 +1190,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1247,7 +1228,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1281,50 +1262,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1562,7 +1499,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html b/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
index 4d5c20d1..738bf5e 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -869,7 +869,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlay.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlay.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> other)</nobr>
         
   </td></tr>
 
@@ -882,7 +882,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlay.html#getId()">getId</a></span>()</nobr>
@@ -1021,7 +1021,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1040,7 +1040,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1059,7 +1059,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1088,7 +1088,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1152,7 +1152,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1301,7 +1301,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object other)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> other)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1327,7 +1327,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html b/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
index 48961ff..ac7481d 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -789,22 +786,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1036,7 +1017,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1083,7 +1064,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1102,7 +1083,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1121,7 +1102,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1150,7 +1131,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1214,7 +1195,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1285,7 +1266,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1323,7 +1304,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1357,50 +1338,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1712,7 +1649,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html b/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
index 30c74ec..2f5241c 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
@@ -693,7 +693,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -718,7 +718,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -903,7 +903,7 @@
             
             
             
-            URL</nobr>
+            <a href="/reference/java/net/URL.html">URL</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/UrlTileProvider.html#getTileUrl(int, int, int)">getTileUrl</a></span>(int x, int y, int zoom)</nobr>
@@ -936,7 +936,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -955,7 +955,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -974,7 +974,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1003,7 +1003,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1067,7 +1067,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1333,7 +1333,7 @@
          
         abstract 
          
-        URL
+        <a href="/reference/java/net/URL.html">URL</a>
       </span>
       <span class="sympad">getTileUrl</span>
       <span class="normal">(int x, int y, int zoom)</span>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html b/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
index a03a912..02b695e 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
@@ -649,11 +649,8 @@
 
 
 
-  <a href="#constants">Constants</a>
-  
 
-
-  &#124; <a href="#inhconstants">Inherited Constants</a>
+  <a href="#inhconstants">Inherited Constants</a>
   
 
 
@@ -699,7 +696,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -708,7 +705,7 @@
   
       implements 
       
-        Parcelable 
+        <a href="/reference/android/os/Parcelable.html">Parcelable</a> 
       
   
   
@@ -724,7 +721,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -792,22 +789,6 @@
 
 
 
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-
-    
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#NULL">NULL</a></td>
-        <td class="jd-descrcol" width="100%"></td>
-    </tr>
-    
-    
-
-</table>
-
-
 
 
 
@@ -1004,7 +985,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#equals(java.lang.Object)">equals</a></span>(Object o)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#equals(java.lang.Object)">equals</a></span>(<a href="/reference/java/lang/Object.html">Object</a> o)</nobr>
         
         <div class="jd-descrdiv">Compares this <code><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html">VisibleRegion</a></code> to another object.</div>
   
@@ -1035,7 +1016,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#toString()">toString</a></span>()</nobr>
@@ -1054,7 +1035,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/VisibleRegion.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</nobr>
         
   </td></tr>
 
@@ -1082,7 +1063,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1101,7 +1082,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1120,7 +1101,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1149,7 +1130,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1213,7 +1194,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1284,7 +1265,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.os.Parcelable
+  <a href="/reference/android/os/Parcelable.html">android.os.Parcelable</a>
 
 <div id="inherited-methods-android.os.Parcelable">
   <div id="inherited-methods-android.os.Parcelable-list"
@@ -1322,7 +1303,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+        <span class="sympad">writeToParcel</span>(<a href="/reference/android/os/Parcel.html">Parcel</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -1356,50 +1337,6 @@
 <!-- Constants -->
 
 
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-
-
-
-
-<A NAME="NULL"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        public 
-        static 
-        final 
-        String
-      </span>
-        NULL
-    </h4>
-      <div class="api-level">
-        
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-    
-        <div class="jd-tagdata">
-        <span class="jd-tagtitle">Constant Value: </span>
-        <span>
-            
-                "SAFE_PARCELABLE_NULL_STRING"
-            
-        </span>
-        </div>
-    
-    </div>
-</div>
-
-
-
-
 <!-- Fields -->
 
 
@@ -1714,7 +1651,7 @@
         boolean
       </span>
       <span class="sympad">equals</span>
-      <span class="normal">(Object o)</span>
+      <span class="normal">(<a href="/reference/java/lang/Object.html">Object</a> o)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1783,7 +1720,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">toString</span>
       <span class="normal">()</span>
@@ -1815,7 +1752,7 @@
         void
       </span>
       <span class="sympad">writeToParcel</span>
-      <span class="normal">(Parcel out, int flags)</span>
+      <span class="normal">(<a href="/reference/android/os/Parcel.html">Parcel</a> out, int flags)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/maps/package-summary.html b/docs/html/reference/com/google/android/gms/maps/package-summary.html
index 3aaba0b..4d71e4f 100644
--- a/docs/html/reference/com/google/android/gms/maps/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/maps/package-summary.html
@@ -687,6 +687,10 @@
               <td class="jd-descrcol" width="100%">Callback interface for drag events on markers.&nbsp;</td>
           </tr>
         <tr class="alt-color api apilevel-" >
+              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html">GoogleMap.OnMyLocationButtonClickListener</a></td>
+              <td class="jd-descrcol" width="100%">Callback interface for when the My Location button is clicked.&nbsp;</td>
+          </tr>
+        <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html">GoogleMap.OnMyLocationChangeListener</a></td>
               <td class="jd-descrcol" width="100%"><em>
       This interface is deprecated.
@@ -698,6 +702,10 @@
  Location Developer Guide</a>.
 </em>&nbsp;</td>
           </tr>
+        <tr class="alt-color api apilevel-" >
+              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html">GoogleMap.SnapshotReadyCallback</a></td>
+              <td class="jd-descrcol" width="100%">Callback interface to notify when the snapshot has been taken.&nbsp;</td>
+          </tr>
         <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/maps/LocationSource.html">LocationSource</a></td>
               <td class="jd-descrcol" width="100%">Defines an interface for providing location data, typically to a <code><a href="/reference/com/google/android/gms/maps/GoogleMap.html">GoogleMap</a></code> object.&nbsp;</td>
diff --git a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
index ddf1f16..269cc42 100644
--- a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
@@ -751,7 +751,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html#onPanoramaInfoLoaded(com.google.android.gms.common.ConnectionResult, android.content.Intent)">onPanoramaInfoLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result, Intent viewerIntent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html#onPanoramaInfoLoaded(com.google.android.gms.common.ConnectionResult, android.content.Intent)">onPanoramaInfoLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result, <a href="/reference/android/content/Intent.html">Intent</a> viewerIntent)</nobr>
         
         <div class="jd-descrdiv">Called on the main thread when panorama info is loaded.</div>
   
@@ -819,7 +819,7 @@
         void
       </span>
       <span class="sympad">onPanoramaInfoLoaded</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result, Intent viewerIntent)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result, <a href="/reference/android/content/Intent.html">Intent</a> viewerIntent)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
index 39a7525..bbe14fb 100644
--- a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
+++ b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
@@ -691,7 +691,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -841,7 +841,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#PanoramaClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">PanoramaClient</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#PanoramaClient(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">PanoramaClient</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Creates a panorama client.</div>
   
@@ -983,7 +983,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#loadPanoramaInfo(com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener, android.net.Uri)">loadPanoramaInfo</a></span>(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, Uri uri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#loadPanoramaInfo(com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener, android.net.Uri)">loadPanoramaInfo</a></span>(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</nobr>
         
         <div class="jd-descrdiv">Loads information about a panorama.</div>
   
@@ -1001,7 +1001,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#loadPanoramaInfoAndGrantAccess(com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener, android.net.Uri)">loadPanoramaInfoAndGrantAccess</a></span>(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, Uri uri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#loadPanoramaInfoAndGrantAccess(com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener, android.net.Uri)">loadPanoramaInfoAndGrantAccess</a></span>(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</nobr>
         
         <div class="jd-descrdiv">Loads information about a panorama from a content provider.</div>
   
@@ -1104,7 +1104,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1123,7 +1123,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1142,7 +1142,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1171,7 +1171,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1235,7 +1235,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1554,7 +1554,7 @@
         
       </span>
       <span class="sympad">PanoramaClient</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1838,7 +1838,7 @@
         void
       </span>
       <span class="sympad">loadPanoramaInfo</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, Uri uri)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1882,7 +1882,7 @@
         void
       </span>
       <span class="sympad">loadPanoramaInfoAndGrantAccess</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, Uri uri)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html">PanoramaClient.OnPanoramaInfoLoadedListener</a> listener, <a href="/reference/android/net/Uri.html">Uri</a> uri)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
index bcd39f6..63fd808 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -725,7 +725,7 @@
 
 
 <h2>Class Overview</h2>
-<p itemprop="articleBody">Builder to create a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> to connect to Google Play services.
+<p itemprop="articleBody">Builder to configure a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> for communicating with the Google+ APIs.
 </p>
 
 
@@ -792,7 +792,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#PlusClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">PlusClient.Builder</a></span>(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#PlusClient.Builder(android.content.Context, com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks, com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">PlusClient.Builder</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
         
         <div class="jd-descrdiv">Builder to help construct the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object.</div>
   
@@ -859,7 +859,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(String accountName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(<a href="/reference/java/lang/String.html">String</a> accountName)</nobr>
         
         <div class="jd-descrdiv">Specify an account name on the device that should be used.</div>
   
@@ -877,7 +877,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(String... scopes)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setScopes(java.lang.String...)">setScopes</a></span>(<a href="/reference/java/lang/String.html">String...</a> scopes)</nobr>
         
         <div class="jd-descrdiv">Specify the OAuth 2.0 scopes requested by your app.</div>
   
@@ -895,7 +895,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setVisibleActivities(java.lang.String...)">setVisibleActivities</a></span>(String... visibleActivities)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html#setVisibleActivities(java.lang.String...)">setVisibleActivities</a></span>(<a href="/reference/java/lang/String.html">String...</a> visibleActivities)</nobr>
         
         <div class="jd-descrdiv">Specify which user's app activity types can be written to Google.</div>
   
@@ -925,7 +925,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -944,7 +944,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -963,7 +963,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -992,7 +992,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1056,7 +1056,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1165,7 +1165,7 @@
         
       </span>
       <span class="sympad">PlusClient.Builder</span>
-      <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> connectionCallbacks, <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1293,7 +1293,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a>
       </span>
       <span class="sympad">setAccountName</span>
-      <span class="normal">(String accountName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> accountName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1335,7 +1335,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a>
       </span>
       <span class="sympad">setScopes</span>
-      <span class="normal">(String... scopes)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> scopes)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1379,7 +1379,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a>
       </span>
       <span class="sympad">setVisibleActivities</span>
-      <span class="normal">(String... visibleActivities)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String...</a> visibleActivities)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
index ed8c5e0..2d9abf1 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
@@ -686,7 +686,7 @@
 
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(OnAccessRevokedListener)</a></code></li>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(PlusClient.OnAccessRevokedListener)</a></code></li>
       </ul>
   </div>
 
@@ -757,7 +757,7 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html#onAccessRevoked(com.google.android.gms.common.ConnectionResult)">onAccessRevoked</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status)</nobr>
         
-        <div class="jd-descrdiv">Called when the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(OnAccessRevokedListener)</a></code>
+        <div class="jd-descrdiv">Called when the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(PlusClient.OnAccessRevokedListener)</a></code>
  request has completed.</div>
   
   </td></tr>
@@ -834,7 +834,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Called when the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(OnAccessRevokedListener)</a></code>
+  <div class="jd-tagdata jd-tagdescr"><p>Called when the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(PlusClient.OnAccessRevokedListener)</a></code>
  request has completed. The current <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> will be disconnected when this
  callback is called.</p></div>
   <div class="jd-tagdata">
@@ -842,8 +842,9 @@
       <table class="jd-tagtable">
         <tr>
           <th>status</td>
-          <td>The resulting connection status of
-            <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(OnAccessRevokedListener)</a></code> request.
+          <td>The resulting connection status of the
+            <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(PlusClient.OnAccessRevokedListener)</a></code>
+            request.
 </td>
         </tr>
       </table>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
index c974bd4..89a5ac5 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
@@ -755,7 +755,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html#onMomentsLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.moments.MomentBuffer, java.lang.String, java.lang.String)">onMomentsLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a> momentBuffer, String nextPageToken, String updated)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html#onMomentsLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.moments.MomentBuffer, java.lang.String, java.lang.String)">onMomentsLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a> momentBuffer, <a href="/reference/java/lang/String.html">String</a> nextPageToken, <a href="/reference/java/lang/String.html">String</a> updated)</nobr>
         
   </td></tr>
 
@@ -821,7 +821,7 @@
         void
       </span>
       <span class="sympad">onMomentsLoaded</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a> momentBuffer, String nextPageToken, String updated)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a> momentBuffer, <a href="/reference/java/lang/String.html">String</a> nextPageToken, <a href="/reference/java/lang/String.html">String</a> updated)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
index 0f18a4a..dd35c12 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
@@ -680,13 +680,15 @@
 
 
 <h2>Class Overview</h2>
-<p itemprop="articleBody">Listener interface for when a collection of people are loaded.</p>
+<p itemprop="articleBody">Listener interface for when a collection of people are loaded.
+
+     # @see #loadVisiblePeople</p>
 
 
 
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(OnPeopleLoadedListener, int)</a></code></li>
+      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code></li>
       </ul>
   </div>
 
@@ -755,7 +757,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html#onPeopleLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.people.PersonBuffer, java.lang.String)">onPeopleLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/people/PersonBuffer.html">PersonBuffer</a> personBuffer, String nextPageToken)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html#onPeopleLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.people.PersonBuffer, java.lang.String)">onPeopleLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/people/PersonBuffer.html">PersonBuffer</a> personBuffer, <a href="/reference/java/lang/String.html">String</a> nextPageToken)</nobr>
         
   </td></tr>
 
@@ -821,7 +823,7 @@
         void
       </span>
       <span class="sympad">onPeopleLoaded</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/people/PersonBuffer.html">PersonBuffer</a> personBuffer, String nextPageToken)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/people/PersonBuffer.html">PersonBuffer</a> personBuffer, <a href="/reference/java/lang/String.html">String</a> nextPageToken)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -837,20 +839,13 @@
       <table class="jd-tagtable">
         <tr>
           <th>status</td>
-          <td>The resulting connection status of the
-            <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(OnPeopleLoadedListener, int)</a></code>
-            request.</td>
+          <td>The resulting connection status of the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code> or
+            <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code> request.</td>
         </tr>
         <tr>
           <th>personBuffer</td>
           <td>The requested collection of people.  The listener must close this
-            object when finished.</td>
-        </tr>
-        <tr>
-          <th>nextPageToken</td>
-          <td>The continuation token, which is used to page through large result
-            sets. Provide this value in a subsequent request to return the next page of
-            results.
+            object when finished.
 </td>
         </tr>
       </table>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html
index 4c164fa..4de4db7 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html
@@ -677,19 +677,15 @@
 
 
 <div class="jd-descr">
+<p>
+  <p class="caution"><strong>
+      This interface is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code>.
 
-
-<h2>Class Overview</h2>
-<p itemprop="articleBody">Listener interface for when a <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> is
- loaded</p>
+  </p>
 
 
 
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">See Also</h5>
-      <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson(OnPersonLoadedListener, String)</a></code></li>
-      </ul>
-  </div>
 
 
 </div><!-- jd-descr -->
@@ -758,6 +754,11 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html#onPersonLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.people.Person)">onPersonLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> status, <a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a> person)</nobr>
         
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html#onPeopleLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.people.PersonBuffer, java.lang.String)">onPeopleLoaded(ConnectionResult, PersonBuffer, String)</a></code>.
+</em></div>
+  
   </td></tr>
 
 
@@ -831,23 +832,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html#onPeopleLoaded(com.google.android.gms.common.ConnectionResult, com.google.android.gms.plus.model.people.PersonBuffer, java.lang.String)">onPeopleLoaded(ConnectionResult, PersonBuffer, String)</a></code>.
+
+  </p>
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>status</td>
-          <td>The resulting connection status of the
-            <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson(OnPersonLoadedListener, String)</a></code> request.</td>
-        </tr>
-        <tr>
-          <th>person</td>
-          <td>The requested <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> object.
-</td>
-        </tr>
-      </table>
-  </div>
 
     </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html
new file mode 100644
index 0000000..43ed007
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html
@@ -0,0 +1,942 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>PlusClient.OrderBy | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+  var toRoot = "/";
+  var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-5831155-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+</script>
+</head>
+<body class="gc-documentation google
+  develop" itemscope itemtype="http://schema.org/Article">
+  <div id="doc-api-level" class="" style="display:none"></div>
+  <a name="top"></a>
+
+<a name="top"></a>
+
+    <!-- Header -->
+    <div id="header">
+        <div class="wrap" id="header-wrap">
+          <div class="col-3 logo">
+          <a href="/index.html">
+            <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+          </a>
+          <div class="btn-quicknav" id="btn-quicknav">
+          	<a href="#" class="arrow-inactive">Quicknav</a>
+			      <a href="#" class="arrow-active">Quicknav</a>
+          </div>
+          </div>
+            <ul class="nav-x col-9">
+                <li class="design">
+                  <a href="/design/index.html"
+                  zh-tw-lang="設計"
+                  zh-cn-lang="设计"
+                  ru-lang="Проектирование"
+                  ko-lang="디자인"
+                  ja-lang="設計"
+                  es-lang="Diseñar"               
+                  >Design</a></li>
+                <li class="develop"><a href="/develop/index.html"
+                  zh-tw-lang="開發"
+                  zh-cn-lang="开发"
+                  ru-lang="Разработка"
+                  ko-lang="개발"
+                  ja-lang="開発"
+                  es-lang="Desarrollar"               
+                  >Develop</a></li>
+                <li class="distribute last"><a href="/distribute/index.html"
+                  zh-tw-lang="發佈"
+                  zh-cn-lang="分发"
+                  ru-lang="Распространение"
+                  ko-lang="배포"
+                  ja-lang="配布"
+                  es-lang="Distribuir"               
+                  >Distribute</a></li>
+            </ul>
+            
+            <!-- New Search -->
+            <div class="menu-container">
+            <div class="moremenu">
+    <div id="more-btn"></div>
+  </div>
+  <div class="morehover" id="moremenu">
+    <div class="top"></div>
+    <div class="mid">
+      <div class="header">Links</div>
+      <ul>
+        <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+        <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+        <li><a href="/about/index.html">About Android</a></li>
+      </ul>
+      <div class="header">Android Sites</div>
+      <ul>
+        <li><a href="http://www.android.com">Android.com</a></li>
+        <li class="active"><a>Android Developers</a></li>
+        <li><a href="http://source.android.com">Android Open Source Project</a></li>
+      </ul>
+      
+      
+      
+        <div class="header">Language</div>
+          <div id="language" class="locales">
+            <select name="language" onChange="changeLangPref(this.value, true)">
+                <option value="en">English</option>
+                <option value="es">Español</option>
+                <option value="ja">日本語</option>
+                <option value="ko">한국어</option>
+                <option value="ru">Русский</option>
+                <option value="zh-cn">中文 (中国)</option>
+                <option value="zh-tw">中文 (台灣)</option>
+            </select>
+          </div>
+        <script type="text/javascript">
+          <!--
+          loadLangPref();
+            //-->
+        </script>
+      
+      
+
+
+      <br class="clearfix" />
+    </div>
+    <div class="bottom"></div>
+  </div>
+  <div class="search" id="search-container">
+    <div class="search-inner">
+      <div id="search-btn"></div>
+      <div class="left"></div>
+      <form onsubmit="return submit_search()">
+        <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')" 
+onkeyup="return search_changed(event, false, '/')" />
+      </form>
+      <div class="right"></div>
+        <a class="close hide">close</a>
+        <div class="left"></div>
+        <div class="right"></div>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper reference">
+    <div class="suggest-card reference no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  <div class="search_filtered_wrapper docs">
+    <div class="suggest-card dummy no-display">&nbsp;</div>
+    <div class="suggest-card develop no-display">
+      <ul class="search_filtered">
+      </ul>
+      <div class="child-card guides no-display">
+      </div>
+      <div class="child-card training no-display">
+      </div>
+    </div>
+    <div class="suggest-card design no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+    <div class="suggest-card distribute no-display">
+      <ul class="search_filtered">
+      </ul>
+    </div>
+  </div>
+
+  </div>
+  <!-- /New Search>
+          
+          
+          <!-- Expanded quicknav -->
+           <div id="quicknav" class="col-9">
+                <ul>
+                    <li class="design">
+                      <ul>
+                        <li><a href="/design/index.html">Get Started</a></li>
+                        <li><a href="/design/style/index.html">Style</a></li>
+                        <li><a href="/design/patterns/index.html">Patterns</a></li>
+                        <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+                        <li><a href="/design/downloads/index.html">Downloads</a></li>
+                        <li><a href="/design/videos/index.html">Videos</a></li>
+                      </ul>
+                    </li>
+                    <li class="develop">
+                      <ul>
+                        <li><a href="/training/index.html"
+                          zh-tw-lang="訓練課程"
+                          zh-cn-lang="培训"
+                          ru-lang="Курсы"
+                          ko-lang="교육"
+                          ja-lang="トレーニング"
+                          es-lang="Capacitación"               
+                          >Training</a></li>
+                        <li><a href="/guide/components/index.html"
+                          zh-tw-lang="API 指南"
+                          zh-cn-lang="API 指南"
+                          ru-lang="Руководства по API"
+                          ko-lang="API 가이드"
+                          ja-lang="API ガイド"
+                          es-lang="Guías de la API"               
+                          >API Guides</a></li>
+                        <li><a href="/reference/packages.html"
+                          zh-tw-lang="參考資源"
+                          zh-cn-lang="参考"
+                          ru-lang="Справочник"
+                          ko-lang="참조문서"
+                          ja-lang="リファレンス"
+                          es-lang="Referencia"               
+                          >Reference</a></li>
+                        <li><a href="/tools/index.html"
+                          zh-tw-lang="相關工具"
+                          zh-cn-lang="工具"
+                          ru-lang="Инструменты"
+                          ko-lang="도구"
+                          ja-lang="ツール"
+                          es-lang="Herramientas"               
+                          >Tools</a>
+                          <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+                        </li>
+                        <li><a href="/google/index.html">Google Services</a>
+                        </li>
+                      </ul>
+                    </li>
+                    <li class="distribute last">
+                      <ul>
+                        <li><a href="/distribute/index.html">Google Play</a></li>
+                        <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+                        <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+                        <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+                        <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+                        <li><a href="/distribute/open.html">Open Distribution</a></li>
+                      </ul>
+                    </li>
+                </ul>
+          </div>
+          <!-- /Expanded quicknav -->
+        </div>
+    </div>
+    <!-- /Header -->
+    
+    
+  <div id="searchResults" class="wrap" style="display:none;">
+          <h2 id="searchTitle">Results</h2>
+          <div id="leftSearchControl" class="search-control">Loading...</div>
+  </div>
+    
+    
+  
+    <!-- Secondary x-nav -->
+    <div id="nav-x">
+        <div class="wrap">
+            <ul class="nav-x col-9 develop" style="width:100%">
+                <li class="training"><a href="/training/index.html"
+                  zh-tw-lang="訓練課程"
+                  zh-cn-lang="培训"
+                  ru-lang="Курсы"
+                  ko-lang="교육"
+                  ja-lang="トレーニング"
+                  es-lang="Capacitación"               
+                  >Training</a></li>
+                <li class="guide"><a href="/guide/components/index.html"
+                  zh-tw-lang="API 指南"
+                  zh-cn-lang="API 指南"
+                  ru-lang="Руководства по API"
+                  ko-lang="API 가이드"
+                  ja-lang="API ガイド"
+                  es-lang="Guías de la API"               
+                  >API Guides</a></li>
+                <li class="reference"><a href="/reference/packages.html"
+                  zh-tw-lang="參考資源"
+                  zh-cn-lang="参考"
+                  ru-lang="Справочник"
+                  ko-lang="참조문서"
+                  ja-lang="リファレンス"
+                  es-lang="Referencia"               
+                  >Reference</a></li>
+                <li class="tools"><a href="/tools/index.html"
+                  zh-tw-lang="相關工具"
+                  zh-cn-lang="工具"
+                  ru-lang="Инструменты"
+                  ko-lang="도구"
+                  ja-lang="ツール"
+                  es-lang="Herramientas"
+                  >Tools</a></li>
+                <li class="google"><a href="/google/index.html"
+                  >Google Services</a>
+                </li>
+            </ul>
+        </div>
+        
+    </div>
+    <!-- /Sendondary x-nav -->
+  
+
+
+
+
+  
+
+
+  
+  <div class="wrap clearfix" id="body-content">
+    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/index.html">
+          <span class="en">Overview</span>
+      </a></div>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+          <span class="en">Games</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+          <span class="en">Location</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+          <span class="en">Google+</span>
+                </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+          <span class="en">Google Maps</span>
+      </a></div>
+  </li>
+  <li class="nav-section">
+    <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+          <span class="en">Authorization</span>
+      </a></div>
+  </li>
+
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play-services/index.html">
+      <span class="en">Google Play Services</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play-services/setup.html">
+          <span class="en">Setup</span></a>
+      </li>
+      <li id="gms-tree-list" class="nav-section">
+        <div class="nav-section-header">
+          <a href="/reference/gms-packages.html">
+            <span class="en">Reference</span>
+          </a>
+        <div>
+      </li>
+    </ul>
+  </li>
+
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/billing/index.html">
+      <span class="en">Google Play In-app Billing</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/billing/billing_overview.html">
+              <span class="en">Overview</span></a>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+              <span class="en">Version 3 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+              <span class="en">Version 2 API</span></a></div>
+              <ul>
+              <li><a href="/google/play/billing/v2/billing_integrate.html">
+              <span class="en">Implementing the API</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a></li>
+              <li><a href="/google/play/billing/v2/billing_reference.html">
+              <span class="en">Reference</span></a></li>
+              </ul>
+      </li>
+      <li><a href="/google/play/billing/billing_subscriptions.html">
+              <span class="en">Subscriptions</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_best_practices.html">
+              <span class="en">Security and Design</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_testing.html">
+              <span class="en">Testing In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/billing_admin.html">
+              <span class="en">Administering In-app Billing</span></a>
+      </li>
+      <li><a href="/google/play/billing/gp-purchase-status-api.html">
+              <span class="en">Purchase Status API</span></a>
+      </li>
+      <li><a href="/google/play/billing/versions.html">
+              <span class="en">Version Notes</span></a>
+      </li>
+    </ul>
+  </li>
+
+
+
+  <li class="nav-section">
+      <div class="nav-section-header"><a href="/google/gcm/index.html">
+        <span class="en">Google Cloud Messaging</span></a>
+      </div>
+      <ul>
+        <li><a href="/google/gcm/gs.html">
+            <span class="en">Getting Started</span></a>
+        </li>
+        <li><a href="/google/gcm/gcm.html">
+            <span class="en">Architectural Overview</span></a>
+        </li>
+         <li><a href="/google/gcm/ccs.html">
+              <span class="en">Cloud Connection Server</span></a>
+        </li>
+        <li><a href="/google/gcm/notifications.html">
+              <span class="en">User Notifications</span></a>
+        </li>
+        <li><a href="/google/gcm/client.html">
+            <span class="en">GCM Client</span></a>
+        </li>
+        <li><a href="/google/gcm/server.html">
+            <span class="en">GCM Server</span></a>
+        </li>
+        <li><a href="/google/gcm/adv.html">
+            <span class="en">Advanced Topics</span></a>
+        </li>
+        <li><a href="/google/gcm/c2dm.html">
+            <span class="en">Migration</span></a>
+        </li>
+        <li id="gcm-tree-list" class="nav-section">
+          <div class="nav-section-header">
+            <a href="/reference/gcm-packages.html">
+              <span class="en">Reference</span>
+            </a>
+          <div>
+        </li>
+      </ul>
+  </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/play/dist.html">
+      <span class="en">Google Play Distribution</span></a>
+    </div>
+    <ul>
+      <li><a href="/google/play/filters.html">
+          <span class="en">Filters on Google Play</span></a>
+      </li>
+
+      <li><a href="/google/play/publishing/multiple-apks.html">
+          <span class="en">Multiple APK Support</span></a>
+      </li>
+      <li><a href="/google/play/expansion-files.html">
+          <span class="en">APK Expansion Files</span></a>
+      </li>
+      <li class="nav-section">
+        <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+          <span class="en">Application Licensing</span></a>
+        </div>
+        <ul>
+          <li><a href="/google/play/licensing/overview.html">
+              <span class="en">Licensing Overview</span></a>
+          </li>
+          <li><a href="/google/play/licensing/setting-up.html">
+              <span class="en">Setting Up for Licensing</span></a>
+          </li>
+          <li><a href="/google/play/licensing/adding-licensing.html">
+              <span class="en">Adding Licensing to Your App</span></a>
+          </li>
+          <li><a href="/google/play/licensing/licensing-reference.html">
+              <span class="en">Licensing Reference</span></a>
+          </li>
+        </ul>
+      </li>
+
+  <li class="nav-section">
+    <div class="nav-section-header"><a href="/google/backup/index.html">
+      Android Backup Service</a>
+    </div>
+    <ul>
+      <li><a href="/google/backup/signup.html">
+          Register</a>
+      </li>
+    </ul>
+  </li>
+
+  </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+    buildToggleLists();
+    changeNavLang(getLangPref());
+//-->
+</script>
+
+
+        
+
+      </div>
+      <script type="text/javascript">
+       showGoogleRefTree();
+    
+      </script>
+    </div> <!-- end side-nav -->
+    <script>
+      $(document).ready(function() {
+        scrollIntoView("devdoc-nav");
+        });
+    </script>
+
+
+     
+
+
+
+<div class="col-12"  id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+  
+  
+  
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+    public
+    static 
+     
+    
+    interface
+<h1 itemprop="name">PlusClient.OrderBy</h1>
+
+
+
+  
+  
+  
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+    <tr>
+         	
+        <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.plus.PlusClient.OrderBy</td>
+    </tr>
+    
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Constants to declare the order to return people in.
+ <p>
+ These constants are used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code> method.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+    
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></td>
+        <td class="jd-descrcol" width="100%">Constant used to load people ordered by their display name.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#BEST">BEST</a></td>
+        <td class="jd-descrcol" width="100%">Constant used to load people ordered based on their relevance to the viewer.</td>
+    </tr>
+    
+    
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="ALPHABETICAL"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        ALPHABETICAL
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Constant used to load people ordered by their display name.
+ <p>
+ This constant is used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code>
+ method.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                0
+                (0x00000000)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+<A NAME="BEST"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        BEST
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Constant used to load people ordered based on their relevance to the viewer.
+ <p>
+ This constant is used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code> method.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                1
+                (0x00000001)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+        
+
+  <div id="copyright">
+    
+  Except as noted, this content is licensed under <a
+  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
+  For details and restrictions, see the <a href="/license.html">
+  Content License</a>.
+  </div>
+  <div id="build_info">
+    
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+  </div>
+
+
+  <div id="footerlinks">
+    
+  <p>
+    <a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
+    <a href="/support.html">Support</a>
+  </p>
+  </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content --> 
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.html
index e73301a..1221e15 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.html
@@ -691,7 +691,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -796,7 +796,7 @@
         
         class</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></td>
-      <td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> to connect to Google Play services.&nbsp;</td>
+      <td class="jd-descrcol" width="100%">Builder to configure a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> for communicating with the Google+ APIs.&nbsp;</td>
     </tr>
     
     
@@ -844,8 +844,22 @@
         
         interface</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a></td>
-      <td class="jd-descrcol" width="100%">Listener interface for when a <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> is
- loaded&nbsp;</td>
+      <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code>.
+</em>&nbsp;</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+      <td class="jd-typecol"><nobr>
+        
+         
+         
+        
+        interface</nobr></td>
+      <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html">PlusClient.OrderBy</a></td>
+      <td class="jd-descrcol" width="100%">Constants to declare the order to return people in.&nbsp;</td>
     </tr>
     
     
@@ -868,7 +882,7 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.html#KEY_REQUEST_VISIBLE_ACTIVITIES">KEY_REQUEST_VISIBLE_ACTIVITIES</a></td>
         <td class="jd-descrcol" width="100%">Bundle key for specifying which user's app activity (moment) types can be written to Google.</td>
     </tr>
@@ -910,7 +924,7 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#clearDefaultAccount()">clearDefaultAccount</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Clears the default account for this <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> instance.</div>
+        <div class="jd-descrdiv">Remove the default account set in Google Play services for your app.</div>
   
   </td></tr>
 
@@ -959,7 +973,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#getAccountName()">getAccountName</a></span>()</nobr>
@@ -1073,7 +1087,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadMoments(com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener, int, java.lang.String, android.net.Uri, java.lang.String, java.lang.String)">loadMoments</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html">PlusClient.OnMomentsLoadedListener</a> listener, int maxResults, String pageToken, Uri targetUrl, String type, String userId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadMoments(com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener, int, java.lang.String, android.net.Uri, java.lang.String, java.lang.String)">loadMoments</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html">PlusClient.OnMomentsLoadedListener</a> listener, int maxResults, <a href="/reference/java/lang/String.html">String</a> pageToken, <a href="/reference/android/net/Uri.html">Uri</a> targetUrl, <a href="/reference/java/lang/String.html">String</a> type, <a href="/reference/java/lang/String.html">String</a> userId)</nobr>
         
         <div class="jd-descrdiv">List all of the moments for a particular user.</div>
   
@@ -1109,9 +1123,9 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, int, int, java.lang.String)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection, int orderBy, int maxResults, String pageToken)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/util/Collection.html">Collection</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; personIds)</nobr>
         
-        <div class="jd-descrdiv">Loads a list of people in the specified collection.</div>
+        <div class="jd-descrdiv">Loads a list of specified people.</div>
   
   </td></tr>
 
@@ -1127,9 +1141,10 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String...)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String...</a> personIds)</nobr>
         
-        <div class="jd-descrdiv">Loads a list of people in the specified collection.</div>
+        <div class="jd-descrdiv">Helper method for
+ <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)">loadPeople(PlusClient.OnPeopleLoadedListener, java.util.Collection)</a></code>.</div>
   
   </td></tr>
 
@@ -1145,9 +1160,90 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a> listener, String userId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection)</nobr>
         
-        <div class="jd-descrdiv">Loads profile information for a specified Google+ user.</div>
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code>.
+</em></div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, int, int, java.lang.String)">loadPeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection, int orderBy, int maxResults, <a href="/reference/java/lang/String.html">String</a> pageToken)</nobr>
+        
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code>.
+</em></div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> userId)</nobr>
+        
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)">loadPeople(PlusClient.OnPeopleLoadedListener, java.util.Collection)</a></code>.
+</em></div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String)">loadVisiblePeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> pageToken)</nobr>
+        
+        <div class="jd-descrdiv">Loads the list of visible people in the user's circles.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            void</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int orderBy, <a href="/reference/java/lang/String.html">String</a> pageToken)</nobr>
+        
+        <div class="jd-descrdiv">Loads the list of visible people in the user's circles.</div>
   
   </td></tr>
 
@@ -1200,7 +1296,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#removeMoment(java.lang.String)">removeMoment</a></span>(String momentId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusClient.html#removeMoment(java.lang.String)">removeMoment</a></span>(<a href="/reference/java/lang/String.html">String</a> momentId)</nobr>
         
         <div class="jd-descrdiv">Delete a moment.</div>
   
@@ -1302,7 +1398,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1321,7 +1417,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1340,7 +1436,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1369,7 +1465,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1433,7 +1529,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1742,7 +1838,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_REQUEST_VISIBLE_ACTIVITIES
     </h4>
@@ -1831,13 +1927,15 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Clears the default account for this <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> instance. Use this method to allow
- the user to choose a different account the next time <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#connect()">connect()</a></code> is called.
- <p>
- This operation doesn't affect existing connected instances of <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code>. This
- client and any others will continue to use the same account. You should call
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#disconnect()">disconnect()</a></code> and <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#connect()">connect()</a></code> if you want
- to reset the account.
+  <div class="jd-tagdata jd-tagdescr"><p>Remove the default account set in Google Play services for your app.
+ Subsequent calls to <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#connect()">connect()</a></code> will return a resolution intent
+ that will let the user select a different account.
+ <p />
+ If the user chooses the same account, no consent will be required since
+ access to the app is not revoked.  Users should also be given the option
+ to revoke access with <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#revokeAccessAndDisconnect(com.google.android.gms.plus.PlusClient.OnAccessRevokedListener)">revokeAccessAndDisconnect(PlusClient.OnAccessRevokedListener)</a></code>.
+ <p />
+ While
 </p></div>
 
     </div>
@@ -1917,7 +2015,7 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAccountName</span>
       <span class="normal">()</span>
@@ -1941,7 +2039,7 @@
       <h5 class="jd-tagtitle">Throws</h5>
       <table class="jd-tagtable">  
         <tr>
-            <th>SecurityException</td>
+            <th><a href="/reference/java/lang/SecurityException.html">SecurityException</a></td>
             <td>If your app doesn't have the
          <code><a href="/reference/android/Manifest.permission.html#GET_ACCOUNTS">GET_ACCOUNTS</a></code> permission.
 </td>
@@ -1981,10 +2079,10 @@
  https://developers.google.com/+/api/latest/people/get</a>.
  <p>
  This method requires the OAuth 2.0 scope <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_PROFILE">PLUS_PROFILE</a></code> or
- <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.
+ <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>.
  <p>
  This method can return <code>null</code> if the required scopes weren't specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor, or if there was a network error while connecting.
+ <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>, or if there was a network error while connecting.
  </p></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Returns</h5>
@@ -2167,7 +2265,7 @@
         void
       </span>
       <span class="sympad">loadMoments</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html">PlusClient.OnMomentsLoadedListener</a> listener, int maxResults, String pageToken, Uri targetUrl, String type, String userId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html">PlusClient.OnMomentsLoadedListener</a> listener, int maxResults, <a href="/reference/java/lang/String.html">String</a> pageToken, <a href="/reference/android/net/Uri.html">Uri</a> targetUrl, <a href="/reference/java/lang/String.html">String</a> type, <a href="/reference/java/lang/String.html">String</a> userId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2181,8 +2279,8 @@
  <a href="https://developers.google.com/+/api/latest/moments/list">
  https://developers.google.com/+/api/latest/moments/list</a>.
  <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -2251,8 +2349,8 @@
  <a href="https://developers.google.com/+/api/latest/moments/list">
  https://developers.google.com/+/api/latest/moments/list</a>.
  <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -2269,7 +2367,7 @@
 </div>
 
 
-<A NAME="loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, int, int, java.lang.String)"></A>
+<A NAME="loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -2282,7 +2380,7 @@
         void
       </span>
       <span class="sympad">loadPeople</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection, int orderBy, int maxResults, String pageToken)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/util/Collection.html">Collection</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; personIds)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2292,17 +2390,13 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Loads a list of people in the specified collection.  For more information, see:
- <a href="https://developers.google.com/+/api/latest/people/list">
- https://developers.google.com/+/api/latest/people/list</a>.
-
- <p>Each <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> will contain the <code>id</code>, <code>displayName</code>,
- <code>image</code>, <code>objectType</code>, and <code>url</code> fields populated.
- To retrieve additional profile data, use the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson(OnPersonLoadedListener, String)</a></code> method.
+  <div class="jd-tagdata jd-tagdescr"><p>Loads a list of specified people.
  <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ This call returns all information in <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code>, but only for the people
+ specified and for data that is public in their profiles.
+ <p>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -2312,28 +2406,10 @@
              are loaded.</td>
         </tr>
         <tr>
-          <th>collection</td>
-          <td>The collection of people to list. Valid values include:
-             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.Collection.html#VISIBLE">VISIBLE</a></code> - The list of people who this user has added
-             to one or more circles.</td>
-        </tr>
-        <tr>
-          <th>orderBy</td>
-          <td>The order to return people in.  Valid values are:<p>
-             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code> - Order the people by their display name.<p>
-             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#BEST">BEST</a></code> - Order people based on the relevance to the viewer.</td>
-        </tr>
-        <tr>
-          <th>maxResults</td>
-          <td>The maximum number of people to include in the response, which is used for
-             paging. For any response, the actual number returned might be less than the
-             specified maxResults.</td>
-        </tr>
-        <tr>
-          <th>pageToken</td>
-          <td>The continuation token, which is used to page through large result sets.
-             To get the next page of results, set this parameter to the value of
-             nextPageToken from the previous response.
+          <th>personIds</td>
+          <td>The ids of people to load. This should match the user id that would be
+             sent to <a href="https://developers.google.com/+/api/latest/people/get">
+             https://developers.google.com/+/api/latest/people/get</a>
 </td>
         </tr>
       </table>
@@ -2343,6 +2419,37 @@
 </div>
 
 
+<A NAME="loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String...)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">loadPeople</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String...</a> personIds)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Helper method for
+ <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)">loadPeople(PlusClient.OnPeopleLoadedListener, java.util.Collection)</a></code>.
+</p></div>
+
+    </div>
+</div>
+
+
 <A NAME="loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -2365,35 +2472,47 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Loads a list of people in the specified collection.  For more information, see:
- <a href="https://developers.google.com/+/api/latest/people/list">
- https://developers.google.com/+/api/latest/people/list</a>.
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code>.
 
- <p>Each <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> will contain the <code>id</code>, <code>displayName</code>,
- <code>image</code>, <code>objectType</code>, and <code>url</code> fields populated.
- To retrieve additional profile data, use the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPerson(com.google.android.gms.plus.PlusClient.OnPersonLoadedListener, java.lang.String)">loadPerson(OnPersonLoadedListener, String)</a></code> method.
- <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>listener</td>
-          <td>The <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code> to receive a callback when the people
-             are loaded.</td>
-        </tr>
-        <tr>
-          <th>collection</td>
-          <td>The collection of people to list. Valid values include:<p>
-             <code><a href="/reference/com/google/android/gms/plus/model/people/Person.Collection.html#VISIBLE">VISIBLE</a></code> - The list of people who this user has added
-             to one or more circles.
-</td>
-        </tr>
-      </table>
-  </div>
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
+<A NAME="loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, int, int, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">loadPeople</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int collection, int orderBy, int maxResults, <a href="/reference/java/lang/String.html">String</a> pageToken)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)">loadVisiblePeople(PlusClient.OnPeopleLoadedListener, int, String)</a></code>.
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
@@ -2412,7 +2531,41 @@
         void
       </span>
       <span class="sympad">loadPerson</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a> listener, String userId)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> userId)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.util.Collection<java.lang.String>)">loadPeople(PlusClient.OnPeopleLoadedListener, java.util.Collection)</a></code>.
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+    </div>
+</div>
+
+
+<A NAME="loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">loadVisiblePeople</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, <a href="/reference/java/lang/String.html">String</a> pageToken)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2422,24 +2575,78 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Loads profile information for a specified Google+ user.  For more information, see:
- <a href="https://developers.google.com/+/api/latest/people/get">
- https://developers.google.com/+/api/latest/people/get</a>.
+  <div class="jd-tagdata jd-tagdescr"><p>Loads the list of visible people in the user's circles.  For more information, see:
+ <a href="https://developers.google.com/+/api/latest/people/list">
+ https://developers.google.com/+/api/latest/people/list</a>.
  <p>
- This method requires the OAuth 2.0 scope <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_PROFILE">PLUS_PROFILE</a></code> or
- <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ Each <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> will contain the <code>id</code>, <code>displayName</code>,
+ <code>image</code>, <code>objectType</code>, and <code>url</code> fields populated.
+ To retrieve additional profile data, use the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code> method.
+ <p>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code></p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
         <tr>
           <th>listener</td>
-          <td>The <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a></code> to receive a callback when the person
-             is loaded.</td>
+          <td>The <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code> to receive a callback when the people
+             are loaded.
+</td>
+        </tr>
+      </table>
+  </div>
+
+    </div>
+</div>
+
+
+<A NAME="loadVisiblePeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+         
+         
+        void
+      </span>
+      <span class="sympad">loadVisiblePeople</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a> listener, int orderBy, <a href="/reference/java/lang/String.html">String</a> pageToken)</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Loads the list of visible people in the user's circles.  For more information, see:
+ <a href="https://developers.google.com/+/api/latest/people/list">
+ https://developers.google.com/+/api/latest/people/list</a>.
+ <p>
+ Each <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> will contain the <code>id</code>, <code>displayName</code>,
+ <code>image</code>, <code>objectType</code>, and <code>url</code> fields populated.
+ To retrieve additional profile data, use the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code> method.
+ <p>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code></p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>listener</td>
+          <td>The <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code> to receive a callback when the people
+             are loaded.</td>
         </tr>
         <tr>
-          <th>userId</td>
-          <td>The ID of the person to get the profile for. The special value "me" can be
-             used to indicate the authenticated user.
+          <th>orderBy</td>
+          <td>The order to return people in.  Valid values are:<p>
+             <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code> - Order the people by their display name.
+             <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#BEST">BEST</a></code> - Order people based on the relevance to the viewer.
 </td>
         </tr>
       </table>
@@ -2566,7 +2773,7 @@
         void
       </span>
       <span class="sympad">removeMoment</span>
-      <span class="normal">(String momentId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> momentId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2580,8 +2787,8 @@
  <a href="https://developers.google.com/+/api/latest/moments/remove">
  https://developers.google.com/+/api/latest/moments/remove</a>.
  <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -2620,8 +2827,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Revokes access given to the current application.  The current <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> will be
- disconnected when the <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html">PlusClient.OnAccessRevokedListener</a></code> receives a callback.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Revokes access given to the current application.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
@@ -2757,8 +2963,8 @@
  specified in <code>moment</code>. To debug, run <code>adb logcat</code> in a terminal and find errors
  related to moments in the output.
  <p>
- This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> OAuth 2.0 scope specified in the
- <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> constructor.</p></div>
+ This method requires the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code>
+ OAuth 2.0 scope specified in the <code><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></code>.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">Parameters</h5>
       <table class="jd-tagtable">
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
index b935cf4..a6370c5 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
@@ -752,7 +752,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html#onPlusOneClick(android.content.Intent)">onPlusOneClick</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html#onPlusOneClick(android.content.Intent)">onPlusOneClick</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Called when the +1 button is clicked.</div>
   
@@ -820,7 +820,7 @@
         void
       </span>
       <span class="sympad">onPlusOneClick</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
index b92b5d0..6ee2886 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
@@ -756,7 +756,7 @@
   
 
   
-    extends ViewGroup<br/>
+    extends <a href="/reference/android/view/ViewGroup.html">ViewGroup</a><br/>
   
   
   
@@ -776,7 +776,7 @@
 
     <tr>
          	
-        <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="4" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -784,7 +784,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">android.view.View</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/android/view/View.html">android.view.View</a></td>
     </tr>
     
 
@@ -794,7 +794,7 @@
         
             <td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">android.view.ViewGroup</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a></td>
     </tr>
     
 
@@ -1423,7 +1423,7 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol">VIEW_LOG_TAG</td>
         <td class="jd-descrcol" width="100%"></td>
     </tr>
@@ -1492,7 +1492,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ALPHA</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1811,7 +1811,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1822,7 +1822,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1833,7 +1833,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">ROTATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1844,7 +1844,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1855,7 +1855,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">SCALE_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1888,7 +1888,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1899,7 +1899,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">TRANSLATION_Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1921,7 +1921,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">X</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1932,7 +1932,7 @@
           public
           static
           final
-          Property&lt;View,&nbsp;Float&gt;</nobr></td>
+          Property&lt;<a href="/reference/android/view/View.html">View</a>,&nbsp;<a href="/reference/java/lang/Float.html">Float</a>&gt;</nobr></td>
           <td class="jd-linkcol">Y</td>
           <td class="jd-descrcol" width="100%"></td>
       </tr>
@@ -1977,7 +1977,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#PlusOneButton(android.content.Context)">PlusOneButton</a></span>(Context context)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#PlusOneButton(android.content.Context)">PlusOneButton</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
         <div class="jd-descrdiv">Creates a +1 button of <code><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#SIZE_STANDARD">SIZE_STANDARD</a></code> size with an
  <code><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#ANNOTATION_BUBBLE">ANNOTATION_BUBBLE</a></code> annotation.</div>
@@ -1996,7 +1996,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#PlusOneButton(android.content.Context, android.util.AttributeSet)">PlusOneButton</a></span>(Context context, AttributeSet attrs)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#PlusOneButton(android.content.Context, android.util.AttributeSet)">PlusOneButton</a></span>(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</nobr>
         
         <div class="jd-descrdiv">Creates a +1 button of <code><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#SIZE_STANDARD">SIZE_STANDARD</a></code> size with an
  <code><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#ANNOTATION_BUBBLE">ANNOTATION_BUBBLE</a></code> annotation.</div>
@@ -2028,7 +2028,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#initialize(com.google.android.gms.plus.PlusClient, java.lang.String, com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener)">initialize</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, String url, <a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html">PlusOneButton.OnPlusOneClickListener</a> plusOneClickListener)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#initialize(com.google.android.gms.plus.PlusClient, java.lang.String, com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener)">initialize</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, <a href="/reference/java/lang/String.html">String</a> url, <a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html">PlusOneButton.OnPlusOneClickListener</a> plusOneClickListener)</nobr>
         
         <div class="jd-descrdiv">Updates the +1 button with a client and URL.</div>
   
@@ -2046,7 +2046,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#initialize(com.google.android.gms.plus.PlusClient, java.lang.String, int)">initialize</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, String url, int activityRequestCode)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html#initialize(com.google.android.gms.plus.PlusClient, java.lang.String, int)">initialize</a></span>(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, <a href="/reference/java/lang/String.html">String</a> url, int activityRequestCode)</nobr>
         
         <div class="jd-descrdiv">Updates the +1 button with a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> and URL.</div>
   
@@ -2130,7 +2130,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.ViewGroup
+  <a href="/reference/android/view/ViewGroup.html">android.view.ViewGroup</a>
 
 <div id="inherited-methods-android.view.ViewGroup">
   <div id="inherited-methods-android.view.ViewGroup-list"
@@ -2152,7 +2152,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2168,7 +2168,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2200,7 +2200,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2216,7 +2216,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2232,7 +2232,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -2248,7 +2248,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2264,7 +2264,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2280,7 +2280,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -2296,7 +2296,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2, boolean arg3)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2, boolean arg3)</nobr>
         
   </td></tr>
 
@@ -2312,7 +2312,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">addViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2328,7 +2328,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachLayoutAnimationParameters</span>(View arg0, ViewGroup.LayoutParams arg1, int arg2, int arg3)</nobr>
+        <span class="sympad">attachLayoutAnimationParameters</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1, int arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -2344,7 +2344,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">attachViewToParent</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+        <span class="sympad">attachViewToParent</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg2)</nobr>
         
   </td></tr>
 
@@ -2360,7 +2360,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2392,7 +2392,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">checkLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2408,7 +2408,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2424,7 +2424,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">cleanupLayoutState</span>(View arg0)</nobr>
+        <span class="sympad">cleanupLayoutState</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2440,7 +2440,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2520,7 +2520,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">detachViewFromParent</span>(View arg0)</nobr>
+        <span class="sympad">detachViewFromParent</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2568,7 +2568,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2616,7 +2616,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2632,7 +2632,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchFreezeSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchFreezeSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2648,7 +2648,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2664,7 +2664,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2680,7 +2680,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2696,7 +2696,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2712,7 +2712,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2728,7 +2728,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2744,7 +2744,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2760,7 +2760,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2840,7 +2840,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchThawSelfOnly</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchThawSelfOnly</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -2856,7 +2856,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2872,7 +2872,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -2888,7 +2888,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2904,7 +2904,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -2968,7 +2968,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">drawChild</span>(Canvas arg0, View arg1, long arg2)</nobr>
+        <span class="sympad">drawChild</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -3000,7 +3000,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">endViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">endViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3013,7 +3013,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -3032,7 +3032,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3048,7 +3048,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3061,10 +3061,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -3080,7 +3080,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3096,7 +3096,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+        <span class="sympad">gatherTransparentRegion</span>(<a href="/reference/android/graphics/Region.html">Region</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3109,7 +3109,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
@@ -3125,10 +3125,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/util/AttributeSet.html">AttributeSet</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3141,10 +3141,10 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">generateLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3157,7 +3157,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getChildAt</span>(int arg0)</nobr>
@@ -3224,7 +3224,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildStaticTransformation</span>(View arg0, Transformation arg1)</nobr>
+        <span class="sympad">getChildStaticTransformation</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/animation/Transformation.html">Transformation</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3240,7 +3240,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -3269,7 +3269,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusedChild</span>()</nobr>
@@ -3285,7 +3285,7 @@
             
             
             
-            LayoutAnimationController</nobr>
+            <a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimation</span>()</nobr>
@@ -3301,7 +3301,7 @@
             
             
             
-            Animation.AnimationListener</nobr>
+            <a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutAnimationListener</span>()</nobr>
@@ -3384,7 +3384,7 @@
             int</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">indexOfChild</span>(View arg0)</nobr>
+        <span class="sympad">indexOfChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3400,7 +3400,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3413,10 +3413,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3544,7 +3544,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChild</span>(View arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">measureChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -3560,7 +3560,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">measureChildWithMargins</span>(View arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+        <span class="sympad">measureChildWithMargins</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
         
   </td></tr>
 
@@ -3592,7 +3592,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetDescendantRectToMyCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetDescendantRectToMyCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3608,7 +3608,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">offsetRectIntoDescendantCoords</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">offsetRectIntoDescendantCoords</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3672,7 +3672,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3688,7 +3688,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInterceptTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onInterceptTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3720,7 +3720,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">onRequestFocusInDescendants</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3736,7 +3736,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRequestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">onRequestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3752,7 +3752,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3800,7 +3800,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeDetachedView</span>(View arg0, boolean arg1)</nobr>
+        <span class="sympad">removeDetachedView</span>(<a href="/reference/android/view/View.html">View</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -3816,7 +3816,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3848,7 +3848,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeViewInLayout</span>(View arg0)</nobr>
+        <span class="sympad">removeViewInLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -3896,7 +3896,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3912,7 +3912,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -3944,7 +3944,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3960,7 +3960,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -3976,7 +3976,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4152,7 +4152,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimation</span>(LayoutAnimationController arg0)</nobr>
+        <span class="sympad">setLayoutAnimation</span>(<a href="/reference/android/view/animation/LayoutAnimationController.html">LayoutAnimationController</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4168,7 +4168,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutAnimationListener</span>(Animation.AnimationListener arg0)</nobr>
+        <span class="sympad">setLayoutAnimationListener</span>(<a href="/reference/android/view/animation/Animation.AnimationListener.html">Animation.AnimationListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4216,7 +4216,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnHierarchyChangeListener</span>(ViewGroup.OnHierarchyChangeListener arg0)</nobr>
+        <span class="sympad">setOnHierarchyChangeListener</span>(<a href="/reference/android/view/ViewGroup.OnHierarchyChangeListener.html">ViewGroup.OnHierarchyChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4296,7 +4296,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4312,7 +4312,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -4344,7 +4344,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startViewTransition</span>(View arg0)</nobr>
+        <span class="sympad">startViewTransition</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4360,7 +4360,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -4380,7 +4380,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  android.view.View
+  <a href="/reference/android/view/View.html">android.view.View</a>
 
 <div id="inherited-methods-android.view.View">
   <div id="inherited-methods-android.view.View-list"
@@ -4402,7 +4402,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addChildrenForAccessibility</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addChildrenForAccessibility</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4418,7 +4418,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1, int arg2)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -4434,7 +4434,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addFocusables</span>(ArrayList&lt;View&gt; arg0, int arg1)</nobr>
+        <span class="sympad">addFocusables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -4482,7 +4482,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addTouchables</span>(ArrayList&lt;View&gt; arg0)</nobr>
+        <span class="sympad">addTouchables</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -4514,7 +4514,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">announceForAccessibility</span>(CharSequence arg0)</nobr>
+        <span class="sympad">announceForAccessibility</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4706,7 +4706,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">checkInputConnectionProxy</span>(View arg0)</nobr>
+        <span class="sympad">checkInputConnectionProxy</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4898,7 +4898,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4930,7 +4930,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">dispatchConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4978,7 +4978,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">dispatchDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -4994,7 +4994,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericFocusedEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5010,7 +5010,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5026,7 +5026,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchGenericPointerEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5042,7 +5042,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5058,7 +5058,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5074,7 +5074,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyEventPreIme</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5090,7 +5090,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+        <span class="sympad">dispatchKeyShortcutEvent</span>(<a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5106,7 +5106,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">dispatchPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5122,7 +5122,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchRestoreInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5138,7 +5138,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchSaveInstanceState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">dispatchSaveInstanceState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -5218,7 +5218,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5234,7 +5234,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">dispatchTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5250,7 +5250,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchUnhandledMove</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5266,7 +5266,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">dispatchVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -5330,7 +5330,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">draw</span>(Canvas arg0)</nobr>
+        <span class="sympad">draw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5359,7 +5359,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findFocus</span>()</nobr>
@@ -5375,7 +5375,7 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">findViewById</span>(int arg0)</nobr>
@@ -5391,10 +5391,10 @@
             final
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewWithTag</span>(Object arg0)</nobr>
+        <span class="sympad">findViewWithTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5410,7 +5410,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">findViewsWithText</span>(ArrayList&lt;View&gt; arg0, CharSequence arg1, int arg2)</nobr>
+        <span class="sympad">findViewsWithText</span>(<a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt; arg0, <a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg1, int arg2)</nobr>
         
   </td></tr>
 
@@ -5426,7 +5426,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+        <span class="sympad">fitSystemWindows</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5439,7 +5439,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">focusSearch</span>(int arg0)</nobr>
@@ -5503,7 +5503,7 @@
             
             
             
-            Animation</nobr>
+            <a href="/reference/android/view/animation/Animation.html">Animation</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getAnimation</span>()</nobr>
@@ -5519,7 +5519,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getApplicationWindowToken</span>()</nobr>
@@ -5535,7 +5535,7 @@
             
             
             
-            Drawable</nobr>
+            <a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getBackground</span>()</nobr>
@@ -5631,7 +5631,7 @@
             
             
             
-            CharSequence</nobr>
+            <a href="/reference/java/lang/CharSequence.html">CharSequence</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContentDescription</span>()</nobr>
@@ -5647,7 +5647,7 @@
             final
             
             
-            Context</nobr>
+            <a href="/reference/android/content/Context.html">Context</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContext</span>()</nobr>
@@ -5663,7 +5663,7 @@
             
             
             
-            ContextMenu.ContextMenuInfo</nobr>
+            <a href="/reference/android/view/ContextMenu.ContextMenuInfo.html">ContextMenu.ContextMenuInfo</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getContextMenuInfo</span>()</nobr>
@@ -5711,7 +5711,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>(boolean arg0)</nobr>
@@ -5727,7 +5727,7 @@
             
             
             
-            Bitmap</nobr>
+            <a href="/reference/android/graphics/Bitmap.html">Bitmap</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getDrawingCache</span>()</nobr>
@@ -5778,7 +5778,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getDrawingRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getDrawingRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5839,7 +5839,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getFocusables</span>(int arg0)</nobr>
@@ -5858,7 +5858,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getFocusedRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getFocusedRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5874,7 +5874,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0, Point arg1)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, <a href="/reference/android/graphics/Point.html">Point</a> arg1)</nobr>
         
   </td></tr>
 
@@ -5890,7 +5890,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getGlobalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getGlobalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -5903,7 +5903,7 @@
             
             
             
-            Handler</nobr>
+            <a href="/reference/android/os/Handler.html">Handler</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getHandler</span>()</nobr>
@@ -5938,7 +5938,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getHitRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getHitRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6031,7 +6031,7 @@
             
             
             
-            KeyEvent.DispatcherState</nobr>
+            <a href="/reference/android/view/KeyEvent.DispatcherState.html">KeyEvent.DispatcherState</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getKeyDispatcherState</span>()</nobr>
@@ -6063,7 +6063,7 @@
             
             
             
-            ViewGroup.LayoutParams</nobr>
+            <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getLayoutParams</span>()</nobr>
@@ -6130,7 +6130,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getLocalVisibleRect</span>(Rect arg0)</nobr>
+        <span class="sympad">getLocalVisibleRect</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -6175,7 +6175,7 @@
             
             
             
-            Matrix</nobr>
+            <a href="/reference/android/graphics/Matrix.html">Matrix</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getMatrix</span>()</nobr>
@@ -6383,7 +6383,7 @@
             
             
             
-            View.OnFocusChangeListener</nobr>
+            <a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getOnFocusChangeListener</span>()</nobr>
@@ -6479,7 +6479,7 @@
             final
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -6495,7 +6495,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -6543,7 +6543,7 @@
             
             
             
-            Resources</nobr>
+            <a href="/reference/android/content/res/Resources.html">Resources</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getResources</span>()</nobr>
@@ -6607,7 +6607,7 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getRootView</span>()</nobr>
@@ -6863,7 +6863,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>(int arg0)</nobr>
@@ -6879,7 +6879,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTag</span>()</nobr>
@@ -6943,7 +6943,7 @@
             
             
             
-            TouchDelegate</nobr>
+            <a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchDelegate</span>()</nobr>
@@ -6959,7 +6959,7 @@
             
             
             
-            ArrayList&lt;View&gt;</nobr>
+            <a href="/reference/java/util/ArrayList.html">ArrayList</a>&lt;<a href="/reference/android/view/View.html">View</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getTouchables</span>()</nobr>
@@ -7055,7 +7055,7 @@
             
             
             
-            ViewTreeObserver</nobr>
+            <a href="/reference/android/view/ViewTreeObserver.html">ViewTreeObserver</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getViewTreeObserver</span>()</nobr>
@@ -7135,7 +7135,7 @@
             
             
             
-            IBinder</nobr>
+            <a href="/reference/android/os/IBinder.html">IBinder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getWindowToken</span>()</nobr>
@@ -7170,7 +7170,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getWindowVisibleDisplayFrame</span>(Rect arg0)</nobr>
+        <span class="sympad">getWindowVisibleDisplayFrame</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7311,10 +7311,10 @@
             
             static
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">inflate</span>(Context arg0, int arg1, ViewGroup arg2)</nobr>
+        <span class="sympad">inflate</span>(<a href="/reference/android/content/Context.html">Context</a> arg0, int arg1, <a href="/reference/android/view/ViewGroup.html">ViewGroup</a> arg2)</nobr>
         
   </td></tr>
 
@@ -7330,7 +7330,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeFadingEdge</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeFadingEdge</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7346,7 +7346,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">initializeScrollbars</span>(TypedArray arg0)</nobr>
+        <span class="sympad">initializeScrollbars</span>(<a href="/reference/android/content/res/TypedArray.html">TypedArray</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7362,7 +7362,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidate</span>(Rect arg0)</nobr>
+        <span class="sympad">invalidate</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -7410,7 +7410,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8066,7 +8066,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+        <span class="sympad">onConfigurationChanged</span>(<a href="/reference/android/content/res/Configuration.html">Configuration</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8082,7 +8082,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">onCreateContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8111,10 +8111,10 @@
             
             
             
-            InputConnection</nobr>
+            <a href="/reference/android/view/inputmethod/InputConnection.html">InputConnection</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onCreateInputConnection</span>(EditorInfo arg0)</nobr>
+        <span class="sympad">onCreateInputConnection</span>(<a href="/reference/android/view/inputmethod/EditorInfo.html">EditorInfo</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8178,7 +8178,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDraw</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDraw</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8194,7 +8194,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onDrawScrollBars</span>(Canvas arg0)</nobr>
+        <span class="sympad">onDrawScrollBars</span>(<a href="/reference/android/graphics/Canvas.html">Canvas</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8210,7 +8210,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFilterTouchEventForSecurity</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onFilterTouchEventForSecurity</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8258,7 +8258,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, Rect arg2)</nobr>
+        <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, <a href="/reference/android/graphics/Rect.html">Rect</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8274,7 +8274,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onGenericMotionEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8306,7 +8306,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onHoverEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onHoverEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8322,7 +8322,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onInitializeAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8354,7 +8354,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8370,7 +8370,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8386,7 +8386,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -8402,7 +8402,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyPreIme</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyPreIme</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8418,7 +8418,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyShortcut</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyShortcut</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8434,7 +8434,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8498,7 +8498,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">onPopulateAccessibilityEvent</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8514,7 +8514,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onRestoreInstanceState</span>(Parcelable arg0)</nobr>
+        <span class="sympad">onRestoreInstanceState</span>(<a href="/reference/android/os/Parcelable.html">Parcelable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8527,7 +8527,7 @@
             
             
             
-            Parcelable</nobr>
+            <a href="/reference/android/os/Parcelable.html">Parcelable</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">onSaveInstanceState</span>()</nobr>
@@ -8626,7 +8626,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTouchEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTouchEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8642,7 +8642,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onTrackballEvent</span>(MotionEvent arg0)</nobr>
+        <span class="sympad">onTrackballEvent</span>(<a href="/reference/android/view/MotionEvent.html">MotionEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8658,7 +8658,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onVisibilityChanged</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">onVisibilityChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -8738,7 +8738,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">performAccessibilityAction</span>(int arg0, Bundle arg1)</nobr>
+        <span class="sympad">performAccessibilityAction</span>(int arg0, <a href="/reference/android/os/Bundle.html">Bundle</a> arg1)</nobr>
         
   </td></tr>
 
@@ -8834,7 +8834,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">post</span>(Runnable arg0)</nobr>
+        <span class="sympad">post</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8850,7 +8850,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -8962,7 +8962,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimation</span>(Runnable arg0)</nobr>
+        <span class="sympad">postOnAnimation</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -8978,7 +8978,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">postOnAnimationDelayed</span>(Runnable arg0, long arg1)</nobr>
+        <span class="sympad">postOnAnimationDelayed</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0, long arg1)</nobr>
         
   </td></tr>
 
@@ -9010,7 +9010,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeCallbacks</span>(Runnable arg0)</nobr>
+        <span class="sympad">removeCallbacks</span>(<a href="/reference/java/lang/Runnable.html">Runnable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9074,7 +9074,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+        <span class="sympad">requestFocus</span>(int arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9154,7 +9154,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9170,7 +9170,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestRectangleOnScreen</span>(Rect arg0, boolean arg1)</nobr>
+        <span class="sympad">requestRectangleOnScreen</span>(<a href="/reference/android/graphics/Rect.html">Rect</a> arg0, boolean arg1)</nobr>
         
   </td></tr>
 
@@ -9218,7 +9218,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">restoreHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">restoreHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9234,7 +9234,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">saveHierarchyState</span>(SparseArray&lt;Parcelable&gt; arg0)</nobr>
+        <span class="sympad">saveHierarchyState</span>(<a href="/reference/android/util/SparseArray.html">SparseArray</a>&lt;<a href="/reference/android/os/Parcelable.html">Parcelable</a>&gt; arg0)</nobr>
         
   </td></tr>
 
@@ -9250,7 +9250,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -9314,7 +9314,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9378,7 +9378,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">setAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9394,7 +9394,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackground</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackground</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9426,7 +9426,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setBackgroundDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">setBackgroundDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9506,7 +9506,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setContentDescription</span>(CharSequence arg0)</nobr>
+        <span class="sympad">setContentDescription</span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> arg0)</nobr>
         
   </td></tr>
 
@@ -9810,7 +9810,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayerType</span>(int arg0, Paint arg1)</nobr>
+        <span class="sympad">setLayerType</span>(int arg0, <a href="/reference/android/graphics/Paint.html">Paint</a> arg1)</nobr>
         
   </td></tr>
 
@@ -9826,7 +9826,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+        <span class="sympad">setLayoutParams</span>(<a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10002,7 +10002,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnClickListener</span>(View.OnClickListener arg0)</nobr>
+        <span class="sympad">setOnClickListener</span>(<a href="/reference/android/view/View.OnClickListener.html">View.OnClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10018,7 +10018,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnCreateContextMenuListener</span>(View.OnCreateContextMenuListener arg0)</nobr>
+        <span class="sympad">setOnCreateContextMenuListener</span>(<a href="/reference/android/view/View.OnCreateContextMenuListener.html">View.OnCreateContextMenuListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10050,7 +10050,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnFocusChangeListener</span>(View.OnFocusChangeListener arg0)</nobr>
+        <span class="sympad">setOnFocusChangeListener</span>(<a href="/reference/android/view/View.OnFocusChangeListener.html">View.OnFocusChangeListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10098,7 +10098,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnKeyListener</span>(View.OnKeyListener arg0)</nobr>
+        <span class="sympad">setOnKeyListener</span>(<a href="/reference/android/view/View.OnKeyListener.html">View.OnKeyListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10114,7 +10114,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnLongClickListener</span>(View.OnLongClickListener arg0)</nobr>
+        <span class="sympad">setOnLongClickListener</span>(<a href="/reference/android/view/View.OnLongClickListener.html">View.OnLongClickListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10146,7 +10146,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setOnTouchListener</span>(View.OnTouchListener arg0)</nobr>
+        <span class="sympad">setOnTouchListener</span>(<a href="/reference/android/view/View.OnTouchListener.html">View.OnTouchListener</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10546,7 +10546,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(int arg0, Object arg1)</nobr>
+        <span class="sympad">setTag</span>(int arg0, <a href="/reference/java/lang/Object.html">Object</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10562,7 +10562,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTag</span>(Object arg0)</nobr>
+        <span class="sympad">setTag</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10594,7 +10594,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">setTouchDelegate</span>(TouchDelegate arg0)</nobr>
+        <span class="sympad">setTouchDelegate</span>(<a href="/reference/android/view/TouchDelegate.html">TouchDelegate</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10802,7 +10802,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startAnimation</span>(Animation arg0)</nobr>
+        <span class="sympad">startAnimation</span>(<a href="/reference/android/view/animation/Animation.html">Animation</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10818,7 +10818,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, Object arg2, int arg3)</nobr>
+        <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, <a href="/reference/java/lang/Object.html">Object</a> arg2, int arg3)</nobr>
         
   </td></tr>
 
@@ -10834,7 +10834,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10850,7 +10850,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -10866,7 +10866,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">verifyDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10918,7 +10918,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -10937,7 +10937,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -10956,7 +10956,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -10985,7 +10985,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -11049,7 +11049,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -11120,7 +11120,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.graphics.drawable.Drawable.Callback
+  <a href="/reference/android/graphics/drawable/Drawable.Callback.html">android.graphics.drawable.Drawable.Callback</a>
 
 <div id="inherited-methods-android.graphics.drawable.Drawable.Callback">
   <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-list"
@@ -11142,7 +11142,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+        <span class="sympad">invalidateDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11158,7 +11158,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+        <span class="sympad">scheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1, long arg2)</nobr>
         
   </td></tr>
 
@@ -11174,7 +11174,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+        <span class="sympad">unscheduleDrawable</span>(<a href="/reference/android/graphics/drawable/Drawable.html">Drawable</a> arg0, <a href="/reference/java/lang/Runnable.html">Runnable</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11194,7 +11194,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.KeyEvent.Callback
+  <a href="/reference/android/view/KeyEvent.Callback.html">android.view.KeyEvent.Callback</a>
 
 <div id="inherited-methods-android.view.KeyEvent.Callback">
   <div id="inherited-methods-android.view.KeyEvent.Callback-list"
@@ -11216,7 +11216,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyDown</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11232,7 +11232,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyLongPress</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11248,7 +11248,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+        <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11264,7 +11264,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+        <span class="sympad">onKeyUp</span>(int arg0, <a href="/reference/android/view/KeyEvent.html">KeyEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11284,7 +11284,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewManager
+  <a href="/reference/android/view/ViewManager.html">android.view.ViewManager</a>
 
 <div id="inherited-methods-android.view.ViewManager">
   <div id="inherited-methods-android.view.ViewManager-list"
@@ -11306,7 +11306,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">addView</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11322,7 +11322,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">removeView</span>(View arg0)</nobr>
+        <span class="sympad">removeView</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11338,7 +11338,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+        <span class="sympad">updateViewLayout</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11358,7 +11358,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.ViewParent
+  <a href="/reference/android/view/ViewParent.html">android.view.ViewParent</a>
 
 <div id="inherited-methods-android.view.ViewParent">
   <div id="inherited-methods-android.view.ViewParent-list"
@@ -11380,7 +11380,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+        <span class="sympad">bringChildToFront</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11396,7 +11396,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+        <span class="sympad">childDrawableStateChanged</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11412,7 +11412,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+        <span class="sympad">clearChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11428,7 +11428,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+        <span class="sympad">createContextMenu</span>(<a href="/reference/android/view/ContextMenu.html">ContextMenu</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11441,10 +11441,10 @@
             
             
             
-            View</nobr>
+            <a href="/reference/android/view/View.html">View</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+        <span class="sympad">focusSearch</span>(<a href="/reference/android/view/View.html">View</a> arg0, int arg1)</nobr>
         
   </td></tr>
 
@@ -11460,7 +11460,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+        <span class="sympad">focusableViewAvailable</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11476,7 +11476,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+        <span class="sympad">getChildVisibleRect</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, <a href="/reference/android/graphics/Point.html">Point</a> arg2)</nobr>
         
   </td></tr>
 
@@ -11489,7 +11489,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParent</span>()</nobr>
@@ -11505,7 +11505,7 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getParentForAccessibility</span>()</nobr>
@@ -11524,7 +11524,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11537,10 +11537,10 @@
             
             
             
-            ViewParent</nobr>
+            <a href="/reference/android/view/ViewParent.html">ViewParent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+        <span class="sympad">invalidateChildInParent</span>(int[] arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11572,7 +11572,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+        <span class="sympad">recomputeViewAttributes</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11588,7 +11588,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+        <span class="sympad">requestChildFocus</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/View.html">View</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11604,7 +11604,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+        <span class="sympad">requestChildRectangleOnScreen</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/graphics/Rect.html">Rect</a> arg1, boolean arg2)</nobr>
         
   </td></tr>
 
@@ -11668,7 +11668,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+        <span class="sympad">requestSendAccessibilityEvent</span>(<a href="/reference/android/view/View.html">View</a> arg0, <a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg1)</nobr>
         
   </td></tr>
 
@@ -11684,7 +11684,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+        <span class="sympad">requestTransparentRegion</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11700,7 +11700,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+        <span class="sympad">showContextMenuForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0)</nobr>
         
   </td></tr>
 
@@ -11716,7 +11716,7 @@
             ActionMode</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+        <span class="sympad">startActionModeForChild</span>(<a href="/reference/android/view/View.html">View</a> arg0, ActionMode.Callback arg1)</nobr>
         
   </td></tr>
 
@@ -11736,7 +11736,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  android.view.accessibility.AccessibilityEventSource
+  <a href="/reference/android/view/accessibility/AccessibilityEventSource.html">android.view.accessibility.AccessibilityEventSource</a>
 
 <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource">
   <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-list"
@@ -11774,7 +11774,7 @@
             void</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+        <span class="sympad">sendAccessibilityEventUnchecked</span>(<a href="/reference/android/view/accessibility/AccessibilityEvent.html">AccessibilityEvent</a> arg0)</nobr>
         
   </td></tr>
 
@@ -12121,7 +12121,7 @@
         
       </span>
       <span class="sympad">PlusOneButton</span>
-      <span class="normal">(Context context)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12161,7 +12161,7 @@
         
       </span>
       <span class="sympad">PlusOneButton</span>
-      <span class="normal">(Context context, AttributeSet attrs)</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context, <a href="/reference/android/util/AttributeSet.html">AttributeSet</a> attrs)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12220,7 +12220,7 @@
         void
       </span>
       <span class="sympad">initialize</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, String url, <a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html">PlusOneButton.OnPlusOneClickListener</a> plusOneClickListener)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, <a href="/reference/java/lang/String.html">String</a> url, <a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html">PlusOneButton.OnPlusOneClickListener</a> plusOneClickListener)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -12268,7 +12268,7 @@
         void
       </span>
       <span class="sympad">initialize</span>
-      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, String url, int activityRequestCode)</span>
+      <span class="normal">(<a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient, <a href="/reference/java/lang/String.html">String</a> url, int activityRequestCode)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html b/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
index 0ebd303..a251cb9 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
@@ -648,14 +648,14 @@
   
 
 
-  &#124; <a href="#proctors">Protected Ctors</a>
-  
-
 
   &#124; <a href="#pubmethods">Methods</a>
   
 
 
+  &#124; <a href="#promethods">Protected Methods</a>
+  
+
 
   &#124; <a href="#inhmethods">Inherited Methods</a>
 
@@ -684,7 +684,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -704,7 +704,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -791,8 +791,10 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder()">PlusShare.Builder</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.content.Context)">PlusShare.Builder</a></span>(<a href="/reference/android/content/Context.html">Context</a> context)</nobr>
         
+        <div class="jd-descrdiv">Create a new Builder for launching a sharing action from the given context.</div>
+  
   </td></tr>
 
 
@@ -807,7 +809,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.app.Activity)">PlusShare.Builder</a></span>(Activity launchingActivity)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.app.Activity)">PlusShare.Builder</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> launchingActivity)</nobr>
         
         <div class="jd-descrdiv">Create a new Builder for launching a sharing action from launchingActivity.</div>
   
@@ -825,7 +827,7 @@
             </nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.app.Activity, com.google.android.gms.plus.PlusClient)">PlusShare.Builder</a></span>(Activity launchingActivity, <a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.app.Activity, com.google.android.gms.plus.PlusClient)">PlusShare.Builder</a></span>(<a href="/reference/android/app/Activity.html">Activity</a> launchingActivity, <a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient)</nobr>
         
         <div class="jd-descrdiv">Create a new Builder for launching a sharing action from launchingActivity.</div>
   
@@ -838,51 +840,6 @@
 
 
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
-
-
-	 
-    <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(java.lang.String)">PlusShare.Builder</a></span>(String intentAction)</nobr>
-        
-        <div class="jd-descrdiv">Create a new Builder for launching a sharing action.</div>
-  
-  </td></tr>
-
-
-	 
-    <tr class=" api apilevel-" >
-        <td class="jd-typecol"><nobr>
-            
-            
-            
-            
-            
-            </nobr>
-        </td>
-        <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(java.lang.String, java.lang.String, android.content.ComponentName)">PlusShare.Builder</a></span>(String intentAction, String activityPackageName, ComponentName activityComponentName)</nobr>
-        
-        <div class="jd-descrdiv">Create a new Builder for launching a sharing action from launchingActivity.</div>
-  
-  </td></tr>
-
-
-
-</table>
-
-
 
 
 <!-- ========== METHOD SUMMARY =========== -->
@@ -901,7 +858,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#addCallToAction(java.lang.String, android.net.Uri, java.lang.String)">addCallToAction</a></span>(String label, Uri uri, String deepLinkId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#addCallToAction(java.lang.String, android.net.Uri, java.lang.String)">addCallToAction</a></span>(<a href="/reference/java/lang/String.html">String</a> label, <a href="/reference/android/net/Uri.html">Uri</a> uri, <a href="/reference/java/lang/String.html">String</a> deepLinkId)</nobr>
         
         <div class="jd-descrdiv">Adds a call-to-action button for an interactive post.</div>
   
@@ -919,7 +876,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#addStream(android.net.Uri)">addStream</a></span>(Uri streamUri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#addStream(android.net.Uri)">addStream</a></span>(<a href="/reference/android/net/Uri.html">Uri</a> streamUri)</nobr>
         
         <div class="jd-descrdiv">Add a stream URI to the data that should be shared.</div>
   
@@ -934,7 +891,7 @@
             
             
             
-            Intent</nobr>
+            <a href="/reference/android/content/Intent.html">Intent</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#getIntent()">getIntent</a></span>()</nobr>
@@ -955,7 +912,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentDeepLinkId(java.lang.String, java.lang.String, java.lang.String, android.net.Uri)">setContentDeepLinkId</a></span>(String deepLinkId, String title, String description, Uri thumbnailUri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentDeepLinkId(java.lang.String, java.lang.String, java.lang.String, android.net.Uri)">setContentDeepLinkId</a></span>(<a href="/reference/java/lang/String.html">String</a> deepLinkId, <a href="/reference/java/lang/String.html">String</a> title, <a href="/reference/java/lang/String.html">String</a> description, <a href="/reference/android/net/Uri.html">Uri</a> thumbnailUri)</nobr>
         
         <div class="jd-descrdiv">Include a deep-link ID to a resource to share on Google+.</div>
   
@@ -973,7 +930,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentDeepLinkId(java.lang.String)">setContentDeepLinkId</a></span>(String deepLinkId)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentDeepLinkId(java.lang.String)">setContentDeepLinkId</a></span>(<a href="/reference/java/lang/String.html">String</a> deepLinkId)</nobr>
         
         <div class="jd-descrdiv">Include a deep-link URI of a resource to share on Google+.</div>
   
@@ -991,7 +948,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentUrl(android.net.Uri)">setContentUrl</a></span>(Uri uri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setContentUrl(android.net.Uri)">setContentUrl</a></span>(<a href="/reference/android/net/Uri.html">Uri</a> uri)</nobr>
         
         <div class="jd-descrdiv">Sets a URL to link to from the content on the web.</div>
   
@@ -1009,7 +966,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>&gt; recipientList)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>&gt; recipientList)</nobr>
         
         <div class="jd-descrdiv">Sets a list of people to send the interactive post to.</div>
   
@@ -1027,7 +984,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setStream(android.net.Uri)">setStream</a></span>(Uri streamUri)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setStream(android.net.Uri)">setStream</a></span>(<a href="/reference/android/net/Uri.html">Uri</a> streamUri)</nobr>
         
         <div class="jd-descrdiv">Set a stream URI to the data that should be shared.</div>
   
@@ -1045,7 +1002,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setText(java.lang.CharSequence)">setText</a></span>(CharSequence text)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setText(java.lang.CharSequence)">setText</a></span>(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> text)</nobr>
         
         <div class="jd-descrdiv">Set a pre-filled message to be sent as part of the share.</div>
   
@@ -1063,7 +1020,7 @@
             <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setType(java.lang.String)">setType</a></span>(String mimeType)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setType(java.lang.String)">setType</a></span>(<a href="/reference/java/lang/String.html">String</a> mimeType)</nobr>
         
         <div class="jd-descrdiv">Set the type of data being shared.</div>
   
@@ -1076,6 +1033,33 @@
 
 
 
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#isGooglePlusAvailable()">isGooglePlusAvailable</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Determine if the Google+ app is available on the device.</div>
+  
+  </td></tr>
+
+
+
+</table>
+
+
 
 
 
@@ -1093,7 +1077,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1112,7 +1096,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1131,7 +1115,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1160,7 +1144,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1224,7 +1208,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1320,7 +1304,7 @@
 
 
 
-<A NAME="PlusShare.Builder()"></A>
+<A NAME="PlusShare.Builder(android.content.Context)"></A>
 
 <div class="jd-details api apilevel-"> 
     <h4 class="jd-details-title">
@@ -1333,7 +1317,7 @@
         
       </span>
       <span class="sympad">PlusShare.Builder</span>
-      <span class="normal">()</span>
+      <span class="normal">(<a href="/reference/android/content/Context.html">Context</a> context)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1343,7 +1327,17 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p></p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>Create a new Builder for launching a sharing action from the given context.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable">
+        <tr>
+          <th>context</td>
+          <td>Context that the share will be launched from
+</td>
+        </tr>
+      </table>
+  </div>
 
     </div>
 </div>
@@ -1362,7 +1356,7 @@
         
       </span>
       <span class="sympad">PlusShare.Builder</span>
-      <span class="normal">(Activity launchingActivity)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> launchingActivity)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1401,7 +1395,7 @@
         
       </span>
       <span class="sympad">PlusShare.Builder</span>
-      <span class="normal">(Activity launchingActivity, <a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient)</span>
+      <span class="normal">(<a href="/reference/android/app/Activity.html">Activity</a> launchingActivity, <a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1423,7 +1417,7 @@
         </tr>
         <tr>
           <th>plusClient</td>
-          <td>A connected PlusClient.
+          <td>The connected <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object.
 </td>
         </tr>
       </table>
@@ -1439,81 +1433,6 @@
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
 <!-- Protected ctors -->
 
-<h2>Protected Constructors</h2>
-
-
-
-<A NAME="PlusShare.Builder(java.lang.String)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PlusShare.Builder</span>
-      <span class="normal">(String intentAction)</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Create a new Builder for launching a sharing action.
-</p></div>
-
-    </div>
-</div>
-
-
-<A NAME="PlusShare.Builder(java.lang.String, java.lang.String, android.content.ComponentName)"></A>
-
-<div class="jd-details api apilevel-"> 
-    <h4 class="jd-details-title">
-      <span class="normal">
-        protected 
-         
-         
-         
-         
-        
-      </span>
-      <span class="sympad">PlusShare.Builder</span>
-      <span class="normal">(String intentAction, String activityPackageName, ComponentName activityComponentName)</span>
-    </h4>
-      <div class="api-level">
-        <div></div>
-        
-  
-
-      </div>
-    <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Create a new Builder for launching a sharing action from launchingActivity.</p></div>
-  <div class="jd-tagdata">
-      <h5 class="jd-tagtitle">Parameters</h5>
-      <table class="jd-tagtable">
-        <tr>
-          <th>activityPackageName</td>
-          <td>Activity.getPackageName() from the Activity that the share
-        will be launched from.
-</td>
-        </tr>
-      </table>
-  </div>
-
-    </div>
-</div>
-
-
-
 
 
 <!-- ========= METHOD DETAIL ======== -->
@@ -1536,7 +1455,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">addCallToAction</span>
-      <span class="normal">(String label, Uri uri, String deepLinkId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> label, <a href="/reference/android/net/Uri.html">Uri</a> uri, <a href="/reference/java/lang/String.html">String</a> deepLinkId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1590,7 +1509,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">addStream</span>
-      <span class="normal">(Uri streamUri)</span>
+      <span class="normal">(<a href="/reference/android/net/Uri.html">Uri</a> streamUri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1636,7 +1555,7 @@
          
          
          
-        Intent
+        <a href="/reference/android/content/Intent.html">Intent</a>
       </span>
       <span class="sympad">getIntent</span>
       <span class="normal">()</span>
@@ -1673,7 +1592,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setContentDeepLinkId</span>
-      <span class="normal">(String deepLinkId, String title, String description, Uri thumbnailUri)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> deepLinkId, <a href="/reference/java/lang/String.html">String</a> title, <a href="/reference/java/lang/String.html">String</a> description, <a href="/reference/android/net/Uri.html">Uri</a> thumbnailUri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1732,7 +1651,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setContentDeepLinkId</span>
-      <span class="normal">(String deepLinkId)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> deepLinkId)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1776,7 +1695,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setContentUrl</span>
-      <span class="normal">(Uri uri)</span>
+      <span class="normal">(<a href="/reference/android/net/Uri.html">Uri</a> uri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1821,7 +1740,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setRecipients</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>&gt; recipientList)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>&gt; recipientList)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1868,7 +1787,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setStream</span>
-      <span class="normal">(Uri streamUri)</span>
+      <span class="normal">(<a href="/reference/android/net/Uri.html">Uri</a> streamUri)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1918,7 +1837,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setText</span>
-      <span class="normal">(CharSequence text)</span>
+      <span class="normal">(<a href="/reference/java/lang/CharSequence.html">CharSequence</a> text)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1966,7 +1885,7 @@
         <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
       </span>
       <span class="sympad">setType</span>
-      <span class="normal">(String mimeType)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> mimeType)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2005,6 +1924,45 @@
 
 <!-- ========= METHOD DETAIL ======== -->
 
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="isGooglePlusAvailable()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        protected 
+         
+         
+         
+         
+        boolean
+      </span>
+      <span class="sympad">isGooglePlusAvailable</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Determine if the Google+ app is available on the device.</p></div>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li>True if the Google+ app is installed and enabled.
+</li></ul>
+  </div>
+
+    </div>
+</div>
+
+
+
 
 
 <!-- ========= END OF CLASS DATA ========= -->
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusShare.html b/docs/html/reference/com/google/android/gms/plus/PlusShare.html
index 1fbc327..9eb917d 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusShare.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusShare.html
@@ -687,7 +687,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -707,7 +707,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -799,14 +799,14 @@
 
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_CALL_TO_ACTION">EXTRA_CALL_TO_ACTION</a></td>
         <td class="jd-descrcol" width="100%">Used as a bundle extra field to describe a call-to-action button for a post on Google+.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_CONTENT_DEEP_LINK_ID">EXTRA_CONTENT_DEEP_LINK_ID</a></td>
         <td class="jd-descrcol" width="100%">Used as a string extra field in <code><a href="/reference/android/content/Intent.html#ACTION_SEND">ACTION_SEND</a></code> intents to
  specify a resource to be shared on Google+.</td>
@@ -814,7 +814,7 @@
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_CONTENT_DEEP_LINK_METADATA">EXTRA_CONTENT_DEEP_LINK_METADATA</a></td>
         <td class="jd-descrcol" width="100%">Used as a bundle extra field in <code><a href="/reference/android/content/Intent.html#ACTION_SEND">ACTION_SEND</a></code> intents to
  describe a resource to be shared on Google+.</td>
@@ -822,70 +822,70 @@
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_CONTENT_URL">EXTRA_CONTENT_URL</a></td>
         <td class="jd-descrcol" width="100%">This is a URL for the content of the post.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_IS_INTERACTIVE_POST">EXTRA_IS_INTERACTIVE_POST</a></td>
         <td class="jd-descrcol" width="100%">Extra indicating that this is an interactive post.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#EXTRA_SENDER_ID">EXTRA_SENDER_ID</a></td>
         <td class="jd-descrcol" width="100%">The ID of the sender on Google+.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CALL_TO_ACTION_DEEP_LINK_ID">KEY_CALL_TO_ACTION_DEEP_LINK_ID</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> deep-link ID of the call-to-action button.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CALL_TO_ACTION_LABEL">KEY_CALL_TO_ACTION_LABEL</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> label placeholder text of the call-to-action button.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CALL_TO_ACTION_URL">KEY_CALL_TO_ACTION_URL</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> URL of the call-to-action button.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CONTENT_DEEP_LINK_METADATA_DESCRIPTION">KEY_CONTENT_DEEP_LINK_METADATA_DESCRIPTION</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> description of the resource shared on Google+.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CONTENT_DEEP_LINK_METADATA_THUMBNAIL_URL">KEY_CONTENT_DEEP_LINK_METADATA_THUMBNAIL_URL</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> thumbnail URL of the resource shared on Google+.</td>
     </tr>
     
     
     <tr class=" api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#KEY_CONTENT_DEEP_LINK_METADATA_TITLE">KEY_CONTENT_DEEP_LINK_METADATA_TITLE</a></td>
         <td class="jd-descrcol" width="100%">Bundle key used for the <code><a href="/reference/java/lang/String.html">String</a></code> title of the resource shared on Google+.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
-        <td class="jd-typecol">String</td>
+        <td class="jd-typecol"><a href="/reference/java/lang/String.html">String</a></td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html#PARAM_CONTENT_DEEP_LINK_ID">PARAM_CONTENT_DEEP_LINK_ID</a></td>
         <td class="jd-descrcol" width="100%">The query parameter containing the deep-link ID.</td>
     </tr>
@@ -925,6 +925,10 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.html#PlusShare()">PlusShare</a></span>()</nobr>
         
+        <div class="jd-descrdiv"><em>
+      This constructor is deprecated.
+    No replacement.</em></div>
+  
   </td></tr>
 
 
@@ -950,7 +954,7 @@
             <a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.html#createPerson(java.lang.String, java.lang.String)">createPerson</a></span>(String id, String displayName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.html#createPerson(java.lang.String, java.lang.String)">createPerson</a></span>(<a href="/reference/java/lang/String.html">String</a> id, <a href="/reference/java/lang/String.html">String</a> displayName)</nobr>
         
         <div class="jd-descrdiv">Creates a person to use as a recipient with the given ID and display name.</div>
   
@@ -965,10 +969,10 @@
             
             static
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.html#getDeepLinkId(android.content.Intent)">getDeepLinkId</a></span>(Intent intent)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.html#getDeepLinkId(android.content.Intent)">getDeepLinkId</a></span>(<a href="/reference/android/content/Intent.html">Intent</a> intent)</nobr>
         
         <div class="jd-descrdiv">Get the incoming deep link.</div>
   
@@ -998,7 +1002,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1017,7 +1021,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1036,7 +1040,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1065,7 +1069,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1129,7 +1133,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1228,7 +1232,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_CALL_TO_ACTION
     </h4>
@@ -1266,7 +1270,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_CONTENT_DEEP_LINK_ID
     </h4>
@@ -1305,7 +1309,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_CONTENT_DEEP_LINK_METADATA
     </h4>
@@ -1345,7 +1349,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_CONTENT_URL
     </h4>
@@ -1383,7 +1387,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_IS_INTERACTIVE_POST
     </h4>
@@ -1421,7 +1425,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         EXTRA_SENDER_ID
     </h4>
@@ -1433,8 +1437,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The ID of the sender on Google+. This value is used by the Google+ app to check if there
- is a mismatch between the sender and the user authenticated in the Google+ app.</p></div>
+  <div class="jd-tagdata jd-tagdescr"><p>The ID of the sender on Google+.</p></div>
   <div class="jd-tagdata">
       <h5 class="jd-tagtitle">See Also</h5>
       <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getId()">getId()</a></code></li><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#getCurrentPerson()">getCurrentPerson()</a></code></li>
@@ -1464,7 +1467,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CALL_TO_ACTION_DEEP_LINK_ID
     </h4>
@@ -1503,7 +1506,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CALL_TO_ACTION_LABEL
     </h4>
@@ -1542,7 +1545,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CALL_TO_ACTION_URL
     </h4>
@@ -1581,7 +1584,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CONTENT_DEEP_LINK_METADATA_DESCRIPTION
     </h4>
@@ -1620,7 +1623,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CONTENT_DEEP_LINK_METADATA_THUMBNAIL_URL
     </h4>
@@ -1659,7 +1662,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         KEY_CONTENT_DEEP_LINK_METADATA_TITLE
     </h4>
@@ -1698,7 +1701,7 @@
         public 
         static 
         final 
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
         PARAM_CONTENT_DEEP_LINK_ID
     </h4>
@@ -1766,7 +1769,11 @@
 
       </div>
     <div class="jd-details-descr">
-      
+      <p>
+  <p class="caution"><strong>
+      This constructor is deprecated.</strong><br/>
+    No replacement.
+  </p>
   <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
@@ -1796,7 +1803,7 @@
         <a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>
       </span>
       <span class="sympad">createPerson</span>
-      <span class="normal">(String id, String displayName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id, <a href="/reference/java/lang/String.html">String</a> displayName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1837,10 +1844,10 @@
          
          
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDeepLinkId</span>
-      <span class="normal">(Intent intent)</span>
+      <span class="normal">(<a href="/reference/android/content/Intent.html">Intent</a> intent)</span>
     </h4>
       <div class="api-level">
         <div></div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
index e4eec84..2a8d1a2 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -855,7 +855,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAdditionalName(java.util.List<java.lang.String>)">setAdditionalName</a></span>(List&lt;String&gt; additionalName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAdditionalName(java.util.List<java.lang.String>)">setAdditionalName</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; additionalName)</nobr>
         
         <div class="jd-descrdiv">An additional name for a Person, can be used for a middle name.</div>
   
@@ -891,7 +891,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressCountry(java.lang.String)">setAddressCountry</a></span>(String addressCountry)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressCountry(java.lang.String)">setAddressCountry</a></span>(<a href="/reference/java/lang/String.html">String</a> addressCountry)</nobr>
         
         <div class="jd-descrdiv">Address country.</div>
   
@@ -909,7 +909,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressLocality(java.lang.String)">setAddressLocality</a></span>(String addressLocality)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressLocality(java.lang.String)">setAddressLocality</a></span>(<a href="/reference/java/lang/String.html">String</a> addressLocality)</nobr>
         
         <div class="jd-descrdiv">Address locality.</div>
   
@@ -927,7 +927,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressRegion(java.lang.String)">setAddressRegion</a></span>(String addressRegion)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAddressRegion(java.lang.String)">setAddressRegion</a></span>(<a href="/reference/java/lang/String.html">String</a> addressRegion)</nobr>
         
         <div class="jd-descrdiv">Address region.</div>
   
@@ -945,7 +945,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAssociated_media(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAssociated_media</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; associated_media)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAssociated_media(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAssociated_media</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; associated_media)</nobr>
         
         <div class="jd-descrdiv">The encoding.</div>
   
@@ -981,7 +981,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAttendees(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAttendees</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; attendees)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAttendees(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAttendees</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; attendees)</nobr>
         
         <div class="jd-descrdiv">A person attending the event.</div>
   
@@ -1017,9 +1017,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAuthor(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAuthor</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; author)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setAuthor(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setAuthor</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; author)</nobr>
         
-        <div class="jd-descrdiv">The person who created this scope.</div>
+        <div class="jd-descrdiv">The person or persons who created this result.</div>
   
   </td></tr>
 
@@ -1035,9 +1035,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setBestRating(java.lang.String)">setBestRating</a></span>(String bestRating)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setBestRating(java.lang.String)">setBestRating</a></span>(<a href="/reference/java/lang/String.html">String</a> bestRating)</nobr>
         
-        <div class="jd-descrdiv">Best possible rating value.</div>
+        <div class="jd-descrdiv">Best possible rating value that a result might obtain.</div>
   
   </td></tr>
 
@@ -1053,7 +1053,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setBirthDate(java.lang.String)">setBirthDate</a></span>(String birthDate)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setBirthDate(java.lang.String)">setBirthDate</a></span>(<a href="/reference/java/lang/String.html">String</a> birthDate)</nobr>
         
         <div class="jd-descrdiv">Date of birth.</div>
   
@@ -1089,7 +1089,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setCaption(java.lang.String)">setCaption</a></span>(String caption)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setCaption(java.lang.String)">setCaption</a></span>(<a href="/reference/java/lang/String.html">String</a> caption)</nobr>
         
         <div class="jd-descrdiv">The caption for this object.</div>
   
@@ -1107,7 +1107,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContentSize(java.lang.String)">setContentSize</a></span>(String contentSize)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContentSize(java.lang.String)">setContentSize</a></span>(<a href="/reference/java/lang/String.html">String</a> contentSize)</nobr>
         
         <div class="jd-descrdiv">File size in (mega/kilo) bytes.</div>
   
@@ -1125,7 +1125,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContentUrl(java.lang.String)">setContentUrl</a></span>(String contentUrl)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContentUrl(java.lang.String)">setContentUrl</a></span>(<a href="/reference/java/lang/String.html">String</a> contentUrl)</nobr>
         
         <div class="jd-descrdiv">Actual bytes of the media object, for example the image file or video file.</div>
   
@@ -1143,9 +1143,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContributor(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setContributor</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; contributor)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setContributor(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setContributor</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; contributor)</nobr>
         
-        <div class="jd-descrdiv">The list of contributors for this scope.</div>
+        <div class="jd-descrdiv">A list of contributors to this result.</div>
   
   </td></tr>
 
@@ -1161,9 +1161,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDateCreated(java.lang.String)">setDateCreated</a></span>(String dateCreated)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDateCreated(java.lang.String)">setDateCreated</a></span>(<a href="/reference/java/lang/String.html">String</a> dateCreated)</nobr>
         
-        <div class="jd-descrdiv">The date this scope was created.</div>
+        <div class="jd-descrdiv">The date the result was created such as the date that a review was first created.</div>
   
   </td></tr>
 
@@ -1179,9 +1179,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDateModified(java.lang.String)">setDateModified</a></span>(String dateModified)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDateModified(java.lang.String)">setDateModified</a></span>(<a href="/reference/java/lang/String.html">String</a> dateModified)</nobr>
         
-        <div class="jd-descrdiv">The date this scope was last modified.</div>
+        <div class="jd-descrdiv">The date the result was last modified such as the date that a review was last edited.</div>
   
   </td></tr>
 
@@ -1197,9 +1197,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDatePublished(java.lang.String)">setDatePublished</a></span>(String datePublished)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDatePublished(java.lang.String)">setDatePublished</a></span>(<a href="/reference/java/lang/String.html">String</a> datePublished)</nobr>
         
-        <div class="jd-descrdiv">The initial date this scope was published.</div>
+        <div class="jd-descrdiv">The initial date that the result was published.</div>
   
   </td></tr>
 
@@ -1215,9 +1215,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDescription(java.lang.String)">setDescription</a></span>(String description)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDescription(java.lang.String)">setDescription</a></span>(<a href="/reference/java/lang/String.html">String</a> description)</nobr>
         
-        <div class="jd-descrdiv">The string describing the content of this scope.</div>
+        <div class="jd-descrdiv">The string that describes the content of the result.</div>
   
   </td></tr>
 
@@ -1233,7 +1233,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDuration(java.lang.String)">setDuration</a></span>(String duration)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setDuration(java.lang.String)">setDuration</a></span>(<a href="/reference/java/lang/String.html">String</a> duration)</nobr>
         
         <div class="jd-descrdiv">The duration of the item (movie, audio recording, event, etc.) in ISO 8601 date format.</div>
   
@@ -1251,7 +1251,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setEmbedUrl(java.lang.String)">setEmbedUrl</a></span>(String embedUrl)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setEmbedUrl(java.lang.String)">setEmbedUrl</a></span>(<a href="/reference/java/lang/String.html">String</a> embedUrl)</nobr>
         
         <div class="jd-descrdiv">A URL pointing to a player for a specific video.</div>
   
@@ -1269,7 +1269,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setEndDate(java.lang.String)">setEndDate</a></span>(String endDate)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setEndDate(java.lang.String)">setEndDate</a></span>(<a href="/reference/java/lang/String.html">String</a> endDate)</nobr>
         
         <div class="jd-descrdiv">The end date and time of the event (in ISO 8601 date format).</div>
   
@@ -1287,7 +1287,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setFamilyName(java.lang.String)">setFamilyName</a></span>(String familyName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setFamilyName(java.lang.String)">setFamilyName</a></span>(<a href="/reference/java/lang/String.html">String</a> familyName)</nobr>
         
         <div class="jd-descrdiv">Family name.</div>
   
@@ -1305,7 +1305,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setGender(java.lang.String)">setGender</a></span>(String gender)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setGender(java.lang.String)">setGender</a></span>(<a href="/reference/java/lang/String.html">String</a> gender)</nobr>
         
         <div class="jd-descrdiv">Gender of the person.</div>
   
@@ -1341,7 +1341,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setGivenName(java.lang.String)">setGivenName</a></span>(String givenName)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setGivenName(java.lang.String)">setGivenName</a></span>(<a href="/reference/java/lang/String.html">String</a> givenName)</nobr>
         
         <div class="jd-descrdiv">Given name.</div>
   
@@ -1359,7 +1359,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setHeight(java.lang.String)">setHeight</a></span>(String height)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setHeight(java.lang.String)">setHeight</a></span>(<a href="/reference/java/lang/String.html">String</a> height)</nobr>
         
         <div class="jd-descrdiv">The height of the media object.</div>
   
@@ -1377,9 +1377,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setId(java.lang.String)">setId</a></span>(String id)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setId(java.lang.String)">setId</a></span>(<a href="/reference/java/lang/String.html">String</a> id)</nobr>
         
-        <div class="jd-descrdiv">The id for this item scope.</div>
+        <div class="jd-descrdiv">An identifier for the target.</div>
   
   </td></tr>
 
@@ -1395,9 +1395,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setImage(java.lang.String)">setImage</a></span>(String image)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setImage(java.lang.String)">setImage</a></span>(<a href="/reference/java/lang/String.html">String</a> image)</nobr>
         
-        <div class="jd-descrdiv">A url to the image for this scope.</div>
+        <div class="jd-descrdiv">A URL to the image that represents this result.</div>
   
   </td></tr>
 
@@ -1485,9 +1485,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setName(java.lang.String)">setName</a></span>(String name)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setName(java.lang.String)">setName</a></span>(<a href="/reference/java/lang/String.html">String</a> name)</nobr>
         
-        <div class="jd-descrdiv">The name of this scope.</div>
+        <div class="jd-descrdiv">The name of the result.</div>
   
   </td></tr>
 
@@ -1521,7 +1521,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPerformers(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setPerformers</a></span>(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; performers)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPerformers(java.util.List<com.google.android.gms.plus.model.moments.ItemScope>)">setPerformers</a></span>(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; performers)</nobr>
         
         <div class="jd-descrdiv">The main performer or performers of the event-for example, a presenter, musician, or
  actor.</div>
@@ -1540,9 +1540,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPlayerType(java.lang.String)">setPlayerType</a></span>(String playerType)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPlayerType(java.lang.String)">setPlayerType</a></span>(<a href="/reference/java/lang/String.html">String</a> playerType)</nobr>
         
-        <div class="jd-descrdiv">Player type required-for example, Flash or Silverlight.</div>
+        <div class="jd-descrdiv">Player type that is required.</div>
   
   </td></tr>
 
@@ -1558,7 +1558,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPostOfficeBoxNumber(java.lang.String)">setPostOfficeBoxNumber</a></span>(String postOfficeBoxNumber)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPostOfficeBoxNumber(java.lang.String)">setPostOfficeBoxNumber</a></span>(<a href="/reference/java/lang/String.html">String</a> postOfficeBoxNumber)</nobr>
         
         <div class="jd-descrdiv">Post office box number.</div>
   
@@ -1576,7 +1576,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPostalCode(java.lang.String)">setPostalCode</a></span>(String postalCode)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setPostalCode(java.lang.String)">setPostalCode</a></span>(<a href="/reference/java/lang/String.html">String</a> postalCode)</nobr>
         
         <div class="jd-descrdiv">Postal code.</div>
   
@@ -1594,7 +1594,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setRatingValue(java.lang.String)">setRatingValue</a></span>(String ratingValue)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setRatingValue(java.lang.String)">setRatingValue</a></span>(<a href="/reference/java/lang/String.html">String</a> ratingValue)</nobr>
         
         <div class="jd-descrdiv">Rating value.</div>
   
@@ -1630,7 +1630,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setStartDate(java.lang.String)">setStartDate</a></span>(String startDate)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setStartDate(java.lang.String)">setStartDate</a></span>(<a href="/reference/java/lang/String.html">String</a> startDate)</nobr>
         
         <div class="jd-descrdiv">The start date and time of the event (in ISO 8601 date format).</div>
   
@@ -1648,7 +1648,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setStreetAddress(java.lang.String)">setStreetAddress</a></span>(String streetAddress)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setStreetAddress(java.lang.String)">setStreetAddress</a></span>(<a href="/reference/java/lang/String.html">String</a> streetAddress)</nobr>
         
         <div class="jd-descrdiv">Street address.</div>
   
@@ -1666,9 +1666,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setText(java.lang.String)">setText</a></span>(String text)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setText(java.lang.String)">setText</a></span>(<a href="/reference/java/lang/String.html">String</a> text)</nobr>
         
-        <div class="jd-descrdiv">Comment text, review text, etc.</div>
+        <div class="jd-descrdiv">The text that is the result of the app activity.</div>
   
   </td></tr>
 
@@ -1702,9 +1702,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setThumbnailUrl(java.lang.String)">setThumbnailUrl</a></span>(String thumbnailUrl)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setThumbnailUrl(java.lang.String)">setThumbnailUrl</a></span>(<a href="/reference/java/lang/String.html">String</a> thumbnailUrl)</nobr>
         
-        <div class="jd-descrdiv">A url to a thumbnail image for this scope.</div>
+        <div class="jd-descrdiv">A URL to a thumbnail image that represents this result.</div>
   
   </td></tr>
 
@@ -1720,7 +1720,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setTickerSymbol(java.lang.String)">setTickerSymbol</a></span>(String tickerSymbol)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setTickerSymbol(java.lang.String)">setTickerSymbol</a></span>(<a href="/reference/java/lang/String.html">String</a> tickerSymbol)</nobr>
         
         <div class="jd-descrdiv">The exchange traded instrument associated with a Corporation object.</div>
   
@@ -1738,9 +1738,10 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setType(java.lang.String)">setType</a></span>(String type)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setType(java.lang.String)">setType</a></span>(<a href="/reference/java/lang/String.html">String</a> type)</nobr>
         
-        <div class="jd-descrdiv">The item type.</div>
+        <div class="jd-descrdiv">The schema.org URL that best describes the referenced target and matches the type of
+ moment.</div>
   
   </td></tr>
 
@@ -1756,9 +1757,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setUrl(java.lang.String)">setUrl</a></span>(String url)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setUrl(java.lang.String)">setUrl</a></span>(<a href="/reference/java/lang/String.html">String</a> url)</nobr>
         
-        <div class="jd-descrdiv">A URL for the item upon which the action was performed.</div>
+        <div class="jd-descrdiv">The URL that points to the result object.</div>
   
   </td></tr>
 
@@ -1774,7 +1775,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setWidth(java.lang.String)">setWidth</a></span>(String width)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setWidth(java.lang.String)">setWidth</a></span>(<a href="/reference/java/lang/String.html">String</a> width)</nobr>
         
         <div class="jd-descrdiv">The width of the media object.</div>
   
@@ -1792,9 +1793,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setWorstRating(java.lang.String)">setWorstRating</a></span>(String worstRating)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html#setWorstRating(java.lang.String)">setWorstRating</a></span>(<a href="/reference/java/lang/String.html">String</a> worstRating)</nobr>
         
-        <div class="jd-descrdiv">Worst possible rating value.</div>
+        <div class="jd-descrdiv">Worst possible rating value that a result might obtain.</div>
   
   </td></tr>
 
@@ -1822,7 +1823,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -1841,7 +1842,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1860,7 +1861,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1889,7 +1890,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1953,7 +1954,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -2167,7 +2168,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAdditionalName</span>
-      <span class="normal">(List&lt;String&gt; additionalName)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt; additionalName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2227,7 +2228,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAddressCountry</span>
-      <span class="normal">(String addressCountry)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> addressCountry)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2257,7 +2258,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAddressLocality</span>
-      <span class="normal">(String addressLocality)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> addressLocality)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2287,7 +2288,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAddressRegion</span>
-      <span class="normal">(String addressRegion)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> addressRegion)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2317,7 +2318,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAssociated_media</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; associated_media)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; associated_media)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2377,7 +2378,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAttendees</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; attendees)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; attendees)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2437,7 +2438,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setAuthor</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; author)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; author)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2447,7 +2448,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The person who created this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The person or persons who created this result. In the example of restaurant reviews, this
+ might be the reviewer's name.
 </p></div>
 
     </div>
@@ -2467,7 +2469,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setBestRating</span>
-      <span class="normal">(String bestRating)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> bestRating)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2477,7 +2479,9 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Best possible rating value.
+  <div class="jd-tagdata jd-tagdescr"><p>Best possible rating value that a result might obtain. This property defines the upper
+ bound for the ratingValue. For example, you might have a 5 star rating scale, you would
+ provide 5 as the value for this property.
 </p></div>
 
     </div>
@@ -2497,7 +2501,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setBirthDate</span>
-      <span class="normal">(String birthDate)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> birthDate)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2557,7 +2561,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setCaption</span>
-      <span class="normal">(String caption)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> caption)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2587,7 +2591,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setContentSize</span>
-      <span class="normal">(String contentSize)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> contentSize)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2617,7 +2621,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setContentUrl</span>
-      <span class="normal">(String contentUrl)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> contentUrl)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2647,7 +2651,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setContributor</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; contributor)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; contributor)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2657,7 +2661,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The list of contributors for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A list of contributors to this result.
 </p></div>
 
     </div>
@@ -2677,7 +2681,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setDateCreated</span>
-      <span class="normal">(String dateCreated)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> dateCreated)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2687,7 +2691,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The date this scope was created.
+  <div class="jd-tagdata jd-tagdescr"><p>The date the result was created such as the date that a review was first created.
 </p></div>
 
     </div>
@@ -2707,7 +2711,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setDateModified</span>
-      <span class="normal">(String dateModified)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> dateModified)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2717,7 +2721,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The date this scope was last modified.
+  <div class="jd-tagdata jd-tagdescr"><p>The date the result was last modified such as the date that a review was last edited.
 </p></div>
 
     </div>
@@ -2737,7 +2741,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setDatePublished</span>
-      <span class="normal">(String datePublished)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> datePublished)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2747,7 +2751,10 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The initial date this scope was published.
+  <div class="jd-tagdata jd-tagdescr"><p>The initial date that the result was published. For example, a user writes a comment on a
+ blog, which has a result.dateCreated of when they submit it. If the blog users comment
+ moderation, the result.datePublished value would match the date when the owner approved
+ the message.
 </p></div>
 
     </div>
@@ -2767,7 +2774,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setDescription</span>
-      <span class="normal">(String description)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> description)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2777,7 +2784,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The string describing the content of this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The string that describes the content of the result.
 </p></div>
 
     </div>
@@ -2797,7 +2804,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setDuration</span>
-      <span class="normal">(String duration)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> duration)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2827,7 +2834,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setEmbedUrl</span>
-      <span class="normal">(String embedUrl)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> embedUrl)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2858,7 +2865,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setEndDate</span>
-      <span class="normal">(String endDate)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> endDate)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2888,7 +2895,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setFamilyName</span>
-      <span class="normal">(String familyName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> familyName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2898,8 +2905,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Family name. In the U.S., the last name of an Person. This can be used along with
- givenName instead of the Name property.
+  <div class="jd-tagdata jd-tagdescr"><p>Family name. This property can be used with givenName instead of the name property.
 </p></div>
 
     </div>
@@ -2919,7 +2925,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setGender</span>
-      <span class="normal">(String gender)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> gender)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2979,7 +2985,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setGivenName</span>
-      <span class="normal">(String givenName)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> givenName)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -2989,8 +2995,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Given name. In the U.S., the first name of a Person. This can be used along with
- familyName instead of the Name property.
+  <div class="jd-tagdata jd-tagdescr"><p>Given name. This property can be used with familyName instead of the name property.
 </p></div>
 
     </div>
@@ -3010,7 +3015,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setHeight</span>
-      <span class="normal">(String height)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> height)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3040,7 +3045,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setId</span>
-      <span class="normal">(String id)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3050,7 +3055,9 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The id for this item scope.
+  <div class="jd-tagdata jd-tagdescr"><p>An identifier for the target. Your app can choose how to identify targets. The target.id
+ is required if you are writing an activity that does not have a corresponding web page or
+ target.url property.
 </p></div>
 
     </div>
@@ -3070,7 +3077,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setImage</span>
-      <span class="normal">(String image)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> image)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3080,7 +3087,9 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A url to the image for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A URL to the image that represents this result. For example, if a user writes a review of
+ a restaurant and attaches a photo of their meal, you might use that photo as the
+ result.image.
 </p></div>
 
     </div>
@@ -3220,7 +3229,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setName</span>
-      <span class="normal">(String name)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> name)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3230,7 +3239,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The name of this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The name of the result. In the example of a restaurant review, this might be the summary
+ the user gave their review such as "Great ambiance, but overpriced."
 </p></div>
 
     </div>
@@ -3280,7 +3290,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setPerformers</span>
-      <span class="normal">(List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; performers)</span>
+      <span class="normal">(<a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt; performers)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3311,7 +3321,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setPlayerType</span>
-      <span class="normal">(String playerType)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> playerType)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3321,7 +3331,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Player type required-for example, Flash or Silverlight.
+  <div class="jd-tagdata jd-tagdescr"><p>Player type that is required. For example: Flash or Silverlight.
 </p></div>
 
     </div>
@@ -3341,7 +3351,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setPostOfficeBoxNumber</span>
-      <span class="normal">(String postOfficeBoxNumber)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> postOfficeBoxNumber)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3371,7 +3381,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setPostalCode</span>
-      <span class="normal">(String postalCode)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> postalCode)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3401,7 +3411,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setRatingValue</span>
-      <span class="normal">(String ratingValue)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> ratingValue)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3461,7 +3471,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setStartDate</span>
-      <span class="normal">(String startDate)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> startDate)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3491,7 +3501,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setStreetAddress</span>
-      <span class="normal">(String streetAddress)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> streetAddress)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3521,7 +3531,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setText</span>
-      <span class="normal">(String text)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> text)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3531,7 +3541,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Comment text, review text, etc.
+  <div class="jd-tagdata jd-tagdescr"><p>The text that is the result of the app activity. For example, if a user leaves a review
+ of a restaurant, this might be the text of the review.
 </p></div>
 
     </div>
@@ -3581,7 +3592,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setThumbnailUrl</span>
-      <span class="normal">(String thumbnailUrl)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> thumbnailUrl)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3591,7 +3602,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A url to a thumbnail image for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A URL to a thumbnail image that represents this result.
 </p></div>
 
     </div>
@@ -3611,7 +3622,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setTickerSymbol</span>
-      <span class="normal">(String tickerSymbol)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> tickerSymbol)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3644,7 +3655,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setType</span>
-      <span class="normal">(String type)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> type)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3654,7 +3665,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The item type.
+  <div class="jd-tagdata jd-tagdescr"><p>The schema.org URL that best describes the referenced target and matches the type of
+ moment.
 </p></div>
 
     </div>
@@ -3674,7 +3686,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setUrl</span>
-      <span class="normal">(String url)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> url)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3684,7 +3696,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A URL for the item upon which the action was performed.
+  <div class="jd-tagdata jd-tagdescr"><p>The URL that points to the result object. For example, a permalink directly to a
+ restaurant reviewer's comment.
 </p></div>
 
     </div>
@@ -3704,7 +3717,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setWidth</span>
-      <span class="normal">(String width)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> width)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3734,7 +3747,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html">ItemScope.Builder</a>
       </span>
       <span class="sympad">setWorstRating</span>
-      <span class="normal">(String worstRating)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> worstRating)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -3744,7 +3757,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Worst possible rating value.
+  <div class="jd-tagdata jd-tagdescr"><p>Worst possible rating value that a result might obtain. This property defines the lower
+ bound for the ratingValue.
 </p></div>
 
     </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
index 30f4a02..bef3573 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
@@ -818,7 +818,7 @@
             
             
             
-            List&lt;String&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAdditionalName()">getAdditionalName</a></span>()</nobr>
@@ -854,7 +854,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAddressCountry()">getAddressCountry</a></span>()</nobr>
@@ -872,7 +872,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAddressLocality()">getAddressLocality</a></span>()</nobr>
@@ -890,7 +890,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAddressRegion()">getAddressRegion</a></span>()</nobr>
@@ -908,7 +908,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAssociated_media()">getAssociated_media</a></span>()</nobr>
@@ -944,7 +944,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAttendees()">getAttendees</a></span>()</nobr>
@@ -980,12 +980,12 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getAuthor()">getAuthor</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The person who created this scope.</div>
+        <div class="jd-descrdiv">The person or persons who created this result.</div>
   
   </td></tr>
 
@@ -998,12 +998,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getBestRating()">getBestRating</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Best possible rating value.</div>
+        <div class="jd-descrdiv">Best possible rating value that a result might obtain.</div>
   
   </td></tr>
 
@@ -1016,7 +1016,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getBirthDate()">getBirthDate</a></span>()</nobr>
@@ -1052,7 +1052,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getCaption()">getCaption</a></span>()</nobr>
@@ -1070,7 +1070,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getContentSize()">getContentSize</a></span>()</nobr>
@@ -1088,7 +1088,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getContentUrl()">getContentUrl</a></span>()</nobr>
@@ -1106,12 +1106,12 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getContributor()">getContributor</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The list of contributors for this scope.</div>
+        <div class="jd-descrdiv">A list of contributors to this result.</div>
   
   </td></tr>
 
@@ -1124,12 +1124,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getDateCreated()">getDateCreated</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The date this scope was created.</div>
+        <div class="jd-descrdiv">The date the result was created such as the date that a review was first created.</div>
   
   </td></tr>
 
@@ -1142,12 +1142,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getDateModified()">getDateModified</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The date this scope was last modified.</div>
+        <div class="jd-descrdiv">The date the result was last modified such as the date that a review was last edited.</div>
   
   </td></tr>
 
@@ -1160,12 +1160,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getDatePublished()">getDatePublished</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The initial date this scope was published.</div>
+        <div class="jd-descrdiv">The initial date that the result was published.</div>
   
   </td></tr>
 
@@ -1178,12 +1178,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getDescription()">getDescription</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The string describing the content of this scope.</div>
+        <div class="jd-descrdiv">The string that describes the content of the result.</div>
   
   </td></tr>
 
@@ -1196,7 +1196,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getDuration()">getDuration</a></span>()</nobr>
@@ -1214,7 +1214,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getEmbedUrl()">getEmbedUrl</a></span>()</nobr>
@@ -1232,7 +1232,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getEndDate()">getEndDate</a></span>()</nobr>
@@ -1250,7 +1250,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getFamilyName()">getFamilyName</a></span>()</nobr>
@@ -1268,7 +1268,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getGender()">getGender</a></span>()</nobr>
@@ -1304,7 +1304,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getGivenName()">getGivenName</a></span>()</nobr>
@@ -1322,7 +1322,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getHeight()">getHeight</a></span>()</nobr>
@@ -1340,12 +1340,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getId()">getId</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The id for this item scope.</div>
+        <div class="jd-descrdiv">An identifier for the target.</div>
   
   </td></tr>
 
@@ -1358,12 +1358,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getImage()">getImage</a></span>()</nobr>
         
-        <div class="jd-descrdiv">A url to the image for this scope.</div>
+        <div class="jd-descrdiv">A URL to the image that represents this result.</div>
   
   </td></tr>
 
@@ -1448,12 +1448,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getName()">getName</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The name of this scope.</div>
+        <div class="jd-descrdiv">The name of the result.</div>
   
   </td></tr>
 
@@ -1484,7 +1484,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getPerformers()">getPerformers</a></span>()</nobr>
@@ -1502,12 +1502,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getPlayerType()">getPlayerType</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Player type required-for example, Flash or Silverlight.</div>
+        <div class="jd-descrdiv">Player type that is required.</div>
   
   </td></tr>
 
@@ -1520,7 +1520,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getPostOfficeBoxNumber()">getPostOfficeBoxNumber</a></span>()</nobr>
@@ -1538,7 +1538,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getPostalCode()">getPostalCode</a></span>()</nobr>
@@ -1556,7 +1556,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getRatingValue()">getRatingValue</a></span>()</nobr>
@@ -1592,7 +1592,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getStartDate()">getStartDate</a></span>()</nobr>
@@ -1610,7 +1610,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getStreetAddress()">getStreetAddress</a></span>()</nobr>
@@ -1628,12 +1628,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getText()">getText</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Comment text, review text, etc.</div>
+        <div class="jd-descrdiv">The text that is the result of the app activity.</div>
   
   </td></tr>
 
@@ -1664,12 +1664,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getThumbnailUrl()">getThumbnailUrl</a></span>()</nobr>
         
-        <div class="jd-descrdiv">A url to a thumbnail image for this scope.</div>
+        <div class="jd-descrdiv">A URL to a thumbnail image that represents this result.</div>
   
   </td></tr>
 
@@ -1682,7 +1682,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getTickerSymbol()">getTickerSymbol</a></span>()</nobr>
@@ -1700,12 +1700,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getType()">getType</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The item type.</div>
+        <div class="jd-descrdiv">The schema.org URL that best describes the referenced target and matches the type of moment.</div>
   
   </td></tr>
 
@@ -1718,12 +1718,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getUrl()">getUrl</a></span>()</nobr>
         
-        <div class="jd-descrdiv">A URL for the item upon which the action was performed.</div>
+        <div class="jd-descrdiv">The URL that points to the result object.</div>
   
   </td></tr>
 
@@ -1736,7 +1736,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getWidth()">getWidth</a></span>()</nobr>
@@ -1754,12 +1754,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html#getWorstRating()">getWorstRating</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Worst possible rating value.</div>
+        <div class="jd-descrdiv">Worst possible rating value that a result might obtain.</div>
   
   </td></tr>
 
@@ -2788,6 +2788,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -2876,7 +2894,7 @@
          
         abstract 
          
-        List&lt;String&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/java/lang/String.html">String</a>&gt;
       </span>
       <span class="sympad">getAdditionalName</span>
       <span class="normal">()</span>
@@ -2936,7 +2954,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAddressCountry</span>
       <span class="normal">()</span>
@@ -2966,7 +2984,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAddressLocality</span>
       <span class="normal">()</span>
@@ -2996,7 +3014,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAddressRegion</span>
       <span class="normal">()</span>
@@ -3026,7 +3044,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
       </span>
       <span class="sympad">getAssociated_media</span>
       <span class="normal">()</span>
@@ -3086,7 +3104,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
       </span>
       <span class="sympad">getAttendees</span>
       <span class="normal">()</span>
@@ -3146,7 +3164,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
       </span>
       <span class="sympad">getAuthor</span>
       <span class="normal">()</span>
@@ -3159,7 +3177,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The person who created this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The person or persons who created this result. In the example of restaurant reviews, this
+ might be the reviewer's name.
 </p></div>
 
     </div>
@@ -3176,7 +3195,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getBestRating</span>
       <span class="normal">()</span>
@@ -3189,7 +3208,9 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Best possible rating value.
+  <div class="jd-tagdata jd-tagdescr"><p>Best possible rating value that a result might obtain. This property defines the upper bound
+ for the ratingValue. For example, you might have a 5 star rating scale, you would provide 5
+ as the value for this property.
 </p></div>
 
     </div>
@@ -3206,7 +3227,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getBirthDate</span>
       <span class="normal">()</span>
@@ -3266,7 +3287,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCaption</span>
       <span class="normal">()</span>
@@ -3296,7 +3317,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getContentSize</span>
       <span class="normal">()</span>
@@ -3326,7 +3347,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getContentUrl</span>
       <span class="normal">()</span>
@@ -3356,7 +3377,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
       </span>
       <span class="sympad">getContributor</span>
       <span class="normal">()</span>
@@ -3369,7 +3390,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The list of contributors for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A list of contributors to this result.
 </p></div>
 
     </div>
@@ -3386,7 +3407,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDateCreated</span>
       <span class="normal">()</span>
@@ -3399,7 +3420,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The date this scope was created.
+  <div class="jd-tagdata jd-tagdescr"><p>The date the result was created such as the date that a review was first created.
 </p></div>
 
     </div>
@@ -3416,7 +3437,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDateModified</span>
       <span class="normal">()</span>
@@ -3429,7 +3450,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The date this scope was last modified.
+  <div class="jd-tagdata jd-tagdescr"><p>The date the result was last modified such as the date that a review was last edited.
 </p></div>
 
     </div>
@@ -3446,7 +3467,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDatePublished</span>
       <span class="normal">()</span>
@@ -3459,7 +3480,10 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The initial date this scope was published.
+  <div class="jd-tagdata jd-tagdescr"><p>The initial date that the result was published. For example, a user writes a comment on a
+ blog, which has a result.dateCreated of when they submit it. If the blog users comment
+ moderation, the result.datePublished value would match the date when the owner approved the
+ message.
 </p></div>
 
     </div>
@@ -3476,7 +3500,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -3489,7 +3513,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The string describing the content of this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The string that describes the content of the result.
 </p></div>
 
     </div>
@@ -3506,7 +3530,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDuration</span>
       <span class="normal">()</span>
@@ -3536,7 +3560,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getEmbedUrl</span>
       <span class="normal">()</span>
@@ -3567,7 +3591,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getEndDate</span>
       <span class="normal">()</span>
@@ -3597,7 +3621,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getFamilyName</span>
       <span class="normal">()</span>
@@ -3610,8 +3634,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Family name. In the U.S., the last name of an Person. This can be used along with givenName
- instead of the Name property.
+  <div class="jd-tagdata jd-tagdescr"><p>Family name. This property can be used with givenName instead of the name property.
 </p></div>
 
     </div>
@@ -3628,7 +3651,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getGender</span>
       <span class="normal">()</span>
@@ -3688,7 +3711,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getGivenName</span>
       <span class="normal">()</span>
@@ -3701,8 +3724,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Given name. In the U.S., the first name of a Person. This can be used along with familyName
- instead of the Name property.
+  <div class="jd-tagdata jd-tagdescr"><p>Given name. This property can be used with familyName instead of the name property.
 </p></div>
 
     </div>
@@ -3719,7 +3741,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getHeight</span>
       <span class="normal">()</span>
@@ -3749,7 +3771,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -3762,7 +3784,9 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The id for this item scope.
+  <div class="jd-tagdata jd-tagdescr"><p>An identifier for the target. Your app can choose how to identify targets. The target.id is
+ required if you are writing an activity that does not have a corresponding web page or
+ target.url property.
 </p></div>
 
     </div>
@@ -3779,7 +3803,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getImage</span>
       <span class="normal">()</span>
@@ -3792,7 +3816,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A url to the image for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A URL to the image that represents this result. For example, if a user writes a review of a
+ restaurant and attaches a photo of their meal, you might use that photo as the result.image.
 </p></div>
 
     </div>
@@ -3929,7 +3954,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getName</span>
       <span class="normal">()</span>
@@ -3942,7 +3967,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The name of this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>The name of the result. In the example of a restaurant review, this might be the summary the
+ user gave their review such as "Great ambiance, but overpriced."
 </p></div>
 
     </div>
@@ -3989,7 +4015,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a>&gt;
       </span>
       <span class="sympad">getPerformers</span>
       <span class="normal">()</span>
@@ -4019,7 +4045,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPlayerType</span>
       <span class="normal">()</span>
@@ -4032,7 +4058,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Player type required-for example, Flash or Silverlight.
+  <div class="jd-tagdata jd-tagdescr"><p>Player type that is required. For example: Flash or Silverlight.
 </p></div>
 
     </div>
@@ -4049,7 +4075,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPostOfficeBoxNumber</span>
       <span class="normal">()</span>
@@ -4079,7 +4105,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getPostalCode</span>
       <span class="normal">()</span>
@@ -4109,7 +4135,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getRatingValue</span>
       <span class="normal">()</span>
@@ -4169,7 +4195,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getStartDate</span>
       <span class="normal">()</span>
@@ -4199,7 +4225,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getStreetAddress</span>
       <span class="normal">()</span>
@@ -4229,7 +4255,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getText</span>
       <span class="normal">()</span>
@@ -4242,7 +4268,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Comment text, review text, etc.
+  <div class="jd-tagdata jd-tagdescr"><p>The text that is the result of the app activity. For example, if a user leaves a review of a
+ restaurant, this might be the text of the review.
 </p></div>
 
     </div>
@@ -4289,7 +4316,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getThumbnailUrl</span>
       <span class="normal">()</span>
@@ -4302,7 +4329,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A url to a thumbnail image for this scope.
+  <div class="jd-tagdata jd-tagdescr"><p>A URL to a thumbnail image that represents this result.
 </p></div>
 
     </div>
@@ -4319,7 +4346,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTickerSymbol</span>
       <span class="normal">()</span>
@@ -4352,7 +4379,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getType</span>
       <span class="normal">()</span>
@@ -4365,7 +4392,7 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The item type.
+  <div class="jd-tagdata jd-tagdescr"><p>The schema.org URL that best describes the referenced target and matches the type of moment.
 </p></div>
 
     </div>
@@ -4382,7 +4409,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getUrl</span>
       <span class="normal">()</span>
@@ -4395,7 +4422,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A URL for the item upon which the action was performed.
+  <div class="jd-tagdata jd-tagdescr"><p>The URL that points to the result object. For example, a permalink directly to a restaurant
+ reviewer's comment.
 </p></div>
 
     </div>
@@ -4412,7 +4440,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getWidth</span>
       <span class="normal">()</span>
@@ -4442,7 +4470,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getWorstRating</span>
       <span class="normal">()</span>
@@ -4455,7 +4483,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>Worst possible rating value.
+  <div class="jd-tagdata jd-tagdescr"><p>Worst possible rating value that a result might obtain. This property defines the lower bound
+ for the ratingValue.
 </p></div>
 
     </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
index b6f25c6..48200d8 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
@@ -681,7 +681,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -701,7 +701,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -837,7 +837,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setId(java.lang.String)">setId</a></span>(String id)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setId(java.lang.String)">setId</a></span>(<a href="/reference/java/lang/String.html">String</a> id)</nobr>
         
         <div class="jd-descrdiv">The moment ID.</div>
   
@@ -857,8 +857,7 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setResult(com.google.android.gms.plus.model.moments.ItemScope)">setResult</a></span>(<a href="/reference/com/google/android/gms/plus/model/moments/ItemScope.html">ItemScope</a> result)</nobr>
         
-        <div class="jd-descrdiv">The object generated by performing the action on the item
-</div>
+        <div class="jd-descrdiv">The object generated by performing the action on the target.</div>
   
   </td></tr>
 
@@ -874,7 +873,7 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setStartDate(java.lang.String)">setStartDate</a></span>(String startDate)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setStartDate(java.lang.String)">setStartDate</a></span>(<a href="/reference/java/lang/String.html">String</a> startDate)</nobr>
         
         <div class="jd-descrdiv">Time stamp of when the action occurred in RFC3339 format.</div>
   
@@ -910,9 +909,9 @@
             <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setType(java.lang.String)">setType</a></span>(String type)</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html#setType(java.lang.String)">setType</a></span>(<a href="/reference/java/lang/String.html">String</a> type)</nobr>
         
-        <div class="jd-descrdiv">The schema.org activity type.</div>
+        <div class="jd-descrdiv">The Google schema for the type of moment to write.</div>
   
   </td></tr>
 
@@ -940,7 +939,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -959,7 +958,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -978,7 +977,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1007,7 +1006,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1071,7 +1070,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1255,7 +1254,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a>
       </span>
       <span class="sympad">setId</span>
-      <span class="normal">(String id)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> id)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1295,7 +1294,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The object generated by performing the action on the item
+  <div class="jd-tagdata jd-tagdescr"><p>The object generated by performing the action on the target. For example, a user writes a
+ review of a restaurant, the target is the restaurant and the result is the review.
 </p></div>
 
     </div>
@@ -1315,7 +1315,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a>
       </span>
       <span class="sympad">setStartDate</span>
-      <span class="normal">(String startDate)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> startDate)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1375,7 +1375,7 @@
         <a href="/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html">Moment.Builder</a>
       </span>
       <span class="sympad">setType</span>
-      <span class="normal">(String type)</span>
+      <span class="normal">(<a href="/reference/java/lang/String.html">String</a> type)</span>
     </h4>
       <div class="api-level">
         <div></div>
@@ -1385,7 +1385,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The schema.org activity type.
+  <div class="jd-tagdata jd-tagdescr"><p>The Google schema for the type of moment to write. For example,
+ http://schemas.google.com/AddActivity.
 </p></div>
 
     </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
index 536c8b3..eafe059 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
@@ -800,7 +800,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html#getId()">getId</a></span>()</nobr>
@@ -823,8 +823,7 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html#getResult()">getResult</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The object generated by performing the action on the item
-</div>
+        <div class="jd-descrdiv">The object generated by performing the action on the target.</div>
   
   </td></tr>
 
@@ -837,7 +836,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html#getStartDate()">getStartDate</a></span>()</nobr>
@@ -873,12 +872,12 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html#getType()">getType</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The schema.org activity type.</div>
+        <div class="jd-descrdiv">The Google schema for the type of moment to write.</div>
   
   </td></tr>
 
@@ -1025,6 +1024,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1083,7 +1100,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -1126,7 +1143,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The object generated by performing the action on the item
+  <div class="jd-tagdata jd-tagdescr"><p>The object generated by performing the action on the target. For example, a user writes a
+ review of a restaurant, the target is the restaurant and the result is the review.
 </p></div>
 
     </div>
@@ -1143,7 +1161,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getStartDate</span>
       <span class="normal">()</span>
@@ -1203,7 +1221,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getType</span>
       <span class="normal">()</span>
@@ -1216,7 +1234,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>The schema.org activity type.
+  <div class="jd-tagdata jd-tagdescr"><p>The Google schema for the type of moment to write. For example,
+ http://schemas.google.com/AddActivity.
 </p></div>
 
     </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html b/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
index 893a3ee..717689b 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
index cbfdf77..a44d9da 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
@@ -897,6 +897,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Collection.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Collection.html
index 3f0bc2d..5457931 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Collection.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Collection.html
@@ -677,14 +677,11 @@
 
 
 <div class="jd-descr">
-
-
-<h2>Class Overview</h2>
-<p itemprop="articleBody">Constants to declare the collection of people to load.
- <p>
- These constants are used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code>
- method.
-</p>
+<p>
+  <p class="caution"><strong>
+      This interface is deprecated.</strong><br/>
+    No replacement.
+  </p>
 
 
 
@@ -732,7 +729,9 @@
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Collection.html#VISIBLE">VISIBLE</a></td>
-        <td class="jd-descrcol" width="100%">Constant used to load people who this user has added to one or more circles.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    No replacement.</em></td>
     </tr>
     
     
@@ -804,12 +803,12 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constant used to load people who this user has added to one or more circles.
-
- This constant is used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code>
- method.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    No replacement.
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
index 51eeb59..052bb10 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
@@ -899,6 +899,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
index 4c06fde..41388a8 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
@@ -799,7 +799,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html#getUrl()">getUrl</a></span>()</nobr>
@@ -933,6 +933,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1021,7 +1039,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getUrl</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
index eba53dc..ed23f8d 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -812,7 +812,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -831,7 +831,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -850,7 +850,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -879,7 +879,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -943,7 +943,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
index dba9da9..82154b0 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
@@ -980,6 +980,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html
index c20c28c..5e087c3 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -826,7 +826,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -845,7 +845,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -864,7 +864,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -893,7 +893,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -957,7 +957,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.html
index a20dfbd..5931184 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Emails.html
@@ -818,7 +818,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Emails.html#getValue()">getValue</a></span>()</nobr>
@@ -952,6 +952,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1043,7 +1061,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getValue</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
index 98d79a6..d687f6f 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -826,7 +826,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -845,7 +845,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -864,7 +864,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -893,7 +893,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -957,7 +957,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
index 18daf77..dc62c46 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
@@ -781,7 +781,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Image.html#getUrl()">getUrl</a></span>()</nobr>
@@ -861,6 +861,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -919,7 +937,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getUrl</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
index 64ada12..1e75a78 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
@@ -781,7 +781,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getFamilyName()">getFamilyName</a></span>()</nobr>
@@ -799,7 +799,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getFormatted()">getFormatted</a></span>()</nobr>
@@ -817,7 +817,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getGivenName()">getGivenName</a></span>()</nobr>
@@ -835,7 +835,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getHonorificPrefix()">getHonorificPrefix</a></span>()</nobr>
@@ -853,7 +853,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getHonorificSuffix()">getHonorificSuffix</a></span>()</nobr>
@@ -871,7 +871,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html#getMiddleName()">getMiddleName</a></span>()</nobr>
@@ -1041,6 +1041,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1099,7 +1117,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getFamilyName</span>
       <span class="normal">()</span>
@@ -1129,7 +1147,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getFormatted</span>
       <span class="normal">()</span>
@@ -1159,7 +1177,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getGivenName</span>
       <span class="normal">()</span>
@@ -1189,7 +1207,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getHonorificPrefix</span>
       <span class="normal">()</span>
@@ -1219,7 +1237,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getHonorificSuffix</span>
       <span class="normal">()</span>
@@ -1249,7 +1267,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getMiddleName</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
index 19e6a65..3bada21 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -819,7 +819,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -838,7 +838,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -857,7 +857,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -886,7 +886,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -950,7 +950,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html
index 640f8f6..1148580 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html
@@ -677,14 +677,12 @@
 
 
 <div class="jd-descr">
+<p>
+  <p class="caution"><strong>
+      This interface is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html">PlusClient.OrderBy</a></code>.
 
-
-<h2>Class Overview</h2>
-<p itemprop="articleBody">Constants to declare the order to return people in.
- <p>
- These constants are used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code>
- method.
-</p>
+  </p>
 
 
 
@@ -732,14 +730,20 @@
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></td>
-        <td class="jd-descrcol" width="100%">Constant used to load people ordered by their display name.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code>.
+</em></td>
     </tr>
     
     
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html#BEST">BEST</a></td>
-        <td class="jd-descrcol" width="100%">Constant used to load people ordered based on the relevance to the viewer.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#BEST">BEST</a></code>.
+</em></td>
     </tr>
     
     
@@ -811,12 +815,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constant used to load people ordered by their display name.
- <p>
- This constant is used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code>
- method.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#ALPHABETICAL">ALPHABETICAL</a></code>.
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
@@ -853,12 +858,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Constant used to load people ordered based on the relevance to the viewer.
- <p>
- This constant is used with the <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, int)">loadPeople(PlusClient.OnPeopleLoadedListener, int)</a></code>
- method.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html#BEST">BEST</a></code>.
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
index df52100..6ade16b 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -819,7 +819,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -838,7 +838,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -857,7 +857,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -886,7 +886,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -950,7 +950,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
index e40148b..6ced251 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
@@ -800,7 +800,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getDepartment()">getDepartment</a></span>()</nobr>
@@ -818,7 +818,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getDescription()">getDescription</a></span>()</nobr>
@@ -836,7 +836,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getEndDate()">getEndDate</a></span>()</nobr>
@@ -854,7 +854,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getLocation()">getLocation</a></span>()</nobr>
@@ -872,7 +872,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getName()">getName</a></span>()</nobr>
@@ -890,7 +890,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getStartDate()">getStartDate</a></span>()</nobr>
@@ -908,7 +908,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html#getTitle()">getTitle</a></span>()</nobr>
@@ -1169,6 +1169,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1227,7 +1245,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDepartment</span>
       <span class="normal">()</span>
@@ -1257,7 +1275,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDescription</span>
       <span class="normal">()</span>
@@ -1287,7 +1305,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getEndDate</span>
       <span class="normal">()</span>
@@ -1317,7 +1335,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getLocation</span>
       <span class="normal">()</span>
@@ -1347,7 +1365,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getName</span>
       <span class="normal">()</span>
@@ -1377,7 +1395,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getStartDate</span>
       <span class="normal">()</span>
@@ -1407,7 +1425,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTitle</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
index d242d76..7778434 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
@@ -777,7 +777,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html#getValue()">getValue</a></span>()</nobr>
@@ -893,6 +893,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -951,7 +969,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getValue</span>
       <span class="normal">()</span>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
index 53f9cab..9221a553 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -868,7 +868,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -887,7 +887,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -906,7 +906,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -935,7 +935,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -999,7 +999,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
index fe0610f..70d0499 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
@@ -678,7 +678,7 @@
 
 
   
-    extends Object<br/>
+    extends <a href="/reference/java/lang/Object.html">Object</a><br/>
   
   
   
@@ -698,7 +698,7 @@
 
     <tr>
          	
-        <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -771,35 +771,68 @@
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#BLOG">BLOG</a></td>
-        <td class="jd-descrcol" width="100%">URL for blog.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    URL for blog (not returned).
+</em></td>
     </tr>
     
     
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
-        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#HOME">HOME</a></td>
-        <td class="jd-descrcol" width="100%">URL for home.</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#CONTRIBUTOR">CONTRIBUTOR</a></td>
+        <td class="jd-descrcol" width="100%">URL for which this person is a contributor to.</td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#HOME">HOME</a></td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    URL for home (not returned).
+</em></td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#OTHER">OTHER</a></td>
         <td class="jd-descrcol" width="100%">Other.</td>
     </tr>
     
     
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#OTHER_PROFILE">OTHER_PROFILE</a></td>
+        <td class="jd-descrcol" width="100%">URL for another profile.</td>
+    </tr>
+    
+    
     <tr class=" api apilevel-" >
         <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#PROFILE">PROFILE</a></td>
-        <td class="jd-descrcol" width="100%">URL for profile.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    URL for profile (not returned).
+</em></td>
     </tr>
     
     
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol">int</td>
+        <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#WEBSITE">WEBSITE</a></td>
+        <td class="jd-descrcol" width="100%">URL for this Google+ Page's primary website.</td>
+    </tr>
+    
+    
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol">int</td>
         <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html#WORK">WORK</a></td>
-        <td class="jd-descrcol" width="100%">URL for work.</td>
+        <td class="jd-descrcol" width="100%"><em>
+      This constant is deprecated.
+    URL for work (not returned).
+</em></td>
     </tr>
     
     
@@ -840,7 +873,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -859,7 +892,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -878,7 +911,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -907,7 +940,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -971,7 +1004,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1081,9 +1114,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>URL for blog.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    URL for blog (not returned).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
@@ -1101,6 +1138,45 @@
 
 
 
+<A NAME="CONTRIBUTOR"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        CONTRIBUTOR
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>URL for which this person is a contributor to.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                6
+                (0x00000006)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 <A NAME="HOME"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1120,9 +1196,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>URL for home.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    URL for home (not returned).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
@@ -1179,6 +1259,45 @@
 
 
 
+<A NAME="OTHER_PROFILE"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        OTHER_PROFILE
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>URL for another profile.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                5
+                (0x00000005)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 <A NAME="PROFILE"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1198,9 +1317,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>URL for profile.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    URL for profile (not returned).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
@@ -1218,6 +1341,45 @@
 
 
 
+<A NAME="WEBSITE"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+        static 
+        final 
+        int
+      </span>
+        WEBSITE
+    </h4>
+      <div class="api-level">
+        
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>URL for this Google+ Page's primary website.
+</p></div>
+
+    
+        <div class="jd-tagdata">
+        <span class="jd-tagtitle">Constant Value: </span>
+        <span>
+            
+                7
+                (0x00000007)
+            
+        </span>
+        </div>
+    
+    </div>
+</div>
+
+
+
 <A NAME="WORK"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1237,9 +1399,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>URL for work.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This constant is deprecated.</strong><br/>
+    URL for work (not returned).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     
         <div class="jd-tagdata">
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
index 3874a0f..aed3810 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
@@ -800,12 +800,12 @@
             
             
             
-            int</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#getType()">getType</a></span>()</nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#getLabel()">getLabel</a></span>()</nobr>
         
-        <div class="jd-descrdiv">The type of URL.</div>
+        <div class="jd-descrdiv">The label of the URL.</div>
   
   </td></tr>
 
@@ -818,7 +818,25 @@
             
             
             
-            String</nobr>
+            int</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#getType()">getType</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">The type of URL.</div>
+  
+  </td></tr>
+
+
+	 
+    <tr class="alt-color api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#getValue()">getValue</a></span>()</nobr>
@@ -829,6 +847,24 @@
 
 
 	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#hasLabel()">hasLabel</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Indicates whether the "label" field is explicitly set to a value.</div>
+  
+  </td></tr>
+
+
+	 
     <tr class="alt-color api apilevel-" >
         <td class="jd-typecol"><nobr>
             abstract
@@ -841,7 +877,10 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#hasPrimary()">hasPrimary</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Indicates whether the "primary" field is explicitly set to a value.</div>
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    Returns false (removed).
+</em></div>
   
   </td></tr>
 
@@ -895,7 +934,10 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html#isPrimary()">isPrimary</a></span>()</nobr>
         
-        <div class="jd-descrdiv">If "true", this URL is the person's primary URL.</div>
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    Returns false (removed).
+</em></div>
   
   </td></tr>
 
@@ -952,6 +994,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1000,6 +1060,36 @@
 
 
 
+<A NAME="getLabel()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        <a href="/reference/java/lang/String.html">String</a>
+      </span>
+      <span class="sympad">getLabel</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>The label of the URL.
+</p></div>
+
+    </div>
+</div>
+
+
 <A NAME="getType()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1024,10 +1114,9 @@
     <div class="jd-details-descr">
       
   <div class="jd-tagdata jd-tagdescr"><p>The type of URL. Possible values are:
- - "home" - URL for home.
- - "work" - URL for work.
- - "blog" - URL for blog.
- - "profile" - URL for profile.
+ - "otherProfile" - URL for another profile.
+ - "contributor" - URL for which this person is a contributor to.
+ - "website" - URL for this Google+ Page's primary website.
  - "other" - Other.
 </p></div>
 
@@ -1045,7 +1134,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getValue</span>
       <span class="normal">()</span>
@@ -1065,6 +1154,36 @@
 </div>
 
 
+<A NAME="hasLabel()"></A>
+
+<div class="jd-details api apilevel-"> 
+    <h4 class="jd-details-title">
+      <span class="normal">
+        public 
+         
+         
+        abstract 
+         
+        boolean
+      </span>
+      <span class="sympad">hasLabel</span>
+      <span class="normal">()</span>
+    </h4>
+      <div class="api-level">
+        <div></div>
+        
+  
+
+      </div>
+    <div class="jd-details-descr">
+      
+  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether the "label" field is explicitly set to a value.
+</p></div>
+
+    </div>
+</div>
+
+
 <A NAME="hasPrimary()"></A>
 
 <div class="jd-details api apilevel-"> 
@@ -1087,9 +1206,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether the "primary" field is explicitly set to a value.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    Returns false (removed).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
@@ -1177,9 +1300,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>If "true", this URL is the person's primary URL.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    Returns false (removed).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
index 2251f36..f00f2d6 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
@@ -768,7 +768,9 @@
         
         interface</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Collection.html">Person.Collection</a></td>
-      <td class="jd-descrcol" width="100%">Constants to declare the collection of people to load.&nbsp;</td>
+      <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    No replacement.</em>&nbsp;</td>
     </tr>
     
     
@@ -852,7 +854,10 @@
         
         interface</nobr></td>
       <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html">Person.OrderBy</a></td>
-      <td class="jd-descrcol" width="100%">Constants to declare the order to return people in.&nbsp;</td>
+      <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html">PlusClient.OrderBy</a></code>.
+</em>&nbsp;</td>
     </tr>
     
     
@@ -944,7 +949,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getAboutMe()">getAboutMe</a></span>()</nobr>
@@ -980,7 +985,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getBirthday()">getBirthday</a></span>()</nobr>
@@ -998,7 +1003,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getBraggingRights()">getBraggingRights</a></span>()</nobr>
@@ -1053,7 +1058,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getCurrentLocation()">getCurrentLocation</a></span>()</nobr>
@@ -1071,7 +1076,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getDisplayName()">getDisplayName</a></span>()</nobr>
@@ -1089,12 +1094,12 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Emails.html">Person.Emails</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Emails.html">Person.Emails</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getEmails()">getEmails</a></span>()</nobr>
         
-        <div class="jd-descrdiv">A list of email addresses for this person.</div>
+        <div class="jd-descrdiv">A list of email addresses that this person has set to public on their Google+ profile.</div>
   
   </td></tr>
 
@@ -1125,7 +1130,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getId()">getId</a></span>()</nobr>
@@ -1161,7 +1166,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getLanguage()">getLanguage</a></span>()</nobr>
@@ -1197,7 +1202,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getNickname()">getNickname</a></span>()</nobr>
@@ -1233,7 +1238,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getOrganizations()">getOrganizations</a></span>()</nobr>
@@ -1251,7 +1256,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html">Person.PlacesLived</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html">Person.PlacesLived</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getPlacesLived()">getPlacesLived</a></span>()</nobr>
@@ -1305,7 +1310,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getTagline()">getTagline</a></span>()</nobr>
@@ -1323,7 +1328,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getUrl()">getUrl</a></span>()</nobr>
@@ -1341,7 +1346,7 @@
             
             
             
-            List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html">Person.Urls</a>&gt;</nobr>
+            <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html">Person.Urls</a>&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getUrls()">getUrls</a></span>()</nobr>
@@ -1544,7 +1549,10 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#hasHasApp()">hasHasApp</a></span>()</nobr>
         
-        <div class="jd-descrdiv">Indicates whether the "hasApp" field is explicitly set to a value.</div>
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    Returns false (removed).
+</em></div>
   
   </td></tr>
 
@@ -1832,8 +1840,10 @@
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/plus/model/people/Person.html#isHasApp()">isHasApp</a></span>()</nobr>
         
-        <div class="jd-descrdiv">If "true", indicates that the person has installed the app that is making the request and has
- chosen to expose this install state to the caller.</div>
+        <div class="jd-descrdiv"><em>
+      This method is deprecated.
+    Returns false (removed).
+</em></div>
   
   </td></tr>
 
@@ -1926,6 +1936,24 @@
   </td></tr>
 
 
+	 
+    <tr class=" api apilevel-" >
+        <td class="jd-typecol"><nobr>
+            abstract
+            
+            
+            
+            
+            boolean</nobr>
+        </td>
+        <td class="jd-linkcol" width="100%"><nobr>
+        <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+        
+        <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+  
+  </td></tr>
+
+
 </table>
   </div>
 </div>
@@ -1984,7 +2012,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getAboutMe</span>
       <span class="normal">()</span>
@@ -2044,7 +2072,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getBirthday</span>
       <span class="normal">()</span>
@@ -2074,7 +2102,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getBraggingRights</span>
       <span class="normal">()</span>
@@ -2165,7 +2193,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getCurrentLocation</span>
       <span class="normal">()</span>
@@ -2195,7 +2223,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getDisplayName</span>
       <span class="normal">()</span>
@@ -2225,7 +2253,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Emails.html">Person.Emails</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Emails.html">Person.Emails</a>&gt;
       </span>
       <span class="sympad">getEmails</span>
       <span class="normal">()</span>
@@ -2238,7 +2266,8 @@
       </div>
     <div class="jd-details-descr">
       
-  <div class="jd-tagdata jd-tagdescr"><p>A list of email addresses for this person.
+  <div class="jd-tagdata jd-tagdescr"><p>A list of email addresses that this person has set to public on their Google+ profile. You
+ can also use the userinfo.email scope to retrieve an authenticated user's email address.
 </p></div>
 
     </div>
@@ -2288,7 +2317,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getId</span>
       <span class="normal">()</span>
@@ -2348,7 +2377,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getLanguage</span>
       <span class="normal">()</span>
@@ -2408,7 +2437,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getNickname</span>
       <span class="normal">()</span>
@@ -2470,7 +2499,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a>&gt;
       </span>
       <span class="sympad">getOrganizations</span>
       <span class="normal">()</span>
@@ -2500,7 +2529,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html">Person.PlacesLived</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html">Person.PlacesLived</a>&gt;
       </span>
       <span class="sympad">getPlacesLived</span>
       <span class="normal">()</span>
@@ -2599,7 +2628,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getTagline</span>
       <span class="normal">()</span>
@@ -2629,7 +2658,7 @@
          
         abstract 
          
-        String
+        <a href="/reference/java/lang/String.html">String</a>
       </span>
       <span class="sympad">getUrl</span>
       <span class="normal">()</span>
@@ -2659,7 +2688,7 @@
          
         abstract 
          
-        List&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html">Person.Urls</a>&gt;
+        <a href="/reference/java/util/List.html">List</a>&lt;<a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html">Person.Urls</a>&gt;
       </span>
       <span class="sympad">getUrls</span>
       <span class="normal">()</span>
@@ -3001,9 +3030,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>Indicates whether the "hasApp" field is explicitly set to a value.
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    Returns false (removed).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
@@ -3481,12 +3514,13 @@
 
       </div>
     <div class="jd-details-descr">
-      
-  <div class="jd-tagdata jd-tagdescr"><p>If "true", indicates that the person has installed the app that is making the request and has
- chosen to expose this install state to the caller. A value of "false" indicates that the
- install state cannot be determined (it is either not installed or the person has chosen to
- keep this information private).
-</p></div>
+      <p>
+  <p class="caution"><strong>
+      This method is deprecated.</strong><br/>
+    Returns false (removed).
+
+  </p>
+  <div class="jd-tagdata jd-tagdescr"><p></p></div>
 
     </div>
 </div>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html b/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
index b58496b..fbb223b 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
@@ -716,7 +716,7 @@
 
     <tr>
          	
-        <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+        <td colspan="3" class="jd-inheritance-class-cell"><a href="/reference/java/lang/Object.html">java.lang.Object</a></td>
     </tr>
     
 
@@ -952,7 +952,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
@@ -975,7 +975,7 @@
           class="jd-expando-trigger-img" /></a>
 From class
 
-  java.lang.Object
+  <a href="/reference/java/lang/Object.html">java.lang.Object</a>
 
 <div id="inherited-methods-java.lang.Object">
   <div id="inherited-methods-java.lang.Object-list"
@@ -994,7 +994,7 @@
             
             
             
-            Object</nobr>
+            <a href="/reference/java/lang/Object.html">Object</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">clone</span>()</nobr>
@@ -1013,7 +1013,7 @@
             boolean</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
-        <span class="sympad">equals</span>(Object arg0)</nobr>
+        <span class="sympad">equals</span>(<a href="/reference/java/lang/Object.html">Object</a> arg0)</nobr>
         
   </td></tr>
 
@@ -1042,7 +1042,7 @@
             final
             
             
-            Class&lt;?&gt;</nobr>
+            <a href="/reference/java/lang/Class.html">Class</a>&lt;?&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">getClass</span>()</nobr>
@@ -1106,7 +1106,7 @@
             
             
             
-            String</nobr>
+            <a href="/reference/java/lang/String.html">String</a></nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">toString</span>()</nobr>
@@ -1177,7 +1177,7 @@
           class="jd-expando-trigger-img" /></a>
 From interface
 
-  java.lang.Iterable
+  <a href="/reference/java/lang/Iterable.html">java.lang.Iterable</a>
 
 <div id="inherited-methods-java.lang.Iterable">
   <div id="inherited-methods-java.lang.Iterable-list"
@@ -1196,7 +1196,7 @@
             
             
             
-            Iterator&lt;T&gt;</nobr>
+            <a href="/reference/java/util/Iterator.html">Iterator</a>&lt;T&gt;</nobr>
         </td>
         <td class="jd-linkcol" width="100%"><nobr>
         <span class="sympad">iterator</span>()</nobr>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html b/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
index 69ef6bf..f567f02 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
@@ -659,7 +659,9 @@
           </tr>
         <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Collection.html">Person.Collection</a></td>
-              <td class="jd-descrcol" width="100%">Constants to declare the collection of people to load.&nbsp;</td>
+              <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    No replacement.</em>&nbsp;</td>
           </tr>
         <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Cover.html">Person.Cover</a></td>
@@ -687,7 +689,10 @@
           </tr>
         <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.OrderBy.html">Person.OrderBy</a></td>
-              <td class="jd-descrcol" width="100%">Constants to declare the order to return people in.&nbsp;</td>
+              <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html">PlusClient.OrderBy</a></code>.
+</em>&nbsp;</td>
           </tr>
         <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a></td>
diff --git a/docs/html/reference/com/google/android/gms/plus/package-summary.html b/docs/html/reference/com/google/android/gms/plus/package-summary.html
index 74958b2..a5f422a 100644
--- a/docs/html/reference/com/google/android/gms/plus/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/plus/package-summary.html
@@ -668,10 +668,16 @@
           </tr>
         <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html">PlusClient.OnPersonLoadedListener</a></td>
-              <td class="jd-descrcol" width="100%">Listener interface for when a <code><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></code> is
- loaded&nbsp;</td>
+              <td class="jd-descrcol" width="100%"><em>
+      This interface is deprecated.
+    See <code><a href="/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html">PlusClient.OnPeopleLoadedListener</a></code>.
+</em>&nbsp;</td>
           </tr>
         <tr class="alt-color api apilevel-" >
+              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.OrderBy.html">PlusClient.OrderBy</a></td>
+              <td class="jd-descrcol" width="100%">Constants to declare the order to return people in.&nbsp;</td>
+          </tr>
+        <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html">PlusOneButton.OnPlusOneClickListener</a></td>
               <td class="jd-descrcol" width="100%">A listener for +1 button clicks.&nbsp;</td>
           </tr>
@@ -686,28 +692,23 @@
     
   <table class="jd-sumtable-expando">
         <tr class="alt-color api apilevel-" >
-              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/GooglePlusUtil.html">GooglePlusUtil</a></td>
-              <td class="jd-descrcol" width="100%">Utility class for verifying that the Google+ app is available and
- up-to-date on this device.&nbsp;</td>
-          </tr>
-        <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></td>
               <td class="jd-descrcol" width="100%">The main entry point for Google+ integration.&nbsp;</td>
           </tr>
-        <tr class="alt-color api apilevel-" >
-              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></td>
-              <td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> to connect to Google Play services.&nbsp;</td>
-          </tr>
         <tr class=" api apilevel-" >
+              <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.Builder.html">PlusClient.Builder</a></td>
+              <td class="jd-descrcol" width="100%">Builder to configure a <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> for communicating with the Google+ APIs.&nbsp;</td>
+          </tr>
+        <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusOneButton.html">PlusOneButton</a></td>
               <td class="jd-descrcol" width="100%">The +1 button to recommend a URL on Google+.&nbsp;</td>
           </tr>
-        <tr class="alt-color api apilevel-" >
+        <tr class=" api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.html">PlusShare</a></td>
               <td class="jd-descrcol" width="100%">Utility class for including resources in posts shared on Google+ through
  an <code><a href="/reference/android/content/Intent.html#ACTION_SEND">ACTION_SEND</a></code> intent.&nbsp;</td>
           </tr>
-        <tr class=" api apilevel-" >
+        <tr class="alt-color api apilevel-" >
               <td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></td>
               <td class="jd-descrcol" width="100%">&nbsp;</td>
           </tr>
diff --git a/docs/html/reference/gms-packages.html b/docs/html/reference/gms-packages.html
index ff13938..a176595 100644
--- a/docs/html/reference/gms-packages.html
+++ b/docs/html/reference/gms-packages.html
@@ -698,7 +698,7 @@
     <tr class=" api apilevel-" >
         <td class="jd-linkcol">
   <a href="/reference/com/google/android/gms/games/multiplayer/package-summary.html">com.google.android.gms.games.multiplayer</a></td>
-        <td class="jd-descrcol" width="100%">Contains data classes for multiplayer functionality.</td>
+        <td class="jd-descrcol" width="100%"></td>
     </tr>
 
 
diff --git a/docs/html/reference/gms_lists.js b/docs/html/reference/gms_lists.js
index a0e58fb..9d6258e 100644
--- a/docs/html/reference/gms_lists.js
+++ b/docs/html/reference/gms_lists.js
@@ -117,83 +117,85 @@
       { id:115, label:"com.google.android.gms.maps.GoogleMap.OnMapLongClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", type:"class", deprecated:"false" },
       { id:116, label:"com.google.android.gms.maps.GoogleMap.OnMarkerClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", type:"class", deprecated:"false" },
       { id:117, label:"com.google.android.gms.maps.GoogleMap.OnMarkerDragListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", type:"class", deprecated:"false" },
-      { id:118, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class", deprecated:"true" },
-      { id:119, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class", deprecated:"false" },
-      { id:120, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class", deprecated:"false" },
-      { id:121, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class", deprecated:"false" },
-      { id:122, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class", deprecated:"false" },
-      { id:123, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class", deprecated:"false" },
-      { id:124, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class", deprecated:"false" },
-      { id:125, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class", deprecated:"false" },
-      { id:126, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class", deprecated:"false" },
-      { id:127, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class", deprecated:"false" },
-      { id:128, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package", deprecated:"false" },
-      { id:129, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class", deprecated:"false" },
-      { id:130, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class", deprecated:"false" },
-      { id:131, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class", deprecated:"false" },
-      { id:132, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class", deprecated:"false" },
-      { id:133, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class", deprecated:"false" },
-      { id:134, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class", deprecated:"false" },
-      { id:135, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class", deprecated:"false" },
-      { id:136, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class", deprecated:"false" },
-      { id:137, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class", deprecated:"false" },
-      { id:138, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class", deprecated:"false" },
-      { id:139, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class", deprecated:"false" },
-      { id:140, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class", deprecated:"false" },
-      { id:141, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class", deprecated:"false" },
-      { id:142, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class", deprecated:"false" },
-      { id:143, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class", deprecated:"false" },
-      { id:144, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class", deprecated:"false" },
-      { id:145, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class", deprecated:"false" },
-      { id:146, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class", deprecated:"false" },
-      { id:147, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class", deprecated:"false" },
-      { id:148, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class", deprecated:"false" },
-      { id:149, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class", deprecated:"false" },
-      { id:150, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class", deprecated:"false" },
-      { id:151, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class", deprecated:"false" },
-      { id:152, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class", deprecated:"false" },
-      { id:153, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package", deprecated:"false" },
-      { id:154, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class", deprecated:"false" },
-      { id:155, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class", deprecated:"false" },
-      { id:156, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package", deprecated:"false" },
-      { id:157, label:"com.google.android.gms.plus.GooglePlusUtil", link:"reference/com/google/android/gms/plus/GooglePlusUtil.html", type:"class", deprecated:"false" },
-      { id:158, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class", deprecated:"false" },
-      { id:159, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class", deprecated:"false" },
-      { id:160, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class", deprecated:"false" },
-      { id:161, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class", deprecated:"false" },
-      { id:162, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class", deprecated:"false" },
-      { id:163, label:"com.google.android.gms.plus.PlusClient.OnPersonLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", type:"class", deprecated:"false" },
-      { id:164, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class", deprecated:"false" },
-      { id:165, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class", deprecated:"false" },
-      { id:166, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class", deprecated:"false" },
-      { id:167, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class", deprecated:"false" },
-      { id:168, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package", deprecated:"false" },
-      { id:169, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class", deprecated:"false" },
-      { id:170, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class", deprecated:"false" },
-      { id:171, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class", deprecated:"false" },
-      { id:172, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class", deprecated:"false" },
-      { id:173, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class", deprecated:"false" },
-      { id:174, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package", deprecated:"false" },
-      { id:175, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class", deprecated:"false" },
-      { id:176, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class", deprecated:"false" },
-      { id:177, label:"com.google.android.gms.plus.model.people.Person.Collection", link:"reference/com/google/android/gms/plus/model/people/Person.Collection.html", type:"class", deprecated:"false" },
-      { id:178, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class", deprecated:"false" },
-      { id:179, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class", deprecated:"false" },
-      { id:180, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class", deprecated:"false" },
-      { id:181, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class", deprecated:"false" },
-      { id:182, label:"com.google.android.gms.plus.model.people.Person.Emails", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.html", type:"class", deprecated:"false" },
-      { id:183, label:"com.google.android.gms.plus.model.people.Person.Emails.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html", type:"class", deprecated:"false" },
-      { id:184, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class", deprecated:"false" },
-      { id:185, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class", deprecated:"false" },
-      { id:186, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class", deprecated:"false" },
-      { id:187, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class", deprecated:"false" },
-      { id:188, label:"com.google.android.gms.plus.model.people.Person.OrderBy", link:"reference/com/google/android/gms/plus/model/people/Person.OrderBy.html", type:"class", deprecated:"false" },
-      { id:189, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class", deprecated:"false" },
-      { id:190, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class", deprecated:"false" },
-      { id:191, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class", deprecated:"false" },
-      { id:192, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class", deprecated:"false" },
-      { id:193, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class", deprecated:"false" },
-      { id:194, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class", deprecated:"false" },
-      { id:195, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class", deprecated:"false" }
+      { id:118, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html", type:"class", deprecated:"false" },
+      { id:119, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class", deprecated:"true" },
+      { id:120, label:"com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback", link:"reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html", type:"class", deprecated:"false" },
+      { id:121, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class", deprecated:"false" },
+      { id:122, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class", deprecated:"false" },
+      { id:123, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class", deprecated:"false" },
+      { id:124, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class", deprecated:"false" },
+      { id:125, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class", deprecated:"false" },
+      { id:126, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class", deprecated:"false" },
+      { id:127, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class", deprecated:"false" },
+      { id:128, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class", deprecated:"false" },
+      { id:129, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class", deprecated:"false" },
+      { id:130, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package", deprecated:"false" },
+      { id:131, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class", deprecated:"false" },
+      { id:132, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class", deprecated:"false" },
+      { id:133, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class", deprecated:"false" },
+      { id:134, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class", deprecated:"false" },
+      { id:135, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class", deprecated:"false" },
+      { id:136, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class", deprecated:"false" },
+      { id:137, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class", deprecated:"false" },
+      { id:138, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class", deprecated:"false" },
+      { id:139, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class", deprecated:"false" },
+      { id:140, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class", deprecated:"false" },
+      { id:141, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class", deprecated:"false" },
+      { id:142, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class", deprecated:"false" },
+      { id:143, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class", deprecated:"false" },
+      { id:144, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class", deprecated:"false" },
+      { id:145, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class", deprecated:"false" },
+      { id:146, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class", deprecated:"false" },
+      { id:147, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class", deprecated:"false" },
+      { id:148, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class", deprecated:"false" },
+      { id:149, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class", deprecated:"false" },
+      { id:150, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class", deprecated:"false" },
+      { id:151, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class", deprecated:"false" },
+      { id:152, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class", deprecated:"false" },
+      { id:153, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class", deprecated:"false" },
+      { id:154, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class", deprecated:"false" },
+      { id:155, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package", deprecated:"false" },
+      { id:156, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class", deprecated:"false" },
+      { id:157, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class", deprecated:"false" },
+      { id:158, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package", deprecated:"false" },
+      { id:159, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class", deprecated:"false" },
+      { id:160, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class", deprecated:"false" },
+      { id:161, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class", deprecated:"false" },
+      { id:162, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class", deprecated:"false" },
+      { id:163, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class", deprecated:"false" },
+      { id:164, label:"com.google.android.gms.plus.PlusClient.OnPersonLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPersonLoadedListener.html", type:"class", deprecated:"true" },
+      { id:165, label:"com.google.android.gms.plus.PlusClient.OrderBy", link:"reference/com/google/android/gms/plus/PlusClient.OrderBy.html", type:"class", deprecated:"false" },
+      { id:166, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class", deprecated:"false" },
+      { id:167, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class", deprecated:"false" },
+      { id:168, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class", deprecated:"false" },
+      { id:169, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class", deprecated:"false" },
+      { id:170, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package", deprecated:"false" },
+      { id:171, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class", deprecated:"false" },
+      { id:172, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class", deprecated:"false" },
+      { id:173, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class", deprecated:"false" },
+      { id:174, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class", deprecated:"false" },
+      { id:175, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class", deprecated:"false" },
+      { id:176, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package", deprecated:"false" },
+      { id:177, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class", deprecated:"false" },
+      { id:178, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class", deprecated:"false" },
+      { id:179, label:"com.google.android.gms.plus.model.people.Person.Collection", link:"reference/com/google/android/gms/plus/model/people/Person.Collection.html", type:"class", deprecated:"true" },
+      { id:180, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class", deprecated:"false" },
+      { id:181, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class", deprecated:"false" },
+      { id:182, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class", deprecated:"false" },
+      { id:183, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class", deprecated:"false" },
+      { id:184, label:"com.google.android.gms.plus.model.people.Person.Emails", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.html", type:"class", deprecated:"false" },
+      { id:185, label:"com.google.android.gms.plus.model.people.Person.Emails.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Emails.Type.html", type:"class", deprecated:"false" },
+      { id:186, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class", deprecated:"false" },
+      { id:187, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class", deprecated:"false" },
+      { id:188, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class", deprecated:"false" },
+      { id:189, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class", deprecated:"false" },
+      { id:190, label:"com.google.android.gms.plus.model.people.Person.OrderBy", link:"reference/com/google/android/gms/plus/model/people/Person.OrderBy.html", type:"class", deprecated:"true" },
+      { id:191, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class", deprecated:"false" },
+      { id:192, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class", deprecated:"false" },
+      { id:193, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class", deprecated:"false" },
+      { id:194, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class", deprecated:"false" },
+      { id:195, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class", deprecated:"false" },
+      { id:196, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class", deprecated:"false" },
+      { id:197, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class", deprecated:"false" }
 
     ];
diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java
index 91deb87..e8d6f16 100644
--- a/graphics/java/android/graphics/SurfaceTexture.java
+++ b/graphics/java/android/graphics/SurfaceTexture.java
@@ -69,6 +69,7 @@
      * These fields are used by native code, do not access or modify.
      */
     private int mSurfaceTexture;
+    private int mBufferQueue;
     private int mFrameAvailableListener;
 
     /**
diff --git a/include/android_runtime/android_graphics_SurfaceTexture.h b/include/android_runtime/android_graphics_SurfaceTexture.h
index 77ccd2a..c534d4b 100644
--- a/include/android_runtime/android_graphics_SurfaceTexture.h
+++ b/include/android_runtime/android_graphics_SurfaceTexture.h
@@ -24,14 +24,17 @@
 namespace android {
 
 class GLConsumer;
+class IGraphicBufferProducer;
 
-extern sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(
-        JNIEnv* env, jobject thiz);
+extern sp<ANativeWindow> android_SurfaceTexture_getNativeWindow(JNIEnv* env, jobject thiz);
 extern bool android_SurfaceTexture_isInstanceOf(JNIEnv* env, jobject thiz);
 
 /* Gets the underlying GLConsumer from a SurfaceTexture Java object. */
 extern sp<GLConsumer> SurfaceTexture_getSurfaceTexture(JNIEnv* env, jobject thiz);
 
+/* gets the producer end of the SurfaceTexture */
+extern sp<IGraphicBufferProducer> SurfaceTexture_getProducer(JNIEnv* env, jobject thiz);
+
 } // namespace android
 
 #endif // _ANDROID_GRAPHICS_SURFACETEXTURE_H
diff --git a/libs/hwui/AssetAtlas.cpp b/libs/hwui/AssetAtlas.cpp
index d98a538..eb8bb9f 100644
--- a/libs/hwui/AssetAtlas.cpp
+++ b/libs/hwui/AssetAtlas.cpp
@@ -100,6 +100,7 @@
             bool force = false, GLenum renderTarget = GL_TEXTURE_2D) {
         mDelegate->setFilterMinMag(min, mag, bindTexture, force, renderTarget);
     }
+
 private:
     Texture* const mDelegate;
 }; // struct DelegateTexture
@@ -125,12 +126,12 @@
                 y / height, (y + bitmap->height()) / height);
 
         Texture* texture = new DelegateTexture(caches, mTexture);
-        Entry* entry = new Entry(bitmap, x, y, rotated, texture, mapper, *this);
-
         texture->id = mTexture->id;
         texture->blend = !bitmap->isOpaque();
         texture->width = bitmap->width();
         texture->height = bitmap->height();
+
+        Entry* entry = new Entry(bitmap, x, y, rotated, texture, mapper, *this);
         texture->uvMapper = &entry->uvMapper;
 
         mEntries.add(entry->bitmap, entry);
diff --git a/libs/hwui/AssetAtlas.h b/libs/hwui/AssetAtlas.h
index 9afc54d..a28efc6 100644
--- a/libs/hwui/AssetAtlas.h
+++ b/libs/hwui/AssetAtlas.h
@@ -84,11 +84,20 @@
          */
         const AssetAtlas& atlas;
 
+        /**
+         * Unique identifier used to merge bitmaps and 9-patches stored
+         * in the atlas.
+         */
+        const void* getMergeId() const {
+            return texture->blend ? &atlas.mBlendKey : &atlas.mOpaqueKey;
+        }
+
     private:
         Entry(SkBitmap* bitmap, int x, int y, bool rotated,
                 Texture* texture, const UvMapper& mapper, const AssetAtlas& atlas):
                 bitmap(bitmap), x(x), y(y), rotated(rotated),
-                texture(texture), uvMapper(mapper), atlas(atlas) { }
+                texture(texture), uvMapper(mapper), atlas(atlas) {
+        }
 
         ~Entry() {
             delete texture;
@@ -97,7 +106,8 @@
         friend class AssetAtlas;
     };
 
-    AssetAtlas(): mTexture(NULL), mImage(NULL), mGenerationId(0) { }
+    AssetAtlas(): mTexture(NULL), mImage(NULL), mGenerationId(0),
+            mBlendKey(true), mOpaqueKey(false) { }
     ~AssetAtlas() { terminate(); }
 
     /**
@@ -173,6 +183,9 @@
 
     uint32_t mGenerationId;
 
+    const bool mBlendKey;
+    const bool mOpaqueKey;
+
     KeyedVector<SkBitmap*, Entry*> mEntries;
 }; // class AssetAtlas
 
diff --git a/libs/hwui/DeferredDisplayList.h b/libs/hwui/DeferredDisplayList.h
index 6c5a847..1ef0152 100644
--- a/libs/hwui/DeferredDisplayList.h
+++ b/libs/hwui/DeferredDisplayList.h
@@ -40,7 +40,7 @@
 class DrawBatch;
 class MergingDrawBatch;
 
-typedef void* mergeid_t;
+typedef const void* mergeid_t;
 
 class DeferredDisplayList {
 public:
diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h
index 83de651..1b52b65 100644
--- a/libs/hwui/DisplayListOp.h
+++ b/libs/hwui/DisplayListOp.h
@@ -818,7 +818,7 @@
 
     virtual void onDefer(OpenGLRenderer& renderer, DeferInfo& deferInfo) {
         deferInfo.batchId = DeferredDisplayList::kOpBatch_Bitmap;
-        deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) &mEntry->atlas : (mergeid_t) mBitmap;
+        deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) mEntry->getMergeId() : (mergeid_t) mBitmap;
 
         // Don't merge A8 bitmaps - the paint's color isn't compared by mergeId, or in
         // MergingDrawBatch::canMergeWith()
@@ -1071,7 +1071,7 @@
 
     virtual void onDefer(OpenGLRenderer& renderer, DeferInfo& deferInfo) {
         deferInfo.batchId = DeferredDisplayList::kOpBatch_Patch;
-        deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) &mEntry->atlas : (mergeid_t) mBitmap;
+        deferInfo.mergeId = getAtlasEntry() ? (mergeid_t) mEntry->getMergeId() : (mergeid_t) mBitmap;
         deferInfo.mergeable = state.mMatrix.isPureTranslate() &&
                 OpenGLRenderer::getXfermodeDirect(mPaint) == SkXfermode::kSrcOver_Mode;
         deferInfo.opaqueOverBounds = isOpaqueOverBounds() && mBitmap->isOpaque();
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java
index aa3c530..d20f5b9 100644
--- a/media/java/android/media/AudioRecord.java
+++ b/media/java/android/media/AudioRecord.java
@@ -87,7 +87,7 @@
     private static final int AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED    = -20;
 
     // Events:
-    // to keep in sync with frameworks/base/include/media/AudioRecord.h
+    // to keep in sync with frameworks/av/include/media/AudioRecord.h
     /**
      * Event id denotes when record head has reached a previously set marker.
      */
@@ -427,10 +427,12 @@
 
     /**
      * Returns the minimum buffer size required for the successful creation of an AudioRecord
-     * object.
+     * object, in byte units.
      * Note that this size doesn't guarantee a smooth recording under load, and higher values
      * should be chosen according to the expected frequency at which the AudioRecord instance
      * will be polled for new data.
+     * See {@link #AudioRecord(int, int, int, int, int)} for more information on valid
+     * configuration values.
      * @param sampleRateInHz the sample rate expressed in Hertz.
      * @param channelConfig describes the configuration of the audio channels.
      *   See {@link AudioFormat#CHANNEL_IN_MONO} and
@@ -440,10 +442,9 @@
      * @return {@link #ERROR_BAD_VALUE} if the recording parameters are not supported by the
      *  hardware, or an invalid parameter was passed,
      *  or {@link #ERROR} if the implementation was unable to query the hardware for its
-     *  output properties,
+     *  input properties,
      *   or the minimum buffer size expressed in bytes.
-     * @see #AudioRecord(int, int, int, int, int) for more information on valid
-     *   configuration values.
+     * @see #AudioRecord(int, int, int, int, int)
      */
     static public int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat) {
         int channelCount = 0;
@@ -692,6 +693,7 @@
      * Sets the period at which the listener is called, if set with
      * {@link #setRecordPositionUpdateListener(OnRecordPositionUpdateListener)} or
      * {@link #setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler)}.
+     * It is possible for notifications to be lost if the period is too small.
      * @param periodInFrames update period expressed in frames
      * @return error code or success, see {@link #SUCCESS}, {@link #ERROR_INVALID_OPERATION}
      */
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index c8dffcd..d9227bd 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -166,7 +166,7 @@
     private int mNativeBufferSizeInBytes = 0;
     private int mNativeBufferSizeInFrames = 0;
     /**
-     * Handler for marker events coming from the native code.
+     * Handler for events coming from the native code.
      */
     private NativeEventHandlerDelegate mEventHandlerDelegate;
     /**
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 8cf0b4b..703eb27 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -300,6 +300,24 @@
             mErrorCode = errorCode;
         }
 
+        /**
+         * This indicates that no key has been set to perform the requested
+         * decrypt operation.
+         */
+        public static final int ERROR_NO_KEY = 1;
+
+        /**
+         * This indicates that the key used for decryption is no longer
+         * valid due to license term expiration.
+         */
+        public static final int ERROR_KEY_EXPIRED = 2;
+
+        /**
+         * This indicates that a required crypto resource was not able to be
+         * allocated while attempting the requested operation.
+         */
+        public static final int ERROR_RESOURCE_BUSY = 3;
+
         public int getErrorCode() {
             return mErrorCode;
         }
diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java
index 7677d8a1..cd97ad9 100644
--- a/media/java/android/media/MediaDrm.java
+++ b/media/java/android/media/MediaDrm.java
@@ -273,6 +273,7 @@
      * Open a new session with the MediaDrm object.  A session ID is returned.
      *
      * @throws NotProvisionedException if provisioning is needed
+     * @throws ResourceBusyException if required resources are in use
      */
     public native byte[] openSession() throws NotProvisionedException;
 
@@ -379,6 +380,7 @@
      * reprovisioning is required
      * @throws DeniedByServerException if the response indicates that the
      * server rejected the request
+     * @throws ResourceBusyException if required resources are in use
      */
     public native byte[] provideKeyResponse(byte[] scope, byte[] response)
         throws NotProvisionedException, DeniedByServerException;
diff --git a/media/java/android/media/MediaFocusControl.java b/media/java/android/media/MediaFocusControl.java
index ba2c63c..60a84a6 100644
--- a/media/java/android/media/MediaFocusControl.java
+++ b/media/java/android/media/MediaFocusControl.java
@@ -117,6 +117,17 @@
         postReevaluateRemote();
     }
 
+    protected void dump(PrintWriter pw) {
+        dumpFocusStack(pw);
+        dumpRCStack(pw);
+        dumpRCCStack(pw);
+        dumpRCDList(pw);
+    }
+
+    //==========================================================================================
+    // Internal event handling
+    //==========================================================================================
+
     // event handler messages
     private static final int MSG_PERSIST_MEDIABUTTONRECEIVER = 0;
     private static final int MSG_RCDISPLAY_CLEAR = 1;
@@ -197,35 +208,6 @@
         }
     }
 
-    protected void dump(PrintWriter pw) {
-        dumpFocusStack(pw);
-        dumpRCStack(pw);
-        dumpRCCStack(pw);
-        dumpRCDList(pw);
-    }
-
-    private class PackageIntentsReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (action.equals(Intent.ACTION_PACKAGE_REMOVED)
-                    || action.equals(Intent.ACTION_PACKAGE_DATA_CLEARED)) {
-                if (!intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
-                    // a package is being removed, not replaced
-                    String packageName = intent.getData().getSchemeSpecificPart();
-                    if (packageName != null) {
-                        cleanupMediaButtonReceiverForPackage(packageName, true);
-                    }
-                }
-            } else if (action.equals(Intent.ACTION_PACKAGE_ADDED)
-                    || action.equals(Intent.ACTION_PACKAGE_CHANGED)) {
-                String packageName = intent.getData().getSchemeSpecificPart();
-                if (packageName != null) {
-                    cleanupMediaButtonReceiverForPackage(packageName, false);
-                }
-            }
-        }
-    }
 
     //==========================================================================================
     // AudioFocus
@@ -705,6 +687,28 @@
 
     }
 
+    private class PackageIntentsReceiver extends BroadcastReceiver {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (action.equals(Intent.ACTION_PACKAGE_REMOVED)
+                    || action.equals(Intent.ACTION_PACKAGE_DATA_CLEARED)) {
+                if (!intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
+                    // a package is being removed, not replaced
+                    String packageName = intent.getData().getSchemeSpecificPart();
+                    if (packageName != null) {
+                        cleanupMediaButtonReceiverForPackage(packageName, true);
+                    }
+                }
+            } else if (action.equals(Intent.ACTION_PACKAGE_ADDED)
+                    || action.equals(Intent.ACTION_PACKAGE_CHANGED)) {
+                String packageName = intent.getData().getSchemeSpecificPart();
+                if (packageName != null) {
+                    cleanupMediaButtonReceiverForPackage(packageName, false);
+                }
+            }
+        }
+    }
 
     private static boolean isValidMediaKeyEvent(KeyEvent keyEvent) {
         if (keyEvent == null) {
@@ -2137,7 +2141,7 @@
                 new RccPlaybackState(state, timeMs, speed) /* obj */, 0 /* delay */);
     }
 
-    protected void onNewPlaybackStateForRcc(int rccId, int state, RccPlaybackState newState) {
+    private void onNewPlaybackStateForRcc(int rccId, int state, RccPlaybackState newState) {
         if(DEBUG_RC) Log.d(TAG, "onNewPlaybackStateForRcc(id=" + rccId + ", state=" + state
                 + ", time=" + newState.mPositionMs + ", speed=" + newState.mSpeed + ")");
         synchronized(mRCStack) {
diff --git a/media/java/android/media/ResourceBusyException.java b/media/java/android/media/ResourceBusyException.java
new file mode 100644
index 0000000..a5abe21
--- /dev/null
+++ b/media/java/android/media/ResourceBusyException.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+/**
+ * Exception thrown when an operation on a MediaDrm object is attempted
+ * and hardware resources are not available, due to being in use.
+ */
+public final class ResourceBusyException extends MediaDrmException {
+    public ResourceBusyException(String detailMessage) {
+        super(detailMessage);
+    }
+}
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index 0646f98..cd589de 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -19,6 +19,7 @@
 #include <utils/Log.h>
 #include <utils/misc.h>
 #include <utils/List.h>
+#include <utils/String8.h>
 
 #include <cstdio>
 
@@ -47,22 +48,20 @@
     IMAGE_READER_MAX_NUM_PLANES = 3,
 };
 
-struct fields_t {
-    // For ImageReader class
-    jfieldID  imageReaderContext;
-    jmethodID postEvent;
-    // For SurfaceImage class
-    jfieldID  buffer;
-    jfieldID  timeStamp;
-};
+static struct {
+    jfieldID mNativeContext;
+    jmethodID postEventFromNative;
+} gImageReaderClassInfo;
 
-struct classInfo_t {
+static struct {
+    jfieldID mLockedBuffer;
+    jfieldID mTimestamp;
+} gSurfaceImageClassInfo;
+
+static struct {
     jclass clazz;
     jmethodID ctor;
-};
-
-static fields_t    fields;
-static classInfo_t surfPlaneClassInfo;
+} gSurfacePlaneClassInfo;
 
 // ----------------------------------------------------------------------------
 
@@ -79,9 +78,11 @@
 
     void returnLockedBuffer(CpuConsumer::LockedBuffer* buffer);
 
+    void setCpuConsumer(const sp<CpuConsumer>& consumer) { mConsumer = consumer; }
     CpuConsumer* getCpuConsumer() { return mConsumer.get(); }
 
-    void setCpuConsumer(sp<CpuConsumer> consumer) { mConsumer = consumer; }
+    void setBufferQueue(const sp<BufferQueue>& bq) { mBufferQueue = bq; }
+    BufferQueue* getBufferQueue() { return mBufferQueue.get(); }
 
     void setBufferFormat(int format) { mFormat = format; }
     int getBufferFormat() { return mFormat; }
@@ -98,6 +99,7 @@
 
     List<CpuConsumer::LockedBuffer*> mBuffers;
     sp<CpuConsumer> mConsumer;
+    sp<BufferQueue> mBufferQueue;
     jobject mWeakThiz;
     jclass mClazz;
     int mFormat;
@@ -183,7 +185,7 @@
     bool needsDetach = false;
     JNIEnv* env = getJNIEnv(&needsDetach);
     if (env != NULL) {
-        env->CallStaticVoidMethod(mClazz, fields.postEvent, mWeakThiz);
+        env->CallStaticVoidMethod(mClazz, gImageReaderClassInfo.postEventFromNative, mWeakThiz);
     } else {
         ALOGW("onFrameAvailable event will not posted");
     }
@@ -200,7 +202,7 @@
 {
     JNIImageReaderContext *ctx;
     ctx = reinterpret_cast<JNIImageReaderContext *>
-              (env->GetLongField(thiz, fields.imageReaderContext));
+              (env->GetLongField(thiz, gImageReaderClassInfo.mNativeContext));
     return ctx;
 }
 
@@ -215,6 +217,17 @@
     return ctx->getCpuConsumer();
 }
 
+static BufferQueue* ImageReader_getBufferQueue(JNIEnv* env, jobject thiz)
+{
+    ALOGV("%s:", __FUNCTION__);
+    JNIImageReaderContext* const ctx = ImageReader_getContext(env, thiz);
+    if (ctx == NULL) {
+        jniThrowRuntimeException(env, "ImageReaderContext is not initialized");
+        return NULL;
+    }
+    return ctx->getBufferQueue();
+}
+
 static void ImageReader_setNativeContext(JNIEnv* env,
         jobject thiz, sp<JNIImageReaderContext> ctx)
 {
@@ -226,18 +239,20 @@
     if (p) {
         p->decStrong((void*)ImageReader_setNativeContext);
     }
-    env->SetLongField(thiz, fields.imageReaderContext, reinterpret_cast<jlong>(ctx.get()));
+    env->SetLongField(thiz, gImageReaderClassInfo.mNativeContext,
+            reinterpret_cast<jlong>(ctx.get()));
 }
 
 static CpuConsumer::LockedBuffer* Image_getLockedBuffer(JNIEnv* env, jobject image)
 {
-    return reinterpret_cast<CpuConsumer::LockedBuffer*>(env->GetLongField(image, fields.buffer));
+    return reinterpret_cast<CpuConsumer::LockedBuffer*>(
+            env->GetLongField(image, gSurfaceImageClassInfo.mLockedBuffer));
 }
 
 static void Image_setBuffer(JNIEnv* env, jobject thiz,
         const CpuConsumer::LockedBuffer* buffer)
 {
-    env->SetLongField(thiz, fields.buffer, reinterpret_cast<jlong>(buffer));
+    env->SetLongField(thiz, gSurfaceImageClassInfo.mLockedBuffer, reinterpret_cast<jlong>(buffer));
 }
 
 // Some formats like JPEG defined with different values between android.graphics.ImageFormat and
@@ -549,33 +564,37 @@
     jclass imageClazz = env->FindClass("android/media/ImageReader$SurfaceImage");
     LOG_ALWAYS_FATAL_IF(imageClazz == NULL,
                         "can't find android/graphics/ImageReader$SurfaceImage");
-    fields.buffer = env->GetFieldID(imageClazz, ANDROID_MEDIA_SURFACEIMAGE_BUFFER_JNI_ID, "J");
-    LOG_ALWAYS_FATAL_IF(fields.buffer == NULL,
+    gSurfaceImageClassInfo.mLockedBuffer = env->GetFieldID(
+            imageClazz, ANDROID_MEDIA_SURFACEIMAGE_BUFFER_JNI_ID, "J");
+    LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mLockedBuffer == NULL,
                         "can't find android/graphics/ImageReader.%s",
                         ANDROID_MEDIA_SURFACEIMAGE_BUFFER_JNI_ID);
 
-    fields.timeStamp = env->GetFieldID(imageClazz, ANDROID_MEDIA_SURFACEIMAGE_TS_JNI_ID, "J");
-    LOG_ALWAYS_FATAL_IF(fields.timeStamp == NULL,
+    gSurfaceImageClassInfo.mTimestamp = env->GetFieldID(
+            imageClazz, ANDROID_MEDIA_SURFACEIMAGE_TS_JNI_ID, "J");
+    LOG_ALWAYS_FATAL_IF(gSurfaceImageClassInfo.mTimestamp == NULL,
                         "can't find android/graphics/ImageReader.%s",
                         ANDROID_MEDIA_SURFACEIMAGE_TS_JNI_ID);
 
-    fields.imageReaderContext = env->GetFieldID(clazz, ANDROID_MEDIA_IMAGEREADER_CTX_JNI_ID, "J");
-    LOG_ALWAYS_FATAL_IF(fields.imageReaderContext == NULL,
+    gImageReaderClassInfo.mNativeContext = env->GetFieldID(
+            clazz, ANDROID_MEDIA_IMAGEREADER_CTX_JNI_ID, "J");
+    LOG_ALWAYS_FATAL_IF(gImageReaderClassInfo.mNativeContext == NULL,
                         "can't find android/graphics/ImageReader.%s",
                           ANDROID_MEDIA_IMAGEREADER_CTX_JNI_ID);
 
-    fields.postEvent = env->GetStaticMethodID(clazz, "postEventFromNative",
-                                              "(Ljava/lang/Object;)V");
-    LOG_ALWAYS_FATAL_IF(fields.postEvent == NULL,
+    gImageReaderClassInfo.postEventFromNative = env->GetStaticMethodID(
+            clazz, "postEventFromNative", "(Ljava/lang/Object;)V");
+    LOG_ALWAYS_FATAL_IF(gImageReaderClassInfo.postEventFromNative == NULL,
                         "can't find android/graphics/ImageReader.postEventFromNative");
 
     jclass planeClazz = env->FindClass("android/media/ImageReader$SurfaceImage$SurfacePlane");
     LOG_ALWAYS_FATAL_IF(planeClazz == NULL, "Can not find SurfacePlane class");
     // FindClass only gives a local reference of jclass object.
-    surfPlaneClassInfo.clazz = (jclass) env->NewGlobalRef(planeClazz);
-    surfPlaneClassInfo.ctor = env->GetMethodID(surfPlaneClassInfo.clazz, "<init>",
-                                               "(Landroid/media/ImageReader$SurfaceImage;III)V");
-    LOG_ALWAYS_FATAL_IF(surfPlaneClassInfo.ctor == NULL, "Can not find SurfacePlane constructor");
+    gSurfacePlaneClassInfo.clazz = (jclass) env->NewGlobalRef(planeClazz);
+    gSurfacePlaneClassInfo.ctor = env->GetMethodID(gSurfacePlaneClassInfo.clazz, "<init>",
+            "(Landroid/media/ImageReader$SurfaceImage;III)V");
+    LOG_ALWAYS_FATAL_IF(gSurfacePlaneClassInfo.ctor == NULL,
+            "Can not find SurfacePlane constructor");
 }
 
 static void ImageReader_init(JNIEnv* env, jobject thiz, jobject weakThiz,
@@ -604,6 +623,7 @@
     }
     sp<JNIImageReaderContext> ctx(new JNIImageReaderContext(env, weakThiz, clazz, maxImages));
     ctx->setCpuConsumer(consumer);
+    ctx->setBufferQueue(bq);
     consumer->setFrameAvailableListener(ctx);
     ImageReader_setNativeContext(env, thiz, ctx);
     ctx->setBufferFormat(nativeFormat);
@@ -681,11 +701,12 @@
     }
     status_t res = consumer->lockNextBuffer(buffer);
     if (res != NO_ERROR) {
-        ALOGE("%s Fail to lockNextBuffer with error: %d ", __FUNCTION__, res);
+        if (res != BAD_VALUE /*no buffers*/) {
+            ALOGE("%s Fail to lockNextBuffer with error: %d ", __FUNCTION__, res);
+        }
         return false;
     }
 
-
     // Check if the left-top corner of the crop rect is origin, we currently assume this point is
     // zero, will revist this once this assumption turns out problematic.
     Point lt = buffer->crop.leftTop();
@@ -710,8 +731,8 @@
 
     int imageReaderWidth = ctx->getBufferWidth();
     int imageReaderHeight = ctx->getBufferHeight();
-    if ((imageReaderWidth != outputWidth) ||
-        (imageReaderHeight != outputHeight)) {
+    if (imageReaderWidth != outputWidth
+            || imageReaderHeight != outputHeight) {
         // Spew warning for now, since MediaCodec decoder has a bug to setup the right crop
         // TODO: make it throw exception once the decoder bug is fixed.
         ALOGW("Producer buffer size: %dx%d, doesn't match ImageReader configured size: %dx%d",
@@ -726,14 +747,18 @@
         // Throw exception
         ALOGE("Producer output buffer format: 0x%x, ImageReader configured format: 0x%x",
               buffer->format, ctx->getBufferFormat());
+        String8 msg;
+        msg.appendFormat("The producer output buffer format 0x%x doesn't "
+                "match the ImageReader's configured buffer format 0x%x.",
+                buffer->format, ctx->getBufferFormat());
         jniThrowException(env, "java/lang/UnsupportedOperationException",
-                          "The producer output buffer configuration doesn't match the ImageReader"
-                          "configured");
+                msg.string());
         return false;
     }
     // Set SurfaceImage instance member variables
     Image_setBuffer(env, image, buffer);
-    env->SetLongField(image, fields.timeStamp, static_cast<jlong>(buffer->timestamp));
+    env->SetLongField(image, gSurfaceImageClassInfo.mTimestamp,
+            static_cast<jlong>(buffer->timestamp));
 
     return true;
 }
@@ -742,15 +767,14 @@
 {
     ALOGV("%s: ", __FUNCTION__);
 
-    CpuConsumer* consumer = ImageReader_getCpuConsumer(env, thiz);
-    if (consumer == NULL) {
+    BufferQueue* bq = ImageReader_getBufferQueue(env, thiz);
+    if (bq == NULL) {
         jniThrowRuntimeException(env, "CpuConsumer is uninitialized");
         return NULL;
     }
 
     // Wrap the IGBP in a Java-language Surface.
-    return android_view_Surface_createFromIGraphicBufferProducer(env,
-                                                                 consumer->getProducerInterface());
+    return android_view_Surface_createFromIGraphicBufferProducer(env, bq);
 }
 
 static jobject Image_createSurfacePlane(JNIEnv* env, jobject thiz, int idx)
@@ -767,8 +791,8 @@
     rowStride = Image_imageGetRowStride(env, buffer, idx);
     pixelStride = Image_imageGetPixelStride(env, buffer, idx);
 
-    jobject surfPlaneObj = env->NewObject(surfPlaneClassInfo.clazz, surfPlaneClassInfo.ctor,
-                                          thiz, idx, rowStride, pixelStride);
+    jobject surfPlaneObj = env->NewObject(gSurfacePlaneClassInfo.clazz,
+            gSurfacePlaneClassInfo.ctor, thiz, idx, rowStride, pixelStride);
 
     return surfPlaneObj;
 }
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index cd1d9ce..8689e19 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -49,9 +49,14 @@
     DEQUEUE_INFO_OUTPUT_BUFFERS_CHANGED     = -3,
 };
 
+struct CryptoErrorCodes {
+    jint cryptoErrorNoKey;
+    jint cryptoErrorKeyExpired;
+    jint cryptoErrorResourceBusy;
+} gCryptoErrorCodes;
+
 struct fields_t {
     jfieldID context;
-
     jfieldID cryptoInfoNumSubSamplesID;
     jfieldID cryptoInfoNumBytesOfClearDataID;
     jfieldID cryptoInfoNumBytesOfEncryptedDataID;
@@ -342,6 +347,21 @@
 
     jstring msgObj = env->NewStringUTF(msg != NULL ? msg : "Unknown Error");
 
+    /* translate OS errors to Java API CryptoException errorCodes */
+    switch (err) {
+        case ERROR_DRM_NO_LICENSE:
+            err = gCryptoErrorCodes.cryptoErrorNoKey;
+            break;
+        case ERROR_DRM_LICENSE_EXPIRED:
+            err = gCryptoErrorCodes.cryptoErrorKeyExpired;
+            break;
+        case ERROR_DRM_RESOURCE_BUSY:
+            err = gCryptoErrorCodes.cryptoErrorResourceBusy;
+            break;
+        default:
+            break;
+    }
+
     jthrowable exception =
         (jthrowable)env->NewObject(clazz, constructID, err, msgObj);
 
@@ -350,9 +370,8 @@
 
 static jint throwExceptionAsNecessary(
         JNIEnv *env, status_t err, const char *msg = NULL) {
-    if (err >= ERROR_DRM_WV_VENDOR_MIN && err <= ERROR_DRM_WV_VENDOR_MAX) {
+    if (err >= ERROR_DRM_VENDOR_MIN && err <= ERROR_DRM_VENDOR_MAX) {
         // We'll throw our custom MediaCodec.CryptoException
-
         throwCryptoException(env, err, msg);
         return 0;
     }
@@ -370,6 +389,12 @@
         case INFO_OUTPUT_BUFFERS_CHANGED:
             return DEQUEUE_INFO_OUTPUT_BUFFERS_CHANGED;
 
+        case ERROR_DRM_NO_LICENSE:
+        case ERROR_DRM_LICENSE_EXPIRED:
+        case ERROR_DRM_RESOURCE_BUSY:
+            throwCryptoException(env, err, msg);
+            break;
+
         default:
         {
             jniThrowException(env, "java/lang/IllegalStateException", msg);
@@ -852,6 +877,22 @@
 
     gFields.cryptoInfoModeID = env->GetFieldID(clazz, "mode", "I");
     CHECK(gFields.cryptoInfoModeID != NULL);
+
+    clazz = env->FindClass("android/media/MediaCodec$CryptoException");
+    CHECK(clazz != NULL);
+
+    jfieldID field;
+    field = env->GetStaticFieldID(clazz, "ERROR_NO_KEY", "I");
+    CHECK(field != NULL);
+    gCryptoErrorCodes.cryptoErrorNoKey = env->GetStaticIntField(clazz, field);
+
+    field = env->GetStaticFieldID(clazz, "ERROR_KEY_EXPIRED", "I");
+    CHECK(field != NULL);
+    gCryptoErrorCodes.cryptoErrorKeyExpired = env->GetStaticIntField(clazz, field);
+
+    field = env->GetStaticFieldID(clazz, "ERROR_RESOURCE_BUSY", "I");
+    CHECK(field != NULL);
+    gCryptoErrorCodes.cryptoErrorResourceBusy = env->GetStaticIntField(clazz, field);
 }
 
 static void android_media_MediaCodec_native_setup(
diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp
index 7799ca4..16a1e48 100644
--- a/media/jni/android_media_MediaDrm.cpp
+++ b/media/jni/android_media_MediaDrm.cpp
@@ -242,6 +242,9 @@
     } else if (err == ERROR_DRM_NOT_PROVISIONED) {
         jniThrowException(env, "android/media/NotProvisionedException", msg);
         return true;
+    } else if (err == ERROR_DRM_RESOURCE_BUSY) {
+        jniThrowException(env, "android/media/ResourceBusyException", msg);
+        return true;
     } else if (err == ERROR_DRM_DEVICE_REVOKED) {
         jniThrowException(env, "android/media/DeniedByServerException", msg);
         return true;
diff --git a/media/mca/filterfw/native/core/gl_env.cpp b/media/mca/filterfw/native/core/gl_env.cpp
index 63fd16e..fdecda3 100644
--- a/media/mca/filterfw/native/core/gl_env.cpp
+++ b/media/mca/filterfw/native/core/gl_env.cpp
@@ -162,8 +162,7 @@
   // Create dummy surface using a GLConsumer
   sp<BufferQueue> bq = new BufferQueue();
   surfaceTexture_ = new GLConsumer(bq, 0);
-  window_ = new Surface(static_cast<sp<IGraphicBufferProducer> >(
-          surfaceTexture_->getBufferQueue()));
+  window_ = new Surface(static_cast<sp<IGraphicBufferProducer> >(bq));
 
   surfaces_[0] = SurfaceWindowPair(eglCreateWindowSurface(display(), config, window_.get(), NULL), NULL);
   if (CheckEGLError("eglCreateWindowSurface")) return false;
diff --git a/packages/DocumentsUI/AndroidManifest.xml b/packages/DocumentsUI/AndroidManifest.xml
index b88099e..27f93c0 100644
--- a/packages/DocumentsUI/AndroidManifest.xml
+++ b/packages/DocumentsUI/AndroidManifest.xml
@@ -3,12 +3,17 @@
 
     <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
 
-    <application android:label="@string/app_label">
+    <application
+        android:label="@string/app_label"
+        android:supportsRtl="true">
+
+        <!-- TODO: allow rotation when state saving is in better shape -->
         <activity
             android:name=".DocumentsActivity"
             android:finishOnCloseSystemDialogs="true"
             android:excludeFromRecents="true"
-            android:theme="@android:style/Theme.Holo.Light">
+            android:theme="@android:style/Theme.Holo.Light"
+            android:screenOrientation="nosensor">
             <intent-filter android:priority="100">
                 <action android:name="android.intent.action.OPEN_DOCUMENT" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -21,6 +26,12 @@
             </intent-filter>
         </activity>
 
+        <activity
+            android:name=".SettingsActivity"
+            android:title="@string/menu_settings"
+            android:theme="@android:style/Theme.Holo.Light"
+            android:exported="false" />
+
         <provider
             android:name=".RecentsProvider"
             android:authorities="com.android.documentsui.recents"
diff --git a/packages/DocumentsUI/res/layout/activity.xml b/packages/DocumentsUI/res/layout/activity.xml
index d4a01d3..ff28e41 100644
--- a/packages/DocumentsUI/res/layout/activity.xml
+++ b/packages/DocumentsUI/res/layout/activity.xml
@@ -25,20 +25,20 @@
         android:orientation="vertical">
 
         <FrameLayout
-            android:id="@+id/directory"
+            android:id="@+id/container_directory"
             android:layout_width="match_parent"
             android:layout_height="0dip"
             android:layout_weight="1" />
 
         <FrameLayout
-            android:id="@+id/save"
+            android:id="@+id/container_save"
             android:layout_width="match_parent"
             android:layout_height="wrap_content" />
 
     </LinearLayout>
 
-    <ListView
-        android:id="@+id/roots_list"
+    <FrameLayout
+        android:id="@+id/container_roots"
         android:layout_width="250dp"
         android:layout_height="match_parent"
         android:layout_gravity="start"
diff --git a/packages/DocumentsUI/res/layout/fragment_directory.xml b/packages/DocumentsUI/res/layout/fragment_directory.xml
index 638ac92..8dbd1de 100644
--- a/packages/DocumentsUI/res/layout/fragment_directory.xml
+++ b/packages/DocumentsUI/res/layout/fragment_directory.xml
@@ -18,6 +18,15 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
+    <TextView
+        android:id="@android:id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:text="@string/empty"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:visibility="gone" />
+
     <ListView
         android:id="@+id/list"
         android:layout_width="match_parent"
@@ -30,6 +39,7 @@
         android:layout_height="match_parent"
         android:listSelector="@android:color/transparent"
         android:paddingTop="?android:attr/listPreferredItemPaddingStart"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart" />
+        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+        android:visibility="gone" />
 
 </FrameLayout>
diff --git a/packages/DocumentsUI/res/menu/directory.xml b/packages/DocumentsUI/res/layout/fragment_roots.xml
similarity index 60%
copy from packages/DocumentsUI/res/menu/directory.xml
copy to packages/DocumentsUI/res/layout/fragment_roots.xml
index 12d0324..09782d9 100644
--- a/packages/DocumentsUI/res/menu/directory.xml
+++ b/packages/DocumentsUI/res/layout/fragment_roots.xml
@@ -14,15 +14,8 @@
      limitations under the License.
 -->
 
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_grid"
-        android:title="@string/menu_grid"
-        android:icon="@drawable/ic_menu_grid"
-        android:showAsAction="ifRoom" />
-    <item
-        android:id="@+id/menu_list"
-        android:title="@string/menu_list"
-        android:icon="@drawable/ic_menu_list"
-        android:showAsAction="ifRoom" />
-</menu>
+<ListView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/list"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:divider="@null" />
diff --git a/packages/DocumentsUI/res/layout/fragment_save.xml b/packages/DocumentsUI/res/layout/fragment_save.xml
index 85c48b1..49038bc 100644
--- a/packages/DocumentsUI/res/layout/fragment_save.xml
+++ b/packages/DocumentsUI/res/layout/fragment_save.xml
@@ -36,7 +36,8 @@
         android:layout_width="0dip"
         android:layout_height="wrap_content"
         android:layout_weight="1"
-        android:singleLine="true" />
+        android:singleLine="true"
+        android:selectAllOnFocus="true" />
 
     <Button
         android:id="@android:id/button1"
diff --git a/packages/DocumentsUI/res/layout/item_doc_grid.xml b/packages/DocumentsUI/res/layout/item_doc_grid.xml
index caa9db6..244214b 100644
--- a/packages/DocumentsUI/res/layout/item_doc_grid.xml
+++ b/packages/DocumentsUI/res/layout/item_doc_grid.xml
@@ -16,7 +16,7 @@
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="140dip"
+    android:layout_height="180dip"
     android:paddingBottom="?android:attr/listPreferredItemPaddingEnd"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
@@ -27,16 +27,17 @@
         android:foreground="@drawable/item_background"
         android:duplicateParentState="true">
 
-        <GridLayout
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:columnCount="1">
+            android:paddingBottom="6dp"
+            android:orientation="vertical">
 
             <ImageView
                 android:id="@android:id/icon"
                 android:layout_width="match_parent"
                 android:layout_height="0dip"
-                android:layout_gravity="fill_vertical"
+                android:layout_weight="1"
                 android:background="#bbb"
                 android:scaleType="centerInside"
                 android:contentDescription="@null" />
@@ -44,16 +45,80 @@
             <TextView
                 android:id="@android:id/title"
                 android:layout_width="match_parent"
-                android:layout_marginStart="8dip"
-                android:layout_marginEnd="8dip"
-                android:layout_marginTop="8dip"
-                android:layout_marginBottom="8dip"
+                android:layout_height="wrap_content"
                 android:singleLine="true"
                 android:ellipsize="marquee"
+                android:paddingTop="6dp"
+                android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+                android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:textAlignment="viewStart" />
 
-        </GridLayout>
+            <LinearLayout
+                android:id="@+id/summary_grid"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+                android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+                <ImageView
+                    android:id="@android:id/icon1"
+                    android:layout_width="24dip"
+                    android:layout_height="24dip"
+                    android:layout_marginEnd="6dip"
+                    android:scaleType="centerInside"
+                    android:contentDescription="@null" />
+
+                <TextView
+                    android:id="@android:id/summary"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:layout_gravity="center_vertical"
+                    android:singleLine="true"
+                    android:ellipsize="marquee"
+                    android:textAlignment="viewStart"
+                    android:textAppearance="?android:attr/textAppearanceSmall" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+                android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+                <View
+                    android:layout_width="0dip"
+                    android:layout_height="0dip"
+                    android:layout_weight="1" />
+
+                <TextView
+                    android:id="@+id/size"
+                    android:layout_width="70dp"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_marginEnd="8dp"
+                    android:singleLine="true"
+                    android:ellipsize="marquee"
+                    android:textAlignment="viewEnd"
+                    android:textAppearance="?android:attr/textAppearanceSmall" />
+
+                <TextView
+                    android:id="@+id/date"
+                    android:layout_width="70dp"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:singleLine="true"
+                    android:ellipsize="marquee"
+                    android:textAlignment="viewEnd"
+                    android:textAppearance="?android:attr/textAppearanceSmall" />
+
+            </LinearLayout>
+
+        </LinearLayout>
 
     </FrameLayout>
 
diff --git a/packages/DocumentsUI/res/layout/item_doc_list.xml b/packages/DocumentsUI/res/layout/item_doc_list.xml
index 39e55be..37c5881 100644
--- a/packages/DocumentsUI/res/layout/item_doc_list.xml
+++ b/packages/DocumentsUI/res/layout/item_doc_list.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 
-<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/item_background"
@@ -23,40 +23,82 @@
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:paddingTop="8dip"
     android:paddingBottom="8dip"
-    android:columnCount="3">
+    android:orientation="horizontal">
 
     <ImageView
         android:id="@android:id/icon"
         android:layout_width="@android:dimen/app_icon_size"
         android:layout_height="@android:dimen/app_icon_size"
-        android:layout_rowSpan="2"
         android:layout_marginEnd="8dip"
+        android:layout_gravity="center_vertical"
         android:scaleType="centerInside"
         android:contentDescription="@null" />
 
-    <TextView
-        android:id="@android:id/title"
+    <LinearLayout
         android:layout_width="0dip"
-        android:layout_gravity="fill_horizontal"
-        android:layout_marginTop="2dip"
-        android:layout_columnSpan="2"
-        android:singleLine="true"
-        android:ellipsize="marquee"
-        android:textAppearance="?android:attr/textAppearanceMedium"
-        android:textAlignment="viewStart" />
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:layout_gravity="center_vertical"
+        android:orientation="vertical">
 
-    <ImageView
-        android:id="@android:id/icon1"
-        android:layout_width="24dip"
-        android:layout_height="24dip"
-        android:layout_marginEnd="8dip"
-        android:visibility="gone"
-        android:scaleType="centerInside"
-        android:contentDescription="@null" />
+        <TextView
+            android:id="@android:id/title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textAlignment="viewStart" />
 
-    <TextView
-        android:id="@android:id/summary"
-        android:layout_marginTop="2dip"
-        android:textAppearance="?android:attr/textAppearanceSmall" />
+        <LinearLayout
+            android:id="@+id/summary_list"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
 
-</GridLayout>
+            <ImageView
+                android:id="@android:id/icon1"
+                android:layout_width="24dip"
+                android:layout_height="24dip"
+                android:layout_marginEnd="6dip"
+                android:scaleType="centerInside"
+                android:contentDescription="@null" />
+
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:layout_gravity="center_vertical"
+                android:layout_marginEnd="8dp"
+                android:singleLine="true"
+                android:ellipsize="marquee"
+                android:textAlignment="viewStart"
+                android:textAppearance="?android:attr/textAppearanceSmall" />
+
+            <TextView
+                android:id="@+id/size"
+                android:layout_width="70dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginEnd="8dp"
+                android:singleLine="true"
+                android:ellipsize="marquee"
+                android:textAlignment="viewEnd"
+                android:textAppearance="?android:attr/textAppearanceSmall" />
+
+            <TextView
+                android:id="@+id/date"
+                android:layout_width="70dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:singleLine="true"
+                android:ellipsize="marquee"
+                android:textAlignment="viewEnd"
+                android:textAppearance="?android:attr/textAppearanceSmall" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/packages/DocumentsUI/res/layout/item_root_header.xml b/packages/DocumentsUI/res/layout/item_root_header.xml
new file mode 100644
index 0000000..2b9a46f
--- /dev/null
+++ b/packages/DocumentsUI/res/layout/item_root_header.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/title"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingTop="8dp"
+    android:paddingBottom="8dp"
+    android:singleLine="true"
+    android:ellipsize="marquee"
+    android:textAllCaps="true"
+    android:textAppearance="?android:attr/textAppearanceSmall"
+    android:textAlignment="viewStart" />
diff --git a/packages/DocumentsUI/res/menu/activity.xml b/packages/DocumentsUI/res/menu/activity.xml
index a0d03b2..575336c 100644
--- a/packages/DocumentsUI/res/menu/activity.xml
+++ b/packages/DocumentsUI/res/menu/activity.xml
@@ -27,4 +27,18 @@
         android:showAsAction="always|collapseActionView"
         android:actionViewClass="android.widget.SearchView"
         android:imeOptions="actionSearch" />
+    <item
+        android:id="@+id/menu_grid"
+        android:title="@string/menu_grid"
+        android:icon="@drawable/ic_menu_grid"
+        android:showAsAction="ifRoom" />
+    <item
+        android:id="@+id/menu_list"
+        android:title="@string/menu_list"
+        android:icon="@drawable/ic_menu_list"
+        android:showAsAction="ifRoom" />
+    <item
+        android:id="@+id/menu_settings"
+        android:title="@string/menu_settings"
+        android:showAsAction="never" />
 </menu>
diff --git a/packages/DocumentsUI/res/values/strings.xml b/packages/DocumentsUI/res/values/strings.xml
index 3eda207..84f89b4 100644
--- a/packages/DocumentsUI/res/values/strings.xml
+++ b/packages/DocumentsUI/res/values/strings.xml
@@ -25,6 +25,7 @@
     <string name="menu_list">List view</string>
     <string name="menu_sort">Sort by</string>
     <string name="menu_search">Search</string>
+    <string name="menu_settings">Settings</string>
 
     <string name="menu_open">Open</string>
     <string name="menu_save">Save</string>
@@ -33,6 +34,7 @@
 
     <string name="sort_name">By name</string>
     <string name="sort_date">By date modified</string>
+    <string name="sort_size">By size</string>
 
     <string name="drawer_open">Show roots</string>
     <string name="drawer_close">Hide roots</string>
@@ -40,5 +42,16 @@
     <string name="save_error">Failed to save document</string>
 
     <string name="root_recent">Recent</string>
+    <string name="root_available_bytes"><xliff:g id="size" example="3GB">%1$s</xliff:g> free</string>
+
+    <string name="root_type_service">Services</string>
+    <string name="root_type_shortcut">Shortcuts</string>
+    <string name="root_type_device">Devices</string>
+
+    <string name="pref_advanced_devices">Display advanced devices</string>
+    <string name="pref_file_size">Display file size</string>
+    <string name="pref_device_size">Display device size</string>
+
+    <string name="empty">No items</string>
 
 </resources>
diff --git a/packages/DocumentsUI/res/menu/directory.xml b/packages/DocumentsUI/res/xml/preferences.xml
similarity index 60%
rename from packages/DocumentsUI/res/menu/directory.xml
rename to packages/DocumentsUI/res/xml/preferences.xml
index 12d0324..5589ff1 100644
--- a/packages/DocumentsUI/res/menu/directory.xml
+++ b/packages/DocumentsUI/res/xml/preferences.xml
@@ -14,15 +14,13 @@
      limitations under the License.
 -->
 
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_grid"
-        android:title="@string/menu_grid"
-        android:icon="@drawable/ic_menu_grid"
-        android:showAsAction="ifRoom" />
-    <item
-        android:id="@+id/menu_list"
-        android:title="@string/menu_list"
-        android:icon="@drawable/ic_menu_list"
-        android:showAsAction="ifRoom" />
-</menu>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+    <CheckBoxPreference
+        android:title="@string/pref_advanced_devices"
+        android:defaultValue="false"
+        android:key="advancedDevices" />
+    <CheckBoxPreference
+        android:title="@string/pref_file_size"
+        android:defaultValue="false"
+        android:key="fileSize" />
+</PreferenceScreen>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java
new file mode 100644
index 0000000..313774b
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.DocumentsContract;
+import android.provider.DocumentsContract.DocumentColumns;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.android.documentsui.model.Document;
+
+import java.io.FileNotFoundException;
+
+/**
+ * Dialog to create a new directory.
+ */
+public class CreateDirectoryFragment extends DialogFragment {
+    private static final String TAG_CREATE_DIRECTORY = "create_directory";
+
+    public static void show(FragmentManager fm) {
+        final CreateDirectoryFragment dialog = new CreateDirectoryFragment();
+        dialog.show(fm, TAG_CREATE_DIRECTORY);
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        final Context context = getActivity();
+        final ContentResolver resolver = context.getContentResolver();
+
+        final AlertDialog.Builder builder = new AlertDialog.Builder(context);
+        final LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
+
+        final View view = dialogInflater.inflate(R.layout.dialog_create_dir, null, false);
+        final EditText text1 = (EditText)view.findViewById(android.R.id.text1);
+
+        builder.setTitle(R.string.menu_create_dir);
+        builder.setView(view);
+
+        builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
+            @Override
+            public void onClick(DialogInterface dialog, int which) {
+                final String displayName = text1.getText().toString();
+
+                final ContentValues values = new ContentValues();
+                values.put(DocumentColumns.MIME_TYPE, DocumentsContract.MIME_TYPE_DIRECTORY);
+                values.put(DocumentColumns.DISPLAY_NAME, displayName);
+
+                final DocumentsActivity activity = (DocumentsActivity) getActivity();
+                final Document cwd = activity.getCurrentDirectory();
+
+                Uri childUri = resolver.insert(cwd.uri, values);
+                try {
+                    // Navigate into newly created child
+                    final Document childDoc = Document.fromUri(resolver, childUri);
+                    activity.onDocumentPicked(childDoc);
+                } catch (FileNotFoundException e) {
+                    childUri = null;
+                }
+
+                if (childUri == null) {
+                    Toast.makeText(context, R.string.save_error, Toast.LENGTH_SHORT).show();
+                }
+            }
+        });
+        builder.setNegativeButton(android.R.string.cancel, null);
+
+        return builder.create();
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
index f6f3f9c..5a6060a 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
@@ -26,11 +26,11 @@
 import android.os.Bundle;
 import android.provider.DocumentsContract;
 import android.text.format.DateUtils;
+import android.text.format.Formatter;
 import android.util.SparseBooleanArray;
 import android.view.ActionMode;
 import android.view.LayoutInflater;
 import android.view.Menu;
-import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
@@ -46,60 +46,74 @@
 
 import com.android.documentsui.DocumentsActivity.DisplayState;
 import com.android.documentsui.model.Document;
+import com.android.documentsui.model.Root;
 import com.android.internal.util.Predicate;
 import com.google.android.collect.Lists;
 
+import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Display the documents inside a single directory.
  */
 public class DirectoryFragment extends Fragment {
 
-    // TODO: show storage backend in item views when requested
-
+    private View mEmptyView;
     private ListView mListView;
     private GridView mGridView;
 
     private AbsListView mCurrentView;
 
+    private Predicate<Document> mFilter;
+
     public static final int TYPE_NORMAL = 1;
     public static final int TYPE_SEARCH = 2;
     public static final int TYPE_RECENT_OPEN = 3;
-    public static final int TYPE_RECENT_CREATE = 4;
 
     private int mType = TYPE_NORMAL;
 
     private DocumentsAdapter mAdapter;
     private LoaderCallbacks<List<Document>> mCallbacks;
 
+    private static final String EXTRA_TYPE = "type";
     private static final String EXTRA_URI = "uri";
 
-    private static final int LOADER_DOCUMENTS = 2;
+    private static AtomicInteger sLoaderId = new AtomicInteger(4000);
 
-    public static void show(FragmentManager fm, Uri uri) {
+    private final int mLoaderId = sLoaderId.incrementAndGet();
+
+    public static void showNormal(FragmentManager fm, Uri uri) {
+        show(fm, TYPE_NORMAL, uri);
+    }
+
+    public static void showSearch(FragmentManager fm, Uri uri, String query) {
+        final Uri searchUri = DocumentsContract.buildSearchUri(uri, query);
+        show(fm, TYPE_SEARCH, searchUri);
+    }
+
+    public static void showRecentsOpen(FragmentManager fm) {
+        show(fm, TYPE_RECENT_OPEN, null);
+    }
+
+    private static void show(FragmentManager fm, int type, Uri uri) {
         final Bundle args = new Bundle();
+        args.putInt(EXTRA_TYPE, type);
         args.putParcelable(EXTRA_URI, uri);
 
         final DirectoryFragment fragment = new DirectoryFragment();
         fragment.setArguments(args);
 
         final FragmentTransaction ft = fm.beginTransaction();
-        ft.replace(R.id.directory, fragment);
+        ft.replace(R.id.container_directory, fragment);
         ft.commitAllowingStateLoss();
     }
 
     public static DirectoryFragment get(FragmentManager fm) {
         // TODO: deal with multiple directories shown at once
-        return (DirectoryFragment) fm.findFragmentById(R.id.directory);
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setHasOptionsMenu(true);
+        return (DirectoryFragment) fm.findFragmentById(R.id.container_directory);
     }
 
     @Override
@@ -109,6 +123,8 @@
 
         final View view = inflater.inflate(R.layout.fragment_directory, container, false);
 
+        mEmptyView = view.findViewById(android.R.id.empty);
+
         mListView = (ListView) view.findViewById(R.id.list);
         mListView.setOnItemClickListener(mItemListener);
         mListView.setMultiChoiceModeListener(mMultiListener);
@@ -118,45 +134,37 @@
         mGridView.setMultiChoiceModeListener(mMultiListener);
 
         mAdapter = new DocumentsAdapter();
-        updateMode();
 
         final Uri uri = getArguments().getParcelable(EXTRA_URI);
-
-        if (uri.getQueryParameter(DocumentsContract.PARAM_QUERY) != null) {
-            mType = TYPE_SEARCH;
-        } else if (RecentsProvider.buildRecentOpen().equals(uri)) {
-            mType = TYPE_RECENT_OPEN;
-        } else if (RecentsProvider.buildRecentCreate().equals(uri)) {
-            mType = TYPE_RECENT_CREATE;
-        } else {
-            mType = TYPE_NORMAL;
-        }
+        mType = getArguments().getInt(EXTRA_TYPE);
 
         mCallbacks = new LoaderCallbacks<List<Document>>() {
             @Override
             public Loader<List<Document>> onCreateLoader(int id, Bundle args) {
                 final DisplayState state = getDisplayState(DirectoryFragment.this);
+                mFilter = new MimePredicate(state.acceptMimes);
 
                 final Uri contentsUri;
                 if (mType == TYPE_NORMAL) {
                     contentsUri = DocumentsContract.buildContentsUri(uri);
+                } else if (mType == TYPE_RECENT_OPEN) {
+                    contentsUri = RecentsProvider.buildRecentOpen();
                 } else {
                     contentsUri = uri;
                 }
 
-                final Predicate<Document> filter = new MimePredicate(state.acceptMimes);
-
                 final Comparator<Document> sortOrder;
-                if (state.sortOrder == DisplayState.SORT_ORDER_DATE || mType == TYPE_RECENT_OPEN
-                        || mType == TYPE_RECENT_CREATE) {
+                if (state.sortOrder == DisplayState.SORT_ORDER_DATE || mType == TYPE_RECENT_OPEN) {
                     sortOrder = new Document.DateComparator();
                 } else if (state.sortOrder == DisplayState.SORT_ORDER_NAME) {
                     sortOrder = new Document.NameComparator();
+                } else if (state.sortOrder == DisplayState.SORT_ORDER_SIZE) {
+                    sortOrder = new Document.SizeComparator();
                 } else {
                     throw new IllegalArgumentException("Unknown sort order " + state.sortOrder);
                 }
 
-                return new DirectoryLoader(context, contentsUri, mType, filter, sortOrder);
+                return new DirectoryLoader(context, contentsUri, mType, null, sortOrder);
             }
 
             @Override
@@ -170,56 +178,34 @@
             }
         };
 
+        updateDisplayState();
+
         return view;
     }
 
     @Override
     public void onStart() {
         super.onStart();
-        getLoaderManager().restartLoader(LOADER_DOCUMENTS, getArguments(), mCallbacks);
+
+        final Context context = getActivity();
+        getDisplayState(this).showSize = SettingsActivity.getDisplayFileSize(context);
+
+        getLoaderManager().restartLoader(mLoaderId, getArguments(), mCallbacks);
     }
 
     @Override
     public void onStop() {
         super.onStop();
-        getLoaderManager().destroyLoader(LOADER_DOCUMENTS);
+        getLoaderManager().destroyLoader(mLoaderId);
     }
 
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        super.onCreateOptionsMenu(menu, inflater);
-        inflater.inflate(R.menu.directory, menu);
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(Menu menu) {
-        super.onPrepareOptionsMenu(menu);
+    public void updateDisplayState() {
         final DisplayState state = getDisplayState(this);
-        menu.findItem(R.id.menu_grid).setVisible(state.mode != DisplayState.MODE_GRID);
-        menu.findItem(R.id.menu_list).setVisible(state.mode != DisplayState.MODE_LIST);
-    }
 
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final DisplayState state = getDisplayState(this);
-        final int id = item.getItemId();
-        if (id == R.id.menu_grid) {
-            state.mode = DisplayState.MODE_GRID;
-            updateMode();
-            getFragmentManager().invalidateOptionsMenu();
-            return true;
-        } else if (id == R.id.menu_list) {
-            state.mode = DisplayState.MODE_LIST;
-            updateMode();
-            getFragmentManager().invalidateOptionsMenu();
-            return true;
-        } else {
-            return super.onOptionsItemSelected(item);
-        }
-    }
-
-    private void updateMode() {
-        final DisplayState state = getDisplayState(this);
+        // TODO: avoid kicking loader when nothing changed
+        getLoaderManager().restartLoader(mLoaderId, getArguments(), mCallbacks);
+        mListView.smoothScrollToPosition(0);
+        mGridView.smoothScrollToPosition(0);
 
         mListView.setVisibility(state.mode == DisplayState.MODE_LIST ? View.VISIBLE : View.GONE);
         mGridView.setVisibility(state.mode == DisplayState.MODE_GRID ? View.VISIBLE : View.GONE);
@@ -250,12 +236,6 @@
         }
     }
 
-    public void updateSortOrder() {
-        getLoaderManager().restartLoader(LOADER_DOCUMENTS, getArguments(), mCallbacks);
-        mListView.smoothScrollToPosition(0);
-        mGridView.smoothScrollToPosition(0);
-    }
-
     private OnItemClickListener mItemListener = new OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@@ -309,7 +289,7 @@
             if (checked) {
                 // Directories cannot be checked
                 final Document doc = mAdapter.getItem(position);
-                if (DocumentsContract.MIME_TYPE_DIRECTORY.equals(doc.mimeType)) {
+                if (doc.isDirectory()) {
                     mCurrentView.setItemChecked(position, false);
                 }
             }
@@ -331,16 +311,23 @@
 
         public void swapDocuments(List<Document> documents) {
             mDocuments = documents;
+
+            if (documents != null && documents.isEmpty()) {
+                mEmptyView.setVisibility(View.VISIBLE);
+            } else {
+                mEmptyView.setVisibility(View.GONE);
+            }
+
             notifyDataSetChanged();
         }
 
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
             final Context context = parent.getContext();
+            final DisplayState state = getDisplayState(DirectoryFragment.this);
 
             if (convertView == null) {
                 final LayoutInflater inflater = LayoutInflater.from(context);
-                final DisplayState state = getDisplayState(DirectoryFragment.this);
                 if (state.mode == DisplayState.MODE_LIST) {
                     convertView = inflater.inflate(R.layout.item_doc_list, parent, false);
                 } else if (state.mode == DisplayState.MODE_GRID) {
@@ -352,21 +339,59 @@
 
             final Document doc = getItem(position);
 
-            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
-            final TextView summary = (TextView) convertView.findViewById(android.R.id.summary);
             final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
+            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
+            final View summaryGrid = convertView.findViewById(R.id.summary_grid);
+            final ImageView icon1 = (ImageView) convertView.findViewById(android.R.id.icon1);
+            final TextView summary = (TextView) convertView.findViewById(android.R.id.summary);
+            final TextView date = (TextView) convertView.findViewById(R.id.date);
+            final TextView size = (TextView) convertView.findViewById(R.id.size);
 
             if (doc.isThumbnailSupported()) {
                 // TODO: load thumbnails async
                 icon.setImageURI(doc.uri);
             } else {
-                icon.setImageDrawable(DocumentsActivity.resolveDocumentIcon(
+                icon.setImageDrawable(RootsCache.resolveDocumentIcon(
                         context, doc.uri.getAuthority(), doc.mimeType));
             }
 
             title.setText(doc.displayName);
-            if (summary != null) {
-                summary.setText(DateUtils.getRelativeTimeSpanString(doc.lastModified));
+
+            if (mType == TYPE_NORMAL || mType == TYPE_SEARCH) {
+                icon1.setVisibility(View.GONE);
+                if (doc.summary != null) {
+                    summary.setText(doc.summary);
+                    summary.setVisibility(View.VISIBLE);
+                } else {
+                    summary.setVisibility(View.INVISIBLE);
+                }
+            } else if (mType == TYPE_RECENT_OPEN) {
+                final Root root = RootsCache.findRoot(context, doc);
+                icon1.setVisibility(View.VISIBLE);
+                icon1.setImageDrawable(root.icon);
+                summary.setText(root.getDirectoryString());
+                summary.setVisibility(View.VISIBLE);
+            }
+
+            if (summaryGrid != null) {
+                summaryGrid.setVisibility(
+                        (summary.getVisibility() == View.VISIBLE) ? View.VISIBLE : View.GONE);
+            }
+
+            // TODO: omit year from format
+            date.setText(DateUtils.formatSameDayTime(
+                    doc.lastModified, System.currentTimeMillis(), DateFormat.SHORT,
+                    DateFormat.SHORT));
+
+            if (state.showSize) {
+                size.setVisibility(View.VISIBLE);
+                if (doc.isDirectory()) {
+                    size.setText(null);
+                } else {
+                    size.setText(Formatter.formatFileSize(context, doc.size));
+                }
+            } else {
+                size.setVisibility(View.GONE);
             }
 
             return convertView;
@@ -386,5 +411,16 @@
         public long getItemId(int position) {
             return getItem(position).uri.hashCode();
         }
+
+        @Override
+        public boolean areAllItemsEnabled() {
+            return false;
+        }
+
+        @Override
+        public boolean isEnabled(int position) {
+            final Document doc = getItem(position);
+            return mFilter.apply(doc);
+        }
     }
 }
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java
index a50c312..94c2b61 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java
@@ -19,12 +19,14 @@
 import static com.android.documentsui.DirectoryFragment.TYPE_NORMAL;
 import static com.android.documentsui.DirectoryFragment.TYPE_RECENT_OPEN;
 import static com.android.documentsui.DirectoryFragment.TYPE_SEARCH;
+import static com.android.documentsui.DocumentsActivity.TAG;
 
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.CancellationSignal;
+import android.util.Log;
 
 import com.android.documentsui.model.Document;
 import com.android.internal.util.Predicate;
@@ -32,6 +34,7 @@
 
 import libcore.io.IoUtils;
 
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -60,20 +63,24 @@
         final Cursor cursor = resolver.query(uri, null, null, null, null, signal);
         try {
             while (cursor != null && cursor.moveToNext()) {
-                final Document doc;
+                Document doc = null;
                 switch (mType) {
                     case TYPE_NORMAL:
                     case TYPE_SEARCH:
                         doc = Document.fromDirectoryCursor(uri, cursor);
                         break;
                     case TYPE_RECENT_OPEN:
-                        doc = Document.fromRecentOpenCursor(resolver, cursor);
+                        try {
+                            doc = Document.fromRecentOpenCursor(resolver, cursor);
+                        } catch (FileNotFoundException e) {
+                            Log.w(TAG, "Failed to find recent: " + e);
+                        }
                         break;
                     default:
                         throw new IllegalArgumentException("Unknown type");
                 }
 
-                if (mFilter == null || mFilter.apply(doc)) {
+                if (doc != null && (mFilter == null || mFilter.apply(doc))) {
                     result.add(doc);
                 }
             }
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
index 0cbd1cb..8e7e087 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java
@@ -19,103 +19,62 @@
 import android.app.ActionBar;
 import android.app.ActionBar.OnNavigationListener;
 import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
+import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.ClipData;
-import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.ContentValues;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ResolveInfo;
 import android.database.Cursor;
 import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.DocumentsContract;
 import android.provider.DocumentsContract.DocumentColumns;
 import android.support.v4.app.ActionBarDrawerToggle;
 import android.support.v4.view.GravityCompat;
 import android.support.v4.widget.DrawerLayout;
 import android.support.v4.widget.DrawerLayout.DrawerListener;
 import android.util.Log;
-import android.util.Pair;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemClickListener;
-import android.widget.ArrayAdapter;
 import android.widget.BaseAdapter;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.ListView;
 import android.widget.SearchView;
+import android.widget.SearchView.OnCloseListener;
 import android.widget.SearchView.OnQueryTextListener;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import com.android.documentsui.model.Document;
-import com.android.documentsui.model.DocumentsProviderInfo;
-import com.android.documentsui.model.DocumentsProviderInfo.Icon;
+import com.android.documentsui.model.DocumentStack;
 import com.android.documentsui.model.Root;
-import com.google.android.collect.Lists;
-import com.google.android.collect.Maps;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-
-import java.util.ArrayList;
+import java.io.FileNotFoundException;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.LinkedList;
 import java.util.List;
 
 public class DocumentsActivity extends Activity {
     public static final String TAG = "Documents";
 
-    // TODO: share backend root cache with recents provider
-
-    private static final String TAG_CREATE_DIRECTORY = "create_directory";
-
-    private static final int ACTION_OPEN = 1;
-    private static final int ACTION_CREATE = 2;
+    public static final int ACTION_OPEN = 1;
+    public static final int ACTION_CREATE = 2;
 
     private int mAction;
 
     private SearchView mSearchView;
 
+    private View mRootsContainer;
     private DrawerLayout mDrawerLayout;
     private ActionBarDrawerToggle mDrawerToggle;
 
-    private Root mCurrentRoot;
-
-    /** Map from authority to cached info */
-    private static HashMap<String, DocumentsProviderInfo> sProviders = Maps.newHashMap();
-    /** Map from (authority+rootId) to cached info */
-    private static HashMap<Pair<String, String>, Root> sRoots = Maps.newHashMap();
-
-    // TODO: remove once adapter split by type
-    private static ArrayList<Root> sRootsList = Lists.newArrayList();
-
-    private static Root sRecentOpenRoot;
-
-    private RootsAdapter mRootsAdapter;
-    private ListView mRootsList;
-
     private final DisplayState mDisplayState = new DisplayState();
 
-    private LinkedList<Document> mStack = new LinkedList<Document>();
+    /** Current user navigation stack; empty implies recents. */
+    private DocumentStack mStack;
+    /** Currently active search, overriding any stack. */
+    private String mCurrentSearch;
 
     @Override
     public void onCreate(Bundle icicle) {
@@ -153,11 +112,11 @@
             SaveFragment.show(getFragmentManager(), mimeType, title);
         }
 
+        RootsFragment.show(getFragmentManager());
+
+        mRootsContainer = findViewById(R.id.container_roots);
+
         mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
-        mRootsAdapter = new RootsAdapter(this, sRootsList);
-        mRootsList = (ListView) findViewById(R.id.roots_list);
-        mRootsList.setAdapter(mRootsAdapter);
-        mRootsList.setOnItemClickListener(mRootsListener);
 
         mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                 R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close);
@@ -165,9 +124,7 @@
         mDrawerLayout.setDrawerListener(mDrawerListener);
         mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
 
-        mDrawerLayout.openDrawer(mRootsList);
-
-        updateRoots();
+        mDrawerLayout.openDrawer(mRootsContainer);
 
         // Restore last stack for calling package
         // TODO: move into async loader
@@ -176,20 +133,17 @@
                 .query(RecentsProvider.buildResume(packageName), null, null, null, null);
         try {
             if (cursor.moveToFirst()) {
-                final String rawStack = cursor.getString(
+                final String raw = cursor.getString(
                         cursor.getColumnIndex(RecentsProvider.COL_PATH));
-                restoreStack(rawStack);
+                mStack = DocumentStack.deserialize(getContentResolver(), raw);
             }
+        } catch (FileNotFoundException e) {
+            Log.w(TAG, "Failed to resume", e);
         } finally {
             cursor.close();
         }
 
-        // Start in recents if no restored stack
-        if (mStack.isEmpty()) {
-            onRootPicked(sRecentOpenRoot);
-        }
-
-        updateDirectoryFragment();
+        onCurrentDirectoryChanged();
     }
 
     private DrawerListener mDrawerListener = new DrawerListener() {
@@ -228,7 +182,7 @@
         actionBar.setDisplayShowHomeEnabled(true);
         actionBar.setDisplayHomeAsUpEnabled(true);
 
-        if (mDrawerLayout.isDrawerOpen(mRootsList)) {
+        if (mDrawerLayout.isDrawerOpen(mRootsContainer)) {
             actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
             actionBar.setIcon(new ColorDrawable());
 
@@ -242,7 +196,7 @@
             final Root root = getCurrentRoot();
             actionBar.setIcon(root != null ? root.icon : null);
 
-            if (getCurrentRoot().isRecents) {
+            if (root.isRecents) {
                 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
                 actionBar.setTitle(root.title);
             } else {
@@ -270,10 +224,8 @@
         mSearchView.setOnQueryTextListener(new OnQueryTextListener() {
             @Override
             public boolean onQueryTextSubmit(String query) {
-                // TODO: use second directory stack for searches?
-                final Document cwd = getCurrentDirectory();
-                final Document searchDoc = Document.fromSearch(cwd.uri, query);
-                onDocumentPicked(searchDoc);
+                mCurrentSearch = query;
+                onCurrentDirectoryChanged();
                 mSearchView.setIconified(true);
                 return true;
             }
@@ -284,6 +236,15 @@
             }
         });
 
+        mSearchView.setOnCloseListener(new OnCloseListener() {
+            @Override
+            public boolean onClose() {
+                mCurrentSearch = null;
+                onCurrentDirectoryChanged();
+                return false;
+            }
+        });
+
         return true;
     }
 
@@ -291,20 +252,36 @@
     public boolean onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
 
+        final FragmentManager fm = getFragmentManager();
         final Document cwd = getCurrentDirectory();
 
         final MenuItem createDir = menu.findItem(R.id.menu_create_dir);
-        createDir.setVisible(mAction == ACTION_CREATE);
-        createDir.setEnabled(cwd != null && cwd.isCreateSupported());
+        final MenuItem search = menu.findItem(R.id.menu_search);
+        final MenuItem grid =  menu.findItem(R.id.menu_grid);
+        final MenuItem list = menu.findItem(R.id.menu_list);
+
+        grid.setVisible(mDisplayState.mode != DisplayState.MODE_GRID);
+        list.setVisible(mDisplayState.mode != DisplayState.MODE_LIST);
+
+        final boolean searchVisible;
+        if (mAction == ACTION_CREATE) {
+            createDir.setVisible(cwd != null && cwd.isCreateSupported());
+            searchVisible = false;
+
+            // No display options in recent directories
+            if (cwd == null) {
+                grid.setVisible(false);
+                list.setVisible(false);
+            }
+
+            SaveFragment.get(fm).setSaveEnabled(cwd != null && cwd.isCreateSupported());
+        } else {
+            createDir.setVisible(false);
+            searchVisible = cwd != null && cwd.isSearchSupported();
+        }
 
         // TODO: close any search in-progress when hiding
-        final MenuItem search = menu.findItem(R.id.menu_search);
-        search.setVisible(cwd != null && cwd.isSearchSupported());
-
-        if (mAction == ACTION_CREATE) {
-            final FragmentManager fm = getFragmentManager();
-            SaveFragment.get(fm).setSaveEnabled(cwd != null && cwd.isCreateSupported());
-        }
+        search.setVisible(searchVisible);
 
         return true;
     }
@@ -324,8 +301,22 @@
             return true;
         } else if (id == R.id.menu_search) {
             return false;
+        } else if (id == R.id.menu_grid) {
+            mDisplayState.mode = DisplayState.MODE_GRID;
+            updateDisplayState();
+            invalidateOptionsMenu();
+            return true;
+        } else if (id == R.id.menu_list) {
+            mDisplayState.mode = DisplayState.MODE_LIST;
+            updateDisplayState();
+            invalidateOptionsMenu();
+            return true;
+        } else if (id == R.id.menu_settings) {
+            startActivity(new Intent(this, SettingsActivity.class));
+            return true;
+        } else {
+            return super.onOptionsItemSelected(item);
         }
-        return super.onOptionsItemSelected(item);
     }
 
     @Override
@@ -333,8 +324,8 @@
         final int size = mStack.size();
         if (size > 1) {
             mStack.pop();
-            updateDirectoryFragment();
-        } else if (size == 1 && !mDrawerLayout.isDrawerOpen(mRootsList)) {
+            onCurrentDirectoryChanged();
+        } else if (size == 1 && !mDrawerLayout.isDrawerOpen(mRootsContainer)) {
             // TODO: open root drawer once we can capture back key
             super.onBackPressed();
         } else {
@@ -346,7 +337,7 @@
     private BaseAdapter mSortAdapter = new BaseAdapter() {
         @Override
         public int getCount() {
-            return 2;
+            return mDisplayState.showSize ? 3 : 2;
         }
 
         @Override
@@ -356,6 +347,8 @@
                     return getText(R.string.sort_name);
                 case 1:
                     return getText(R.string.sort_date);
+                case 2:
+                    return getText(R.string.sort_size);
                 default:
                     return null;
             }
@@ -380,7 +373,8 @@
             if (cwd != null) {
                 title.setText(cwd.displayName);
             } else {
-                title.setText(null);
+                // No directory means recents
+                title.setText(R.string.root_recent);
             }
 
             summary.setText((String) getItem(position));
@@ -406,13 +400,18 @@
         @Override
         public boolean onNavigationItemSelected(int itemPosition, long itemId) {
             mDisplayState.sortOrder = itemPosition;
-            DirectoryFragment.get(getFragmentManager()).updateSortOrder();
+            updateDisplayState();
             return true;
         }
     };
 
     public Root getCurrentRoot() {
-        return mCurrentRoot;
+        final Document cwd = getCurrentDirectory();
+        if (cwd != null) {
+            return RootsCache.findRoot(this, cwd);
+        } else {
+            return RootsCache.getRecentsRoot(this);
+        }
     }
 
     public Document getCurrentDirectory() {
@@ -423,35 +422,79 @@
         return mDisplayState;
     }
 
-    private void updateDirectoryFragment() {
+    private void onCurrentDirectoryChanged() {
         final FragmentManager fm = getFragmentManager();
         final Document cwd = getCurrentDirectory();
-        if (cwd != null) {
-            DirectoryFragment.show(fm, cwd.uri);
+
+        if (cwd == null) {
+            // No directory means recents
+            if (mAction == ACTION_CREATE) {
+                RecentsCreateFragment.show(fm);
+            } else {
+                DirectoryFragment.showRecentsOpen(fm);
+            }
+        } else {
+            if (mCurrentSearch != null) {
+                // Ongoing search
+                DirectoryFragment.showSearch(fm, cwd.uri, mCurrentSearch);
+            } else {
+                // Normal boring directory
+                DirectoryFragment.showNormal(fm, cwd.uri);
+            }
         }
+
+        // Forget any replacement target
+        if (mAction == ACTION_CREATE) {
+            final SaveFragment save = SaveFragment.get(fm);
+            if (save != null) {
+                save.setReplaceTarget(null);
+            }
+        }
+
         updateActionBar();
         invalidateOptionsMenu();
         dumpStack();
     }
 
-    public void onRootPicked(Root root) {
+    private void updateDisplayState() {
+        // TODO: handle multiple directory stacks on tablets
+        DirectoryFragment.get(getFragmentManager()).updateDisplayState();
+    }
+
+    public void onStackPicked(DocumentStack stack) {
+        mStack = stack;
+        onCurrentDirectoryChanged();
+    }
+
+    public void onRootPicked(Root root, boolean closeDrawer) {
         // Clear entire backstack and start in new root
         mStack.clear();
-        mCurrentRoot = root;
-        onDocumentPicked(Document.fromRoot(getContentResolver(), root));
+
+        if (!root.isRecents) {
+            try {
+                onDocumentPicked(Document.fromRoot(getContentResolver(), root));
+            } catch (FileNotFoundException e) {
+            }
+        } else {
+            onCurrentDirectoryChanged();
+        }
+
+        if (closeDrawer) {
+            mDrawerLayout.closeDrawers();
+        }
     }
 
     public void onDocumentPicked(Document doc) {
         final FragmentManager fm = getFragmentManager();
-        if (DocumentsContract.MIME_TYPE_DIRECTORY.equals(doc.mimeType)) {
+        if (doc.isDirectory()) {
             mStack.push(doc);
-            updateDirectoryFragment();
+            onCurrentDirectoryChanged();
         } else if (mAction == ACTION_OPEN) {
             // Explicit file picked, return
             onFinished(doc.uri);
         } else if (mAction == ACTION_CREATE) {
-            // Overwrite current filename
-            SaveFragment.get(fm).setDisplayName(doc.displayName);
+            // Replace selected file
+            SaveFragment.get(fm).setReplaceTarget(doc);
         }
     }
 
@@ -464,9 +507,11 @@
         onFinished(uris);
     }
 
-    public void onSaveRequested(String mimeType, String displayName) {
-        // TODO: handle overwrite by using last-selected GUID
+    public void onSaveRequested(Document replaceTarget) {
+        onFinished(replaceTarget.uri);
+    }
 
+    public void onSaveRequested(String mimeType, String displayName) {
         final ContentValues values = new ContentValues();
         values.put(DocumentColumns.MIME_TYPE, mimeType);
         values.put(DocumentColumns.DISPLAY_NAME, displayName);
@@ -480,52 +525,17 @@
         }
     }
 
-    private String saveStack() {
-        if (mCurrentRoot.isRecents) return null;
-
-        final JSONArray stack = new JSONArray();
-        for (int i = 0; i < mStack.size(); i++) {
-            stack.put(mStack.get(i).uri);
-        }
-        return stack.toString();
-    }
-
-    private void restoreStack(String rawStack) {
-        Log.d(TAG, "restoreStack: " + rawStack);
-        mStack.clear();
-
-        if (rawStack == null) return;
-        try {
-            final JSONArray stack = new JSONArray(rawStack);
-            for (int i = 0; i < stack.length(); i++) {
-                final Uri uri = Uri.parse(stack.getString(i));
-                final Document doc = Document.fromUri(getContentResolver(), uri);
-                mStack.add(doc);
-            }
-        } catch (JSONException e) {
-            Log.w(TAG, "Failed to decode stack", e);
-        }
-
-        // TODO: handle roots that have gone missing
-        final Document cwd = getCurrentDirectory();
-        if (cwd != null) {
-            final String authority = cwd.uri.getAuthority();
-            final String rootId = DocumentsContract.getRootId(cwd.uri);
-            mCurrentRoot = sRoots.get(Pair.create(authority, rootId));
-        }
-    }
-
     private void onFinished(Uri... uris) {
         Log.d(TAG, "onFinished() " + Arrays.toString(uris));
 
         final ContentResolver resolver = getContentResolver();
         final ContentValues values = new ContentValues();
 
-        final String stack = saveStack();
+        final String rawStack = DocumentStack.serialize(mStack);
         if (mAction == ACTION_CREATE) {
             // Remember stack for last create
             values.clear();
-            values.put(RecentsProvider.COL_PATH, stack);
+            values.put(RecentsProvider.COL_PATH, rawStack);
             resolver.insert(RecentsProvider.buildRecentCreate(), values);
 
         } else if (mAction == ACTION_OPEN) {
@@ -540,7 +550,7 @@
         // Remember location for next app launch
         final String packageName = getCallingPackage();
         values.clear();
-        values.put(RecentsProvider.COL_PATH, stack);
+        values.put(RecentsProvider.COL_PATH, rawStack);
         resolver.insert(RecentsProvider.buildResume(packageName), values);
 
         final Intent intent = new Intent();
@@ -569,101 +579,16 @@
         public String[] acceptMimes;
         public int sortOrder = SORT_ORDER_NAME;
         public boolean allowMultiple = false;
+        public boolean showSize = false;
 
         public static final int MODE_LIST = 0;
         public static final int MODE_GRID = 1;
 
         public static final int SORT_ORDER_NAME = 0;
         public static final int SORT_ORDER_DATE = 1;
+        public static final int SORT_ORDER_SIZE = 2;
     }
 
-    public static Drawable resolveDocumentIcon(Context context, String authority, String mimeType) {
-        // Custom icons take precedence
-        final DocumentsProviderInfo info = sProviders.get(authority);
-        if (info != null) {
-            for (Icon icon : info.customIcons) {
-                if (MimePredicate.mimeMatches(icon.mimeType, mimeType)) {
-                    return icon.icon;
-                }
-            }
-        }
-
-        if (DocumentsContract.MIME_TYPE_DIRECTORY.equals(mimeType)) {
-            return context.getResources().getDrawable(R.drawable.ic_dir);
-        } else {
-            final PackageManager pm = context.getPackageManager();
-            final Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.setType(mimeType);
-
-            final ResolveInfo activityInfo = pm.resolveActivity(
-                    intent, PackageManager.MATCH_DEFAULT_ONLY);
-            if (activityInfo != null) {
-                return activityInfo.loadIcon(pm);
-            } else {
-                return null;
-            }
-        }
-    }
-
-    /**
-     * Gather roots from all known storage providers.
-     */
-    private void updateRoots() {
-        sProviders.clear();
-        sRoots.clear();
-        sRootsList.clear();
-
-        final Context context = this;
-        final PackageManager pm = getPackageManager();
-
-        // Create special roots, like recents
-        {
-            final Root root = Root.buildRecentOpen(context);
-            sRootsList.add(root);
-            sRecentOpenRoot = root;
-        }
-
-        // Query for other storage backends
-        final List<ProviderInfo> providers = pm.queryContentProviders(
-                null, -1, PackageManager.GET_META_DATA);
-        for (ProviderInfo providerInfo : providers) {
-            if (providerInfo.metaData != null && providerInfo.metaData.containsKey(
-                    DocumentsContract.META_DATA_DOCUMENT_PROVIDER)) {
-                final DocumentsProviderInfo info = DocumentsProviderInfo.parseInfo(
-                        this, providerInfo);
-                if (info == null) {
-                    Log.w(TAG, "Missing info for " + providerInfo);
-                    continue;
-                }
-
-                sProviders.put(info.providerInfo.authority, info);
-
-                // TODO: remove deprecated customRoots flag
-                // TODO: populate roots on background thread, and cache results
-                final Uri uri = DocumentsContract.buildRootsUri(providerInfo.authority);
-                final Cursor cursor = getContentResolver().query(uri, null, null, null, null);
-                try {
-                    while (cursor.moveToNext()) {
-                        final Root root = Root.fromCursor(this, info, cursor);
-                        sRoots.put(Pair.create(info.providerInfo.authority, root.rootId), root);
-                        sRootsList.add(root);
-                    }
-                } finally {
-                    cursor.close();
-                }
-            }
-        }
-    }
-
-    private OnItemClickListener mRootsListener = new OnItemClickListener() {
-        @Override
-        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-            final Root root = mRootsAdapter.getItem(position);
-            onRootPicked(root);
-            mDrawerLayout.closeDrawers();
-        }
-    };
-
     private void dumpStack() {
         Log.d(TAG, "Current stack:");
         for (Document doc : mStack) {
@@ -671,78 +596,7 @@
         }
     }
 
-    public static class RootsAdapter extends ArrayAdapter<Root> {
-        public RootsAdapter(Context context, List<Root> list) {
-            super(context, android.R.layout.simple_list_item_1, list);
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            if (convertView == null) {
-                convertView = LayoutInflater.from(parent.getContext())
-                        .inflate(R.layout.item_root, parent, false);
-            }
-
-            final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
-            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
-            final TextView summary = (TextView) convertView.findViewById(android.R.id.summary);
-
-            final Root root = getItem(position);
-            icon.setImageDrawable(root.icon);
-            title.setText(root.title);
-
-            summary.setText(root.summary);
-            summary.setVisibility(root.summary != null ? View.VISIBLE : View.GONE);
-
-            return convertView;
-        }
-    }
-
-    public static class CreateDirectoryFragment extends DialogFragment {
-        public static void show(FragmentManager fm) {
-            final CreateDirectoryFragment dialog = new CreateDirectoryFragment();
-            dialog.show(fm, TAG_CREATE_DIRECTORY);
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            final Context context = getActivity();
-            final ContentResolver resolver = context.getContentResolver();
-
-            final AlertDialog.Builder builder = new AlertDialog.Builder(context);
-            final LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
-
-            final View view = dialogInflater.inflate(R.layout.dialog_create_dir, null, false);
-            final EditText text1 = (EditText)view.findViewById(android.R.id.text1);
-
-            builder.setTitle(R.string.menu_create_dir);
-            builder.setView(view);
-
-            builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                    final String displayName = text1.getText().toString();
-
-                    final ContentValues values = new ContentValues();
-                    values.put(DocumentColumns.MIME_TYPE, DocumentsContract.MIME_TYPE_DIRECTORY);
-                    values.put(DocumentColumns.DISPLAY_NAME, displayName);
-
-                    final DocumentsActivity activity = (DocumentsActivity) getActivity();
-                    final Document cwd = activity.getCurrentDirectory();
-
-                    final Uri childUri = resolver.insert(cwd.uri, values);
-                    if (childUri != null) {
-                        // Navigate into newly created child
-                        final Document childDoc = Document.fromUri(resolver, childUri);
-                        activity.onDocumentPicked(childDoc);
-                    } else {
-                        Toast.makeText(context, R.string.save_error, Toast.LENGTH_SHORT).show();
-                    }
-                }
-            });
-            builder.setNegativeButton(android.R.string.cancel, null);
-
-            return builder.create();
-        }
+    public static DocumentsActivity get(Fragment fragment) {
+        return (DocumentsActivity) fragment.getActivity();
     }
 }
diff --git a/packages/DocumentsUI/src/com/android/documentsui/MimePredicate.java b/packages/DocumentsUI/src/com/android/documentsui/MimePredicate.java
index 0d2f381..f945c6a0 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/MimePredicate.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/MimePredicate.java
@@ -16,8 +16,6 @@
 
 package com.android.documentsui;
 
-import android.provider.DocumentsContract;
-
 import com.android.documentsui.model.Document;
 import com.android.internal.util.Predicate;
 
@@ -30,7 +28,7 @@
 
     @Override
     public boolean apply(Document doc) {
-        if (DocumentsContract.MIME_TYPE_DIRECTORY.equals(doc.mimeType)) {
+        if (doc.isDirectory()) {
             return true;
         }
         for (String filter : mFilters) {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
new file mode 100644
index 0000000..5cdc915
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import static com.android.documentsui.DocumentsActivity.TAG;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Loader;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.CancellationSignal;
+import android.text.TextUtils.TruncateAt;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.documentsui.model.DocumentStack;
+import com.android.documentsui.model.Root;
+import com.google.android.collect.Lists;
+
+import libcore.io.IoUtils;
+
+import java.io.FileNotFoundException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Display directories where recent creates took place.
+ */
+public class RecentsCreateFragment extends Fragment {
+
+    private ListView mListView;
+
+    private DocumentStackAdapter mAdapter;
+    private LoaderCallbacks<List<DocumentStack>> mCallbacks;
+
+    private static final int LOADER_RECENTS = 3;
+
+    public static void show(FragmentManager fm) {
+        final RecentsCreateFragment fragment = new RecentsCreateFragment();
+        final FragmentTransaction ft = fm.beginTransaction();
+        ft.replace(R.id.container_directory, fragment);
+        ft.commitAllowingStateLoss();
+    }
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        final Context context = inflater.getContext();
+
+        final View view = inflater.inflate(R.layout.fragment_directory, container, false);
+
+        mListView = (ListView) view.findViewById(R.id.list);
+        mListView.setOnItemClickListener(mItemListener);
+
+        mAdapter = new DocumentStackAdapter();
+        mListView.setAdapter(mAdapter);
+
+        mCallbacks = new LoaderCallbacks<List<DocumentStack>>() {
+            @Override
+            public Loader<List<DocumentStack>> onCreateLoader(int id, Bundle args) {
+                return new RecentsCreateLoader(context);
+            }
+
+            @Override
+            public void onLoadFinished(
+                    Loader<List<DocumentStack>> loader, List<DocumentStack> data) {
+                mAdapter.swapStacks(data);
+            }
+
+            @Override
+            public void onLoaderReset(Loader<List<DocumentStack>> loader) {
+                mAdapter.swapStacks(null);
+            }
+        };
+
+        return view;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        getLoaderManager().restartLoader(LOADER_RECENTS, getArguments(), mCallbacks);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        getLoaderManager().destroyLoader(LOADER_RECENTS);
+    }
+
+    private OnItemClickListener mItemListener = new OnItemClickListener() {
+        @Override
+        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+            final DocumentStack stack = mAdapter.getItem(position);
+            ((DocumentsActivity) getActivity()).onStackPicked(stack);
+        }
+    };
+
+    public static class RecentsCreateLoader extends UriDerivativeLoader<List<DocumentStack>> {
+        public RecentsCreateLoader(Context context) {
+            super(context, RecentsProvider.buildRecentCreate());
+        }
+
+        @Override
+        public List<DocumentStack> loadInBackground(Uri uri, CancellationSignal signal) {
+            final ArrayList<DocumentStack> result = Lists.newArrayList();
+
+            final ContentResolver resolver = getContext().getContentResolver();
+            final Cursor cursor = resolver.query(
+                    uri, null, null, null, RecentsProvider.COL_TIMESTAMP + " DESC", signal);
+            try {
+                while (cursor != null && cursor.moveToNext()) {
+                    final String rawStack = cursor.getString(
+                            cursor.getColumnIndex(RecentsProvider.COL_PATH));
+                    try {
+                        final DocumentStack stack = DocumentStack.deserialize(resolver, rawStack);
+                        result.add(stack);
+                    } catch (FileNotFoundException e) {
+                        Log.w(TAG, "Failed to resolve stack: " + e);
+                    }
+                }
+            } finally {
+                IoUtils.closeQuietly(cursor);
+            }
+
+            return result;
+        }
+    }
+
+    private class DocumentStackAdapter extends BaseAdapter {
+        private List<DocumentStack> mStacks;
+
+        public DocumentStackAdapter() {
+        }
+
+        public void swapStacks(List<DocumentStack> stacks) {
+            mStacks = stacks;
+            notifyDataSetChanged();
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final Context context = parent.getContext();
+
+            if (convertView == null) {
+                final LayoutInflater inflater = LayoutInflater.from(context);
+                convertView = inflater.inflate(R.layout.item_doc_list, parent, false);
+            }
+
+            final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
+            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
+            final View summaryList = convertView.findViewById(R.id.summary_list);
+
+            final DocumentStack stack = getItem(position);
+            final Root root = RootsCache.findRoot(context, stack.peek());
+            icon.setImageDrawable(root != null ? root.icon : null);
+
+            final StringBuilder builder = new StringBuilder();
+            for (int i = stack.size() - 1; i >= 0; i--) {
+                builder.append(stack.get(i).displayName);
+                if (i > 0) {
+                    builder.append(" \u232a ");
+                }
+            }
+            title.setText(builder.toString());
+            title.setEllipsize(TruncateAt.MIDDLE);
+
+            summaryList.setVisibility(View.GONE);
+
+            return convertView;
+        }
+
+        @Override
+        public int getCount() {
+            return mStacks != null ? mStacks.size() : 0;
+        }
+
+        @Override
+        public DocumentStack getItem(int position) {
+            return mStacks.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return getItem(position).hashCode();
+        }
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsProvider.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsProvider.java
index dbcb039..5268c1d 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RecentsProvider.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsProvider.java
@@ -129,11 +129,11 @@
         switch (sMatcher.match(uri)) {
             case URI_RECENT_OPEN: {
                 return db.query(TABLE_RECENT_OPEN, projection,
-                        buildWhereYounger(DateUtils.WEEK_IN_MILLIS), null, null, null, null);
+                        buildWhereYounger(DateUtils.WEEK_IN_MILLIS), null, null, null, sortOrder);
             }
             case URI_RECENT_CREATE: {
                 return db.query(TABLE_RECENT_CREATE, projection,
-                        buildWhereYounger(DateUtils.WEEK_IN_MILLIS), null, null, null, null);
+                        buildWhereYounger(DateUtils.WEEK_IN_MILLIS), null, null, null, sortOrder);
             }
             case URI_RESUME: {
                 final String packageName = uri.getPathSegments().get(1);
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
new file mode 100644
index 0000000..b26db3b
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import static com.android.documentsui.DocumentsActivity.TAG;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ProviderInfo;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.DocumentsContract;
+import android.util.Log;
+import android.util.Pair;
+
+import com.android.documentsui.model.Document;
+import com.android.documentsui.model.DocumentsProviderInfo;
+import com.android.documentsui.model.DocumentsProviderInfo.Icon;
+import com.android.documentsui.model.Root;
+import com.android.internal.annotations.GuardedBy;
+import com.google.android.collect.Lists;
+import com.google.android.collect.Maps;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Cache of known storage backends and their roots.
+ */
+public class RootsCache {
+
+    // TODO: cache roots in local provider to avoid spinning up backends
+
+    private static boolean sCached = false;
+
+    /** Map from authority to cached info */
+    private static HashMap<String, DocumentsProviderInfo> sProviders = Maps.newHashMap();
+    /** Map from (authority+rootId) to cached info */
+    private static HashMap<Pair<String, String>, Root> sRoots = Maps.newHashMap();
+
+    public static ArrayList<Root> sRootsList = Lists.newArrayList();
+
+    private static Root sRecentsRoot;
+
+    /**
+     * Gather roots from all known storage providers.
+     */
+    private static void ensureCache(Context context) {
+        if (sCached) return;
+        sCached = true;
+
+        sProviders.clear();
+        sRoots.clear();
+        sRootsList.clear();
+
+        {
+            // Create special root for recents
+            final Root root = Root.buildRecents(context);
+            sRootsList.add(root);
+            sRecentsRoot = root;
+        }
+
+        // Query for other storage backends
+        final PackageManager pm = context.getPackageManager();
+        final List<ProviderInfo> providers = pm.queryContentProviders(
+                null, -1, PackageManager.GET_META_DATA);
+        for (ProviderInfo providerInfo : providers) {
+            if (providerInfo.metaData != null && providerInfo.metaData.containsKey(
+                    DocumentsContract.META_DATA_DOCUMENT_PROVIDER)) {
+                final DocumentsProviderInfo info = DocumentsProviderInfo.parseInfo(
+                        context, providerInfo);
+                if (info == null) {
+                    Log.w(TAG, "Missing info for " + providerInfo);
+                    continue;
+                }
+
+                sProviders.put(info.providerInfo.authority, info);
+
+                // TODO: remove deprecated customRoots flag
+                // TODO: populate roots on background thread, and cache results
+                final Uri uri = DocumentsContract.buildRootsUri(providerInfo.authority);
+                final Cursor cursor = context.getContentResolver()
+                        .query(uri, null, null, null, null);
+                try {
+                    while (cursor.moveToNext()) {
+                        final Root root = Root.fromCursor(context, info, cursor);
+                        sRoots.put(Pair.create(info.providerInfo.authority, root.rootId), root);
+                        sRootsList.add(root);
+                    }
+                } finally {
+                    cursor.close();
+                }
+            }
+        }
+    }
+
+    @GuardedBy("ActivityThread")
+    public static DocumentsProviderInfo findProvider(Context context, String authority) {
+        ensureCache(context);
+        return sProviders.get(authority);
+    }
+
+    @GuardedBy("ActivityThread")
+    public static Root findRoot(Context context, String authority, String rootId) {
+        ensureCache(context);
+        return sRoots.get(Pair.create(authority, rootId));
+    }
+
+    @GuardedBy("ActivityThread")
+    public static Root findRoot(Context context, Document doc) {
+        final String authority = doc.uri.getAuthority();
+        final String rootId = DocumentsContract.getRootId(doc.uri);
+        return findRoot(context, authority, rootId);
+    }
+
+    @GuardedBy("ActivityThread")
+    public static Root getRecentsRoot(Context context) {
+        ensureCache(context);
+        return sRecentsRoot;
+    }
+
+    @GuardedBy("ActivityThread")
+    public static Collection<Root> getRoots(Context context) {
+        ensureCache(context);
+        return sRootsList;
+    }
+
+    @GuardedBy("ActivityThread")
+    public static Drawable resolveDocumentIcon(Context context, String authority, String mimeType) {
+        // Custom icons take precedence
+        ensureCache(context);
+        final DocumentsProviderInfo info = sProviders.get(authority);
+        if (info != null) {
+            for (Icon icon : info.customIcons) {
+                if (MimePredicate.mimeMatches(icon.mimeType, mimeType)) {
+                    return icon.icon;
+                }
+            }
+        }
+
+        if (DocumentsContract.MIME_TYPE_DIRECTORY.equals(mimeType)) {
+            return context.getResources().getDrawable(R.drawable.ic_dir);
+        } else {
+            final PackageManager pm = context.getPackageManager();
+            final Intent intent = new Intent(Intent.ACTION_VIEW);
+            intent.setType(mimeType);
+
+            final ResolveInfo activityInfo = pm.resolveActivity(
+                    intent, PackageManager.MATCH_DEFAULT_ONLY);
+            if (activityInfo != null) {
+                return activityInfo.loadIcon(pm);
+            } else {
+                return null;
+            }
+        }
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
new file mode 100644
index 0000000..427ad42
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import static com.android.documentsui.DocumentsActivity.TAG;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.os.Bundle;
+import android.provider.DocumentsContract;
+import android.text.format.Formatter;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.documentsui.SectionedListAdapter.SectionAdapter;
+import com.android.documentsui.model.Root;
+import com.android.documentsui.model.Root.RootComparator;
+
+import java.util.Collection;
+
+/**
+ * Display list of known storage backend roots.
+ */
+public class RootsFragment extends Fragment {
+
+    private ListView mList;
+    private SectionedRootsAdapter mAdapter;
+
+    public static void show(FragmentManager fm) {
+        final RootsFragment fragment = new RootsFragment();
+
+        final FragmentTransaction ft = fm.beginTransaction();
+        ft.replace(R.id.container_roots, fragment);
+        ft.commitAllowingStateLoss();
+    }
+
+    public static RootsFragment get(FragmentManager fm) {
+        return (RootsFragment) fm.findFragmentById(R.id.container_roots);
+    }
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        final Context context = inflater.getContext();
+
+        final View view = inflater.inflate(R.layout.fragment_roots, container, false);
+        mList = (ListView) view.findViewById(android.R.id.list);
+
+        mAdapter = new SectionedRootsAdapter(context, RootsCache.getRoots(context));
+        mList.setAdapter(mAdapter);
+        mList.setOnItemClickListener(mItemListener);
+
+        return view;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        final Context context = getActivity();
+        mAdapter.setShowAdvanced(SettingsActivity.getDisplayAdvancedDevices(context));
+    }
+
+    private OnItemClickListener mItemListener = new OnItemClickListener() {
+        @Override
+        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+            final Root root = (Root) mAdapter.getItem(position);
+            ((DocumentsActivity) getActivity()).onRootPicked(root, true);
+        }
+    };
+
+    public static class RootsAdapter extends ArrayAdapter<Root> implements SectionAdapter {
+        private int mHeaderId;
+
+        public RootsAdapter(Context context, int headerId) {
+            super(context, 0);
+            mHeaderId = headerId;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            final Context context = parent.getContext();
+            if (convertView == null) {
+                convertView = LayoutInflater.from(context)
+                        .inflate(R.layout.item_root, parent, false);
+            }
+
+            final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon);
+            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
+            final TextView summary = (TextView) convertView.findViewById(android.R.id.summary);
+
+            final Root root = getItem(position);
+            icon.setImageDrawable(root.icon);
+            title.setText(root.title);
+
+            // Device summary is always available space
+            final String summaryText;
+            if ((root.rootType == DocumentsContract.ROOT_TYPE_DEVICE
+                    || root.rootType == DocumentsContract.ROOT_TYPE_DEVICE_ADVANCED)
+                    && root.availableBytes >= 0) {
+                summaryText = context.getString(R.string.root_available_bytes,
+                        Formatter.formatFileSize(context, root.availableBytes));
+            } else {
+                summaryText = root.summary;
+            }
+
+            summary.setText(summaryText);
+            summary.setVisibility(summaryText != null ? View.VISIBLE : View.GONE);
+
+            return convertView;
+        }
+
+        @Override
+        public View getHeaderView(View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = LayoutInflater.from(parent.getContext())
+                        .inflate(R.layout.item_root_header, parent, false);
+            }
+
+            final TextView title = (TextView) convertView.findViewById(android.R.id.title);
+            title.setText(mHeaderId);
+
+            return convertView;
+        }
+    }
+
+    public static class SectionedRootsAdapter extends SectionedListAdapter {
+        private final RootsAdapter mServices;
+        private final RootsAdapter mShortcuts;
+        private final RootsAdapter mDevices;
+        private final RootsAdapter mDevicesAdvanced;
+
+        public SectionedRootsAdapter(Context context, Collection<Root> roots) {
+            mServices = new RootsAdapter(context, R.string.root_type_service);
+            mShortcuts = new RootsAdapter(context, R.string.root_type_shortcut);
+            mDevices = new RootsAdapter(context, R.string.root_type_device);
+            mDevicesAdvanced = new RootsAdapter(context, R.string.root_type_device);
+
+            for (Root root : roots) {
+                Log.d(TAG, "Found rootType=" + root.rootType);
+                switch (root.rootType) {
+                    case DocumentsContract.ROOT_TYPE_SERVICE:
+                        mServices.add(root);
+                        break;
+                    case DocumentsContract.ROOT_TYPE_SHORTCUT:
+                        mShortcuts.add(root);
+                        break;
+                    case DocumentsContract.ROOT_TYPE_DEVICE:
+                        mDevices.add(root);
+                        mDevicesAdvanced.add(root);
+                        break;
+                    case DocumentsContract.ROOT_TYPE_DEVICE_ADVANCED:
+                        mDevicesAdvanced.add(root);
+                        break;
+                }
+            }
+
+            final RootComparator comp = new RootComparator();
+            mServices.sort(comp);
+            mShortcuts.sort(comp);
+            mDevices.sort(comp);
+            mDevicesAdvanced.sort(comp);
+        }
+
+        public void setShowAdvanced(boolean showAdvanced) {
+            clearSections();
+            if (mServices.getCount() > 0) {
+                addSection(mServices);
+            }
+            if (mShortcuts.getCount() > 0) {
+                addSection(mShortcuts);
+            }
+
+            final RootsAdapter devices = showAdvanced ? mDevicesAdvanced : mDevices;
+            if (devices.getCount() > 0) {
+                addSection(devices);
+            }
+        }
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java b/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java
index cdc399d..69010dd 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java
@@ -21,6 +21,9 @@
 import android.app.FragmentTransaction;
 import android.content.Context;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -28,14 +31,18 @@
 import android.widget.EditText;
 import android.widget.ImageView;
 
+import com.android.documentsui.model.Document;
+
 /**
  * Display document title editor and save button.
  */
 public class SaveFragment extends Fragment {
     public static final String TAG = "SaveFragment";
 
+    private Document mReplaceTarget;
     private EditText mDisplayName;
     private Button mSave;
+    private boolean mIgnoreNextEdit;
 
     private static final String EXTRA_MIME_TYPE = "mime_type";
     private static final String EXTRA_DISPLAY_NAME = "display_name";
@@ -49,7 +56,7 @@
         fragment.setArguments(args);
 
         final FragmentTransaction ft = fm.beginTransaction();
-        ft.replace(R.id.save, fragment, TAG);
+        ft.replace(R.id.container_save, fragment, TAG);
         ft.commitAllowingStateLoss();
     }
 
@@ -65,10 +72,11 @@
         final View view = inflater.inflate(R.layout.fragment_save, container, false);
 
         final ImageView icon = (ImageView) view.findViewById(android.R.id.icon);
-        icon.setImageDrawable(DocumentsActivity.resolveDocumentIcon(
+        icon.setImageDrawable(RootsCache.resolveDocumentIcon(
                 context, null, getArguments().getString(EXTRA_MIME_TYPE)));
 
         mDisplayName = (EditText) view.findViewById(android.R.id.title);
+        mDisplayName.addTextChangedListener(mDisplayNameWatcher);
         mDisplayName.setText(getArguments().getString(EXTRA_DISPLAY_NAME));
 
         mSave = (Button) view.findViewById(android.R.id.button1);
@@ -78,18 +86,55 @@
         return view;
     }
 
-    private View.OnClickListener mSaveListener = new View.OnClickListener() {
+    private TextWatcher mDisplayNameWatcher = new TextWatcher() {
         @Override
-        public void onClick(View v) {
-            final String mimeType = getArguments().getString(EXTRA_MIME_TYPE);
-            final String displayName = mDisplayName.getText().toString();
-            ((DocumentsActivity) getActivity()).onSaveRequested(mimeType, displayName);
+        public void onTextChanged(CharSequence s, int start, int before, int count) {
+            if (mIgnoreNextEdit) {
+                mIgnoreNextEdit = false;
+            } else {
+                Log.d(TAG, "onTextChanged!");
+                mReplaceTarget = null;
+            }
+        }
+
+        @Override
+        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+            // ignored
+        }
+
+        @Override
+        public void afterTextChanged(Editable s) {
+            // ignored
         }
     };
 
-    public void setDisplayName(String displayName) {
-        getArguments().putString(EXTRA_DISPLAY_NAME, displayName);
-        mDisplayName.setText(displayName);
+    private View.OnClickListener mSaveListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            final DocumentsActivity activity = DocumentsActivity.get(SaveFragment.this);
+            if (mReplaceTarget != null) {
+                activity.onSaveRequested(mReplaceTarget);
+            } else {
+                final String mimeType = getArguments().getString(EXTRA_MIME_TYPE);
+                final String displayName = mDisplayName.getText().toString();
+                activity.onSaveRequested(mimeType, displayName);
+            }
+        }
+    };
+
+    /**
+     * Set given document as target for in-place writing if user hits save
+     * without changing the filename. Can be set to {@code null} if user
+     * navigates outside the target directory.
+     */
+    public void setReplaceTarget(Document replaceTarget) {
+        mReplaceTarget = replaceTarget;
+
+        if (mReplaceTarget != null) {
+            getArguments().putString(EXTRA_DISPLAY_NAME, replaceTarget.displayName);
+            mIgnoreNextEdit = true;
+            mDisplayName.setText(replaceTarget.displayName);
+        }
     }
 
     public void setSaveEnabled(boolean enabled) {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/SectionedListAdapter.java b/packages/DocumentsUI/src/com/android/documentsui/SectionedListAdapter.java
new file mode 100644
index 0000000..aacce65
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/SectionedListAdapter.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListAdapter;
+
+import com.google.android.collect.Lists;
+
+import java.util.ArrayList;
+
+/**
+ * Adapter that combines multiple adapters as sections, asking each section to
+ * provide a header, and correctly handling item types across child adapters.
+ */
+public class SectionedListAdapter extends BaseAdapter {
+    private ArrayList<SectionAdapter> mSections = Lists.newArrayList();
+
+    public interface SectionAdapter extends ListAdapter {
+        public View getHeaderView(View convertView, ViewGroup parent);
+    }
+
+    public void clearSections() {
+        mSections.clear();
+        notifyDataSetChanged();
+    }
+
+    public void addSection(SectionAdapter adapter) {
+        mSections.add(adapter);
+        notifyDataSetChanged();
+    }
+
+    @Override
+    public int getCount() {
+        int count = 0;
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            count += mSections.get(i).getCount() + 1;
+        }
+        return count;
+    }
+
+    @Override
+    public Object getItem(int position) {
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            final SectionAdapter section = mSections.get(i);
+            final int sectionSize = section.getCount() + 1;
+
+            // Check if position inside this section
+            if (position == 0) {
+                return section;
+            } else if (position < sectionSize) {
+                return section.getItem(position - 1);
+            }
+
+            // Otherwise jump into next section
+            position -= sectionSize;
+        }
+        throw new IllegalStateException("Unknown position " + position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            final SectionAdapter section = mSections.get(i);
+            final int sectionSize = section.getCount() + 1;
+
+            // Check if position inside this section
+            if (position == 0) {
+                return section.getHeaderView(convertView, parent);
+            } else if (position < sectionSize) {
+                return section.getView(position - 1, convertView, parent);
+            }
+
+            // Otherwise jump into next section
+            position -= sectionSize;
+        }
+        throw new IllegalStateException("Unknown position " + position);
+    }
+
+    @Override
+    public boolean areAllItemsEnabled() {
+        return false;
+    }
+
+    @Override
+    public boolean isEnabled(int position) {
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            final SectionAdapter section = mSections.get(i);
+            final int sectionSize = section.getCount() + 1;
+
+            // Check if position inside this section
+            if (position == 0) {
+                return false;
+            } else if (position < sectionSize) {
+                return section.isEnabled(position);
+            }
+
+            // Otherwise jump into next section
+            position -= sectionSize;
+        }
+        throw new IllegalStateException("Unknown position " + position);
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        int type = 1;
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            final SectionAdapter section = mSections.get(i);
+            final int sectionSize = section.getCount() + 1;
+
+            // Check if position inside this section
+            if (position == 0) {
+                return 0;
+            } else if (position < sectionSize) {
+                return type + section.getItemViewType(position - 1);
+            }
+
+            // Otherwise jump into next section
+            position -= sectionSize;
+            type += section.getViewTypeCount();
+        }
+        throw new IllegalStateException("Unknown position " + position);
+    }
+
+    @Override
+    public int getViewTypeCount() {
+        int count = 1;
+        final int size = mSections.size();
+        for (int i = 0; i < size; i++) {
+            count += mSections.get(i).getViewTypeCount();
+        }
+        return count;
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/SettingsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/SettingsActivity.java
new file mode 100644
index 0000000..ceeaaae
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/SettingsActivity.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+
+public class SettingsActivity extends Activity {
+    private static final String KEY_ADVANCED_DEVICES = "advancedDevices";
+    private static final String KEY_FILE_SIZE = "fileSize";
+
+    public static boolean getDisplayAdvancedDevices(Context context) {
+        return PreferenceManager.getDefaultSharedPreferences(context)
+                .getBoolean(KEY_ADVANCED_DEVICES, false);
+    }
+
+    public static boolean getDisplayFileSize(Context context) {
+        return PreferenceManager.getDefaultSharedPreferences(context)
+                .getBoolean(KEY_FILE_SIZE, false);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        getFragmentManager()
+                .beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
+    }
+
+    public static class SettingsFragment extends PreferenceFragment {
+        @Override
+        public void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            addPreferencesFromResource(R.xml.preferences);
+        }
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/Document.java b/packages/DocumentsUI/src/com/android/documentsui/model/Document.java
index 94b9093..95922b4 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/model/Document.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/model/Document.java
@@ -24,6 +24,9 @@
 
 import com.android.documentsui.RecentsProvider;
 
+import libcore.io.IoUtils;
+
+import java.io.FileNotFoundException;
 import java.util.Comparator;
 
 /**
@@ -35,26 +38,23 @@
     public final String displayName;
     public final long lastModified;
     public final int flags;
+    public final String summary;
+    public final long size;
 
-    private Document(Uri uri, String mimeType, String displayName, long lastModified, int flags) {
+    private Document(Uri uri, String mimeType, String displayName, long lastModified, int flags,
+            String summary, long size) {
         this.uri = uri;
         this.mimeType = mimeType;
         this.displayName = displayName;
         this.lastModified = lastModified;
         this.flags = flags;
+        this.summary = summary;
+        this.size = size;
     }
 
-    public static Document fromRoot(ContentResolver resolver, Root root) {
-        if (root.isRecents) {
-            final Uri uri = root.uri;
-            final String mimeType = DocumentsContract.MIME_TYPE_DIRECTORY;
-            final String displayName = root.title;
-            final long lastModified = -1;
-            final int flags = 0;
-            return new Document(uri, mimeType, displayName, lastModified, flags);
-        } else {
-            return fromUri(resolver, root.uri);
-        }
+    public static Document fromRoot(ContentResolver resolver, Root root)
+            throws FileNotFoundException {
+        return fromUri(resolver, root.uri);
     }
 
     public static Document fromDirectoryCursor(Uri parent, Cursor cursor) {
@@ -67,56 +67,60 @@
         final String displayName = getCursorString(cursor, DocumentColumns.DISPLAY_NAME);
         final long lastModified = getCursorLong(cursor, DocumentColumns.LAST_MODIFIED);
         final int flags = getCursorInt(cursor, DocumentColumns.FLAGS);
+        final String summary = getCursorString(cursor, DocumentColumns.SUMMARY);
+        final long size = getCursorLong(cursor, DocumentColumns.SIZE);
 
-        return new Document(uri, mimeType, displayName, lastModified, flags);
+        return new Document(uri, mimeType, displayName, lastModified, flags, summary, size);
     }
 
-    public static Document fromRecentOpenCursor(ContentResolver resolver, Cursor cursor) {
-        final Uri uri = Uri.parse(getCursorString(cursor, RecentsProvider.COL_URI));
-        final long lastModified = getCursorLong(cursor, RecentsProvider.COL_TIMESTAMP);
+    public static Document fromRecentOpenCursor(ContentResolver resolver, Cursor recentCursor)
+            throws FileNotFoundException {
+        final Uri uri = Uri.parse(getCursorString(recentCursor, RecentsProvider.COL_URI));
+        final long lastModified = getCursorLong(recentCursor, RecentsProvider.COL_TIMESTAMP);
 
-        final Cursor itemCursor = resolver.query(uri, null, null, null, null);
+        Cursor cursor = null;
         try {
-            if (!itemCursor.moveToFirst()) {
-                throw new IllegalArgumentException("Missing details for " + uri);
+            cursor = resolver.query(uri, null, null, null, null);
+            if (!cursor.moveToFirst()) {
+                throw new FileNotFoundException("Missing details for " + uri);
             }
-            final String mimeType = getCursorString(itemCursor, DocumentColumns.MIME_TYPE);
-            final String displayName = getCursorString(itemCursor, DocumentColumns.DISPLAY_NAME);
-            final int flags = getCursorInt(itemCursor, DocumentColumns.FLAGS)
+            final String mimeType = getCursorString(cursor, DocumentColumns.MIME_TYPE);
+            final String displayName = getCursorString(cursor, DocumentColumns.DISPLAY_NAME);
+            final int flags = getCursorInt(cursor, DocumentColumns.FLAGS)
                     & DocumentsContract.FLAG_SUPPORTS_THUMBNAIL;
+            final String summary = getCursorString(cursor, DocumentColumns.SUMMARY);
+            final long size = getCursorLong(cursor, DocumentColumns.SIZE);
 
-            return new Document(uri, mimeType, displayName, lastModified, flags);
+            return new Document(uri, mimeType, displayName, lastModified, flags, summary, size);
+        } catch (Throwable t) {
+            throw asFileNotFoundException(t);
         } finally {
-            itemCursor.close();
+            IoUtils.closeQuietly(cursor);
         }
     }
 
-    public static Document fromUri(ContentResolver resolver, Uri uri) {
-        final Cursor cursor = resolver.query(uri, null, null, null, null);
+    public static Document fromUri(ContentResolver resolver, Uri uri) throws FileNotFoundException {
+        Cursor cursor = null;
         try {
+            cursor = resolver.query(uri, null, null, null, null);
             if (!cursor.moveToFirst()) {
-                throw new IllegalArgumentException("Missing details for " + uri);
+                throw new FileNotFoundException("Missing details for " + uri);
             }
             final String mimeType = getCursorString(cursor, DocumentColumns.MIME_TYPE);
             final String displayName = getCursorString(cursor, DocumentColumns.DISPLAY_NAME);
             final long lastModified = getCursorLong(cursor, DocumentColumns.LAST_MODIFIED);
             final int flags = getCursorInt(cursor, DocumentColumns.FLAGS);
+            final String summary = getCursorString(cursor, DocumentColumns.SUMMARY);
+            final long size = getCursorLong(cursor, DocumentColumns.SIZE);
 
-            return new Document(uri, mimeType, displayName, lastModified, flags);
+            return new Document(uri, mimeType, displayName, lastModified, flags, summary, size);
+        } catch (Throwable t) {
+            throw asFileNotFoundException(t);
         } finally {
-            cursor.close();
+            IoUtils.closeQuietly(cursor);
         }
     }
 
-    public static Document fromSearch(Uri relatedUri, String query) {
-        final Uri uri = DocumentsContract.buildSearchUri(relatedUri, query);
-        final String mimeType = DocumentsContract.MIME_TYPE_DIRECTORY;
-        final String displayName = query;
-        final long lastModified = System.currentTimeMillis();
-        final int flags = 0;
-        return new Document(uri, mimeType, displayName, lastModified, flags);
-    }
-
     @Override
     public String toString() {
         return "Document{name=" + displayName + ", uri=" + uri + "}";
@@ -134,28 +138,35 @@
         return (flags & DocumentsContract.FLAG_SUPPORTS_THUMBNAIL) != 0;
     }
 
+    public boolean isDirectory() {
+        return DocumentsContract.MIME_TYPE_DIRECTORY.equals(mimeType);
+    }
+
     private static String getCursorString(Cursor cursor, String columnName) {
-        return cursor.getString(cursor.getColumnIndexOrThrow(columnName));
+        final int index = cursor.getColumnIndex(columnName);
+        return (index != -1) ? cursor.getString(index) : null;
     }
 
     private static long getCursorLong(Cursor cursor, String columnName) {
-        return cursor.getLong(cursor.getColumnIndexOrThrow(columnName));
+        final int index = cursor.getColumnIndex(columnName);
+        return (index != -1) ? cursor.getLong(index) : 0;
     }
 
     private static int getCursorInt(Cursor cursor, String columnName) {
-        return cursor.getInt(cursor.getColumnIndexOrThrow(columnName));
+        final int index = cursor.getColumnIndex(columnName);
+        return (index != -1) ? cursor.getInt(index) : 0;
     }
 
     public static class NameComparator implements Comparator<Document> {
         @Override
         public int compare(Document lhs, Document rhs) {
-            final boolean leftDir = DocumentsContract.MIME_TYPE_DIRECTORY.equals(lhs.mimeType);
-            final boolean rightDir = DocumentsContract.MIME_TYPE_DIRECTORY.equals(rhs.mimeType);
+            final boolean leftDir = lhs.isDirectory();
+            final boolean rightDir = rhs.isDirectory();
 
             if (leftDir != rightDir) {
                 return leftDir ? -1 : 1;
             } else {
-                return lhs.displayName.compareToIgnoreCase(rhs.displayName);
+                return Root.compareToIgnoreCaseNullable(lhs.displayName, rhs.displayName);
             }
         }
     }
@@ -166,4 +177,21 @@
             return Long.compare(rhs.lastModified, lhs.lastModified);
         }
     }
+
+    public static class SizeComparator implements Comparator<Document> {
+        @Override
+        public int compare(Document lhs, Document rhs) {
+            return Long.compare(rhs.size, lhs.size);
+        }
+    }
+
+    public static FileNotFoundException asFileNotFoundException(Throwable t)
+            throws FileNotFoundException {
+        if (t instanceof FileNotFoundException) {
+            throw (FileNotFoundException) t;
+        }
+        final FileNotFoundException fnfe = new FileNotFoundException(t.getMessage());
+        fnfe.initCause(t);
+        throw fnfe;
+    }
 }
diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java
new file mode 100644
index 0000000..d6c852e
--- /dev/null
+++ b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.documentsui.model;
+
+import static com.android.documentsui.DocumentsActivity.TAG;
+import static com.android.documentsui.model.Document.asFileNotFoundException;
+
+import android.content.ContentResolver;
+import android.net.Uri;
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+
+import java.io.FileNotFoundException;
+import java.util.LinkedList;
+
+/**
+ * Representation of a stack of {@link Document}, usually the result of a
+ * user-driven traversal.
+ */
+public class DocumentStack extends LinkedList<Document> {
+
+    public static String serialize(DocumentStack stack) {
+        final JSONArray json = new JSONArray();
+        for (int i = 0; i < stack.size(); i++) {
+            json.put(stack.get(i).uri);
+        }
+        return json.toString();
+    }
+
+    public static DocumentStack deserialize(ContentResolver resolver, String raw)
+            throws FileNotFoundException {
+        Log.d(TAG, "deserialize: " + raw);
+
+        final DocumentStack stack = new DocumentStack();
+        try {
+            final JSONArray json = new JSONArray(raw);
+            for (int i = 0; i < json.length(); i++) {
+                final Uri uri = Uri.parse(json.getString(i));
+                final Document doc = Document.fromUri(resolver, uri);
+                stack.add(doc);
+            }
+        } catch (JSONException e) {
+            throw asFileNotFoundException(e);
+        }
+
+        // TODO: handle roots that have gone missing
+        return stack;
+    }
+}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/Root.java b/packages/DocumentsUI/src/com/android/documentsui/model/Root.java
index ef3b8d7..0880731 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/model/Root.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/model/Root.java
@@ -27,7 +27,8 @@
 import android.provider.DocumentsContract.RootColumns;
 
 import com.android.documentsui.R;
-import com.android.documentsui.RecentsProvider;
+
+import java.util.Comparator;
 
 /**
  * Representation of a root under a storage backend.
@@ -39,17 +40,19 @@
     public Drawable icon;
     public String title;
     public String summary;
+    public long availableBytes = -1;
     public boolean isRecents;
 
-    public static Root buildRecentOpen(Context context) {
+    public static Root buildRecents(Context context) {
         final PackageManager pm = context.getPackageManager();
         final Root root = new Root();
         root.rootId = null;
         root.rootType = DocumentsContract.ROOT_TYPE_SHORTCUT;
-        root.uri = RecentsProvider.buildRecentOpen();
+        root.uri = null;
         root.icon = context.getResources().getDrawable(R.drawable.ic_dir);
         root.title = context.getString(R.string.root_recent);
         root.summary = null;
+        root.availableBytes = -1;
         root.isRecents = true;
         return root;
     }
@@ -65,6 +68,7 @@
                 info.providerInfo.authority, root.rootId, DocumentsContract.ROOT_DOC_ID);
         root.icon = info.providerInfo.loadIcon(pm);
         root.title = info.providerInfo.loadLabel(pm).toString();
+        root.availableBytes = cursor.getLong(cursor.getColumnIndex(RootColumns.AVAILABLE_BYTES));
         root.summary = null;
 
         final int icon = cursor.getInt(cursor.getColumnIndex(RootColumns.ICON));
@@ -89,4 +93,29 @@
 
         return root;
     }
+
+    /**
+     * Return string most suited to showing in a directory listing.
+     */
+    public String getDirectoryString() {
+        return (summary != null) ? summary : title;
+    }
+
+    public static class RootComparator implements Comparator<Root> {
+        @Override
+        public int compare(Root lhs, Root rhs) {
+            final int score = compareToIgnoreCaseNullable(lhs.title, rhs.title);
+            if (score != 0) {
+                return score;
+            } else {
+                return compareToIgnoreCaseNullable(lhs.summary, rhs.summary);
+            }
+        }
+    }
+
+    public static int compareToIgnoreCaseNullable(String lhs, String rhs) {
+        if (lhs == null) return -1;
+        if (rhs == null) return 1;
+        return lhs.compareToIgnoreCase(rhs);
+    }
 }
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml
index 72d064a..74fd7a8 100644
--- a/packages/PrintSpooler/AndroidManifest.xml
+++ b/packages/PrintSpooler/AndroidManifest.xml
@@ -46,8 +46,8 @@
 
         <activity
             android:name=".PrintJobConfigActivity"
-            android:exported="true"
-            android:theme="@android:style/Theme.Holo.Light.Dialog.NoActionBar">
+            android:exported="false"
+            android:theme="@style/PrintJobConfigActivityTheme">
         </activity>
 
         <receiver
diff --git a/packages/PrintSpooler/res/drawable-hdpi/stat_notify_cancelling.png b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_cancelling.png
new file mode 100644
index 0000000..2757db0
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_cancelling.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-hdpi/stat_notify_error.png b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_error.png
new file mode 100644
index 0000000..7846a78
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_error.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-hdpi/stat_notify_print.png b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_print.png
new file mode 100644
index 0000000..aaff3dd
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-hdpi/stat_notify_print.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-mdpi/stat_notify_cancelling.png b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_cancelling.png
new file mode 100644
index 0000000..c1b380a
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_cancelling.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-mdpi/stat_notify_error.png b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_error.png
new file mode 100644
index 0000000..44109eb
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_error.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-mdpi/stat_notify_print.png b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_print.png
new file mode 100644
index 0000000..a3954b5
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-mdpi/stat_notify_print.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_cancelling.png b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_cancelling.png
new file mode 100644
index 0000000..fedc00e
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_cancelling.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_error.png b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_error.png
new file mode 100644
index 0000000..c3faa42
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_error.png
Binary files differ
diff --git a/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_print.png b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_print.png
new file mode 100644
index 0000000..6b55a14
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable-xhdpi/stat_notify_print.png
Binary files differ
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity.xml b/packages/PrintSpooler/res/layout/print_job_config_activity.xml
deleted file mode 100644
index a4105ea..0000000
--- a/packages/PrintSpooler/res/layout/print_job_config_activity.xml
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:scrollbars="vertical">
-
-    <GridLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:columnCount="2">
-
-        <!-- Destination -->
-
-        <Spinner
-            android:id="@+id/destination_spinner"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_marginLeft="32dip"
-            android:layout_marginTop="32dip"
-            android:layout_marginRight="32dip"
-            android:layout_marginBottom="12dip"
-            android:layout_row="0"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Spinner>
-
-        <!-- Copies -->
-
-        <view
-            class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
-            android:id="@+id/copies_edittext"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="12dip"
-            android:layout_marginBottom="12dip"
-            android:layout_row="2"
-            android:layout_column="0"
-            android:layout_gravity="bottom"
-            android:inputType="numberDecimal"
-            android:selectAllOnFocus="true"
-            android:minWidth="150dip"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </view>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginTop="12dip"
-            android:layout_marginRight="12dip"
-            android:layout_row="1"
-            android:layout_column="0"
-            android:layout_gravity="left|bottom"
-            android:text="@string/label_copies"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textStyle="bold"
-            android:labelFor="@id/copies_edittext">
-        </TextView>
-
-        <!-- Paper size -->
-
-        <Spinner
-            android:id="@+id/paper_size_spinner"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="12dip"
-            android:layout_marginRight="32dip"
-            android:layout_marginBottom="12dip"
-            android:layout_row="2"
-            android:layout_column="1"
-            android:minWidth="150dip"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Spinner>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="12dip"
-            android:layout_marginRight="32dip"
-            android:layout_marginTop="12dip"
-            android:layout_row="1"
-            android:layout_column="1"
-            android:text="@string/label_paper_size"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textStyle="bold"
-            android:labelFor="@id/paper_size_spinner">
-        </TextView>
-
-        <!-- Color -->
-
-        <Spinner
-            android:id="@+id/color_spinner"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="12dip"
-            android:layout_marginBottom="12dip"
-            android:layout_row="4"
-            android:layout_column="0"
-            android:minWidth="150dip"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Spinner>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginTop="12dip"
-            android:layout_marginRight="12dip"
-            android:layout_row="3"
-            android:layout_column="0"
-            android:text="@string/label_color"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textStyle="bold"
-            android:labelFor="@id/color_spinner">
-        </TextView>
-
-        <!-- Orientation -->
-
-        <Spinner
-            android:id="@+id/orientation_spinner"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="12dip"
-            android:layout_marginRight="32dip"
-            android:layout_marginBottom="12dip"
-            android:layout_row="4"
-            android:layout_column="1"
-            android:minWidth="150dip"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Spinner>
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="12dip"
-            android:layout_marginTop="12dip"
-            android:layout_marginRight="32dip"
-            android:layout_row="3"
-            android:layout_column="1"
-            android:text="@string/label_orientation"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textStyle="bold"
-            android:labelFor="@id/orientation_spinner">
-        </TextView>
-
-        <!-- Pages -->
-
-        <Spinner
-            android:id="@+id/range_options_spinner"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="12dip"
-            android:layout_row="6"
-            android:layout_column="0"
-            android:minWidth="150dip"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Spinner>
-
-        <view
-            class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
-            android:id="@+id/page_range_edittext"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="12dip"
-            android:layout_marginRight="32dip"
-            android:layout_row="6"
-            android:layout_column="1"
-            android:layout_gravity="bottom"
-            android:selectAllOnFocus="true"
-            android:minWidth="150dip"
-            android:hint="@string/pages_range_example"
-            android:inputType="textNoSuggestions"
-            android:visibility="gone"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </view>
-
-        <TextView
-            android:id="@+id/page_range_title"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="32dip"
-            android:layout_marginTop="12dip"
-            android:layout_marginRight="12dip"
-            android:layout_row="5"
-            android:layout_column="0"
-            android:text="@string/label_pages"
-            android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textStyle="bold"
-            android:labelFor="@id/range_options_spinner">
-        </TextView>
-
-        <!-- Print pereview  -->
-
-        <ImageView
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_marginLeft="32dip"
-            android:layout_marginTop="32dip"
-            android:layout_marginRight="32dip"
-            android:layout_row="7"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:background="?android:attr/listDivider"
-            android:contentDescription="@null">
-        </ImageView>
-
-        <Button
-            android:id="@+id/print_preview_button"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="32dip"
-            android:layout_row="8"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:text="@string/print_preview"
-            android:gravity="left|center_vertical"
-            android:background="?android:attr/selectableItemBackground"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Button>
-
-        <ImageView
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_marginLeft="32dip"
-            android:layout_marginRight="32dip"
-            android:layout_marginBottom="32dip"
-            android:layout_row="9"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:background="?android:attr/listDivider"
-            android:contentDescription="@null">
-        </ImageView>
-
-        <ImageView
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_row="10"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:background="?android:attr/listDivider"
-            android:contentDescription="@null">
-        </ImageView>
-
-        <Button
-            android:id="@+id/print_button"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="fill_horizontal"
-            android:layout_row="11"
-            android:layout_column="0"
-            android:layout_columnSpan="2"
-            android:padding="0dip"
-            android:text="@string/print_button"
-            android:background="?android:attr/selectableItemBackground"
-            android:minHeight="?android:attr/listPreferredItemHeight">
-        </Button>
-
-    </GridLayout>
-
-</ScrollView>
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml b/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml
new file mode 100644
index 0000000..a0c111b
--- /dev/null
+++ b/packages/PrintSpooler/res/layout/print_job_config_activity_container.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/content_container"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:background="@color/container_background">
+
+    <include
+        layout="@layout/print_job_config_activity_content_editing">
+    </include>
+
+</FrameLayout>
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity_content_editing.xml b/packages/PrintSpooler/res/layout/print_job_config_activity_content_editing.xml
new file mode 100644
index 0000000..84c41de
--- /dev/null
+++ b/packages/PrintSpooler/res/layout/print_job_config_activity_content_editing.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/content_editing"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <ScrollView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:scrollbars="vertical"
+        android:background="@color/editable_background">
+
+        <GridLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="24dip"
+            android:layout_marginTop="32dip"
+            android:layout_marginEnd="24dip"
+            android:layout_marginBottom="24dip"
+            android:orientation="vertical"
+            android:columnCount="2">
+
+            <!-- Destination -->
+
+            <Spinner
+                android:id="@+id/destination_spinner"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_gravity="fill_horizontal"
+                android:layout_row="0"
+                android:layout_column="0"
+                android:layout_columnSpan="2"
+                android:minHeight="?android:attr/listPreferredItemHeightSmall">
+            </Spinner>
+
+            <!-- Copies -->
+
+            <view
+                class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
+                android:id="@+id/copies_edittext"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="6dip"
+                android:layout_row="2"
+                android:layout_column="0"
+                android:layout_gravity="bottom"
+                android:inputType="numberDecimal"
+                android:selectAllOnFocus="true"
+                android:minWidth="150dip"
+                android:minHeight="?android:attr/listPreferredItemHeightSmall">
+            </view>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="12dip"
+                android:layout_marginEnd="6dip"
+                android:layout_row="1"
+                android:layout_column="0"
+                android:layout_gravity="start|bottom"
+                android:labelFor="@id/copies_edittext"
+                android:text="@string/label_copies"
+                android:textAppearance="@style/PrintOptionTitleTextAppearance">
+            </TextView>
+
+            <!-- Paper size -->
+
+            <Spinner
+                android:id="@+id/paper_size_spinner"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="6dip"
+                android:layout_row="2"
+                android:layout_column="1"
+                style="@style/PrintOptionSpinnerStyle">
+            </Spinner>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="18dip"
+                android:layout_row="1"
+                android:layout_column="1"
+                android:labelFor="@id/paper_size_spinner"
+                android:text="@string/label_paper_size"
+                android:textAppearance="@style/PrintOptionTitleTextAppearance">
+            </TextView>
+
+            <!-- Color -->
+
+            <Spinner
+                android:id="@+id/color_spinner"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="6dip"
+                android:layout_row="4"
+                android:layout_column="0"
+                style="@style/PrintOptionSpinnerStyle">
+            </Spinner>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="12dip"
+                android:layout_marginEnd="6dip"
+                android:layout_row="3"
+                android:layout_column="0"
+                android:labelFor="@id/color_spinner"
+                android:text="@string/label_color"
+                android:textAppearance="@style/PrintOptionTitleTextAppearance">
+            </TextView>
+
+            <!-- Orientation -->
+
+            <Spinner
+                android:id="@+id/orientation_spinner"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="6dip"
+                android:layout_row="4"
+                android:layout_column="1"
+                style="@style/PrintOptionSpinnerStyle">
+            </Spinner>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="18dip"
+                android:layout_row="3"
+                android:layout_column="1"
+                android:labelFor="@id/orientation_spinner"
+                android:text="@string/label_orientation"
+                android:textAppearance="@style/PrintOptionTitleTextAppearance">
+            </TextView>
+
+            <!-- Pages -->
+
+            <Spinner
+                android:id="@+id/range_options_spinner"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="6dip"
+                android:layout_row="6"
+                android:layout_column="0"
+                style="@style/PrintOptionSpinnerStyle">
+            </Spinner>
+
+            <view
+                class="com.android.printspooler.PrintJobConfigActivity$CustomEditText"
+                android:id="@+id/page_range_edittext"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="6dip"
+                android:layout_row="6"
+                android:layout_column="1"
+                android:layout_gravity="bottom"
+                android:selectAllOnFocus="true"
+                android:minWidth="150dip"
+                android:hint="@string/pages_range_example"
+                android:inputType="textNoSuggestions"
+                android:visibility="gone"
+                android:minHeight="?android:attr/listPreferredItemHeightSmall">
+            </view>
+
+            <TextView
+                android:id="@+id/page_range_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="12dip"
+                android:layout_marginStart="12dip"
+                android:layout_row="5"
+                android:layout_column="0"
+                android:labelFor="@id/range_options_spinner"
+                android:text="@string/label_pages"
+                android:textAppearance="@style/PrintOptionTitleTextAppearance">
+            </TextView>
+
+        </GridLayout>
+
+    </ScrollView>
+
+    <View
+        android:layout_width="fill_parent"
+        android:layout_height="1dip"
+        android:background="@color/separator">
+    </View>
+
+    <Button
+        android:id="@+id/print_button"
+        style="?android:attr/buttonBarButtonStyle"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="fill_horizontal"
+        android:text="@string/print_button"
+        android:textSize="16sp"
+        android:textColor="@color/important_text">
+    </Button>
+
+</LinearLayout>
diff --git a/packages/PrintSpooler/res/layout/print_job_config_activity_content_generating.xml b/packages/PrintSpooler/res/layout/print_job_config_activity_content_generating.xml
new file mode 100644
index 0000000..8bdb6c9
--- /dev/null
+++ b/packages/PrintSpooler/res/layout/print_job_config_activity_content_generating.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/content_generating"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:background="@color/editable_background"
+        android:orientation="vertical">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="16dip"
+            android:layout_marginEnd="16dip"
+            android:layout_gravity="center"
+            style="?android:attr/buttonBarButtonStyle"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:text="@string/generating_print_job"
+            android:textColor="@color/important_text"
+            android:textSize="16sp">
+        </TextView>
+
+        <ProgressBar
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="32dip"
+            android:layout_marginEnd="32dip"
+            android:layout_marginTop="16dip"
+            android:layout_marginBottom="32dip"
+            android:layout_gravity="center_horizontal"
+            style="?android:attr/progressBarStyleLarge">
+        </ProgressBar>
+
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="@color/separator">
+        </View>
+
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/cancel_button"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="fill_horizontal"
+        style="?android:attr/buttonBarButtonStyle"
+        android:text="@string/cancel"
+        android:textSize="16sp"
+        android:textColor="@color/important_text">
+    </Button>
+
+</LinearLayout>
diff --git a/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml b/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml
index 66c6724..002cc14 100644
--- a/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml
+++ b/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml
@@ -17,11 +17,11 @@
 <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingLeft="8dip"
-    android:paddingRight="8dip"
+    android:paddingStart="8dip"
+    android:paddingEnd="8dip"
     android:minHeight="?android:attr/listPreferredItemHeightSmall"
     android:orientation="vertical"
-    android:gravity="center_vertical">
+    android:gravity="left|center_vertical">
 
     <TextView
         android:id="@+id/title"
@@ -30,7 +30,9 @@
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:singleLine="true"
         android:ellipsize="end"
-        android:textIsSelectable="false">
+        android:textIsSelectable="false"
+        android:gravity="top|left"
+        android:textColor="@color/important_text">
     </TextView>
 
     <TextView
@@ -41,7 +43,8 @@
         android:singleLine="true"
         android:ellipsize="end"
         android:textIsSelectable="false"
-        android:visibility="gone">
+        android:visibility="gone"
+        android:textColor="@color/important_text">
 
     </TextView>
 
diff --git a/packages/DocumentsUI/res/menu/directory.xml b/packages/PrintSpooler/res/values/colors.xml
similarity index 60%
copy from packages/DocumentsUI/res/menu/directory.xml
copy to packages/PrintSpooler/res/values/colors.xml
index 12d0324..9972c96 100644
--- a/packages/DocumentsUI/res/menu/directory.xml
+++ b/packages/PrintSpooler/res/values/colors.xml
@@ -14,15 +14,12 @@
      limitations under the License.
 -->
 
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_grid"
-        android:title="@string/menu_grid"
-        android:icon="@drawable/ic_menu_grid"
-        android:showAsAction="ifRoom" />
-    <item
-        android:id="@+id/menu_list"
-        android:title="@string/menu_list"
-        android:icon="@drawable/ic_menu_list"
-        android:showAsAction="ifRoom" />
-</menu>
+<resources>
+
+    <color name="container_background">#FFFFFF</color>
+    <color name="important_text">#333333</color>
+    <color name="print_option_title">#888888</color>
+    <color name="separator">#CCCCCC</color>
+    <color name="editable_background">#F2F2F2</color>
+
+</resources>
\ No newline at end of file
diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml
index f400f21..2086f58 100644
--- a/packages/PrintSpooler/res/values/strings.xml
+++ b/packages/PrintSpooler/res/values/strings.xml
@@ -20,7 +20,7 @@
     <string name="app_label">Print Spooler</string>
 
     <!-- Label of the print dialog's print button. [CHAR LIMIT=16] -->
-    <string name="print_button">PRINT</string>
+    <string name="print_button">Print</string>
 
     <!-- Label of the destination widget. [CHAR LIMIT=20] -->
     <string name="label_destination">DESTIINATION</string>
@@ -55,10 +55,10 @@
     <!-- Title if the number of pages in a printed document is unknown. [CHAR LIMIT=20] -->
     <string name="page_count_unknown">unknown</string>
 
-    <!-- Notifications -->
+    <!-- Title for the temporary dialog show while an app is generating a print job. [CHAR LIMIT=30] -->
+    <string name="generating_print_job">Generating print job</string>
 
-    <!-- Template for the notificaiton label for a queued print job. [CHAR LIMIT=25] -->
-    <string name="queued_notification_title_template">Queued <xliff:g id="print_job_name" example="foo.jpg">%1$s</xliff:g></string>
+    <!-- Notifications -->
 
     <!-- Template for the notificaiton label for a printing print job. [CHAR LIMIT=25] -->
     <string name="printing_notification_title_template">Printing <xliff:g id="print_job_name" example="foo.jpg">%1$s</xliff:g></string>
@@ -75,6 +75,9 @@
     <!-- Label for the notification button for restrating a filed print job. [CHAR LIMIT=25] -->
     <string name="restart">Restart</string>
 
+    <!-- Message that there is no connection to a printer. [CHAR LIMIT=40] -->
+    <string name="no_connection_to_printer">No connection to printer</string>
+
     <!-- Arrays -->
 
     <!-- Color mode labels. -->
diff --git a/packages/PrintSpooler/res/values/styles.xml b/packages/PrintSpooler/res/values/styles.xml
new file mode 100644
index 0000000..702adf4
--- /dev/null
+++ b/packages/PrintSpooler/res/values/styles.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+
+    <style name="PrintOptionTitleTextAppearance">
+        <item name="android:textStyle">normal</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textAllCaps">true</item>
+        <item name="android:textColor">@color/print_option_title</item>
+    </style>
+
+    <style name="PrintOptionSpinnerStyle">
+        <item name="android:paddingTop">0dip</item>
+        <item name="android:paddingBottom">0dip</item>
+        <item name="android:minWidth">150dip</item>
+        <item name="android:minHeight">?android:attr/listPreferredItemHeightSmall</item>
+    </style>
+
+</resources>
diff --git a/packages/PrintSpooler/res/values/themes.xml b/packages/PrintSpooler/res/values/themes.xml
new file mode 100644
index 0000000..ab16c65
--- /dev/null
+++ b/packages/PrintSpooler/res/values/themes.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+
+    <style name="PrintJobConfigActivityTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowSoftInputMode">stateAlwaysHidden|adjustPan</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:backgroundDimEnabled">true</item>
+        <item name="android:colorBackgroundCacheHint">@android:color/transparent</item>
+    </style>
+
+</resources>
diff --git a/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java b/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
index 14a96c9..130320b 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
@@ -65,10 +65,6 @@
         }
         switch (printJob.getState()) {
             case PrintJobInfo.STATE_QUEUED: {
-                createQueuingNotificaiton(printJob);
-            } break;
-
-            case PrintJobInfo.STATE_STARTED: {
                 createPrintingNotificaiton(printJob);
             } break;
 
@@ -83,30 +79,12 @@
         }
     }
 
-    private void createQueuingNotificaiton(PrintJobInfo printJob) {
-        Notification.Builder builder = new Notification.Builder(mContext)
-                // TODO: Use appropriate icon when assets are ready
-                .setSmallIcon(android.R.drawable.ic_secure)
-                .setContentTitle(mContext.getString(R.string.queued_notification_title_template,
-                        printJob.getLabel()))
-                // TODO: Use appropriate icon when assets are ready
-                .addAction(android.R.drawable.ic_secure, mContext.getString(R.string.cancel),
-                        createCancelIntent(printJob))
-                .setContentText(printJob.getPrinterId().getPrinterName())
-                .setWhen(System.currentTimeMillis())
-                .setOngoing(true)
-                .setShowWhen(true);
-        mNotificationManager.notify(printJob.getId(), builder.build());
-    }
-
     private void createPrintingNotificaiton(PrintJobInfo printJob) {
         Notification.Builder builder = new Notification.Builder(mContext)
-                // TODO: Use appropriate icon when assets are ready
-                .setSmallIcon(android.R.drawable.ic_secure)
+                .setSmallIcon(R.drawable.stat_notify_print)
                 .setContentTitle(mContext.getString(R.string.printing_notification_title_template,
                         printJob.getLabel()))
-                // TODO: Use appropriate icon when assets are ready
-                .addAction(android.R.drawable.ic_secure, mContext.getString(R.string.cancel),
+                .addAction(R.drawable.stat_notify_cancelling, mContext.getString(R.string.cancel),
                         createCancelIntent(printJob))
                 .setContentText(printJob.getPrinterId().getPrinterName())
                 .setWhen(System.currentTimeMillis())
@@ -117,12 +95,10 @@
 
     private void createFailedNotificaiton(PrintJobInfo printJob) {
         Notification.Builder builder = new Notification.Builder(mContext)
-                // TODO: Use appropriate icon when assets are ready
-                .setSmallIcon(android.R.drawable.ic_secure)
+                .setSmallIcon(R.drawable.stat_notify_error)
                 .setContentTitle(mContext.getString(R.string.failed_notification_title_template,
                         printJob.getLabel()))
-                // TODO: Use appropriate icon when assets are ready
-                .addAction(android.R.drawable.ic_secure, mContext.getString(R.string.cancel),
+                .addAction(R.drawable.stat_notify_cancelling, mContext.getString(R.string.cancel),
                         createCancelIntent(printJob))
                 // TODO: Use appropriate icon when assets are ready
                 .addAction(android.R.drawable.ic_secure, mContext.getString(R.string.restart),
@@ -181,8 +157,7 @@
             NotificationManager notificationManager = (NotificationManager)
                     context.getSystemService(Context.NOTIFICATION_SERVICE);
             Notification.Builder builder = new Notification.Builder(context)
-                    // TODO: Use appropriate icon when assets are ready
-                    .setSmallIcon(android.R.drawable.ic_secure)
+                    .setSmallIcon(R.drawable.stat_notify_cancelling)
                     .setContentTitle(context.getString(
                             R.string.cancelling_notification_title_template,
                             printJobLabel))
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
index 15c2b2f..654bb6d 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
@@ -17,8 +17,8 @@
 package com.android.printspooler;
 
 import android.app.Activity;
+import android.app.Dialog;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -53,7 +53,9 @@
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.View.MeasureSpec;
 import android.view.View.OnClickListener;
+import android.view.ViewConfiguration;
 import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
@@ -64,8 +66,8 @@
 import android.widget.EditText;
 import android.widget.Spinner;
 import android.widget.TextView;
-import android.widget.Toast;
 
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -101,7 +103,7 @@
 
     private static final int EDITOR_STATE_INITIALIZED = 1;
     private static final int EDITOR_STATE_CONFIRMED_PRINT = 2;
-    private static final int EDITOR_STATE_CONFIRMED_PREVIEW = 3;
+//    private static final int EDITOR_STATE_CONFIRMED_PREVIEW = 3;
     private static final int EDITOR_STATE_CANCELLED = 4;
 
     private static final int MIN_COPIES = 1;
@@ -137,10 +139,12 @@
 
     private IBinder mIPrintDocumentAdapter;
 
+    private Dialog mGeneratingPrintJobDialog;
+
     @Override
     protected void onCreate(Bundle bundle) {
         super.onCreate(bundle);
-        setContentView(R.layout.print_job_config_activity);
+        setContentView(R.layout.print_job_config_activity_container);
 
         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
 
@@ -167,17 +171,14 @@
         mController = new PrintController(new RemotePrintDocumentAdapter(
                 IPrintDocumentAdapter.Stub.asInterface(mIPrintDocumentAdapter),
                 mSpooler.generateFileForPrintJob(mPrintJobId)));
-    }
 
-    @Override
-    protected void onResume() {
-        super.onResume();
         try {
             mIPrintDocumentAdapter.linkToDeath(mDeathRecipient, 0);
         } catch (RemoteException re) {
             finish();
             return;
         }
+
         mController.initialize();
         mEditor.initialize();
         mPrinterDiscoveryObserver = new PrinterDiscoveryObserver(mEditor, getMainLooper());
@@ -185,32 +186,34 @@
     }
 
     @Override
-    protected void onPause() {
+    protected void onDestroy() {
+        // We can safely do the work in here since at this point
+        // the system is bound to our (spooler) process which
+        // guarantees that this process will not be killed.
         mSpooler.stopPrinterDiscovery();
         mPrinterDiscoveryObserver.destroy();
         mPrinterDiscoveryObserver = null;
-        if (mController.isCancelled() || mController.isFailed()) {
+        if (mController.hasStarted()) {
+            mController.finish();
+        }
+        if (mEditor.isPrintConfirmed() && mController.isFinished()) {
+            mSpooler.setPrintJobState(mPrintJobId,
+                    PrintJobInfo.STATE_QUEUED, null);
+        } else {
             mSpooler.setPrintJobState(mPrintJobId,
                     PrintJobInfo.STATE_CANCELED, null);
-        } else if (mController.hasStarted()) {
-            mController.finish();
-            if (mEditor.isPrintConfirmed()) {
-                if (mController.isFinished()) {
-                    mSpooler.setPrintJobState(mPrintJobId,
-                            PrintJobInfo.STATE_QUEUED, null);
-                } else {
-                    mSpooler.setPrintJobState(mPrintJobId,
-                            PrintJobInfo.STATE_CANCELED, null);
-                }
-            }
         }
         mIPrintDocumentAdapter.unlinkToDeath(mDeathRecipient, 0);
-        super.onPause();
+        if (mGeneratingPrintJobDialog != null) {
+            mGeneratingPrintJobDialog.dismiss();
+            mGeneratingPrintJobDialog = null;
+        }
+        super.onDestroy();
     }
 
     public boolean onTouchEvent(MotionEvent event) {
         if (!mEditor.isPrintConfirmed() && !mEditor.isPreviewConfirmed()
-                && getWindow().shouldCloseOnTouch(this, event)) {
+                && mEditor.shouldCloseOnTouch(event)) {
             if (!mController.isWorking()) {
                 PrintJobConfigActivity.this.finish();
             }
@@ -228,10 +231,14 @@
     }
 
     public boolean onKeyUp(int keyCode, KeyEvent event) {
-        if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
-                && !event.isCanceled()) {
-            if (!mController.isWorking()) {
-                PrintJobConfigActivity.this.finish();
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            if (mEditor.isShwoingGeneratingPrintJobUi()) {
+                return true;
+            }
+            if (event.isTracking() && !event.isCanceled()) {
+                if (!mController.isWorking()) {
+                    PrintJobConfigActivity.this.finish();
+                }
             }
             mEditor.cancel();
             return true;
@@ -248,51 +255,24 @@
 
         private final RemotePrintDocumentAdapter mRemotePrintAdapter;
 
-        private final Handler mHandler;
+        private final Bundle mMetadata;
+
+        private final ControllerHandler mHandler;
+
+        private final LayoutResultCallback mLayoutResultCallback;
+
+        private final WriteResultCallback mWriteResultCallback;
 
         private int mControllerState = CONTROLLER_STATE_INITIALIZED;
 
         private PageRange[] mRequestedPages;
 
-        private Bundle mMetadata = new Bundle();
-
-        private final ILayoutResultCallback mILayoutResultCallback =
-                new ILayoutResultCallback.Stub() {
-            @Override
-            public void onLayoutFinished(PrintDocumentInfo info, boolean changed, int sequence) {
-                if (mRequestCounter.get() == sequence) {
-                    mHandler.obtainMessage(MyHandler.MSG_ON_LAYOUT_FINISHED, changed ? 1 : 0,
-                            0, info).sendToTarget();
-                }
-            }
-
-            @Override
-            public void onLayoutFailed(CharSequence error, int sequence) {
-                if (mRequestCounter.get() == sequence) {
-                    mHandler.obtainMessage(MyHandler.MSG_ON_LAYOUT_FAILED, error).sendToTarget();
-                }
-            }
-        };
-
-        private IWriteResultCallback mIWriteResultCallback = new IWriteResultCallback.Stub() {
-            @Override
-            public void onWriteFinished(PageRange[] pages, int sequence) {
-                if (mRequestCounter.get() == sequence) {
-                    mHandler.obtainMessage(MyHandler.MSG_ON_WRITE_FINISHED, pages).sendToTarget();
-                }
-            }
-
-            @Override
-            public void onWriteFailed(CharSequence error, int sequence) {
-                if (mRequestCounter.get() == sequence) {
-                    mHandler.obtainMessage(MyHandler.MSG_ON_WRITE_FAILED, error).sendToTarget();
-                }
-            }
-        };
-
         public PrintController(RemotePrintDocumentAdapter adapter) {
             mRemotePrintAdapter = adapter;
-            mHandler = new MyHandler(Looper.getMainLooper());
+            mMetadata = new Bundle();
+            mHandler = new ControllerHandler(getMainLooper());
+            mLayoutResultCallback = new LayoutResultCallback(mHandler);
+            mWriteResultCallback = new WriteResultCallback(mHandler);
         }
 
         public void initialize() {
@@ -311,10 +291,6 @@
             return (mControllerState == CONTROLLER_STATE_FINISHED);
         }
 
-        public boolean isFailed() {
-            return (mControllerState == CONTROLLER_STATE_FAILED);
-        }
-
         public boolean hasStarted() {
             return mControllerState >= CONTROLLER_STATE_STARTED;
         }
@@ -338,7 +314,7 @@
                 // If the attributes changes, then we do not do a layout but may
                 // have to ask the app to write some pages. Hence, pretend layout
                 // completed and nothing changed, so we handle writing as usual.
-                handleOnLayoutFinished(mDocument.info, false);
+                handleOnLayoutFinished(mDocument.info, false, mRequestCounter.get());
             } else {
                 mSpooler.setPrintJobAttributesNoPersistence(mPrintJobId, mCurrPrintAttributes);
 
@@ -348,7 +324,7 @@
                 mControllerState = CONTROLLER_STATE_LAYOUT_STARTED;
 
                 mRemotePrintAdapter.layout(mOldPrintAttributes, mCurrPrintAttributes,
-                        mILayoutResultCallback, mMetadata, mRequestCounter.incrementAndGet());
+                        mLayoutResultCallback, mMetadata, mRequestCounter.incrementAndGet());
 
                 mOldPrintAttributes.copyFrom(mCurrPrintAttributes);
             }
@@ -359,7 +335,12 @@
             mRemotePrintAdapter.finish();
         }
 
-        private void handleOnLayoutFinished(PrintDocumentInfo info, boolean layoutChanged) {
+        private void handleOnLayoutFinished(PrintDocumentInfo info,
+                boolean layoutChanged, int sequence) {
+            if (mRequestCounter.get() != sequence) {
+                return;
+            }
+
             if (isCancelled()) {
                 if (mEditor.isDone()) {
                     PrintJobConfigActivity.this.finish();
@@ -421,18 +402,25 @@
 
             // Request a write of the pages of interest.
             mControllerState = CONTROLLER_STATE_WRITE_STARTED;
-            mRemotePrintAdapter.write(mRequestedPages, mIWriteResultCallback,
+            mRemotePrintAdapter.write(mRequestedPages, mWriteResultCallback,
                     mRequestCounter.incrementAndGet());
         }
 
-        private void handleOnLayoutFailed(CharSequence error) {
+        private void handleOnLayoutFailed(CharSequence error, int sequence) {
+            if (mRequestCounter.get() != sequence) {
+                return;
+            }
             mControllerState = CONTROLLER_STATE_FAILED;
             // TODO: We need some UI for announcing an error.
             Log.e(LOG_TAG, "Error during layout: " + error);
             PrintJobConfigActivity.this.finish();
         }
 
-        private void handleOnWriteFinished(PageRange[] pages) {
+        private void handleOnWriteFinished(PageRange[] pages, int sequence) {
+            if (mRequestCounter.get() != sequence) {
+                return;
+            }
+
             if (isCancelled()) {
                 if (mEditor.isDone()) {
                     PrintJobConfigActivity.this.finish();
@@ -490,19 +478,22 @@
             }
         }
 
-        private void handleOnWriteFailed(CharSequence error) {
+        private void handleOnWriteFailed(CharSequence error, int sequence) {
+            if (mRequestCounter.get() != sequence) {
+                return;
+            }
             mControllerState = CONTROLLER_STATE_FAILED;
             Log.e(LOG_TAG, "Error during write: " + error);
             PrintJobConfigActivity.this.finish();
         }
 
-        private final class MyHandler extends Handler {
+        private final class ControllerHandler extends Handler {
             public static final int MSG_ON_LAYOUT_FINISHED = 1;
             public static final int MSG_ON_LAYOUT_FAILED = 2;
             public static final int MSG_ON_WRITE_FINISHED = 3;
             public static final int MSG_ON_WRITE_FAILED = 4;
 
-            public MyHandler(Looper looper) {
+            public ControllerHandler(Looper looper) {
                 super(looper, null, false);
             }
 
@@ -512,28 +503,84 @@
                     case MSG_ON_LAYOUT_FINISHED: {
                         PrintDocumentInfo info = (PrintDocumentInfo) message.obj;
                         final boolean changed = (message.arg1 == 1);
-                        mController.handleOnLayoutFinished(info, changed);
+                        final int sequence = message.arg2;
+                        handleOnLayoutFinished(info, changed, sequence);
                     } break;
 
                     case MSG_ON_LAYOUT_FAILED: {
                         CharSequence error = (CharSequence) message.obj;
-                        mController.handleOnLayoutFailed(error);
+                        final int sequence = message.arg1;
+                        handleOnLayoutFailed(error, sequence);
                     } break;
 
                     case MSG_ON_WRITE_FINISHED: {
                         PageRange[] pages = (PageRange[]) message.obj;
-                        mController.handleOnWriteFinished(pages);
+                        final int sequence = message.arg1;
+                        handleOnWriteFinished(pages, sequence);
                     } break;
 
                     case MSG_ON_WRITE_FAILED: {
                         CharSequence error = (CharSequence) message.obj;
-                        mController.handleOnWriteFailed(error);
+                        final int sequence = message.arg1;
+                        handleOnWriteFailed(error, sequence);
                     } break;
                 }
             }
         }
     }
 
+    private static final class LayoutResultCallback extends ILayoutResultCallback.Stub {
+        private final WeakReference<PrintController.ControllerHandler> mWeakHandler;
+
+        public LayoutResultCallback(PrintController.ControllerHandler handler) {
+            mWeakHandler = new WeakReference<PrintController.ControllerHandler>(handler);
+        }
+
+        @Override
+        public void onLayoutFinished(PrintDocumentInfo info, boolean changed, int sequence) {
+            Handler handler = mWeakHandler.get();
+            if (handler != null) {
+                handler.obtainMessage(PrintController.ControllerHandler.MSG_ON_LAYOUT_FINISHED,
+                        changed ? 1 : 0, sequence, info).sendToTarget();
+            }
+        }
+
+        @Override
+        public void onLayoutFailed(CharSequence error, int sequence) {
+            Handler handler = mWeakHandler.get();
+            if (handler != null) {
+                handler.obtainMessage(PrintController.ControllerHandler.MSG_ON_LAYOUT_FAILED,
+                        sequence, 0, error).sendToTarget();
+            }
+        }
+    }
+
+    private static final class WriteResultCallback extends IWriteResultCallback.Stub {
+        private final WeakReference<PrintController.ControllerHandler> mWeakHandler;
+
+        public WriteResultCallback(PrintController.ControllerHandler handler) {
+            mWeakHandler = new WeakReference<PrintController.ControllerHandler>(handler);
+        }
+
+        @Override
+        public void onWriteFinished(PageRange[] pages, int sequence) {
+            Handler handler = mWeakHandler.get();
+            if (handler != null) {
+                handler.obtainMessage(PrintController.ControllerHandler.MSG_ON_WRITE_FINISHED,
+                        sequence, 0, pages).sendToTarget();
+            }
+        }
+
+        @Override
+        public void onWriteFailed(CharSequence error, int sequence) {
+            Handler handler = mWeakHandler.get();
+            if (handler != null) {
+                handler.obtainMessage(PrintController.ControllerHandler.MSG_ON_WRITE_FAILED,
+                    sequence, 0, error).sendToTarget();
+            }
+        }
+    }
+
     private final class Editor {
         private final EditText mCopiesEditText;
 
@@ -558,7 +605,7 @@
         private final SimpleStringSplitter mStringCommaSplitter =
                 new SimpleStringSplitter(',');
 
-        private final Button mPrintPreviewButton;
+        private final View mContentContainer;
 
         private final Button mPrintButton;
 
@@ -754,6 +801,9 @@
         private boolean mIgnoreNextRangeChange;
 
         public Editor() {
+            // Content container
+            mContentContainer = findViewById(R.id.content_container);
+
             // Copies
             mCopiesEditText = (EditText) findViewById(R.id.copies_edittext);
             mCopiesEditText.setText(String.valueOf(MIN_COPIES));
@@ -816,19 +866,6 @@
                 mRangeOptionsSpinner.setSelection(0);
             }
 
-            // Preview button
-            mPrintPreviewButton = (Button) findViewById(R.id.print_preview_button);
-            mPrintPreviewButton.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    mEditor.confirmPreview();
-                    // TODO: Implement me
-                    Toast.makeText(PrintJobConfigActivity.this,
-                            "Stop poking me! Not implemented yet :)",
-                            Toast.LENGTH_LONG).show();
-                }
-            });
-
             // Print button
             mPrintButton = (Button) findViewById(R.id.print_button);
             mPrintButton.setOnClickListener(new OnClickListener() {
@@ -837,12 +874,100 @@
                     mEditor.confirmPrint();
                     updateUi();
                     mController.update();
+                    showGeneratingPrintJobUi();
                 }
             });
 
             updateUi();
         }
 
+        public boolean shouldCloseOnTouch(MotionEvent event) {
+            if (event.getAction() != MotionEvent.ACTION_DOWN) {
+                return false;
+            }
+
+            final int[] locationInWindow = new int[2];
+            mContentContainer.getLocationInWindow(locationInWindow);
+
+            final int windowTouchSlop = ViewConfiguration.get(PrintJobConfigActivity.this)
+                    .getScaledWindowTouchSlop();
+            final int eventX = (int) event.getX();
+            final int eventY = (int) event.getY();
+            final int lenientWindowLeft = locationInWindow[0] - windowTouchSlop;
+            final int lenientWindowRight = lenientWindowLeft + mContentContainer.getWidth()
+                    + windowTouchSlop;
+            final int lenientWindowTop = locationInWindow[1] - windowTouchSlop;
+            final int lenientWindowBottom = lenientWindowTop + mContentContainer.getHeight()
+                    + windowTouchSlop;
+
+            if (eventX < lenientWindowLeft || eventX > lenientWindowRight
+                    || eventY < lenientWindowTop || eventY > lenientWindowBottom) {
+                return true;
+            }
+            return false;
+        }
+
+        public boolean isShwoingGeneratingPrintJobUi() {
+            return (findViewById(R.id.content_generating) != null);
+        }
+
+        private void showGeneratingPrintJobUi() {
+            // Find everything we will shuffle around.
+            final ViewGroup contentContainer = (ViewGroup) findViewById(R.id.content_container);
+            final View contentEditing = contentContainer.findViewById(R.id.content_editing);
+            final View contentGenerating = getLayoutInflater().inflate(
+                    R.layout.print_job_config_activity_content_generating,
+                    contentContainer, false);
+
+            // Wire the cancel action.
+            Button cancelButton = (Button) contentGenerating.findViewById(R.id.cancel_button);
+            cancelButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    if (!mController.isWorking()) {
+                        PrintJobConfigActivity.this.finish();
+                    }
+                    mEditor.cancel();
+                }
+            });
+
+            // First animation - fade out the old content.
+            contentEditing.animate().alpha(0.0f).withLayer().withEndAction(new Runnable() {
+                @Override
+                public void run() {
+                    contentEditing.setVisibility(View.INVISIBLE);
+
+                    // Prepare the new content with correct size and alpha.
+                    contentGenerating.setMinimumWidth(contentContainer.getWidth());
+                    contentGenerating.setAlpha(0.0f);
+
+                    // Compute how to much shrink the container to fit around the new content.
+                    final int widthSpec = MeasureSpec.makeMeasureSpec(
+                            contentContainer.getWidth(), MeasureSpec.AT_MOST);
+                    final int heightSpec = MeasureSpec.makeMeasureSpec(
+                            contentContainer.getHeight(), MeasureSpec.AT_MOST);
+                    contentGenerating.measure(widthSpec, heightSpec);
+                    final float scaleY = (float) contentGenerating.getMeasuredHeight()
+                            / (float) contentContainer.getHeight();
+
+                    // Second animation - resize the container.
+                    contentContainer.animate().scaleY(scaleY).withLayer().withEndAction(
+                            new Runnable() {
+                        @Override
+                        public void run() {
+                            // Swap the old and the new content.
+                            contentContainer.removeAllViews();
+                            contentContainer.setScaleY(1.0f);
+                            contentContainer.addView(contentGenerating);
+
+                            // Third animation - show the new content.
+                            contentGenerating.animate().withLayer().alpha(1.0f);
+                        }
+                    });
+                }
+            });
+        }
+
         public void initialize() {
             mEditorState = EDITOR_STATE_INITIALIZED;
             if (mDestinationSpinner.getSelectedItemPosition() != AdapterView.INVALID_POSITION) {
@@ -877,9 +1002,9 @@
             return mEditorState == EDITOR_STATE_CONFIRMED_PRINT;
         }
 
-        public void confirmPreview() {
-            mEditorState = EDITOR_STATE_CONFIRMED_PREVIEW;
-        }
+//        public void confirmPreview() {
+//            mEditorState = EDITOR_STATE_CONFIRMED_PREVIEW;
+//        }
 
         public PageRange[] getRequestedPages() {
             if (hasErrors()) {
@@ -925,7 +1050,8 @@
                 mOrientationSpinner.setEnabled(false);
                 mRangeOptionsSpinner.setEnabled(false);
                 mRangeEditText.setEnabled(false);
-                mPrintPreviewButton.setEnabled(false);
+                // TODO: Remove entirely or implement print preview.
+//                mPrintPreviewButton.setEnabled(false);
                 mPrintButton.setEnabled(false);
                 return;
             }
@@ -982,9 +1108,9 @@
                 mRangeEditText.setEnabled(false);
                 mRangeEditText.setVisibility(View.INVISIBLE);
 
-                // Print preview
-                mPrintPreviewButton.setEnabled(false);
-                mPrintPreviewButton.setText(getString(R.string.print_preview));
+//                // Print preview
+//                mPrintPreviewButton.setEnabled(false);
+//                mPrintPreviewButton.setText(getString(R.string.print_preview));
 
                 // Print
                 mPrintButton.setEnabled(false);
@@ -1181,15 +1307,15 @@
                             && (TextUtils.isEmpty(mRangeEditText.getText()) || hasErrors()))
                         || (mRangeOptionsSpinner.getSelectedItemPosition() == 0
                             && (!mController.hasPerformedLayout() || hasErrors()))) {
-                    mPrintPreviewButton.setEnabled(false);
+//                    mPrintPreviewButton.setEnabled(false);
                     mPrintButton.setEnabled(false);
                 } else {
-                    mPrintPreviewButton.setEnabled(true);
-                    if (hasPdfViewer()) {
-                        mPrintPreviewButton.setText(getString(R.string.print_preview));
-                    } else {
-                        mPrintPreviewButton.setText(getString(R.string.install_for_print_preview));
-                    }
+//                    mPrintPreviewButton.setEnabled(true);
+//                    if (hasPdfViewer()) {
+//                        mPrintPreviewButton.setText(getString(R.string.print_preview));
+//                    } else {
+//                        mPrintPreviewButton.setText(getString(R.string.install_for_print_preview));
+//                    }
                     mPrintButton.setEnabled(true);
                 }
 
@@ -1302,12 +1428,12 @@
                     || mCopiesEditText.getError() != null;
         }
 
-        private boolean hasPdfViewer() {
-            Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.setType("application/pdf");
-            return !getPackageManager().queryIntentActivities(intent,
-                    PackageManager.MATCH_DEFAULT_ONLY).isEmpty();
-        }
+//        private boolean hasPdfViewer() {
+//            Intent intent = new Intent(Intent.ACTION_VIEW);
+//            intent.setType("application/pdf");
+//            return !getPackageManager().queryIntentActivities(intent,
+//                    PackageManager.MATCH_DEFAULT_ONLY).isEmpty();
+//        }
 
         private final class SpinnerItem<T> {
             final T value;
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintSpooler.java b/packages/PrintSpooler/src/com/android/printspooler/PrintSpooler.java
index 0bc20a3..00e05bb 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintSpooler.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintSpooler.java
@@ -177,17 +177,15 @@
             // Update the notification.
             mNotificationController.onPrintJobStateChanged(printJob);
 
-            //TODO: Figure out what the right policy for read print jobs is.
-
             switch (printJob.getState()) {
-                case PrintJobInfo.STATE_QUEUED: {
-                    // Notify that we have a queued job.
-                    mService.onPrintJobQueued(new PrintJobInfo(printJob));
-                } break;
-
+                case PrintJobInfo.STATE_QUEUED:
                 case PrintJobInfo.STATE_STARTED: {
-                    // We really want to restart this print job.
-                    setPrintJobState(printJob.getId(), PrintJobInfo.STATE_QUEUED, null);
+                    // We have a print job that was queued or started in the past
+                    // but the device battery died or a crash occurred. In this case
+                    // we assume the print job failed and let the user decide whether
+                    // to restart the job or just
+                    setPrintJobState(printJob.getId(), PrintJobInfo.STATE_FAILED,
+                            mService.getString(R.string.no_connection_to_printer));
                 } break;
             }
         }
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 9ddf42a..05618bd 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -182,10 +182,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Outoroteer"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotasie gesluit"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Invoermetode"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Ligging"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Ligging af"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Mediatoestel"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Net noodoproepe"</string>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 6194fd8..6bf1040 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -182,10 +182,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Автоматична ориентация"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Ориентацията е заключена"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Метод на въвеждане"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Местоположение"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Местоположението е изключено"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Мултимедийно устройство"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"Индикатор за силата на получения сигнал (RSSI)"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Само спешни обаждания"</string>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index ec52ede..2b59228 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -184,10 +184,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Autom. drehen"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Drehung gesperrt"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Eingabemethode"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Standort"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Standort aus"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Mediengerät"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Nur Notrufe"</string>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 62f6c20..2a0f1f7 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -184,10 +184,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Girar automáticamente"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotación bloqueada"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Método de introducción"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Ubicación"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Ubicación desactivada"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo multimedia"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Solo emergencia"</string>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index b095519..5f35ce6 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -182,10 +182,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"چرخش خودکار"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"چرخش قفل شد"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"روش ورودی"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"مکان"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"مکان خاموش"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"دستگاه رسانه"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"فقط تماس‌های اضطراری"</string>
diff --git a/packages/SystemUI/res/values-land/refs.xml b/packages/SystemUI/res/values-land/refs.xml
index f5e79b9..62fb77d 100644
--- a/packages/SystemUI/res/values-land/refs.xml
+++ b/packages/SystemUI/res/values-land/refs.xml
@@ -16,5 +16,5 @@
 */
 -->
 <resources>
-    <item type="string" name="hideybar_confirmation_message">@string/hideybar_confirmation_message_long</item>
+    <item type="string" name="hiding_navigation_confirmation_message">@string/hiding_navigation_confirmation_message_long</item>
 </resources>
diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml
index 5312ccb..498e922 100644
--- a/packages/SystemUI/res/values-ms/strings.xml
+++ b/packages/SystemUI/res/values-ms/strings.xml
@@ -182,10 +182,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Auto Putar"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Putaran Dikunci"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Kaedah Input"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Lokasi"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Lokasi Dimatikan"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Peranti media"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Panggilan Kecemasan Sahaja"</string>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 91e7f02..9be0739 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -184,10 +184,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Girar automat."</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotação bloqueada"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Método de entrada"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Localização"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Localização desativada"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo de mídia"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Somente chamadas de emergência"</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 27f556c..bdfd27d 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -180,10 +180,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Zungusha Otomatiki"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Mzunguko Umefungwa"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Mbinu ya uingizaji"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Eneo"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Eneo Limezimwa"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Kifaa cha midia"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Simu za Dharura Pekee"</string>
diff --git a/packages/SystemUI/res/values-sw600dp-port/refs.xml b/packages/SystemUI/res/values-sw600dp-port/refs.xml
index f5e79b9..62fb77d 100644
--- a/packages/SystemUI/res/values-sw600dp-port/refs.xml
+++ b/packages/SystemUI/res/values-sw600dp-port/refs.xml
@@ -16,5 +16,5 @@
 */
 -->
 <resources>
-    <item type="string" name="hideybar_confirmation_message">@string/hideybar_confirmation_message_long</item>
+    <item type="string" name="hiding_navigation_confirmation_message">@string/hiding_navigation_confirmation_message_long</item>
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index f39f8bc..2185b16 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -182,10 +182,8 @@
     <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Otomatik Döndür"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Dönme Kilitlendi"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"Giriş Yöntemi"</string>
-    <!-- no translation found for quick_settings_location_label (5011327048748762257) -->
-    <skip />
-    <!-- no translation found for quick_settings_location_off_label (7464544086507331459) -->
-    <skip />
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Konum"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Konum Bilgisi Kapalı"</string>
     <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Medya cihazı"</string>
     <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Yalnızca Acil Çağrılar İçin"</string>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index b99d20c..0073e60 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -502,8 +502,8 @@
     <string name="status_bar_help_text">Access them anytime by swiping down.\nSwipe down again for system controls.</string>
 
     <!-- Toast bar message when hiding the navigation bar -->
-    <string name="hideybar_confirmation_message">Swipe edge of screen to reveal bar</string>
+    <string name="hiding_navigation_confirmation_message">Swipe edge of screen to reveal bar</string>
 
     <!-- Longer version of toast bar message when hiding the navigation bar (if room) -->
-    <string name="hideybar_confirmation_message_long">Swipe from edge of screen to reveal system bar</string>
+    <string name="hiding_navigation_confirmation_message_long">Swipe from edge of screen to reveal system bar</string>
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/LoadAverageService.java b/packages/SystemUI/src/com/android/systemui/LoadAverageService.java
index efbee5b..610e42b 100644
--- a/packages/SystemUI/src/com/android/systemui/LoadAverageService.java
+++ b/packages/SystemUI/src/com/android/systemui/LoadAverageService.java
@@ -29,18 +29,18 @@
 import android.view.View;
 import android.view.WindowManager;
 
-import com.android.internal.os.ProcessStats;
+import com.android.internal.os.ProcessCpuTracker;
 
 public class LoadAverageService extends Service {
     private View mView;
 
-    private static final class Stats extends ProcessStats {
+    private static final class CpuTracker extends ProcessCpuTracker {
         String mLoadText;
         int mLoadWidth;
 
         private final Paint mPaint;
 
-        Stats(Paint paint) {
+        CpuTracker(Paint paint) {
             super(false);
             mPaint = paint;
         }
@@ -70,7 +70,7 @@
             }
         };
 
-        private final Stats mStats;
+        private final CpuTracker mStats;
 
         private Paint mLoadPaint;
         private Paint mAddedPaint;
@@ -150,7 +150,7 @@
             float descent = mLoadPaint.descent();
             mFH = (int)(descent - mAscent + .5f);
 
-            mStats = new Stats(mLoadPaint);
+            mStats = new CpuTracker(mLoadPaint);
             mStats.init();
             updateDisplay();
         }
@@ -179,7 +179,7 @@
             final int W = mNeededWidth;
             final int RIGHT = getWidth()-1;
 
-            final Stats stats = mStats;
+            final CpuTracker stats = mStats;
             final int userTime = stats.getLastUserTime();
             final int systemTime = stats.getLastSystemTime();
             final int iowaitTime = stats.getLastIoWaitTime();
@@ -226,7 +226,7 @@
 
             int N = stats.countWorkingStats();
             for (int i=0; i<N; i++) {
-                Stats.Stats st = stats.getWorkingStats(i);
+                CpuTracker.Stats st = stats.getWorkingStats(i);
                 y += mFH;
                 top += mFH;
                 bottom += mFH;
@@ -259,12 +259,12 @@
         }
 
         void updateDisplay() {
-            final Stats stats = mStats;
+            final CpuTracker stats = mStats;
             final int NW = stats.countWorkingStats();
 
             int maxWidth = stats.mLoadWidth;
             for (int i=0; i<NW; i++) {
-                Stats.Stats st = stats.getWorkingStats(i);
+                CpuTracker.Stats st = stats.getWorkingStats(i);
                 if (st.nameWidth > maxWidth) {
                     maxWidth = st.nameWidth;
                 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index d1ccde1..3a81454 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -127,11 +127,15 @@
     private static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10; // see NotificationManagerService
     private static final int HIDE_ICONS_BELOW_SCORE = Notification.PRIORITY_LOW * NOTIFICATION_PRIORITY_MULTIPLIER;
 
-    private static final int STATUS_OR_NAV_OVERLAY =
-            View.STATUS_BAR_OVERLAY | View.NAVIGATION_BAR_OVERLAY;
+    private static final int STATUS_OR_NAV_TRANSIENT =
+            View.STATUS_BAR_TRANSIENT | View.NAVIGATION_BAR_TRANSIENT;
     private static final long AUTOHIDE_TIMEOUT_MS = 3000;
     private static final float TRANSPARENT_ALPHA = 0.7f;
 
+    private static final int BAR_MODE_NORMAL = 0;
+    private static final int BAR_MODE_TRANSIENT = 1;
+    private static final int BAR_MODE_TRANSPARENT = 2;
+
     // fling gesture tuning parameters, scaled to display density
     private float mSelfExpandVelocityPx; // classic value: 2000px/s
     private float mSelfCollapseVelocityPx; // classic value: 2000px/s (will be negated to collapse "up")
@@ -306,33 +310,33 @@
         }
     };
 
-    private Toast mHideybarConfirmation;
-    private boolean mHideybarConfirmationDismissed;
+    private Toast mHidingNavigationConfirmation;
+    private boolean mHidingNavigationConfirmationDismissed;
 
-    private final View.OnTouchListener mDismissHideybarConfirmationOnTouchOutside =
+    private final View.OnTouchListener mDismissHidingNavigationConfirmationOnTouchOutside =
             new View.OnTouchListener() {
                 @Override
                 public boolean onTouch(View v, MotionEvent event) {
                     if (event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) {
-                        dismissHideybarConfirmation();
+                        dismissHidingNavigationConfirmation();
                     }
                     return false;
                 }
             };
 
-    private final Runnable mHideybarConfirmationAction = new Runnable() {
+    private final Runnable mHidingNavigationConfirmationAction = new Runnable() {
         @Override
         public void run() {
-            if (mHideybarConfirmation != null) {
+            if (mHidingNavigationConfirmation != null) {
                 final boolean isGloballyConfirmed = Prefs.read(mContext)
-                        .getBoolean(Prefs.HIDEYBAR_CONFIRMED, false);
+                        .getBoolean(Prefs.HIDING_NAVIGATION_CONFIRMED, false);
                 if (!isGloballyConfirmed) {
                     // user pressed button, consider this a confirmation
                     Prefs.edit(mContext)
-                            .putBoolean(Prefs.HIDEYBAR_CONFIRMED, true)
+                            .putBoolean(Prefs.HIDING_NAVIGATION_CONFIRMED, true)
                             .apply();
                 }
-                dismissHideybarConfirmation();
+                dismissHidingNavigationConfirmation();
             }
         }
     };
@@ -342,7 +346,7 @@
     private final Runnable mAutohide = new Runnable() {
         @Override
         public void run() {
-            int requested = mSystemUiVisibility & ~STATUS_OR_NAV_OVERLAY;
+            int requested = mSystemUiVisibility & ~STATUS_OR_NAV_TRANSIENT;
             if (mSystemUiVisibility != requested) {
                 notifyUiVisibilityChanged(requested);
             }
@@ -1892,8 +1896,9 @@
         if (diff != 0) {
             mSystemUiVisibility = newVal;
 
-            if (0 != (diff & View.SYSTEM_UI_FLAG_LOW_PROFILE)) {
-                final boolean lightsOut = (0 != (vis & View.SYSTEM_UI_FLAG_LOW_PROFILE));
+            // update low profile
+            if ((diff & View.SYSTEM_UI_FLAG_LOW_PROFILE) != 0) {
+                final boolean lightsOut = (vis & View.SYSTEM_UI_FLAG_LOW_PROFILE) != 0;
                 if (lightsOut) {
                     animateCollapsePanels();
                     if (mTicking) {
@@ -1908,70 +1913,93 @@
                 setStatusBarLowProfile(lightsOut);
             }
 
-            boolean sbOverlayChanged = 0 != (diff & View.STATUS_BAR_OVERLAY);
-            boolean nbOverlayChanged = 0 != (diff & View.NAVIGATION_BAR_OVERLAY);
-            if (sbOverlayChanged || nbOverlayChanged) {
-                boolean sbOverlay = 0 != (vis & View.STATUS_BAR_OVERLAY);
-                boolean nbOverlay = 0 != (vis & View.NAVIGATION_BAR_OVERLAY);
-                if (sbOverlayChanged) {
-                    setTransparent(mStatusBarView, sbOverlay);
-                }
-                if (nbOverlayChanged) {
-                    setTransparent(mNavigationBarView, nbOverlay);
-                }
-                if (sbOverlayChanged && sbOverlay || nbOverlayChanged && nbOverlay) {
+            // update status bar mode
+            int sbMode = updateBarMode(oldVal, newVal, mStatusBarView,
+                    View.STATUS_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS);
+
+            // update navigation bar mode
+            int nbMode = updateBarMode(oldVal, newVal, mNavigationBarView,
+                    View.NAVIGATION_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION);
+
+            if (sbMode != -1 || nbMode != -1) {
+                // update transient bar autohide
+                if (sbMode == BAR_MODE_TRANSIENT || nbMode == BAR_MODE_TRANSIENT) {
                     scheduleAutohide();
                 } else {
                     cancelAutohide();
                 }
             }
+
+            // update hiding navigation confirmation
             if (mNavigationBarView != null) {
-                int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_ALLOW_OVERLAY;
-                boolean oldVisible =  (oldVal & flags) == flags;
-                boolean newVisible = (newVal & flags) == flags;
-                if (!oldVisible && newVisible) {
-                    mHideybarConfirmationDismissed = false;
+                final int hidingNav =
+                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT;
+                boolean oldHidingNav = (oldVal & hidingNav) != 0;
+                boolean newHidingNav = (newVal & hidingNav) != 0;
+                if (!oldHidingNav && newHidingNav) {
+                    mHidingNavigationConfirmationDismissed = false;
                 }
-                setHideybarConfirmationVisible(newVisible);
+                setHidingNavigationConfirmationVisible(newHidingNav);
             }
+
+            // send updated sysui visibility to window manager
             notifyUiVisibilityChanged(mSystemUiVisibility);
         }
     }
 
-    private void dismissHideybarConfirmation() {
-        if (mHideybarConfirmation != null) {
-            mHideybarConfirmationDismissed = true;
-            mHideybarConfirmation.cancel();
-            mHideybarConfirmation = null;
+    private int updateBarMode(int oldVis, int newVis, View view,
+            int transientFlag, int transparentFlag) {
+        final int oldMode = barMode(oldVis, transientFlag, transparentFlag);
+        final int newMode = barMode(newVis, transientFlag, transparentFlag);
+        if (oldMode == newMode) {
+            return -1; // no mode change
+        }
+        setTransparent(view, newMode != BAR_MODE_NORMAL);
+        return newMode;
+    }
+
+    private int barMode(int vis, int transientFlag, int transparentFlag) {
+        return (vis & transientFlag) != 0 ? BAR_MODE_TRANSIENT
+                : (vis & transparentFlag) != 0 ? BAR_MODE_TRANSPARENT
+                : BAR_MODE_NORMAL;
+    }
+
+    private void dismissHidingNavigationConfirmation() {
+        if (mHidingNavigationConfirmation != null) {
+            mHidingNavigationConfirmationDismissed = true;
+            mHidingNavigationConfirmation.cancel();
+            mHidingNavigationConfirmation = null;
         }
     }
 
-    private void setHideybarConfirmationVisible(boolean visible) {
-        if (DEBUG) Log.d(TAG, "setHideybarConfirmationVisible " + visible);
-        if (visible && mHideybarConfirmation == null && !mHideybarConfirmationDismissed) {
+    private void setHidingNavigationConfirmationVisible(boolean visible) {
+        if (DEBUG) Log.d(TAG, "setHidingNavigationConfirmationVisible " + visible);
+        if (visible &&
+                mHidingNavigationConfirmation == null && !mHidingNavigationConfirmationDismissed) {
             // create the confirmation toast bar
-            int msg = R.string.hideybar_confirmation_message;
-            mHideybarConfirmation = Toast.makeBar(mContext, msg, Toast.LENGTH_INFINITE)
-                    .setAction(com.android.internal.R.string.ok, mHideybarConfirmationAction);
-            View v = mHideybarConfirmation.getView();
+            int msg = R.string.hiding_navigation_confirmation_message;
+            mHidingNavigationConfirmation = Toast.makeBar(mContext, msg, Toast.LENGTH_INFINITE)
+                    .setAction(com.android.internal.R.string.ok,
+                            mHidingNavigationConfirmationAction);
+            View v = mHidingNavigationConfirmation.getView();
             v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
             boolean isGloballyConfirmed = Prefs.read(mContext)
-                    .getBoolean(Prefs.HIDEYBAR_CONFIRMED, false);
+                    .getBoolean(Prefs.HIDING_NAVIGATION_CONFIRMED, false);
             if (isGloballyConfirmed) {
                 // dismiss on outside touch if globally confirmed
-                v.setOnTouchListener(mDismissHideybarConfirmationOnTouchOutside);
+                v.setOnTouchListener(mDismissHidingNavigationConfirmationOnTouchOutside);
             }
             // position at the bottom like normal toasts, but use top gravity
             // to avoid jumping around when showing/hiding the nav bar
             v.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
             int offsetY = mContext.getResources().getDimensionPixelSize(
                     com.android.internal.R.dimen.toast_y_offset);
-            mHideybarConfirmation.setGravity(Gravity.TOP,
+            mHidingNavigationConfirmation.setGravity(Gravity.TOP,
                     0, mCurrentDisplaySize.y - v.getMeasuredHeight() / 2 - offsetY);
             // show the confirmation
-            mHideybarConfirmation.show();
+            mHidingNavigationConfirmation.show();
         } else if (!visible) {
-            dismissHideybarConfirmation();
+            dismissHidingNavigationConfirmation();
         }
     }
 
@@ -1985,7 +2013,7 @@
     @Override
     public void suspendAutohide() {
         mHandler.removeCallbacks(mAutohide);
-        mAutohideSuspended = 0 != (mSystemUiVisibility & STATUS_OR_NAV_OVERLAY);
+        mAutohideSuspended = 0 != (mSystemUiVisibility & STATUS_OR_NAV_TRANSIENT);
     }
 
     private void cancelAutohide() {
@@ -1999,7 +2027,7 @@
     }
 
     private void checkUserAutohide(View v, MotionEvent event) {
-        if ((mSystemUiVisibility & STATUS_OR_NAV_OVERLAY) != 0  // an overlay bar is revealed
+        if ((mSystemUiVisibility & STATUS_OR_NAV_TRANSIENT) != 0  // a transient bar is revealed
                 && event.getAction() == MotionEvent.ACTION_OUTSIDE // touch outside the source bar
                 && event.getX() == 0 && event.getY() == 0  // a touch outside both bars
                 ) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
index 847f997..277501d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java
@@ -36,6 +36,10 @@
 public class DateView extends TextView {
     private static final String TAG = "DateView";
 
+    private final Date mCurrentTime = new Date();
+
+    private SimpleDateFormat mDateFormat;
+    private boolean mChangedLocale;
     private boolean mAttachedToWindow;
     private boolean mWindowVisible;
     private boolean mUpdating;
@@ -48,6 +52,9 @@
                     || Intent.ACTION_TIME_CHANGED.equals(action)
                     || Intent.ACTION_TIMEZONE_CHANGED.equals(action)
                     || Intent.ACTION_LOCALE_CHANGED.equals(action)) {
+                if (Intent.ACTION_LOCALE_CHANGED.equals(action)) {
+                    mChangedLocale = true;
+                }
                 updateClock();
             }
         }
@@ -91,11 +98,16 @@
     }
 
     protected void updateClock() {
-        final String dateFormat = getContext().getString(R.string.system_ui_date_pattern);
-        final Locale l = Locale.getDefault();
-        String fmt = ICU.getBestDateTimePattern(dateFormat, l.toString());
-        SimpleDateFormat sdf = new SimpleDateFormat(fmt, l);
-        setText(sdf.format(new Date()));
+        if (mDateFormat == null || mChangedLocale) {
+            final String dateFormat = getContext().getString(R.string.system_ui_date_pattern);
+            final Locale l = Locale.getDefault();
+            final String fmt = ICU.getBestDateTimePattern(dateFormat, l.toString());
+            mDateFormat = new SimpleDateFormat(fmt, l);
+            mChangedLocale = false;
+        }
+
+        mCurrentTime.setTime(System.currentTimeMillis());
+        setText(mDateFormat.format(mCurrentTime));
     }
 
     private boolean isVisible() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
index d03f6ce..3d51f20 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
@@ -25,7 +25,7 @@
     public static final String SHOWN_COMPAT_MODE_HELP = "shown_compat_mode_help";
     public static final String SHOWN_QUICK_SETTINGS_HELP = "shown_quick_settings_help";
 
-    public static final String HIDEYBAR_CONFIRMED = "hideybar_confirmed";
+    public static final String HIDING_NAVIGATION_CONFIRMED = "hiding_navigation_confirmed";
 
     public static SharedPreferences read(Context context) {
         return context.getSharedPreferences(Prefs.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
diff --git a/packages/services/PacProcessor/Android.mk b/packages/services/PacProcessor/Android.mk
new file mode 100644
index 0000000..e4afde6
--- /dev/null
+++ b/packages/services/PacProcessor/Android.mk
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+    main_pacserver.cpp \
+    ProxyService.cpp \
+    IProxyService.cpp
+
+LOCAL_C_INCLUDES += \
+    external/chromium-libpac/src
+
+LOCAL_SHARED_LIBRARIES := \
+    libutils \
+    liblog \
+    libpac \
+    libbinder \
+    libstlport
+
+LOCAL_MODULE := pacserver
+LOCAL_MODULE_TAGS := optional
+
+include external/stlport/libstlport.mk
+
+include $(BUILD_EXECUTABLE)
diff --git a/packages/services/PacProcessor/IProxyService.cpp b/packages/services/PacProcessor/IProxyService.cpp
new file mode 100644
index 0000000..3707d85
--- /dev/null
+++ b/packages/services/PacProcessor/IProxyService.cpp
@@ -0,0 +1,97 @@
+#define LOG_TAG "ProxyTesting"
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <binder/Parcel.h>
+#include <binder/IPCThreadState.h>
+#include <utils/Errors.h>
+#include "IProxyService.h"
+
+#include <utils/Log.h>
+
+#include <private/android_filesystem_config.h>
+
+using namespace android;
+
+String16 BpProxyService::resolveProxies(String16 host, String16 url) {
+    String16 ret;
+    return ret;
+}
+
+void BpProxyService::setPacFile(String16& scriptContents) {
+
+}
+
+void BpProxyService::startPacSystem() {
+
+}
+void BpProxyService::stopPacSystem() {
+
+}
+
+IMPLEMENT_META_INTERFACE(ProxyService, "com.android.net.IProxyService");
+
+status_t BnProxyService::onTransact(
+            uint32_t code, const Parcel& data,
+            Parcel* reply, uint32_t flags) {
+    int returnInt = 0;
+    switch (code) {
+    case RESOLVE_PROXIES:
+    {
+        CHECK_INTERFACE(IProxyService, data, reply);
+        String16 host = data.readString16();
+        String16 url = data.readString16();
+        String16 response = resolveProxies(host, url);
+        reply->writeNoException();
+        reply->writeString16(response);
+        return NO_ERROR;
+    } break;
+    case SET_PAC:
+    {
+        CHECK_INTERFACE(IProxyService, data, reply);
+        if (notSystemUid()) {
+            returnInt = 1;
+        } else {
+            String16 pacFile = data.readString16();
+            setPacFile(pacFile);
+        }
+        reply->writeNoException();
+        reply->writeInt32(returnInt);
+        return NO_ERROR;
+    } break;
+    case START_PAC:
+    {
+        CHECK_INTERFACE(IProxyService, data, reply);
+        if (notSystemUid()) {
+            returnInt = 1;
+        } else {
+            startPacSystem();
+        }
+        reply->writeNoException();
+        reply->writeInt32(returnInt);
+        return NO_ERROR;
+    } break;
+    case STOP_PAC:
+    {
+        CHECK_INTERFACE(IProxyService, data, reply);
+        if (notSystemUid()) {
+            returnInt = 1;
+        } else {
+            stopPacSystem();
+        }
+        reply->writeNoException();
+        reply->writeInt32(returnInt);
+        return NO_ERROR;
+    } break;
+    default:
+        return BBinder::onTransact(code, data, reply, flags);
+    }
+}
+
+int BnProxyService::getCallingUid() {
+    return IPCThreadState::self()->getCallingUid();
+}
+
+bool BnProxyService::notSystemUid() {
+    return getCallingUid() != AID_SYSTEM;
+}
diff --git a/packages/services/PacProcessor/IProxyService.h b/packages/services/PacProcessor/IProxyService.h
new file mode 100644
index 0000000..57c527b
--- /dev/null
+++ b/packages/services/PacProcessor/IProxyService.h
@@ -0,0 +1,59 @@
+#ifndef IPROXY_SERVICE_H
+#define IPROXY_SERVICE_H
+
+#include <binder/IInterface.h>
+#include <binder/IBinder.h>
+
+namespace android {
+class IProxyService : public IInterface {
+public:
+    /**
+     * Keep up-to-date with
+     * frameworks/base/packages/services/Proxy/com/android/net/IProxyService.aidl
+     */
+    enum {
+        RESOLVE_PROXIES = IBinder::FIRST_CALL_TRANSACTION,
+        SET_PAC,
+        START_PAC,
+        STOP_PAC,
+    };
+public:
+    DECLARE_META_INTERFACE(ProxyService);
+
+public:
+
+    virtual String16 resolveProxies(String16 host, String16 url) = 0;
+
+    virtual void setPacFile(String16& scriptContents) = 0;
+
+    virtual void startPacSystem() = 0;
+    virtual void stopPacSystem() = 0;
+private:
+};
+
+class BpProxyService : public BpInterface<IProxyService> {
+public:
+    BpProxyService(const sp<IBinder>& impl) : BpInterface<IProxyService>(impl) {}
+
+    virtual String16 resolveProxies(String16 host, String16 url);
+
+    virtual void setPacFile(String16& scriptContents);
+
+    virtual void startPacSystem();
+    virtual void stopPacSystem();
+};
+
+class BnProxyService : public BnInterface<IProxyService> {
+public:
+    virtual status_t onTransact(
+            uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags = 0);
+
+private:
+    int getCallingUid();
+
+    bool notSystemUid();
+};
+}
+
+
+#endif //IPROXY_SERVICE_H
diff --git a/packages/services/PacProcessor/ProxyService.cpp b/packages/services/PacProcessor/ProxyService.cpp
new file mode 100644
index 0000000..7084a47
--- /dev/null
+++ b/packages/services/PacProcessor/ProxyService.cpp
@@ -0,0 +1,96 @@
+#define LOG_TAG "ProxyService"
+#include <utils/Log.h>
+
+#include <errno.h>
+#include <utils/threads.h>
+#include <binder/IServiceManager.h>
+#include <binder/IPCThreadState.h>
+#include <sys/stat.h>
+#include <proxy_resolver_v8.h>
+#include <sstream>
+
+#include "ProxyService.h"
+
+using namespace net;
+
+using namespace android;
+
+class ProxyErrorLogger : public ProxyErrorListener {
+protected:
+    ~ProxyErrorLogger() {
+
+    }
+public:
+    void AlertMessage(String16 message) {
+        String8 str(message);
+        ALOGD("Alert: %s", str.string());
+    }
+    void ErrorMessage(String16 message) {
+        String8 str(message);
+        ALOGE("Error: %s", str.string());
+    }
+};
+
+void ProxyService::instantiate() {
+    ALOGV("instantiate");
+    defaultServiceManager()->addService(String16("com.android.net.IProxyService"),
+            new ProxyService());
+}
+
+ProxyService::ProxyService() {
+    hasSetScript = false;
+}
+
+ProxyService::~ProxyService() {
+    stopPacSystem();
+}
+
+String16 ProxyService::resolveProxies(String16 host, String16 url) {
+    ALOGV("resolve");
+    String16 blankRet;
+    if (proxyResolver != NULL) {
+        if (hasSetScript) {
+            String16 ret;
+            if (proxyResolver->GetProxyForURL(url, host, &ret) != OK) {
+                return blankRet;
+            }
+            return ret;
+        } else {
+            ALOGD("Unable to resolve PAC when no script is set!");
+        }
+    } else {
+        ALOGE("Cannot parse while resolver not initialized!");
+    }
+    return blankRet;
+}
+
+void ProxyService::setPacFile(String16& scriptContents) {
+    ALOGV("set");
+    if (proxyResolver != NULL) {
+        if (proxyResolver->SetPacScript(scriptContents) != OK) {
+            ALOGD("Unable to initialize PAC - Resolving will not work");
+        } else {
+            hasSetScript = true;
+        }
+    } else {
+        ALOGE("PAC script set while resolver not initialized!");
+    }
+}
+
+void ProxyService::startPacSystem() {
+    ALOGV("start");
+    // Stop in case redundant start call
+    stopPacSystem();
+
+    proxyResolver = new ProxyResolverV8(ProxyResolverJSBindings::CreateDefault(),
+            new ProxyErrorLogger());
+    hasSetScript = false;
+}
+
+void ProxyService::stopPacSystem() {
+    ALOGV("stop");
+    if (proxyResolver != NULL) {
+        delete proxyResolver;
+        proxyResolver = NULL;
+    }
+}
diff --git a/packages/services/PacProcessor/ProxyService.h b/packages/services/PacProcessor/ProxyService.h
new file mode 100644
index 0000000..a0861b2
--- /dev/null
+++ b/packages/services/PacProcessor/ProxyService.h
@@ -0,0 +1,33 @@
+#ifndef PROXY_SERVICE_H
+#define PROXY_SERVICE_H
+
+#include <binder/IInterface.h>
+#include "IProxyService.h"
+#include "proxy_resolver_v8.h"
+
+namespace android {
+
+class ProxyService : public BnProxyService {
+public:
+    static void instantiate();
+
+private:
+    ProxyService();
+    virtual ~ProxyService();
+
+public:
+    String16 resolveProxies(String16 host, String16 url);
+
+    void setPacFile(String16& scriptContents);
+
+    void startPacSystem();
+    void stopPacSystem();
+
+private:
+    net::ProxyResolverV8* proxyResolver;
+    bool hasSetScript;
+};
+
+}
+
+#endif //PROXY_SERVICE_H
diff --git a/packages/services/PacProcessor/main_pacserver.cpp b/packages/services/PacProcessor/main_pacserver.cpp
new file mode 100644
index 0000000..19588b5
--- /dev/null
+++ b/packages/services/PacProcessor/main_pacserver.cpp
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "pacserver"
+//#define LOG_NDEBUG 0
+
+#include <binder/IPCThreadState.h>
+#include <binder/ProcessState.h>
+#include <binder/IServiceManager.h>
+#include <utils/Log.h>
+#include "ProxyService.h"
+#include "proxy_resolver_v8.h"
+#include <stdio.h>
+
+using namespace android;
+
+int main(int argc, char** argv)
+{
+    sp<ProcessState> proc(ProcessState::self());
+    sp<IServiceManager> sm = defaultServiceManager();
+
+    printf("1\n");
+    ALOGV("ServiceManager: %p", sm.get());
+    ProxyService::instantiate();
+    printf("1\n");
+
+    ProcessState::self()->startThreadPool();
+    printf("1\n");
+    IPCThreadState::self()->joinThreadPool();
+}
diff --git a/packages/services/Proxy/Android.mk b/packages/services/Proxy/Android.mk
new file mode 100644
index 0000000..d5546b2
--- /dev/null
+++ b/packages/services/Proxy/Android.mk
@@ -0,0 +1,14 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := ProxyHandler
+LOCAL_CERTIFICATE := platform
+LOCAL_PRIVILEGED_MODULE := true
+
+include $(BUILD_PACKAGE)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/services/Proxy/AndroidManifest.xml b/packages/services/Proxy/AndroidManifest.xml
new file mode 100644
index 0000000..02475c0
--- /dev/null
+++ b/packages/services/Proxy/AndroidManifest.xml
@@ -0,0 +1,25 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+        package="com.android.proxyhandler"
+        coreApp="true">
+
+    <uses-permission android:name="android.permission.INTERNET" />
+
+    <application
+        android:persistent="true"
+        android:label="@string/app_label"
+        android:process="com.android.proxyhandler">
+
+        <service android:name=".ProxyService"
+            android:exported="true">
+        </service>
+
+        <receiver android:name=".ProxyServiceReceiver">
+
+            <intent-filter>
+                <action android:name="android.intent.action.PROXY_CHANGE" />
+            </intent-filter>
+        </receiver>
+
+    </application>
+</manifest>
diff --git a/packages/services/Proxy/com/android/net/IProxyService.aidl b/packages/services/Proxy/com/android/net/IProxyService.aidl
new file mode 100644
index 0000000..7e9ed79
--- /dev/null
+++ b/packages/services/Proxy/com/android/net/IProxyService.aidl
@@ -0,0 +1,16 @@
+package com.android.net;
+
+/** @hide */
+interface IProxyService
+{
+    /**
+     * Keep up-to-date with
+     * frameworks/base/packages/services/PacProcessor/IProxyService.h
+     */
+    String resolvePacFile(String host, String url);
+
+    int setPacFile(String scriptContents);
+
+    int startPacSystem();
+    int stopPacSystem();
+}
diff --git a/packages/services/Proxy/res/values/strings.xml b/packages/services/Proxy/res/values/strings.xml
new file mode 100644
index 0000000..6188d79
--- /dev/null
+++ b/packages/services/Proxy/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label">ProxyHandler</string>
+
+</resources>
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServer.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServer.java
new file mode 100644
index 0000000..5d8689e
--- /dev/null
+++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServer.java
@@ -0,0 +1,219 @@
+
+package com.android.proxyhandler;
+
+import android.net.ProxyProperties;
+import android.util.Log;
+
+import com.google.android.collect.Lists;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.ProxySelector;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * @hide
+ */
+public class ProxyServer extends Thread {
+
+    private static final String CONNECT = "CONNECT";
+    private static final String HTTP_OK = "HTTP/1.1 200 OK\n";
+
+    private static final String TAG = "ProxyServer";
+
+    private ExecutorService threadExecutor;
+
+    public boolean mIsRunning = false;
+
+    private ServerSocket serverSocket;
+    private ProxyProperties mProxy;
+
+    private class ProxyConnection implements Runnable {
+        private Socket connection;
+
+        private ProxyConnection(Socket connection) {
+            this.connection = connection;
+        }
+
+        @Override
+        public void run() {
+            try {
+                android.net.Proxy.setHttpProxySystemProperty(mProxy);
+
+                String requestLine = getLine(connection.getInputStream());
+                if (requestLine == null) {
+                    connection.close();
+                    return;
+                }
+                String[] splitLine = requestLine.split(" ");
+                if (splitLine.length < 3) {
+                    connection.close();
+                    return;
+                }
+                String requestType = splitLine[0];
+                String urlString = splitLine[1];
+
+                String host = "";
+                int port = 80;
+
+                if (requestType.equals(CONNECT)) {
+                    String[] hostPortSplit = urlString.split(":");
+                    host = hostPortSplit[0];
+                    try {
+                        port = Integer.parseInt(hostPortSplit[1]);
+                    } catch (NumberFormatException nfe) {
+                        port = 443;
+                    }
+                    urlString = "Https://" + host + ":" + port;
+                } else {
+                    try {
+                        URI url = new URI(urlString);
+                        host = url.getHost();
+                        port = url.getPort();
+                        if (port < 0) {
+                            port = 80;
+                        }
+                    } catch (URISyntaxException e) {
+                        connection.close();
+                        return;
+                    }
+                }
+
+                List<Proxy> list = Lists.newArrayList();
+                try {
+                    list = ProxySelector.getDefault().select(new URI(urlString));
+                } catch (URISyntaxException e) {
+                    e.printStackTrace();
+                }
+                Socket server = null;
+                for (Proxy proxy : list) {
+                    try {
+                        if (!proxy.equals(Proxy.NO_PROXY)) {
+                            // Only Inets created by PacProxySelector.
+                            InetSocketAddress inetSocketAddress =
+                                    (InetSocketAddress)list.get(0).address();
+                            server = new Socket(inetSocketAddress.getAddress(),
+                                    inetSocketAddress.getPort());
+                            sendLine(server, requestLine);
+                        } else {
+                            server = new Socket(host, port);
+                            if (requestType.equals(CONNECT)) {
+                                while (getLine(connection.getInputStream()).length() != 0);
+                                // No proxy to respond so we must.
+                                sendLine(connection, HTTP_OK);
+                            } else {
+                                sendLine(server, requestLine);
+                            }
+                        }
+                    } catch (IOException ioe) {
+
+                    }
+                    if (server != null) {
+                        break;
+                    }
+                }
+                if (server == null) {
+                    server = new Socket(host, port);
+                    if (requestType.equals(CONNECT)) {
+                        while (getLine(connection.getInputStream()).length() != 0);
+                        // No proxy to respond so we must.
+                        sendLine(connection, HTTP_OK);
+                    } else {
+                        sendLine(server, requestLine);
+                    }
+                }
+                // Pass data back and forth until complete.
+                SocketConnect.connect(connection, server);
+            } catch (IOException e) {
+                Log.d(TAG, "Problem Proxying", e);
+            }
+            try {
+                connection.close();
+            } catch (IOException ioe) {
+
+            }
+        }
+
+        private String getLine(InputStream inputStream) throws IOException {
+            StringBuffer buffer = new StringBuffer();
+            int byteBuffer = inputStream.read();
+            if (byteBuffer < 0) return "";
+            do {
+                if (byteBuffer != '\r') {
+                    buffer.append((char)byteBuffer);
+                }
+                byteBuffer = inputStream.read();
+            } while ((byteBuffer != '\n') && (byteBuffer >= 0));
+
+            return buffer.toString();
+        }
+
+        private void sendLine(Socket socket, String line) throws IOException {
+            OutputStream os = socket.getOutputStream();
+            os.write(line.getBytes());
+            os.write('\r');
+            os.write('\n');
+            os.flush();
+        }
+    }
+
+    public ProxyServer() {
+        threadExecutor = Executors.newCachedThreadPool();
+    }
+
+    @Override
+    public void run() {
+        try {
+            serverSocket = new ServerSocket(ProxyService.PORT);
+
+            serverSocket.setReuseAddress(true);
+
+            while (mIsRunning) {
+                try {
+                    ProxyConnection parser = new ProxyConnection(serverSocket.accept());
+
+                    threadExecutor.execute(parser);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        } catch (SocketException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        mIsRunning = false;
+    }
+
+    public synchronized void startServer() {
+        mIsRunning = true;
+        start();
+    }
+
+    public synchronized void stopServer() {
+        mIsRunning = false;
+        if (serverSocket != null) {
+            try {
+                serverSocket.close();
+                serverSocket = null;
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public void setProxy(ProxyProperties proxy) {
+        mProxy = proxy;
+    }
+}
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java
new file mode 100644
index 0000000..0aea5ee
--- /dev/null
+++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java
@@ -0,0 +1,68 @@
+package com.android.proxyhandler;
+
+import android.app.Service;
+import android.content.Intent;
+import android.net.Proxy;
+import android.net.ProxyProperties;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.text.TextUtils;
+
+/**
+ * @hide
+ */
+public class ProxyService extends Service {
+
+    private static ProxyServer server = null;
+
+    /** Keep these values up-to-date with PacManager.java */
+    public static final String KEY_PROXY = "keyProxy";
+    public static final String HOST = "localhost";
+    public static final int PORT = 8182;
+    public static final String EXCL_LIST = "";
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if (intent != null) {
+            handleCommand(intent);
+        }
+        return START_STICKY;
+    }
+
+    private void handleCommand(Intent intent) {
+        Bundle bundle = intent.getExtras();
+        ProxyProperties proxy = null;
+        if ((bundle != null) && bundle.containsKey(Proxy.EXTRA_PROXY_INFO)) {
+            proxy = bundle.getParcelable(Proxy.EXTRA_PROXY_INFO);
+            if ((proxy != null) && !TextUtils.isEmpty(proxy.getPacFileUrl())) {
+                startProxy(proxy);
+            } else {
+                stopSelf();
+            }
+        } else {
+            stopSelf();
+        }
+    }
+
+
+    private void startProxy(ProxyProperties proxy) {
+        if (server == null) {
+            server = new ProxyServer();
+            server.startServer();
+        }
+        server.setProxy(proxy);
+    }
+
+    @Override
+    public void onDestroy() {
+        if (server != null) {
+            server.stopServer();
+            server = null;
+        }
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java
new file mode 100644
index 0000000..f5c2ca5
--- /dev/null
+++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java
@@ -0,0 +1,22 @@
+package com.android.proxyhandler;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Proxy;
+import android.os.Bundle;
+
+public class ProxyServiceReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Intent service = new Intent(context, ProxyService.class);
+        Bundle bundle = intent.getExtras();
+        if (bundle != null) {
+            service.putExtra(Proxy.EXTRA_PROXY_INFO,
+                    bundle.getParcelable(Proxy.EXTRA_PROXY_INFO));
+        }
+        context.startService(service);
+    }
+
+}
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/SocketConnect.java b/packages/services/Proxy/src/com/android/proxyhandler/SocketConnect.java
new file mode 100644
index 0000000..0d7df7f
--- /dev/null
+++ b/packages/services/Proxy/src/com/android/proxyhandler/SocketConnect.java
@@ -0,0 +1,59 @@
+package com.android.proxyhandler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+
+/**
+ * @hide
+ */
+public class SocketConnect extends Thread {
+
+    private InputStream from;
+    private OutputStream to;
+
+    public SocketConnect(Socket from, Socket to) throws IOException {
+        this.from = from.getInputStream();
+        this.to = to.getOutputStream();
+        start();
+    }
+
+    @Override
+    public void run() {
+        final byte[] buffer = new byte[512];
+
+        try {
+            while (true) {
+                int r = from.read(buffer);
+                if (r < 0) {
+                    break;
+                }
+                to.write(buffer, 0, r);
+            }
+            from.close();
+            to.close();
+        } catch (IOException io) {
+
+        }
+    }
+
+    public static void connect(Socket first, Socket second) {
+        try {
+            SocketConnect sc1 = new SocketConnect(first, second);
+            SocketConnect sc2 = new SocketConnect(second, first);
+            try {
+                sc1.join();
+            } catch (InterruptedException e) {
+            }
+            try {
+                sc2.join();
+            } catch (InterruptedException e) {
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 2dfe6af..ae7120f 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -164,7 +164,10 @@
      * of the screen to change.
      */
     static final int SYSTEM_UI_CHANGING_LAYOUT =
-            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
+              View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+            | View.SYSTEM_UI_FLAG_FULLSCREEN
+            | View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS
+            | View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION;
 
     /**
      * Keyguard stuff
@@ -526,7 +529,7 @@
                     Settings.Secure.DEFAULT_INPUT_METHOD), false, this,
                     UserHandle.USER_ALL);
             resolver.registerContentObserver(Settings.System.getUriFor(
-                    OverlayTesting.ENABLED_SETTING), false, this,
+                    ImmersiveModeTesting.ENABLED_SETTING), false, this,
                     UserHandle.USER_ALL);
             updateSettings();
         }
@@ -550,11 +553,11 @@
     }
     MyOrientationListener mOrientationListener;
 
-    private static final int HIDEYBAR_NONE = 0;
-    private static final int HIDEYBAR_SHOWING = 1;
-    private static final int HIDEYBAR_HIDING = 2;
-    private int mStatusHideybar;
-    private int mNavigationHideybar;
+    private static final int TRANSIENT_BAR_NONE = 0;
+    private static final int TRANSIENT_BAR_SHOWING = 1;
+    private static final int TRANSIENT_BAR_HIDING = 2;
+    private int mStatusTransientBar;
+    private int mNavigationTransientBar;
 
     private SystemGesturesPointerEventListener mSystemGestures;
 
@@ -917,25 +920,25 @@
                     @Override
                     public void onSwipeFromTop() {
                         if (mStatusBar != null) {
-                            requestHideybars(mStatusBar);
+                            requestTransientBars(mStatusBar);
                         }
                     }
                     @Override
                     public void onSwipeFromBottom() {
                         if (mNavigationBar != null && mNavigationBarOnBottom) {
-                            requestHideybars(mNavigationBar);
+                            requestTransientBars(mNavigationBar);
                         }
                     }
                     @Override
                     public void onSwipeFromRight() {
                         if (mNavigationBar != null && !mNavigationBarOnBottom) {
-                            requestHideybars(mNavigationBar);
+                            requestTransientBars(mNavigationBar);
                         }
                     }
                     @Override
                     public void onDebug() {
-                        if (OverlayTesting.enabled) {
-                            OverlayTesting.toggleForceOverlay(mFocusedWindow, mContext);
+                        if (ImmersiveModeTesting.enabled) {
+                            ImmersiveModeTesting.toggleForceImmersiveMode(mFocusedWindow, mContext);
                         }
                     }
                 });
@@ -992,8 +995,10 @@
 
     @Override
     public void setInitialDisplaySize(Display display, int width, int height, int density) {
-        if (display.getDisplayId() != Display.DEFAULT_DISPLAY) {
-            throw new IllegalArgumentException("Can only set the default display");
+        // This method might be called before the policy has been fully initialized
+        // or for other displays we don't care about.
+        if (mContext == null || display.getDisplayId() != Display.DEFAULT_DISPLAY) {
+            return;
         }
         mDisplay = display;
 
@@ -1152,8 +1157,8 @@
                 mHasSoftInput = hasSoftInput;
                 updateRotation = true;
             }
-            OverlayTesting.enabled = Settings.System.getIntForUser(resolver,
-                    OverlayTesting.ENABLED_SETTING, 0, UserHandle.USER_CURRENT) != 0;
+            ImmersiveModeTesting.enabled = Settings.System.getIntForUser(resolver,
+                    ImmersiveModeTesting.ENABLED_SETTING, 0, UserHandle.USER_CURRENT) != 0;
         }
         if (updateRotation) {
             updateRotation(true);
@@ -2541,14 +2546,14 @@
 
     @Override
     public int adjustSystemUiVisibilityLw(int visibility) {
-        if (mStatusBar != null && mStatusHideybar == HIDEYBAR_SHOWING &&
-                0 == (visibility & View.STATUS_BAR_OVERLAY)) {
-            mStatusHideybar = HIDEYBAR_HIDING;
+        if (mStatusBar != null && mStatusTransientBar == TRANSIENT_BAR_SHOWING &&
+                0 == (visibility & View.STATUS_BAR_TRANSIENT)) {
+            mStatusTransientBar = TRANSIENT_BAR_HIDING;
             setBarShowingLw(mStatusBar, false);
         }
-        if (mNavigationBar != null && mNavigationHideybar == HIDEYBAR_SHOWING &&
-                0 == (visibility & View.NAVIGATION_BAR_OVERLAY)) {
-            mNavigationHideybar = HIDEYBAR_HIDING;
+        if (mNavigationBar != null && mNavigationTransientBar == TRANSIENT_BAR_SHOWING &&
+                0 == (visibility & View.NAVIGATION_BAR_TRANSIENT)) {
+            mNavigationTransientBar = TRANSIENT_BAR_HIDING;
             setBarShowingLw(mNavigationBar, false);
         }
         // Reset any bits in mForceClearingStatusBarVisibility that
@@ -2678,14 +2683,17 @@
         if (isDefaultDisplay) {
             // For purposes of putting out fake window up to steal focus, we will
             // drive nav being hidden only by whether it is requested.
-            boolean navVisible = (mLastSystemUiFlags&View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
-            boolean overlayAllowed = (mLastSystemUiFlags&View.SYSTEM_UI_FLAG_ALLOW_OVERLAY) != 0;
+            final int sysui = mLastSystemUiFlags;
+            boolean navVisible = (sysui & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+            boolean navTransparent = (sysui & View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION) != 0;
+            boolean transientAllowed = (sysui & View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT) != 0;
+            navTransparent &= !transientAllowed;  // transient trumps transparent
 
             // When the navigation bar isn't visible, we put up a fake
             // input window to catch all touch events.  This way we can
             // detect when the user presses anywhere to bring back the nav
             // bar and ensure the application doesn't see the event.
-            if (navVisible || overlayAllowed) {
+            if (navVisible || transientAllowed) {
                 if (mHideNavFakeWindow != null) {
                     mHideNavFakeWindow.dismiss();
                     mHideNavFakeWindow = null;
@@ -2704,7 +2712,7 @@
 
             boolean updateSysUiVisibility = false;
             if (mNavigationBar != null) {
-                boolean navBarHideyShowing = mNavigationHideybar == HIDEYBAR_SHOWING;
+                boolean transientNavBarShowing = mNavigationTransientBar == TRANSIENT_BAR_SHOWING;
                 // Force the navigation bar to its appropriate place and
                 // size.  We need to do this directly, instead of relying on
                 // it to bubble up from the nav bar, because this needs to
@@ -2716,7 +2724,7 @@
                             - mNavigationBarHeightForRotation[displayRotation];
                     mTmpNavigationFrame.set(0, top, displayWidth, displayHeight - overscanBottom);
                     mStableBottom = mStableFullscreenBottom = mTmpNavigationFrame.top;
-                    if (navBarHideyShowing) {
+                    if (transientNavBarShowing || navTransparent) {
                         setBarShowingLw(mNavigationBar, true);
                     } else if (navVisible) {
                         setBarShowingLw(mNavigationBar, true);
@@ -2727,8 +2735,8 @@
                         // We currently want to hide the navigation UI.
                         setBarShowingLw(mNavigationBar, false);
                     }
-                    if (navVisible && !mNavigationBar.isAnimatingLw()) {
-                        // If the nav bar is currently requested to be visible,
+                    if (navVisible && !navTransparent && !mNavigationBar.isAnimatingLw()) {
+                        // If the opaque nav bar is currently requested to be visible,
                         // and not in the process of animating on or off, then
                         // we can tell the app that it is covered by it.
                         mSystemBottom = mTmpNavigationFrame.top;
@@ -2739,7 +2747,7 @@
                             - mNavigationBarWidthForRotation[displayRotation];
                     mTmpNavigationFrame.set(left, 0, displayWidth - overscanRight, displayHeight);
                     mStableRight = mStableFullscreenRight = mTmpNavigationFrame.left;
-                    if (navBarHideyShowing) {
+                    if (transientNavBarShowing || navTransparent) {
                         setBarShowingLw(mNavigationBar, true);
                     } else if (navVisible) {
                         setBarShowingLw(mNavigationBar, true);
@@ -2750,7 +2758,7 @@
                         // We currently want to hide the navigation UI.
                         setBarShowingLw(mNavigationBar, false);
                     }
-                    if (navVisible && !mNavigationBar.isAnimatingLw()) {
+                    if (navVisible && !navTransparent && !mNavigationBar.isAnimatingLw()) {
                         // If the nav bar is currently requested to be visible,
                         // and not in the process of animating on or off, then
                         // we can tell the app that it is covered by it.
@@ -2768,9 +2776,9 @@
                 mNavigationBar.computeFrameLw(mTmpNavigationFrame, mTmpNavigationFrame,
                         mTmpNavigationFrame, mTmpNavigationFrame, mTmpNavigationFrame);
                 if (DEBUG_LAYOUT) Slog.i(TAG, "mNavigationBar frame: " + mTmpNavigationFrame);
-                if (mNavigationHideybar == HIDEYBAR_HIDING && !mNavigationBar.isVisibleLw()) {
+                if (mNavigationTransientBar == TRANSIENT_BAR_HIDING && !mNavigationBar.isVisibleLw()) {
                     // Finished animating out, clean up and reset alpha
-                    mNavigationHideybar = HIDEYBAR_NONE;
+                    mNavigationTransientBar = TRANSIENT_BAR_NONE;
                     updateSysUiVisibility = true;
                 }
             }
@@ -2798,11 +2806,12 @@
                 // For layout, the status bar is always at the top with our fixed height.
                 mStableTop = mUnrestrictedScreenTop + mStatusBarHeight;
 
-                boolean statusBarOverlay = (mLastSystemUiFlags & View.STATUS_BAR_OVERLAY) != 0;
+                boolean statusBarTransient = (sysui & View.STATUS_BAR_TRANSIENT) != 0;
+                boolean statusBarTransparent = (sysui & View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS) != 0;
 
                 // If the status bar is hidden, we don't want to cause
                 // windows behind it to scroll.
-                if (mStatusBar.isVisibleLw() && !statusBarOverlay) {
+                if (mStatusBar.isVisibleLw() && !statusBarTransient && !statusBarTransparent) {
                     // Status bar may go away, so the screen area it occupies
                     // is available to apps but just covering them when the
                     // status bar is visible.
@@ -2820,16 +2829,17 @@
                             mContentLeft, mContentTop, mContentRight, mContentBottom,
                             mCurLeft, mCurTop, mCurRight, mCurBottom));
                 }
-                if (mStatusBar.isVisibleLw() && !mStatusBar.isAnimatingLw() && !statusBarOverlay) {
-                    // If the status bar is currently requested to be visible,
+                if (mStatusBar.isVisibleLw() && !mStatusBar.isAnimatingLw()
+                        && !statusBarTransient && !statusBarTransparent) {
+                    // If the opaque status bar is currently requested to be visible,
                     // and not in the process of animating on or off, then
                     // we can tell the app that it is covered by it.
                     mSystemTop = mUnrestrictedScreenTop + mStatusBarHeight;
                 }
 
-                if (mStatusHideybar == HIDEYBAR_HIDING && !mStatusBar.isVisibleLw()) {
+                if (mStatusTransientBar == TRANSIENT_BAR_HIDING && !mStatusBar.isVisibleLw()) {
                     // Finished animating out, clean up and reset alpha
-                    mStatusHideybar = HIDEYBAR_NONE;
+                    mStatusTransientBar = TRANSIENT_BAR_NONE;
                     updateSysUiVisibility = true;
                 }
             }
@@ -3411,7 +3421,7 @@
                 // and mTopIsFullscreen is that that mTopIsFullscreen is set only if the window
                 // has the FLAG_FULLSCREEN set.  Not sure if there is another way that to be the
                 // case though.
-                if (mStatusHideybar == HIDEYBAR_SHOWING) {
+                if (mStatusTransientBar == TRANSIENT_BAR_SHOWING) {
                     if (setBarShowingLw(mStatusBar, true)) {
                         changes |= FINISH_LAYOUT_REDO_LAYOUT;
                     }
@@ -4135,32 +4145,32 @@
         }
     };
 
-    private void requestHideybars(WindowState swipeTarget) {
+    private void requestTransientBars(WindowState swipeTarget) {
         synchronized (mWindowManagerFuncs.getWindowManagerLock()) {
-            boolean sb = checkShowHideybar("status", mStatusHideybar, mStatusBar);
-            boolean nb = checkShowHideybar("navigation", mNavigationHideybar, mNavigationBar);
+            boolean sb = checkShowTransientBar("status", mStatusTransientBar, mStatusBar);
+            boolean nb = checkShowTransientBar("nav", mNavigationTransientBar, mNavigationBar);
             if (sb || nb) {
-                WindowState hideyTarget = sb ? mStatusBar : mNavigationBar;
-                if (sb ^ nb && hideyTarget != swipeTarget) {
-                    if (DEBUG) Slog.d(TAG, "Not showing hideybar, wrong swipe target");
+                WindowState barTarget = sb ? mStatusBar : mNavigationBar;
+                if (sb ^ nb && barTarget != swipeTarget) {
+                    if (DEBUG) Slog.d(TAG, "Not showing transient bar, wrong swipe target");
                     return;
                 }
-                mStatusHideybar = sb ? HIDEYBAR_SHOWING : mStatusHideybar;
-                mNavigationHideybar = nb ? HIDEYBAR_SHOWING : mNavigationHideybar;
+                mStatusTransientBar = sb ? TRANSIENT_BAR_SHOWING : mStatusTransientBar;
+                mNavigationTransientBar = nb ? TRANSIENT_BAR_SHOWING : mNavigationTransientBar;
                 updateSystemUiVisibilityLw();
             }
         }
     }
 
-    private boolean checkShowHideybar(String tag, int hideybar, WindowState win) {
-        if (hideybar == HIDEYBAR_SHOWING) {
-            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " hideybar, already shown");
+    private boolean checkShowTransientBar(String tag, int transientBar, WindowState win) {
+        if (transientBar == TRANSIENT_BAR_SHOWING) {
+            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " transient bar, already shown");
             return false;
         } else if (win == null) {
-            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " hideybar, bar doesn't exist");
+            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " transient bar, bar doesn't exist");
             return false;
         } else if (win.isDisplayedLw()) {
-            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " hideybar, bar already visible");
+            if (DEBUG) Slog.d(TAG, "Not showing " + tag + " transient bar, bar already visible");
             return false;
         } else {
             return true;
@@ -5009,7 +5019,7 @@
         if (mForcingShowNavBar && mFocusedWindow.getSurfaceLayer() < mForcingShowNavBarLayer) {
             tmpVisibility &= ~View.SYSTEM_UI_CLEARABLE_FLAGS;
         }
-        final int visibility = updateHideybarsLw(tmpVisibility);
+        final int visibility = updateTransientBarsLw(tmpVisibility);
         final int diff = visibility ^ mLastSystemUiFlags;
         final boolean needsMenu = mFocusedWindow.getNeedsMenuLw(mTopFullscreenOpaqueWindowState);
         if (diff == 0 && mLastFocusNeedsMenu == needsMenu
@@ -5037,35 +5047,34 @@
         return diff;
     }
 
-    private int updateHideybarsLw(int tmpVisibility) {
-        if (OverlayTesting.enabled) {
-            tmpVisibility = OverlayTesting.applyForced(mFocusedWindow, tmpVisibility);
+    private int updateTransientBarsLw(int vis) {
+        if (ImmersiveModeTesting.enabled) {
+            vis = ImmersiveModeTesting.applyForced(mFocusedWindow, vis);
         }
-        boolean statusBarHasFocus =
-                mFocusedWindow.getAttrs().type == TYPE_STATUS_BAR;
+        boolean statusBarHasFocus = mFocusedWindow.getAttrs().type == TYPE_STATUS_BAR;
         if (statusBarHasFocus) {
             // prevent status bar interaction from clearing certain flags
             int flags = View.SYSTEM_UI_FLAG_FULLSCREEN
                     | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
-                    | View.SYSTEM_UI_FLAG_ALLOW_OVERLAY;
-            tmpVisibility = (tmpVisibility & ~flags) | (mLastSystemUiFlags & flags);
+                    | View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT;
+            vis = (vis & ~flags) | (mLastSystemUiFlags & flags);
         }
-        boolean overlayAllowed = (tmpVisibility & View.SYSTEM_UI_FLAG_ALLOW_OVERLAY) != 0;
-        if (mStatusHideybar == HIDEYBAR_SHOWING) {
-            // status hideybar requested
+        boolean transientAllowed = (vis & View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT) != 0;
+        if (mStatusTransientBar == TRANSIENT_BAR_SHOWING) {
+            // status transient bar requested
             boolean hideStatusBarWM =
                     (mFocusedWindow.getAttrs().flags
                             & WindowManager.LayoutParams.FLAG_FULLSCREEN) != 0;
             boolean hideStatusBarSysui =
-                    (tmpVisibility & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
+                    (vis & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0;
 
-            boolean statusHideyAllowed =
+            boolean transientStatusBarAllowed =
                     hideStatusBarWM
-                    || (hideStatusBarSysui && overlayAllowed)
+                    || (hideStatusBarSysui && transientAllowed)
                     || statusBarHasFocus;
 
-            if (mStatusBar == null || !statusHideyAllowed) {
-                mStatusHideybar = HIDEYBAR_NONE;
+            if (mStatusBar == null || !transientStatusBarAllowed) {
+                mStatusTransientBar = TRANSIENT_BAR_NONE;
                 if (mStatusBar != null && hideStatusBarSysui) {
                     // clear the clearable flags instead
                     int newVal = mResettingSystemUiFlags | View.SYSTEM_UI_CLEARABLE_FLAGS;
@@ -5075,32 +5084,32 @@
                     }
                 }
             } else {
-                // show status hideybar
-                tmpVisibility |= View.STATUS_BAR_OVERLAY;
-                if ((mLastSystemUiFlags & View.STATUS_BAR_OVERLAY) == 0) {
-                    tmpVisibility &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
+                // show status transient bar
+                vis |= View.STATUS_BAR_TRANSIENT;
+                if ((mLastSystemUiFlags & View.STATUS_BAR_TRANSIENT) == 0) {
+                    vis &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
                     setBarShowingLw(mStatusBar, true);
                 }
             }
         }
-        if (mNavigationHideybar == HIDEYBAR_SHOWING) {
-            // navigation hideybar requested
+        if (mNavigationTransientBar == TRANSIENT_BAR_SHOWING) {
+            // navigation transient bar requested
             boolean hideNavigationBarSysui =
-                    (tmpVisibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
-            boolean navigationHideyAllowed =
-                    hideNavigationBarSysui && overlayAllowed && mNavigationBar != null;
-            if (!navigationHideyAllowed) {
-                mNavigationHideybar = HIDEYBAR_NONE;
+                    (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0;
+            boolean transientNavigationBarAllowed =
+                    mNavigationBar != null && hideNavigationBarSysui && transientAllowed;
+            if (!transientNavigationBarAllowed) {
+                mNavigationTransientBar = TRANSIENT_BAR_NONE;
             } else {
-                // show navigation hideybar
-                tmpVisibility |= View.NAVIGATION_BAR_OVERLAY;
-                if ((mLastSystemUiFlags & View.NAVIGATION_BAR_OVERLAY) == 0) {
-                    tmpVisibility &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
+                // show navigation transient bar
+                vis |= View.NAVIGATION_BAR_TRANSIENT;
+                if ((mLastSystemUiFlags & View.NAVIGATION_BAR_TRANSIENT) == 0) {
+                    vis &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
                     setBarShowingLw(mNavigationBar, true);
                 }
             }
         }
-        return tmpVisibility;
+        return vis;
     }
 
     private boolean setBarShowingLw(WindowState win, final boolean show) {
@@ -5129,9 +5138,10 @@
         return show ? win.showLw(true) : win.hideLw(true);
     }
 
-    // TODO temporary helper that allows testing overlay bars on existing apps
-    private static final class OverlayTesting {
-        static String ENABLED_SETTING = "overlay_testing_enabled";
+    // Temporary helper that allows testing immersive mode on existing apps
+    // TODO remove
+    private static final class ImmersiveModeTesting {
+        static String ENABLED_SETTING = "immersive_mode_testing_enabled";
         static boolean enabled = false;
         private static final HashSet<String> sForced = new HashSet<String>();
 
@@ -5153,21 +5163,21 @@
             if (sForced.contains(parseActivity(focused))) {
                 vis |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
-                       View.SYSTEM_UI_FLAG_ALLOW_OVERLAY;
+                       View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT;
             }
             return vis;
         }
 
-        public static void toggleForceOverlay(WindowState focused, Context context) {
+        public static void toggleForceImmersiveMode(WindowState focused, Context context) {
             String activity = parseActivity(focused);
             if (activity != null) {
                 String action;
                 if (sForced.contains(activity)) {
                     sForced.remove(activity);
-                    action = "Force overlay disabled";
+                    action = "Force immersive mode disabled";
                 } else {
                     sForced.add(activity);
-                    action = "Force overlay enabled";
+                    action = "Force immersive mode enabled";
                 }
                 android.widget.Toast.makeText(context,
                         action + " for " + activity, android.widget.Toast.LENGTH_SHORT).show();
diff --git a/services/input/InputDispatcher.cpp b/services/input/InputDispatcher.cpp
index 23a846b..32247e7 100644
--- a/services/input/InputDispatcher.cpp
+++ b/services/input/InputDispatcher.cpp
@@ -84,6 +84,8 @@
 // Log a warning when an event takes longer than this to process, even if an ANR does not occur.
 const nsecs_t SLOW_EVENT_PROCESSING_WARNING_TIMEOUT = 2000 * 1000000LL; // 2sec
 
+// Number of recent events to keep for debugging purposes.
+const size_t RECENT_QUEUE_MAX_SIZE = 10;
 
 static inline nsecs_t now() {
     return systemTime(SYSTEM_TIME_MONOTONIC);
@@ -455,6 +457,14 @@
     return needWake;
 }
 
+void InputDispatcher::addRecentEventLocked(EventEntry* entry) {
+    entry->refCount += 1;
+    mRecentQueue.enqueueAtTail(entry);
+    if (mRecentQueue.count() > RECENT_QUEUE_MAX_SIZE) {
+        mRecentQueue.dequeueAtHead()->release();
+    }
+}
+
 sp<InputWindowHandle> InputDispatcher::findTouchedWindowAtLocked(int32_t displayId,
         int32_t x, int32_t y) {
     // Traverse windows from front to back to find touched window.
@@ -624,6 +634,7 @@
     if (entry == mNextUnblockedEvent) {
         mNextUnblockedEvent = NULL;
     }
+    addRecentEventLocked(entry);
     entry->release();
 }
 
@@ -3161,6 +3172,31 @@
 
     nsecs_t currentTime = now();
 
+    // Dump recently dispatched or dropped events from oldest to newest.
+    if (!mRecentQueue.isEmpty()) {
+        dump.appendFormat(INDENT "RecentQueue: length=%u\n", mRecentQueue.count());
+        for (EventEntry* entry = mRecentQueue.head; entry; entry = entry->next) {
+            dump.append(INDENT2);
+            entry->appendDescription(dump);
+            dump.appendFormat(", age=%0.1fms\n",
+                    (currentTime - entry->eventTime) * 0.000001f);
+        }
+    } else {
+        dump.append(INDENT "RecentQueue: <empty>\n");
+    }
+
+    // Dump event currently being dispatched.
+    if (mPendingEvent) {
+        dump.append(INDENT "PendingEvent:\n");
+        dump.append(INDENT2);
+        mPendingEvent->appendDescription(dump);
+        dump.appendFormat(", age=%0.1fms\n",
+                (currentTime - mPendingEvent->eventTime) * 0.000001f);
+    } else {
+        dump.append(INDENT "PendingEvent: <none>\n");
+    }
+
+    // Dump inbound events from oldest to newest.
     if (!mInboundQueue.isEmpty()) {
         dump.appendFormat(INDENT "InboundQueue: length=%u\n", mInboundQueue.count());
         for (EventEntry* entry = mInboundQueue.head; entry; entry = entry->next) {
@@ -3809,7 +3845,8 @@
 }
 
 void InputDispatcher::ConfigurationChangedEntry::appendDescription(String8& msg) const {
-    msg.append("ConfigurationChangedEvent()");
+    msg.append("ConfigurationChangedEvent(), policyFlags=0x%08x",
+            policyFlags);
 }
 
 
@@ -3824,7 +3861,8 @@
 }
 
 void InputDispatcher::DeviceResetEntry::appendDescription(String8& msg) const {
-    msg.appendFormat("DeviceResetEvent(deviceId=%d)", deviceId);
+    msg.appendFormat("DeviceResetEvent(deviceId=%d), policyFlags=0x%08x",
+            deviceId, policyFlags);
 }
 
 
@@ -3846,8 +3884,11 @@
 }
 
 void InputDispatcher::KeyEntry::appendDescription(String8& msg) const {
-    msg.appendFormat("KeyEvent(action=%d, deviceId=%d, source=0x%08x)",
-            action, deviceId, source);
+    msg.appendFormat("KeyEvent(deviceId=%d, source=0x%08x, action=%d, "
+            "flags=0x%08x, keyCode=%d, scanCode=%d, metaState=0x%08x, "
+            "repeatCount=%d), policyFlags=0x%08x",
+            deviceId, source, action, flags, keyCode, scanCode, metaState,
+            repeatCount, policyFlags);
 }
 
 void InputDispatcher::KeyEntry::recycle() {
@@ -3884,8 +3925,19 @@
 }
 
 void InputDispatcher::MotionEntry::appendDescription(String8& msg) const {
-    msg.appendFormat("MotionEvent(action=%d, deviceId=%d, source=0x%08x, displayId=%d)",
-            action, deviceId, source, displayId);
+    msg.appendFormat("MotionEvent(deviceId=%d, source=0x%08x, action=%d, "
+            "flags=0x%08x, metaState=0x%08x, buttonState=0x%08x, edgeFlags=0x%08x, "
+            "xPrecision=%.1f, yPrecision=%.1f, displayId=%d, pointers=[",
+            deviceId, source, action, flags, metaState, buttonState, edgeFlags,
+            xPrecision, yPrecision, displayId);
+    for (uint32_t i = 0; i < pointerCount; i++) {
+        if (i) {
+            msg.append(", ");
+        }
+        msg.appendFormat("%d: (%.1f, %.1f)", pointerProperties[i].id,
+                pointerCoords[i].getX(), pointerCoords[i].getY());
+    }
+    msg.appendFormat("]), policyFlags=0x%08x", policyFlags);
 }
 
 
diff --git a/services/input/InputDispatcher.h b/services/input/InputDispatcher.h
index 63ea781..0273dc4 100644
--- a/services/input/InputDispatcher.h
+++ b/services/input/InputDispatcher.h
@@ -846,6 +846,7 @@
 
     EventEntry* mPendingEvent;
     Queue<EventEntry> mInboundQueue;
+    Queue<EventEntry> mRecentQueue;
     Queue<CommandEntry> mCommandQueue;
 
     void dispatchOnceInnerLocked(nsecs_t* nextWakeupTime);
@@ -856,6 +857,9 @@
     // Cleans up input state when dropping an inbound event.
     void dropInboundEventLocked(EventEntry* entry, DropReason dropReason);
 
+    // Adds an event to a queue of recent events for debugging purposes.
+    void addRecentEventLocked(EventEntry* entry);
+
     // App switch latency optimization.
     bool mAppSwitchSawKeyDown;
     nsecs_t mAppSwitchDueTime;
diff --git a/services/java/com/android/internal/app/ProcessStats.java b/services/java/com/android/internal/app/ProcessStats.java
new file mode 100644
index 0000000..5e9b6a1
--- /dev/null
+++ b/services/java/com/android/internal/app/ProcessStats.java
@@ -0,0 +1,2461 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.app;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.text.format.DateFormat;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.util.Slog;
+import android.util.SparseArray;
+import android.util.TimeUtils;
+import android.webkit.WebViewFactory;
+import com.android.internal.util.ArrayUtils;
+import com.android.server.ProcessMap;
+import dalvik.system.VMRuntime;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Objects;
+
+final public class ProcessStats implements Parcelable {
+    static final String TAG = "ProcessStats";
+    static final boolean DEBUG = false;
+    
+    public static final int STATE_NOTHING = -1;
+    public static final int STATE_PERSISTENT = 0;
+    public static final int STATE_TOP = 1;
+    public static final int STATE_IMPORTANT_FOREGROUND = 2;
+    public static final int STATE_IMPORTANT_BACKGROUND = 3;
+    public static final int STATE_BACKUP = 4;
+    public static final int STATE_HEAVY_WEIGHT = 5;
+    public static final int STATE_SERVICE = 6;
+    public static final int STATE_SERVICE_RESTARTING = 7;
+    public static final int STATE_RECEIVER = 8;
+    public static final int STATE_HOME = 9;
+    public static final int STATE_LAST_ACTIVITY = 10;
+    public static final int STATE_CACHED_ACTIVITY = 11;
+    public static final int STATE_CACHED_ACTIVITY_CLIENT = 12;
+    public static final int STATE_CACHED_EMPTY = 13;
+    public static final int STATE_COUNT = STATE_CACHED_EMPTY+1;
+
+    public static final int PSS_SAMPLE_COUNT = 0;
+    public static final int PSS_MINIMUM = 1;
+    public static final int PSS_AVERAGE = 2;
+    public static final int PSS_MAXIMUM = 3;
+    public static final int PSS_USS_MINIMUM = 4;
+    public static final int PSS_USS_AVERAGE = 5;
+    public static final int PSS_USS_MAXIMUM = 6;
+    public static final int PSS_COUNT = PSS_USS_MAXIMUM+1;
+
+    public static final int ADJ_NOTHING = -1;
+    public static final int ADJ_MEM_FACTOR_NORMAL = 0;
+    public static final int ADJ_MEM_FACTOR_MODERATE = 1;
+    public static final int ADJ_MEM_FACTOR_LOW = 2;
+    public static final int ADJ_MEM_FACTOR_CRITICAL = 3;
+    public static final int ADJ_MEM_FACTOR_COUNT = ADJ_MEM_FACTOR_CRITICAL+1;
+    public static final int ADJ_SCREEN_MOD = ADJ_MEM_FACTOR_COUNT;
+    public static final int ADJ_SCREEN_OFF = 0;
+    public static final int ADJ_SCREEN_ON = ADJ_SCREEN_MOD;
+    public static final int ADJ_COUNT = ADJ_SCREEN_ON*2;
+
+    public static final int FLAG_COMPLETE = 1<<0;
+    public static final int FLAG_SHUTDOWN = 1<<1;
+    public static final int FLAG_SYSPROPS = 1<<2;
+
+    static final int[] ALL_MEM_ADJ = new int[] { ADJ_MEM_FACTOR_NORMAL, ADJ_MEM_FACTOR_MODERATE,
+            ADJ_MEM_FACTOR_LOW, ADJ_MEM_FACTOR_CRITICAL };
+    static final int[] ALL_SCREEN_ADJ = new int[] { ADJ_SCREEN_OFF, ADJ_SCREEN_ON };
+    static final int[] NON_CACHED_PROC_STATES = new int[] { STATE_PERSISTENT,
+            STATE_TOP, STATE_IMPORTANT_FOREGROUND,
+            STATE_IMPORTANT_BACKGROUND, STATE_BACKUP, STATE_HEAVY_WEIGHT,
+            STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER, STATE_HOME
+    };
+
+    // Map from process states to the states we track.
+    static final int[] PROCESS_STATE_TO_STATE = new int[] {
+            STATE_PERSISTENT,               // ActivityManager.PROCESS_STATE_PERSISTENT
+            STATE_PERSISTENT,               // ActivityManager.PROCESS_STATE_PERSISTENT_UI
+            STATE_TOP,                      // ActivityManager.PROCESS_STATE_TOP
+            STATE_IMPORTANT_FOREGROUND,     // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
+            STATE_IMPORTANT_BACKGROUND,     // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
+            STATE_BACKUP,                   // ActivityManager.PROCESS_STATE_BACKUP
+            STATE_HEAVY_WEIGHT,             // ActivityManager.PROCESS_STATE_HEAVY_WEIGHT
+            STATE_SERVICE,                  // ActivityManager.PROCESS_STATE_SERVICE
+            STATE_RECEIVER,                 // ActivityManager.PROCESS_STATE_RECEIVER
+            STATE_HOME,                     // ActivityManager.PROCESS_STATE_HOME
+            STATE_LAST_ACTIVITY,            // ActivityManager.PROCESS_STATE_LAST_ACTIVITY
+            STATE_CACHED_ACTIVITY,          // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY
+            STATE_CACHED_ACTIVITY_CLIENT,   // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT
+            STATE_CACHED_EMPTY,             // ActivityManager.PROCESS_STATE_CACHED_EMPTY
+    };
+
+    public static final int[] ALL_PROC_STATES = new int[] { STATE_PERSISTENT,
+            STATE_TOP, STATE_IMPORTANT_FOREGROUND, STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
+            STATE_HEAVY_WEIGHT, STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER,
+            STATE_HOME, STATE_LAST_ACTIVITY, STATE_CACHED_ACTIVITY,
+            STATE_CACHED_ACTIVITY_CLIENT, STATE_CACHED_EMPTY
+    };
+
+    static final String[] STATE_NAMES = new String[] {
+            "Persistent", "Top       ", "Imp Fg    ", "Imp Bg    ",
+            "Backup    ", "Heavy Wght", "Service   ", "Service Rs",
+            "Receiver  ", "Home      ",
+            "Last Act  ", "Cch Act   ", "Cch CliAct", "Cch Empty "
+    };
+
+    public static final String[] ADJ_SCREEN_NAMES_CSV = new String[] {
+            "off", "on"
+    };
+
+    public static final String[] ADJ_MEM_NAMES_CSV = new String[] {
+            "norm", "mod",  "low", "crit"
+    };
+
+    public static final String[] STATE_NAMES_CSV = new String[] {
+            "pers", "top", "impfg", "impbg", "backup", "heavy",
+            "service", "service-rs", "receiver", "home", "lastact",
+            "cch-activity", "cch-aclient", "cch-empty"
+    };
+
+    static final String[] ADJ_SCREEN_TAGS = new String[] {
+            "0", "1"
+    };
+
+    static final String[] ADJ_MEM_TAGS = new String[] {
+            "n", "m",  "l", "c"
+    };
+
+    static final String[] STATE_TAGS = new String[] {
+            "p", "t", "f", "b", "u", "w",
+            "s", "x", "r", "h", "l", "a", "c", "e"
+    };
+
+    static final String CSV_SEP = "\t";
+
+    // Current version of the parcel format.
+    private static final int PARCEL_VERSION = 9;
+    // In-memory Parcel magic number, used to detect attempts to unmarshall bad data
+    private static final int MAGIC = 0x50535453;
+
+    // Where the "type"/"state" part of the data appears in an offset integer.
+    static int OFFSET_TYPE_SHIFT = 0;
+    static int OFFSET_TYPE_MASK = 0xff;
+    // Where the "which array" part of the data appears in an offset integer.
+    static int OFFSET_ARRAY_SHIFT = 8;
+    static int OFFSET_ARRAY_MASK = 0xff;
+    // Where the "index into array" part of the data appears in an offset integer.
+    static int OFFSET_INDEX_SHIFT = 16;
+    static int OFFSET_INDEX_MASK = 0xffff;
+
+    public String mReadError;
+    public String mTimePeriodStartClockStr;
+    public int mFlags;
+
+    public final ProcessMap<PackageState> mPackages = new ProcessMap<PackageState>();
+    public final ProcessMap<ProcessState> mProcesses = new ProcessMap<ProcessState>();
+
+    public final long[] mMemFactorDurations = new long[ADJ_COUNT];
+    public int mMemFactor = STATE_NOTHING;
+    public long mStartTime;
+
+    public long mTimePeriodStartClock;
+    public long mTimePeriodStartRealtime;
+    public long mTimePeriodEndRealtime;
+    String mRuntime;
+    String mWebView;
+    boolean mRunning;
+
+    static final int LONGS_SIZE = 4096;
+    final ArrayList<long[]> mLongs = new ArrayList<long[]>();
+    int mNextLong;
+
+    int[] mAddLongTable;
+    int mAddLongTableSize;
+
+    public ProcessStats(boolean running) {
+        mRunning = running;
+        reset();
+    }
+
+    public ProcessStats(Parcel in) {
+        reset();
+        readFromParcel(in);
+    }
+
+    public static final Parcelable.Creator<ProcessStats> CREATOR
+            = new Parcelable.Creator<ProcessStats>() {
+        public ProcessStats createFromParcel(Parcel in) {
+            return new ProcessStats(in);
+        }
+
+        public ProcessStats[] newArray(int size) {
+            return new ProcessStats[size];
+        }
+    };
+
+    static private void printScreenLabel(PrintWriter pw, int offset) {
+        switch (offset) {
+            case ADJ_NOTHING:
+                pw.print("             ");
+                break;
+            case ADJ_SCREEN_OFF:
+                pw.print("Screen Off / ");
+                break;
+            case ADJ_SCREEN_ON:
+                pw.print("Screen On  / ");
+                break;
+            default:
+                pw.print("?????????? / ");
+                break;
+        }
+    }
+
+    static public void printScreenLabelCsv(PrintWriter pw, int offset) {
+        switch (offset) {
+            case ADJ_NOTHING:
+                break;
+            case ADJ_SCREEN_OFF:
+                pw.print(ADJ_SCREEN_NAMES_CSV[0]);
+                break;
+            case ADJ_SCREEN_ON:
+                pw.print(ADJ_SCREEN_NAMES_CSV[1]);
+                break;
+            default:
+                pw.print("???");
+                break;
+        }
+    }
+
+    static private void printMemLabel(PrintWriter pw, int offset) {
+        switch (offset) {
+            case ADJ_NOTHING:
+                pw.print("       ");
+                break;
+            case ADJ_MEM_FACTOR_NORMAL:
+                pw.print("Norm / ");
+                break;
+            case ADJ_MEM_FACTOR_MODERATE:
+                pw.print("Mod  / ");
+                break;
+            case ADJ_MEM_FACTOR_LOW:
+                pw.print("Low  / ");
+                break;
+            case ADJ_MEM_FACTOR_CRITICAL:
+                pw.print("Crit / ");
+                break;
+            default:
+                pw.print("???? / ");
+                break;
+        }
+    }
+
+    static public void printMemLabelCsv(PrintWriter pw, int offset) {
+        if (offset >= ADJ_MEM_FACTOR_NORMAL) {
+            if (offset <= ADJ_MEM_FACTOR_CRITICAL) {
+                pw.print(ADJ_MEM_NAMES_CSV[offset]);
+            } else {
+                pw.print("???");
+            }
+        }
+    }
+
+    static long dumpSingleTime(PrintWriter pw, String prefix, long[] durations,
+            int curState, long curStartTime, long now) {
+        long totalTime = 0;
+        int printedScreen = -1;
+        for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
+            int printedMem = -1;
+            for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
+                int state = imem+iscreen;
+                long time = durations[state];
+                String running = "";
+                if (curState == state) {
+                    time += now - curStartTime;
+                    if (pw != null) {
+                        running = " (running)";
+                    }
+                }
+                if (time != 0) {
+                    if (pw != null) {
+                        pw.print(prefix);
+                        printScreenLabel(pw, printedScreen != iscreen
+                                ? iscreen : STATE_NOTHING);
+                        printedScreen = iscreen;
+                        printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
+                        printedMem = imem;
+                        TimeUtils.formatDuration(time, pw); pw.println(running);
+                    }
+                    totalTime += time;
+                }
+            }
+        }
+        if (totalTime != 0 && pw != null) {
+            pw.print(prefix);
+            printScreenLabel(pw, STATE_NOTHING);
+            pw.print("TOTAL: ");
+            TimeUtils.formatDuration(totalTime, pw);
+            pw.println();
+        }
+        return totalTime;
+    }
+
+    static void dumpAdjTimesCheckin(PrintWriter pw, String sep, long[] durations,
+            int curState, long curStartTime, long now) {
+        for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
+            for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
+                int state = imem+iscreen;
+                long time = durations[state];
+                if (curState == state) {
+                    time += now - curStartTime;
+                }
+                if (time != 0) {
+                    printAdjTagAndValue(pw, state, time);
+                }
+            }
+        }
+    }
+
+    static void dumpServiceTimeCheckin(PrintWriter pw, String label, String packageName,
+            int uid, String serviceName, ServiceState svc, int serviceType, int opCount,
+            int curState, long curStartTime, long now) {
+        if (opCount <= 0) {
+            return;
+        }
+        pw.print(label);
+        pw.print(",");
+        pw.print(packageName);
+        pw.print(",");
+        pw.print(uid);
+        pw.print(",");
+        pw.print(serviceName);
+        pw.print(",");
+        pw.print(opCount);
+        boolean didCurState = false;
+        for (int i=0; i<svc.mDurationsTableSize; i++) {
+            int off = svc.mDurationsTable[i];
+            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
+            int memFactor = type / ServiceState.SERVICE_COUNT;
+            type %= ServiceState.SERVICE_COUNT;
+            if (type != serviceType) {
+                continue;
+            }
+            long time = svc.mProcessStats.getLong(off, 0);
+            if (curState == memFactor) {
+                didCurState = true;
+                time += now - curStartTime;
+            }
+            printAdjTagAndValue(pw, memFactor, time);
+        }
+        if (!didCurState && curState != STATE_NOTHING) {
+            printAdjTagAndValue(pw, curState, now - curStartTime);
+        }
+        pw.println();
+    }
+
+    static void computeProcessData(ProcessState proc, ProcessDataCollection data, long now) {
+        data.totalTime = 0;
+        data.numPss = data.minPss = data.avgPss = data.maxPss =
+                data.minUss = data.avgUss = data.maxUss = 0;
+        for (int is=0; is<data.screenStates.length; is++) {
+            for (int im=0; im<data.memStates.length; im++) {
+                for (int ip=0; ip<data.procStates.length; ip++) {
+                    int bucket = ((data.screenStates[is] + data.memStates[im]) * STATE_COUNT)
+                            + data.procStates[ip];
+                    data.totalTime += proc.getDuration(bucket, now);
+                    long samples = proc.getPssSampleCount(bucket);
+                    if (samples > 0) {
+                        long minPss = proc.getPssMinimum(bucket);
+                        long avgPss = proc.getPssAverage(bucket);
+                        long maxPss = proc.getPssMaximum(bucket);
+                        long minUss = proc.getPssUssMinimum(bucket);
+                        long avgUss = proc.getPssUssAverage(bucket);
+                        long maxUss = proc.getPssUssMaximum(bucket);
+                        if (data.numPss == 0) {
+                            data.minPss = minPss;
+                            data.avgPss = avgPss;
+                            data.maxPss = maxPss;
+                            data.minUss = minUss;
+                            data.avgUss = avgUss;
+                            data.maxUss = maxUss;
+                        } else {
+                            if (minPss < data.minPss) {
+                                data.minPss = minPss;
+                            }
+                            data.avgPss = (long)( ((data.avgPss*(double)data.numPss)
+                                    + (avgPss*(double)samples)) / (data.numPss+samples) );
+                            if (maxPss > data.maxPss) {
+                                data.maxPss = maxPss;
+                            }
+                            if (minUss < data.minUss) {
+                                data.minUss = minUss;
+                            }
+                            data.avgUss = (long)( ((data.avgUss*(double)data.numPss)
+                                    + (avgUss*(double)samples)) / (data.numPss+samples) );
+                            if (maxUss > data.maxUss) {
+                                data.maxUss = maxUss;
+                            }
+                        }
+                        data.numPss += samples;
+                    }
+                }
+            }
+        }
+    }
+
+    static long computeProcessTimeLocked(ProcessState proc, int[] screenStates, int[] memStates,
+                int[] procStates, long now) {
+        long totalTime = 0;
+        /*
+        for (int i=0; i<proc.mDurationsTableSize; i++) {
+            int val = proc.mDurationsTable[i];
+            totalTime += proc.mState.getLong(val, 0);
+            if ((val&0xff) == proc.mCurState) {
+                totalTime += now - proc.mStartTime;
+            }
+        }
+        */
+        for (int is=0; is<screenStates.length; is++) {
+            for (int im=0; im<memStates.length; im++) {
+                for (int ip=0; ip<procStates.length; ip++) {
+                    int bucket = ((screenStates[is] + memStates[im]) * STATE_COUNT)
+                            + procStates[ip];
+                    totalTime += proc.getDuration(bucket, now);
+                }
+            }
+        }
+        proc.mTmpTotalTime = totalTime;
+        return totalTime;
+    }
+
+    static void dumpProcessState(PrintWriter pw, String prefix, ProcessState proc,
+            int[] screenStates, int[] memStates, int[] procStates, long now) {
+        long totalTime = 0;
+        int printedScreen = -1;
+        for (int is=0; is<screenStates.length; is++) {
+            int printedMem = -1;
+            for (int im=0; im<memStates.length; im++) {
+                for (int ip=0; ip<procStates.length; ip++) {
+                    final int iscreen = screenStates[is];
+                    final int imem = memStates[im];
+                    final int bucket = ((iscreen + imem) * STATE_COUNT) + procStates[ip];
+                    long time = proc.getDuration(bucket, now);
+                    String running = "";
+                    if (proc.mCurState == bucket) {
+                        running = " (running)";
+                    }
+                    if (time != 0) {
+                        pw.print(prefix);
+                        if (screenStates.length > 1) {
+                            printScreenLabel(pw, printedScreen != iscreen
+                                    ? iscreen : STATE_NOTHING);
+                            printedScreen = iscreen;
+                        }
+                        if (memStates.length > 1) {
+                            printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
+                            printedMem = imem;
+                        }
+                        pw.print(STATE_NAMES[procStates[ip]]); pw.print(": ");
+                        TimeUtils.formatDuration(time, pw); pw.println(running);
+                        totalTime += time;
+                    }
+                }
+            }
+        }
+        if (totalTime != 0) {
+            pw.print(prefix);
+            if (screenStates.length > 1) {
+                printScreenLabel(pw, STATE_NOTHING);
+            }
+            if (memStates.length > 1) {
+                printMemLabel(pw, STATE_NOTHING);
+            }
+            pw.print("TOTAL     : ");
+            TimeUtils.formatDuration(totalTime, pw);
+            pw.println();
+        }
+    }
+
+    static void dumpProcessPss(PrintWriter pw, String prefix, ProcessState proc, int[] screenStates,
+            int[] memStates, int[] procStates) {
+        boolean printedHeader = false;
+        int printedScreen = -1;
+        for (int is=0; is<screenStates.length; is++) {
+            int printedMem = -1;
+            for (int im=0; im<memStates.length; im++) {
+                for (int ip=0; ip<procStates.length; ip++) {
+                    final int iscreen = screenStates[is];
+                    final int imem = memStates[im];
+                    final int bucket = ((iscreen + imem) * STATE_COUNT) + procStates[ip];
+                    long count = proc.getPssSampleCount(bucket);
+                    if (count > 0) {
+                        if (!printedHeader) {
+                            pw.print(prefix);
+                            pw.print("PSS/USS (");
+                            pw.print(proc.mPssTableSize);
+                            pw.println(" entries):");
+                            printedHeader = true;
+                        }
+                        pw.print(prefix);
+                        pw.print("  ");
+                        if (screenStates.length > 1) {
+                            printScreenLabel(pw, printedScreen != iscreen
+                                    ? iscreen : STATE_NOTHING);
+                            printedScreen = iscreen;
+                        }
+                        if (memStates.length > 1) {
+                            printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
+                            printedMem = imem;
+                        }
+                        pw.print(STATE_NAMES[procStates[ip]]); pw.print(": ");
+                        pw.print(count);
+                        pw.print(" samples ");
+                        printSizeValue(pw, proc.getPssMinimum(bucket) * 1024);
+                        pw.print(" ");
+                        printSizeValue(pw, proc.getPssAverage(bucket) * 1024);
+                        pw.print(" ");
+                        printSizeValue(pw, proc.getPssMaximum(bucket) * 1024);
+                        pw.print(" / ");
+                        printSizeValue(pw, proc.getPssUssMinimum(bucket) * 1024);
+                        pw.print(" ");
+                        printSizeValue(pw, proc.getPssUssAverage(bucket) * 1024);
+                        pw.print(" ");
+                        printSizeValue(pw, proc.getPssUssMaximum(bucket) * 1024);
+                        pw.println();
+                    }
+                }
+            }
+        }
+        if (proc.mNumExcessiveWake != 0) {
+            pw.print(prefix); pw.print("Killed for excessive wake locks: ");
+                    pw.print(proc.mNumExcessiveWake); pw.println(" times");
+        }
+        if (proc.mNumExcessiveCpu != 0) {
+            pw.print(prefix); pw.print("Killed for excessive CPU use: ");
+                    pw.print(proc.mNumExcessiveCpu); pw.println(" times");
+        }
+    }
+
+    static void dumpStateHeadersCsv(PrintWriter pw, String sep, int[] screenStates,
+            int[] memStates, int[] procStates) {
+        final int NS = screenStates != null ? screenStates.length : 1;
+        final int NM = memStates != null ? memStates.length : 1;
+        final int NP = procStates != null ? procStates.length : 1;
+        for (int is=0; is<NS; is++) {
+            for (int im=0; im<NM; im++) {
+                for (int ip=0; ip<NP; ip++) {
+                    pw.print(sep);
+                    boolean printed = false;
+                    if (screenStates != null && screenStates.length > 1) {
+                        printScreenLabelCsv(pw, screenStates[is]);
+                        printed = true;
+                    }
+                    if (memStates != null && memStates.length > 1) {
+                        if (printed) {
+                            pw.print("-");
+                        }
+                        printMemLabelCsv(pw, memStates[im]);
+                        printed = true;
+                    }
+                    if (procStates != null && procStates.length > 1) {
+                        if (printed) {
+                            pw.print("-");
+                        }
+                        pw.print(STATE_NAMES_CSV[procStates[ip]]);
+                    }
+                }
+            }
+        }
+    }
+
+    static void dumpProcessStateCsv(PrintWriter pw, ProcessState proc,
+            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
+            boolean sepProcStates, int[] procStates, long now) {
+        final int NSS = sepScreenStates ? screenStates.length : 1;
+        final int NMS = sepMemStates ? memStates.length : 1;
+        final int NPS = sepProcStates ? procStates.length : 1;
+        for (int iss=0; iss<NSS; iss++) {
+            for (int ims=0; ims<NMS; ims++) {
+                for (int ips=0; ips<NPS; ips++) {
+                    final int vsscreen = sepScreenStates ? screenStates[iss] : 0;
+                    final int vsmem = sepMemStates ? memStates[ims] : 0;
+                    final int vsproc = sepProcStates ? procStates[ips] : 0;
+                    final int NSA = sepScreenStates ? 1 : screenStates.length;
+                    final int NMA = sepMemStates ? 1 : memStates.length;
+                    final int NPA = sepProcStates ? 1 : procStates.length;
+                    long totalTime = 0;
+                    for (int isa=0; isa<NSA; isa++) {
+                        for (int ima=0; ima<NMA; ima++) {
+                            for (int ipa=0; ipa<NPA; ipa++) {
+                                final int vascreen = sepScreenStates ? 0 : screenStates[isa];
+                                final int vamem = sepMemStates ? 0 : memStates[ima];
+                                final int vaproc = sepProcStates ? 0 : procStates[ipa];
+                                final int bucket = ((vsscreen + vascreen + vsmem + vamem)
+                                        * STATE_COUNT) + vsproc + vaproc;
+                                totalTime += proc.getDuration(bucket, now);
+                            }
+                        }
+                    }
+                    pw.print(CSV_SEP);
+                    pw.print(totalTime);
+                }
+            }
+        }
+    }
+
+    static void dumpProcessList(PrintWriter pw, String prefix, ArrayList<ProcessState> procs,
+            int[] screenStates, int[] memStates, int[] procStates, long now) {
+        String innerPrefix = prefix + "  ";
+        for (int i=procs.size()-1; i>=0; i--) {
+            ProcessState proc = procs.get(i);
+            pw.print(prefix);
+            pw.print(proc.mName);
+            pw.print(" / ");
+            UserHandle.formatUid(pw, proc.mUid);
+            pw.print(" (");
+            pw.print(proc.mDurationsTableSize);
+            pw.print(" entries)");
+            pw.println(":");
+            dumpProcessState(pw, innerPrefix, proc, screenStates, memStates, procStates, now);
+            if (proc.mPssTableSize > 0) {
+                dumpProcessPss(pw, innerPrefix, proc, screenStates, memStates, procStates);
+            }
+        }
+    }
+
+    static void dumpProcessSummaryDetails(PrintWriter pw, ProcessState proc, String prefix,
+            String label, int[] screenStates, int[] memStates, int[] procStates,
+            long now, long totalTime, boolean full) {
+        ProcessDataCollection totals = new ProcessDataCollection(screenStates,
+                memStates, procStates);
+        computeProcessData(proc, totals, now);
+        if (totals.totalTime != 0 || totals.numPss != 0) {
+            if (prefix != null) {
+                pw.print(prefix);
+            }
+            if (label != null) {
+                pw.print(label);
+            }
+            totals.print(pw, totalTime, full);
+            if (prefix != null) {
+                pw.println();
+            }
+        }
+    }
+
+    static void dumpProcessSummaryLocked(PrintWriter pw, String prefix,
+            ArrayList<ProcessState> procs, int[] screenStates, int[] memStates, int[] procStates,
+            long now, long totalTime) {
+        for (int i=procs.size()-1; i>=0; i--) {
+            ProcessState proc = procs.get(i);
+            pw.print(prefix);
+            pw.print("* ");
+            pw.print(proc.mName);
+            pw.print(" / ");
+            UserHandle.formatUid(pw, proc.mUid);
+            pw.println(":");
+            dumpProcessSummaryDetails(pw, proc, prefix, "         TOTAL: ", screenStates, memStates,
+                    procStates, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "    Persistent: ", screenStates, memStates,
+                    new int[] { STATE_PERSISTENT }, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "           Top: ", screenStates, memStates,
+                    new int[] {STATE_TOP}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "        Imp Fg: ", screenStates, memStates,
+                    new int[] { STATE_IMPORTANT_FOREGROUND }, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "        Imp Bg: ", screenStates, memStates,
+                    new int[] {STATE_IMPORTANT_BACKGROUND}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "        Backup: ", screenStates, memStates,
+                    new int[] {STATE_BACKUP}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "     Heavy Wgt: ", screenStates, memStates,
+                    new int[] {STATE_HEAVY_WEIGHT}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "       Service: ", screenStates, memStates,
+                    new int[] {STATE_SERVICE}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "    Service Rs: ", screenStates, memStates,
+                    new int[] {STATE_SERVICE_RESTARTING}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "      Receiver: ", screenStates, memStates,
+                    new int[] {STATE_RECEIVER}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "          Home: ", screenStates, memStates,
+                    new int[] {STATE_HOME}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "    (Last Act): ", screenStates, memStates,
+                    new int[] {STATE_LAST_ACTIVITY}, now, totalTime, true);
+            dumpProcessSummaryDetails(pw, proc, prefix, "      (Cached): ", screenStates, memStates,
+                    new int[] {STATE_CACHED_ACTIVITY, STATE_CACHED_ACTIVITY_CLIENT,
+                            STATE_CACHED_EMPTY}, now, totalTime, true);
+        }
+    }
+
+    static void printPercent(PrintWriter pw, double fraction) {
+        fraction *= 100;
+        if (fraction < 1) {
+            pw.print(String.format("%.2f", fraction));
+        } else if (fraction < 10) {
+            pw.print(String.format("%.1f", fraction));
+        } else {
+            pw.print(String.format("%.0f", fraction));
+        }
+        pw.print("%");
+    }
+
+    static void printSizeValue(PrintWriter pw, long number) {
+        float result = number;
+        String suffix = "";
+        if (result > 900) {
+            suffix = "KB";
+            result = result / 1024;
+        }
+        if (result > 900) {
+            suffix = "MB";
+            result = result / 1024;
+        }
+        if (result > 900) {
+            suffix = "GB";
+            result = result / 1024;
+        }
+        if (result > 900) {
+            suffix = "TB";
+            result = result / 1024;
+        }
+        if (result > 900) {
+            suffix = "PB";
+            result = result / 1024;
+        }
+        String value;
+        if (result < 1) {
+            value = String.format("%.2f", result);
+        } else if (result < 10) {
+            value = String.format("%.1f", result);
+        } else if (result < 100) {
+            value = String.format("%.0f", result);
+        } else {
+            value = String.format("%.0f", result);
+        }
+        pw.print(value);
+        pw.print(suffix);
+    }
+
+    public static void dumpProcessListCsv(PrintWriter pw, ArrayList<ProcessState> procs,
+            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
+            boolean sepProcStates, int[] procStates, long now) {
+        pw.print("process");
+        pw.print(CSV_SEP);
+        pw.print("uid");
+        dumpStateHeadersCsv(pw, CSV_SEP, sepScreenStates ? screenStates : null,
+                sepMemStates ? memStates : null,
+                sepProcStates ? procStates : null);
+        pw.println();
+        for (int i=procs.size()-1; i>=0; i--) {
+            ProcessState proc = procs.get(i);
+            pw.print(proc.mName);
+            pw.print(CSV_SEP);
+            UserHandle.formatUid(pw, proc.mUid);
+            dumpProcessStateCsv(pw, proc, sepScreenStates, screenStates,
+                    sepMemStates, memStates, sepProcStates, procStates, now);
+            pw.println();
+        }
+    }
+
+    static int printArrayEntry(PrintWriter pw, String[] array, int value, int mod) {
+        int index = value/mod;
+        if (index >= 0 && index < array.length) {
+            pw.print(array[index]);
+        } else {
+            pw.print('?');
+        }
+        return value - index*mod;
+    }
+
+    static void printProcStateTag(PrintWriter pw, int state) {
+        state = printArrayEntry(pw, ADJ_SCREEN_TAGS,  state, ADJ_SCREEN_MOD*STATE_COUNT);
+        state = printArrayEntry(pw, ADJ_MEM_TAGS,  state, STATE_COUNT);
+        printArrayEntry(pw, STATE_TAGS,  state, 1);
+    }
+
+    static void printAdjTag(PrintWriter pw, int state) {
+        state = printArrayEntry(pw, ADJ_SCREEN_TAGS,  state, ADJ_SCREEN_MOD);
+        printArrayEntry(pw, ADJ_MEM_TAGS, state, 1);
+    }
+
+    static void printProcStateTagAndValue(PrintWriter pw, int state, long value) {
+        pw.print(',');
+        printProcStateTag(pw, state);
+        pw.print(':');
+        pw.print(value);
+    }
+
+    static void printAdjTagAndValue(PrintWriter pw, int state, long value) {
+        pw.print(',');
+        printAdjTag(pw, state);
+        pw.print(':');
+        pw.print(value);
+    }
+
+    static void dumpAllProcessStateCheckin(PrintWriter pw, ProcessState proc, long now) {
+        boolean didCurState = false;
+        for (int i=0; i<proc.mDurationsTableSize; i++) {
+            int off = proc.mDurationsTable[i];
+            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
+            long time = proc.mProcessStats.getLong(off, 0);
+            if (proc.mCurState == type) {
+                didCurState = true;
+                time += now - proc.mStartTime;
+            }
+            printProcStateTagAndValue(pw, type, time);
+        }
+        if (!didCurState && proc.mCurState != STATE_NOTHING) {
+            printProcStateTagAndValue(pw, proc.mCurState, now - proc.mStartTime);
+        }
+    }
+
+    static void dumpAllProcessPssCheckin(PrintWriter pw, ProcessState proc) {
+        for (int i=0; i<proc.mPssTableSize; i++) {
+            int off = proc.mPssTable[i];
+            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
+            long count = proc.mProcessStats.getLong(off, PSS_SAMPLE_COUNT);
+            long min = proc.mProcessStats.getLong(off, PSS_MINIMUM);
+            long avg = proc.mProcessStats.getLong(off, PSS_AVERAGE);
+            long max = proc.mProcessStats.getLong(off, PSS_MAXIMUM);
+            long umin = proc.mProcessStats.getLong(off, PSS_USS_MINIMUM);
+            long uavg = proc.mProcessStats.getLong(off, PSS_USS_AVERAGE);
+            long umax = proc.mProcessStats.getLong(off, PSS_USS_MAXIMUM);
+            pw.print(',');
+            printProcStateTag(pw, type);
+            pw.print(':');
+            pw.print(count);
+            pw.print(':');
+            pw.print(min);
+            pw.print(':');
+            pw.print(avg);
+            pw.print(':');
+            pw.print(max);
+            pw.print(':');
+            pw.print(umin);
+            pw.print(':');
+            pw.print(uavg);
+            pw.print(':');
+            pw.print(umax);
+        }
+    }
+
+    public void reset() {
+        if (DEBUG) Slog.d(TAG, "Resetting state of " + mTimePeriodStartClockStr);
+        resetCommon();
+        mPackages.getMap().clear();
+        mProcesses.getMap().clear();
+        mMemFactor = STATE_NOTHING;
+        mStartTime = 0;
+        if (DEBUG) Slog.d(TAG, "State reset; now " + mTimePeriodStartClockStr);
+    }
+
+    public void resetSafely() {
+        if (DEBUG) Slog.d(TAG, "Safely resetting state of " + mTimePeriodStartClockStr);
+        resetCommon();
+        long now = SystemClock.uptimeMillis();
+        ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
+        for (int ip=procMap.size()-1; ip>=0; ip--) {
+            SparseArray<ProcessState> uids = procMap.valueAt(ip);
+            for (int iu=uids.size()-1; iu>=0; iu--) {
+                uids.valueAt(iu).resetSafely(now);
+            }
+        }
+        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
+        for (int ip=pkgMap.size()-1; ip>=0; ip--) {
+            SparseArray<PackageState> uids = pkgMap.valueAt(ip);
+            for (int iu=uids.size()-1; iu>=0; iu--) {
+                PackageState pkgState = uids.valueAt(iu);
+                for (int iproc=pkgState.mProcesses.size()-1; iproc>=0; iproc--) {
+                    pkgState.mProcesses.valueAt(iproc).resetSafely(now);
+                }
+                for (int isvc=pkgState.mServices.size()-1; isvc>=0; isvc--) {
+                    ServiceState ss = pkgState.mServices.valueAt(isvc);
+                    if (ss.isActive()) {
+                        pkgState.mServices.valueAt(isvc).resetSafely(now);
+                    } else {
+                        pkgState.mServices.removeAt(isvc);
+                    }
+                }
+            }
+        }
+        mStartTime = SystemClock.uptimeMillis();
+        if (DEBUG) Slog.d(TAG, "State reset; now " + mTimePeriodStartClockStr);
+    }
+
+    private void resetCommon() {
+        mTimePeriodStartClock = System.currentTimeMillis();
+        buildTimePeriodStartClockStr();
+        mTimePeriodStartRealtime = mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
+        mLongs.clear();
+        mLongs.add(new long[LONGS_SIZE]);
+        mNextLong = 0;
+        Arrays.fill(mMemFactorDurations, 0);
+        mStartTime = 0;
+        mReadError = null;
+        mFlags = 0;
+        evaluateSystemProperties(true);
+    }
+
+    public boolean evaluateSystemProperties(boolean update) {
+        boolean changed = false;
+        String runtime = SystemProperties.get("persist.sys.dalvik.vm.lib",
+                VMRuntime.getRuntime().vmLibrary());
+        if (!Objects.equals(runtime, mRuntime)) {
+            changed = true;
+            if (update) {
+                mRuntime = runtime;
+            }
+        }
+        String webview = WebViewFactory.useExperimentalWebView() ? "chromeview" : "webview";
+        if (!Objects.equals(webview, mWebView)) {
+            changed = true;
+            if (update) {
+                mWebView = webview;
+            }
+        }
+        return changed;
+    }
+
+    private void buildTimePeriodStartClockStr() {
+        mTimePeriodStartClockStr = DateFormat.format("yyyy-MM-dd-HH-mm-ss",
+                mTimePeriodStartClock).toString();
+    }
+
+    static final int[] BAD_TABLE = new int[0];
+
+    private int[] readTableFromParcel(Parcel in, String name, String what) {
+        final int size = in.readInt();
+        if (size < 0) {
+            Slog.w(TAG, "Ignoring existing stats; bad " + what + " table size: " + size);
+            return BAD_TABLE;
+        }
+        if (size == 0) {
+            return null;
+        }
+        final int[] table = new int[size];
+        for (int i=0; i<size; i++) {
+            table[i] = in.readInt();
+            if (DEBUG) Slog.i(TAG, "Reading in " + name + " table #" + i + ": "
+                    + ProcessStats.printLongOffset(table[i]));
+            if (!validateLongOffset(table[i])) {
+                Slog.w(TAG, "Ignoring existing stats; bad " + what + " table entry: "
+                        + ProcessStats.printLongOffset(table[i]));
+                return null;
+            }
+        }
+        return table;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel out, int flags) {
+        long now = SystemClock.uptimeMillis();
+        out.writeInt(MAGIC);
+        out.writeInt(PARCEL_VERSION);
+        out.writeInt(STATE_COUNT);
+        out.writeInt(ADJ_COUNT);
+        out.writeInt(PSS_COUNT);
+        out.writeInt(LONGS_SIZE);
+
+        out.writeLong(mTimePeriodStartClock);
+        out.writeLong(mTimePeriodStartRealtime);
+        out.writeLong(mTimePeriodEndRealtime);
+        out.writeString(mRuntime);
+        out.writeString(mWebView);
+        out.writeInt(mFlags);
+
+        out.writeInt(mLongs.size());
+        out.writeInt(mNextLong);
+        for (int i=0; i<(mLongs.size()-1); i++) {
+            out.writeLongArray(mLongs.get(i));
+        }
+        long[] lastLongs = mLongs.get(mLongs.size()-1);
+        for (int i=0; i<mNextLong; i++) {
+            out.writeLong(lastLongs[i]);
+            if (DEBUG) Slog.d(TAG, "Writing last long #" + i + ": " + lastLongs[i]);
+        }
+
+        if (mMemFactor != STATE_NOTHING) {
+            mMemFactorDurations[mMemFactor] += now - mStartTime;
+            mStartTime = now;
+        }
+        out.writeLongArray(mMemFactorDurations);
+
+        ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
+        final int NPROC = procMap.size();
+        out.writeInt(NPROC);
+        for (int ip=0; ip<NPROC; ip++) {
+            out.writeString(procMap.keyAt(ip));
+            SparseArray<ProcessState> uids = procMap.valueAt(ip);
+            final int NUID = uids.size();
+            out.writeInt(NUID);
+            for (int iu=0; iu<NUID; iu++) {
+                out.writeInt(uids.keyAt(iu));
+                ProcessState proc = uids.valueAt(iu);
+                out.writeString(proc.mPackage);
+                proc.writeToParcel(out, now);
+            }
+        }
+        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
+        final int NPKG = pkgMap.size();
+        out.writeInt(NPKG);
+        for (int ip=0; ip<NPKG; ip++) {
+            out.writeString(pkgMap.keyAt(ip));
+            SparseArray<PackageState> uids = pkgMap.valueAt(ip);
+            final int NUID = uids.size();
+            out.writeInt(NUID);
+            for (int iu=0; iu<NUID; iu++) {
+                out.writeInt(uids.keyAt(iu));
+                PackageState pkgState = uids.valueAt(iu);
+                final int NPROCS = pkgState.mProcesses.size();
+                out.writeInt(NPROCS);
+                for (int iproc=0; iproc<NPROCS; iproc++) {
+                    out.writeString(pkgState.mProcesses.keyAt(iproc));
+                    ProcessState proc = pkgState.mProcesses.valueAt(iproc);
+                    if (proc.mCommonProcess == proc) {
+                        // This is the same as the common process we wrote above.
+                        out.writeInt(0);
+                    } else {
+                        // There is separate data for this package's process.
+                        out.writeInt(1);
+                        proc.writeToParcel(out, now);
+                    }
+                }
+                final int NSRVS = pkgState.mServices.size();
+                out.writeInt(NSRVS);
+                for (int isvc=0; isvc<NSRVS; isvc++) {
+                    out.writeString(pkgState.mServices.keyAt(isvc));
+                    ServiceState svc = pkgState.mServices.valueAt(isvc);
+                    svc.writeToParcel(out, now);
+                }
+            }
+        }
+    }
+
+    private boolean readCheckedInt(Parcel in, int val, String what) {
+        int got;
+        if ((got=in.readInt()) != val) {
+            mReadError = "bad " + what + ": " + got;
+            return false;
+        }
+        return true;
+    }
+
+    public void readFromParcel(Parcel in) {
+        final boolean hadData = mPackages.getMap().size() > 0
+                || mProcesses.getMap().size() > 0;
+        if (hadData) {
+            resetSafely();
+        }
+
+        if (!readCheckedInt(in, MAGIC, "magic number")) {
+            return;
+        }
+        int version = in.readInt();
+        if (version != PARCEL_VERSION && version != 6) {
+            mReadError = "bad version: " + version;
+            return;
+        }
+        if (!readCheckedInt(in, STATE_COUNT, "state count")) {
+            return;
+        }
+        if (!readCheckedInt(in, ADJ_COUNT, "adj count")) {
+            return;
+        }
+        if (!readCheckedInt(in, PSS_COUNT, "pss count")) {
+            return;
+        }
+        if (!readCheckedInt(in, LONGS_SIZE, "longs size")) {
+            return;
+        }
+
+        mTimePeriodStartClock = in.readLong();
+        buildTimePeriodStartClockStr();
+        mTimePeriodStartRealtime = in.readLong();
+        mTimePeriodEndRealtime = in.readLong();
+        if (version ==  PARCEL_VERSION) {
+            mRuntime = in.readString();
+            mWebView = in.readString();
+        }
+        mFlags = in.readInt();
+
+        final int NLONGS = in.readInt();
+        final int NEXTLONG = in.readInt();
+        mLongs.clear();
+        for (int i=0; i<(NLONGS-1); i++) {
+            while (i >= mLongs.size()) {
+                mLongs.add(new long[LONGS_SIZE]);
+            }
+            in.readLongArray(mLongs.get(i));
+        }
+        long[] longs = new long[LONGS_SIZE];
+        mNextLong = NEXTLONG;
+        for (int i=0; i<NEXTLONG; i++) {
+            longs[i] = in.readLong();
+            if (DEBUG) Slog.d(TAG, "Reading last long #" + i + ": " + longs[i]);
+        }
+        mLongs.add(longs);
+
+        in.readLongArray(mMemFactorDurations);
+
+        int NPROC = in.readInt();
+        if (NPROC < 0) {
+            mReadError = "bad process count: " + NPROC;
+            return;
+        }
+        while (NPROC > 0) {
+            NPROC--;
+            String procName = in.readString();
+            if (procName == null) {
+                mReadError = "bad process name";
+                return;
+            }
+            int NUID = in.readInt();
+            if (NUID < 0) {
+                mReadError = "bad uid count: " + NUID;
+                return;
+            }
+            while (NUID > 0) {
+                NUID--;
+                int uid = in.readInt();
+                if (uid < 0) {
+                    mReadError = "bad uid: " + uid;
+                    return;
+                }
+                String pkgName = in.readString();
+                if (pkgName == null) {
+                    mReadError = "bad process package name";
+                    return;
+                }
+                ProcessState proc = hadData ? mProcesses.get(procName, uid) : null;
+                if (proc != null) {
+                    if (!proc.readFromParcel(in, false)) {
+                        return;
+                    }
+                } else {
+                    proc = new ProcessState(this, pkgName, uid, procName);
+                    if (!proc.readFromParcel(in, true)) {
+                        return;
+                    }
+                }
+                if (DEBUG) Slog.d(TAG, "Adding process: " + procName + " " + uid + " " + proc);
+                mProcesses.put(procName, uid, proc);
+            }
+        }
+
+        if (DEBUG) Slog.d(TAG, "Read " + mProcesses.getMap().size() + " processes");
+
+        int NPKG = in.readInt();
+        if (NPKG < 0) {
+            mReadError = "bad package count: " + NPKG;
+            return;
+        }
+        while (NPKG > 0) {
+            NPKG--;
+            String pkgName = in.readString();
+            if (pkgName == null) {
+                mReadError = "bad package name";
+                return;
+            }
+            int NUID = in.readInt();
+            if (NUID < 0) {
+                mReadError = "bad uid count: " + NUID;
+                return;
+            }
+            while (NUID > 0) {
+                NUID--;
+                int uid = in.readInt();
+                if (uid < 0) {
+                    mReadError = "bad uid: " + uid;
+                    return;
+                }
+                PackageState pkgState = new PackageState(uid);
+                mPackages.put(pkgName, uid, pkgState);
+                int NPROCS = in.readInt();
+                if (NPROCS < 0) {
+                    mReadError = "bad package process count: " + NPROCS;
+                    return;
+                }
+                while (NPROCS > 0) {
+                    NPROCS--;
+                    String procName = in.readString();
+                    if (procName == null) {
+                        mReadError = "bad package process name";
+                        return;
+                    }
+                    int hasProc = in.readInt();
+                    if (DEBUG) Slog.d(TAG, "Reading package " + pkgName + " " + uid
+                            + " process " + procName + " hasProc=" + hasProc);
+                    ProcessState commonProc = mProcesses.get(procName, uid);
+                    if (DEBUG) Slog.d(TAG, "Got common proc " + procName + " " + uid
+                            + ": " + commonProc);
+                    if (commonProc == null) {
+                        mReadError = "no common proc: " + procName;
+                        return;
+                    }
+                    if (hasProc != 0) {
+                        // The process for this package is unique to the package; we
+                        // need to load it.  We don't need to do anything about it if
+                        // it is not unique because if someone later looks for it
+                        // they will find and use it from the global procs.
+                        ProcessState proc = hadData ? pkgState.mProcesses.get(procName) : null;
+                        if (proc != null) {
+                            if (!proc.readFromParcel(in, false)) {
+                                return;
+                            }
+                        } else {
+                            proc = new ProcessState(commonProc, pkgName, uid, procName, 0);
+                            if (!proc.readFromParcel(in, true)) {
+                                return;
+                            }
+                        }
+                        if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " process: "
+                                + procName + " " + uid + " " + proc);
+                        pkgState.mProcesses.put(procName, proc);
+                    } else {
+                        if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " process: "
+                                + procName + " " + uid + " " + commonProc);
+                        pkgState.mProcesses.put(procName, commonProc);
+                    }
+                }
+                int NSRVS = in.readInt();
+                if (NSRVS < 0) {
+                    mReadError = "bad package service count: " + NSRVS;
+                    return;
+                }
+                while (NSRVS > 0) {
+                    NSRVS--;
+                    String serviceName = in.readString();
+                    if (serviceName == null) {
+                        mReadError = "bad package service name";
+                        return;
+                    }
+                    ServiceState serv = hadData ? pkgState.mServices.get(serviceName) : null;
+                    if (serv == null) {
+                        serv = new ServiceState(this, pkgName, null);
+                    }
+                    if (!serv.readFromParcel(in)) {
+                        return;
+                    }
+                    if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " service: "
+                            + serviceName + " " + uid + " " + serv);
+                    pkgState.mServices.put(serviceName, serv);
+                }
+            }
+        }
+
+        if (DEBUG) Slog.d(TAG, "Successfully read procstats!");
+    }
+
+    int addLongData(int index, int type, int num) {
+        int tableLen = mAddLongTable != null ? mAddLongTable.length : 0;
+        if (mAddLongTableSize >= tableLen) {
+            int newSize = ArrayUtils.idealIntArraySize(tableLen + 1);
+            int[] newTable = new int[newSize];
+            if (tableLen > 0) {
+                System.arraycopy(mAddLongTable, 0, newTable, 0, tableLen);
+            }
+            mAddLongTable = newTable;
+        }
+        if (mAddLongTableSize > 0 && mAddLongTableSize - index != 0) {
+            System.arraycopy(mAddLongTable, index, mAddLongTable, index + 1,
+                    mAddLongTableSize - index);
+        }
+        int off = allocLongData(num);
+        mAddLongTable[index] = type | off;
+        mAddLongTableSize++;
+        return off;
+    }
+
+    int allocLongData(int num) {
+        int whichLongs = mLongs.size()-1;
+        long[] longs = mLongs.get(whichLongs);
+        if (mNextLong + num > longs.length) {
+            longs = new long[LONGS_SIZE];
+            mLongs.add(longs);
+            whichLongs++;
+            mNextLong = 0;
+        }
+        int off = (whichLongs<<OFFSET_ARRAY_SHIFT) | (mNextLong<<OFFSET_INDEX_SHIFT);
+        mNextLong += num;
+        return off;
+    }
+
+    boolean validateLongOffset(int off) {
+        int arr = (off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK;
+        if (arr >= mLongs.size()) {
+            return false;
+        }
+        int idx = (off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK;
+        if (idx >= LONGS_SIZE) {
+            return false;
+        }
+        if (DEBUG) Slog.d(TAG, "Validated long " + printLongOffset(off)
+                + ": " + getLong(off, 0));
+        return true;
+    }
+
+    static String printLongOffset(int off) {
+        StringBuilder sb = new StringBuilder(16);
+        sb.append("a"); sb.append((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+        sb.append("i"); sb.append((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK);
+        sb.append("t"); sb.append((off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK);
+        return sb.toString();
+    }
+
+    void setLong(int off, int index, long value) {
+        long[] longs = mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+        longs[index + ((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK)] = value;
+    }
+
+    long getLong(int off, int index) {
+        long[] longs = mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+        return longs[index + ((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK)];
+    }
+
+    static int binarySearch(int[] array, int size, int value) {
+        int lo = 0;
+        int hi = size - 1;
+
+        while (lo <= hi) {
+            int mid = (lo + hi) >>> 1;
+            int midVal = (array[mid] >> OFFSET_TYPE_SHIFT) & OFFSET_TYPE_MASK;
+
+            if (midVal < value) {
+                lo = mid + 1;
+            } else if (midVal > value) {
+                hi = mid - 1;
+            } else {
+                return mid;  // value found
+            }
+        }
+        return ~lo;  // value not present
+    }
+
+    public PackageState getPackageStateLocked(String packageName, int uid) {
+        PackageState as = mPackages.get(packageName, uid);
+        if (as != null) {
+            return as;
+        }
+        as = new PackageState(uid);
+        mPackages.put(packageName, uid, as);
+        return as;
+    }
+
+    public ProcessState getProcessStateLocked(String packageName, int uid, String processName) {
+        final PackageState pkgState = getPackageStateLocked(packageName, uid);
+        ProcessState ps = pkgState.mProcesses.get(processName);
+        if (ps != null) {
+            return ps;
+        }
+        ProcessState commonProc = mProcesses.get(processName, uid);
+        if (commonProc == null) {
+            commonProc = new ProcessState(this, packageName, uid, processName);
+            mProcesses.put(processName, uid, commonProc);
+        }
+        if (!commonProc.mMultiPackage) {
+            if (packageName.equals(commonProc.mPackage)) {
+                // This common process is not in use by multiple packages, and
+                // is for the calling package, so we can just use it directly.
+                ps = commonProc;
+            } else {
+                // This common process has not been in use by multiple packages,
+                // but it was created for a different package than the caller.
+                // We need to convert it to a multi-package process.
+                commonProc.mMultiPackage = true;
+                // The original package it was created for now needs to point
+                // to its own copy.
+                long now = SystemClock.uptimeMillis();
+                pkgState.mProcesses.put(commonProc.mName, commonProc.clone(
+                        commonProc.mPackage, now));
+                ps = new ProcessState(commonProc, packageName, uid, processName, now);
+            }
+        } else {
+            // The common process is for multiple packages, we need to create a
+            // separate object for the per-package data.
+            ps = new ProcessState(commonProc, packageName, uid, processName,
+                    SystemClock.uptimeMillis());
+        }
+        pkgState.mProcesses.put(processName, ps);
+        return ps;
+    }
+
+    public void dumpLocked(PrintWriter pw, String reqPackage, long now, boolean dumpAll) {
+        long totalTime = dumpSingleTime(null, null, mMemFactorDurations, mMemFactor,
+                mStartTime, now);
+        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
+        boolean printedHeader = false;
+        for (int ip=0; ip<pkgMap.size(); ip++) {
+            String pkgName = pkgMap.keyAt(ip);
+            if (reqPackage != null && !reqPackage.equals(pkgName)) {
+                continue;
+            }
+            SparseArray<PackageState> uids = pkgMap.valueAt(ip);
+            for (int iu=0; iu<uids.size(); iu++) {
+                int uid = uids.keyAt(iu);
+                PackageState pkgState = uids.valueAt(iu);
+                final int NPROCS = pkgState.mProcesses.size();
+                final int NSRVS = pkgState.mServices.size();
+                if (NPROCS > 0 || NSRVS > 0) {
+                    if (!printedHeader) {
+                        pw.println("Per-Package Process Stats:");
+                        printedHeader = true;
+                    }
+                    pw.print("  * "); pw.print(pkgName); pw.print(" / ");
+                            UserHandle.formatUid(pw, uid); pw.println(":");
+                }
+                if (dumpAll) {
+                    for (int iproc=0; iproc<NPROCS; iproc++) {
+                        ProcessState proc = pkgState.mProcesses.valueAt(iproc);
+                        pw.print("      Process ");
+                        pw.print(pkgState.mProcesses.keyAt(iproc));
+                        pw.print(" (");
+                        pw.print(proc.mDurationsTableSize);
+                        pw.print(" entries)");
+                        pw.println(":");
+                        dumpProcessState(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                                ALL_PROC_STATES, now);
+                        dumpProcessPss(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                                ALL_PROC_STATES);
+                        if (dumpAll) {
+                            pw.print("        mNumStartedServices=");
+                                    pw.println(proc.mNumStartedServices);
+                        }
+                    }
+                } else {
+                    ArrayList<ProcessState> procs = new ArrayList<ProcessState>();
+                    for (int iproc=0; iproc<NPROCS; iproc++) {
+                        procs.add(pkgState.mProcesses.valueAt(iproc));
+                    }
+                    dumpProcessSummaryLocked(pw, "      ", procs, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                            NON_CACHED_PROC_STATES, now, totalTime);
+                }
+                for (int isvc=0; isvc<NSRVS; isvc++) {
+                    if (dumpAll) {
+                        pw.print("      Service ");
+                    } else {
+                        pw.print("      * ");
+                    }
+                    pw.print(pkgState.mServices.keyAt(isvc));
+                    pw.println(":");
+                    ServiceState svc = pkgState.mServices.valueAt(isvc);
+                    dumpServiceStats(pw, "        ", "          ", "    ", "Started", svc,
+                            svc.mStartedCount, ServiceState.SERVICE_STARTED, svc.mStartedState,
+                            svc.mStartedStartTime, now, totalTime, dumpAll);
+                    dumpServiceStats(pw, "        ", "          ", "      ", "Bound", svc,
+                            svc.mBoundCount, ServiceState.SERVICE_BOUND, svc.mBoundState,
+                            svc.mBoundStartTime, now, totalTime, dumpAll);
+                    dumpServiceStats(pw, "        ", "          ", "  ", "Executing", svc,
+                            svc.mExecCount, ServiceState.SERVICE_EXEC, svc.mExecState,
+                            svc.mExecStartTime, now, totalTime, dumpAll);
+                }
+            }
+        }
+
+        if (reqPackage == null) {
+            ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
+            printedHeader = false;
+            for (int ip=0; ip<procMap.size(); ip++) {
+                String procName = procMap.keyAt(ip);
+                SparseArray<ProcessState> uids = procMap.valueAt(ip);
+                for (int iu=0; iu<uids.size(); iu++) {
+                    int uid = uids.keyAt(iu);
+                    ProcessState proc = uids.valueAt(iu);
+                    if (proc.mDurationsTableSize == 0 && proc.mCurState == STATE_NOTHING
+                            && proc.mPssTableSize == 0) {
+                        continue;
+                    }
+                    if (!printedHeader) {
+                        pw.println("Process Stats:");
+                        printedHeader = true;
+                    }
+                    pw.print("  * "); pw.print(procName); pw.print(" / ");
+                            UserHandle.formatUid(pw, uid);
+                            pw.print(" ("); pw.print(proc.mDurationsTableSize);
+                            pw.print(" entries)"); pw.println(":");
+                    dumpProcessState(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                            ALL_PROC_STATES, now);
+                    dumpProcessPss(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                            ALL_PROC_STATES);
+                }
+            }
+
+            pw.println();
+            pw.println("Summary:");
+            dumpSummaryLocked(pw, reqPackage, now);
+        } else {
+            pw.println();
+            dumpTotalsLocked(pw, now);
+        }
+
+        if (dumpAll) {
+            pw.println();
+            pw.println("Internal state:");
+            pw.print("  Num long arrays: "); pw.println(mLongs.size());
+            pw.print("  Next long entry: "); pw.println(mNextLong);
+            pw.print("  mRunning="); pw.println(mRunning);
+        }
+    }
+
+    static long dumpSingleServiceTime(PrintWriter pw, String prefix, ServiceState service,
+            int serviceType, int curState, long curStartTime, long now) {
+        long totalTime = 0;
+        int printedScreen = -1;
+        for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
+            int printedMem = -1;
+            for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
+                int state = imem+iscreen;
+                long time = service.getDuration(serviceType, curState, curStartTime,
+                        state, now);
+                String running = "";
+                if (curState == state) {
+                    time += now - curStartTime;
+                    if (pw != null) {
+                        running = " (running)";
+                    }
+                }
+                if (time != 0) {
+                    if (pw != null) {
+                        pw.print(prefix);
+                        printScreenLabel(pw, printedScreen != iscreen
+                                ? iscreen : STATE_NOTHING);
+                        printedScreen = iscreen;
+                        printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
+                        printedMem = imem;
+                        TimeUtils.formatDuration(time, pw); pw.println(running);
+                    }
+                    totalTime += time;
+                }
+            }
+        }
+        if (totalTime != 0 && pw != null) {
+            pw.print(prefix);
+            printScreenLabel(pw, STATE_NOTHING);
+            pw.print("TOTAL: ");
+            TimeUtils.formatDuration(totalTime, pw);
+            pw.println();
+        }
+        return totalTime;
+    }
+
+    void dumpServiceStats(PrintWriter pw, String prefix, String prefixInner,
+            String headerPrefix, String header, ServiceState service,
+            int count, int serviceType, int state, long startTime, long now, long totalTime,
+            boolean dumpAll) {
+        if (count != 0) {
+            if (dumpAll) {
+                pw.print(prefix); pw.print(header);
+                pw.print(" op count "); pw.print(count); pw.println(":");
+                dumpSingleServiceTime(pw, prefixInner, service, serviceType, state, startTime,
+                        now);
+            } else {
+                long myTime = dumpSingleServiceTime(null, null, service, serviceType, state,
+                        startTime, now);
+                pw.print(prefix); pw.print(headerPrefix); pw.print(header);
+                pw.print(" count "); pw.print(count);
+                pw.print(" / time ");
+                printPercent(pw, (double)myTime/(double)totalTime);
+                pw.println();
+            }
+        }
+    }
+
+    public void dumpSummaryLocked(PrintWriter pw, String reqPackage, long now) {
+        long totalTime = dumpSingleTime(null, null, mMemFactorDurations, mMemFactor,
+                mStartTime, now);
+        dumpFilteredSummaryLocked(pw, null, "  ", ALL_SCREEN_ADJ, ALL_MEM_ADJ,
+                NON_CACHED_PROC_STATES, now, totalTime, reqPackage);
+        pw.println();
+        dumpTotalsLocked(pw, now);
+    }
+
+    void dumpTotalsLocked(PrintWriter pw, long now) {
+        pw.println("Run time Stats:");
+        dumpSingleTime(pw, "  ", mMemFactorDurations, mMemFactor, mStartTime, now);
+        pw.println();
+        pw.print("          Start time: ");
+        pw.print(DateFormat.format("yyyy-MM-dd HH:mm:ss", mTimePeriodStartClock));
+        pw.println();
+        pw.print("  Total elapsed time: ");
+        TimeUtils.formatDuration(
+                (mRunning ? SystemClock.elapsedRealtime() : mTimePeriodEndRealtime)
+                        - mTimePeriodStartRealtime, pw);
+        boolean partial = true;
+        if ((mFlags&FLAG_SHUTDOWN) != 0) {
+            pw.print(" (shutdown)");
+            partial = false;
+        }
+        if ((mFlags&FLAG_SYSPROPS) != 0) {
+            pw.print(" (sysprops)");
+            partial = false;
+        }
+        if ((mFlags&FLAG_COMPLETE) != 0) {
+            pw.print(" (complete)");
+            partial = false;
+        }
+        if (partial) {
+            pw.print(" (partial)");
+        }
+        pw.print(' ');
+        pw.print(mRuntime);
+        pw.print(' ');
+        pw.print(mWebView);
+        pw.println();
+    }
+
+    void dumpFilteredSummaryLocked(PrintWriter pw, String header, String prefix,
+            int[] screenStates, int[] memStates, int[] procStates, long now, long totalTime,
+            String reqPackage) {
+        ArrayList<ProcessState> procs = collectProcessesLocked(screenStates, memStates,
+                procStates, now, reqPackage);
+        if (procs.size() > 0) {
+            if (header != null) {
+                pw.println();
+                pw.println(header);
+            }
+            dumpProcessSummaryLocked(pw, prefix, procs, screenStates, memStates, procStates,
+                    now, totalTime);
+        }
+    }
+
+    public ArrayList<ProcessState> collectProcessesLocked(int[] screenStates, int[] memStates,
+            int[] procStates, long now, String reqPackage) {
+        ArraySet<ProcessState> foundProcs = new ArraySet<ProcessState>();
+        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
+        for (int ip=0; ip<pkgMap.size(); ip++) {
+            if (reqPackage != null && !reqPackage.equals(pkgMap.keyAt(ip))) {
+                continue;
+            }
+            SparseArray<PackageState> procs = pkgMap.valueAt(ip);
+            for (int iu=0; iu<procs.size(); iu++) {
+                PackageState state = procs.valueAt(iu);
+                for (int iproc=0; iproc<state.mProcesses.size(); iproc++) {
+                    ProcessState proc = state.mProcesses.valueAt(iproc);
+                    foundProcs.add(proc.mCommonProcess);
+                }
+            }
+        }
+        ArrayList<ProcessState> outProcs = new ArrayList<ProcessState>(foundProcs.size());
+        for (int i=0; i<foundProcs.size(); i++) {
+            ProcessState proc = foundProcs.valueAt(i);
+            if (computeProcessTimeLocked(proc, screenStates, memStates,
+                    procStates, now) > 0) {
+                outProcs.add(proc);
+            }
+        }
+        Collections.sort(outProcs, new Comparator<ProcessState>() {
+            @Override
+            public int compare(ProcessState lhs, ProcessState rhs) {
+                if (lhs.mTmpTotalTime < rhs.mTmpTotalTime) {
+                    return -1;
+                } else if (lhs.mTmpTotalTime > rhs.mTmpTotalTime) {
+                    return 1;
+                }
+                return 0;
+            }
+        });
+        return outProcs;
+    }
+
+    String collapseString(String pkgName, String itemName) {
+        if (itemName.startsWith(pkgName)) {
+            final int ITEMLEN = itemName.length();
+            final int PKGLEN = pkgName.length();
+            if (ITEMLEN == PKGLEN) {
+                return "";
+            } else if (ITEMLEN >= PKGLEN) {
+                if (itemName.charAt(PKGLEN) == '.') {
+                    return itemName.substring(PKGLEN);
+                }
+            }
+        }
+        return itemName;
+    }
+
+    public void dumpCheckinLocked(PrintWriter pw, String reqPackage) {
+        final long now = SystemClock.uptimeMillis();
+        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
+        pw.println("vers,3");
+        pw.print("period,"); pw.print(mTimePeriodStartClockStr);
+        pw.print(","); pw.print(mTimePeriodStartRealtime); pw.print(",");
+        pw.print(mRunning ? SystemClock.elapsedRealtime() : mTimePeriodEndRealtime);
+        boolean partial = true;
+        if ((mFlags&FLAG_SHUTDOWN) != 0) {
+            pw.print(",shutdown");
+            partial = false;
+        }
+        if ((mFlags&FLAG_SYSPROPS) != 0) {
+            pw.print(",sysprops");
+            partial = false;
+        }
+        if ((mFlags&FLAG_COMPLETE) != 0) {
+            pw.print(",complete");
+            partial = false;
+        }
+        if (partial) {
+            pw.print(",partial");
+        }
+        pw.println();
+        pw.print("config,"); pw.print(mRuntime); pw.print(','); pw.println(mWebView);
+        for (int ip=0; ip<pkgMap.size(); ip++) {
+            String pkgName = pkgMap.keyAt(ip);
+            if (reqPackage != null && !reqPackage.equals(pkgName)) {
+                continue;
+            }
+            SparseArray<PackageState> uids = pkgMap.valueAt(ip);
+            for (int iu=0; iu<uids.size(); iu++) {
+                int uid = uids.keyAt(iu);
+                PackageState pkgState = uids.valueAt(iu);
+                final int NPROCS = pkgState.mProcesses.size();
+                final int NSRVS = pkgState.mServices.size();
+                for (int iproc=0; iproc<NPROCS; iproc++) {
+                    ProcessState proc = pkgState.mProcesses.valueAt(iproc);
+                    pw.print("pkgproc,");
+                    pw.print(pkgName);
+                    pw.print(",");
+                    pw.print(uid);
+                    pw.print(",");
+                    pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
+                    dumpAllProcessStateCheckin(pw, proc, now);
+                    pw.println();
+                    if (proc.mPssTableSize > 0) {
+                        pw.print("pkgpss,");
+                        pw.print(pkgName);
+                        pw.print(",");
+                        pw.print(uid);
+                        pw.print(",");
+                        pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
+                        dumpAllProcessPssCheckin(pw, proc);
+                        pw.println();
+                    }
+                    if (proc.mNumExcessiveWake > 0 || proc.mNumExcessiveCpu > 0) {
+                        pw.print("pkgkills,");
+                        pw.print(pkgName);
+                        pw.print(",");
+                        pw.print(uid);
+                        pw.print(",");
+                        pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
+                        pw.print(",");
+                        pw.print(proc.mNumExcessiveWake);
+                        pw.print(",");
+                        pw.print(proc.mNumExcessiveCpu);
+                        pw.println();
+                    }
+                }
+                for (int isvc=0; isvc<NSRVS; isvc++) {
+                    String serviceName = collapseString(pkgName,
+                            pkgState.mServices.keyAt(isvc));
+                    ServiceState svc = pkgState.mServices.valueAt(isvc);
+                    dumpServiceTimeCheckin(pw, "pkgsvc-start", pkgName, uid, serviceName,
+                            svc, ServiceState.SERVICE_STARTED, svc.mStartedCount,
+                            svc.mStartedState, svc.mStartedStartTime, now);
+                    dumpServiceTimeCheckin(pw, "pkgsvc-bound", pkgName, uid, serviceName,
+                            svc, ServiceState.SERVICE_BOUND, svc.mBoundCount,
+                            svc.mBoundState, svc.mBoundStartTime, now);
+                    dumpServiceTimeCheckin(pw, "pkgsvc-exec", pkgName, uid, serviceName,
+                            svc, ServiceState.SERVICE_EXEC, svc.mExecCount,
+                            svc.mExecState, svc.mExecStartTime, now);
+                }
+            }
+        }
+
+        ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
+        for (int ip=0; ip<procMap.size(); ip++) {
+            String procName = procMap.keyAt(ip);
+            SparseArray<ProcessState> uids = procMap.valueAt(ip);
+            for (int iu=0; iu<uids.size(); iu++) {
+                int uid = uids.keyAt(iu);
+                ProcessState procState = uids.valueAt(iu);
+                if (procState.mDurationsTableSize > 0) {
+                    pw.print("proc,");
+                    pw.print(procName);
+                    pw.print(",");
+                    pw.print(uid);
+                    dumpAllProcessStateCheckin(pw, procState, now);
+                    pw.println();
+                }
+                if (procState.mPssTableSize > 0) {
+                    pw.print("pss,");
+                    pw.print(procName);
+                    pw.print(",");
+                    pw.print(uid);
+                    dumpAllProcessPssCheckin(pw, procState);
+                    pw.println();
+                }
+                if (procState.mNumExcessiveWake > 0 || procState.mNumExcessiveCpu > 0) {
+                    pw.print("kills,");
+                    pw.print(procName);
+                    pw.print(",");
+                    pw.print(uid);
+                    pw.print(",");
+                    pw.print(procState.mNumExcessiveWake);
+                    pw.print(",");
+                    pw.print(procState.mNumExcessiveCpu);
+                    pw.println();
+                }
+            }
+        }
+        pw.print("total");
+        dumpAdjTimesCheckin(pw, ",", mMemFactorDurations, mMemFactor,
+                mStartTime, now);
+        pw.println();
+    }
+
+    public static final class ProcessState {
+        final ProcessStats mProcessStats;
+        final ProcessState mCommonProcess;
+        final String mPackage;
+        final int mUid;
+        final String mName;
+
+        int[] mDurationsTable;
+        int mDurationsTableSize;
+
+        //final long[] mDurations = new long[STATE_COUNT*ADJ_COUNT];
+        int mCurState = STATE_NOTHING;
+        long mStartTime;
+
+        int mLastPssState = STATE_NOTHING;
+        long mLastPssTime;
+        int[] mPssTable;
+        int mPssTableSize;
+
+        int mNumStartedServices;
+
+        int mNumExcessiveWake;
+        int mNumExcessiveCpu;
+
+        boolean mMultiPackage;
+
+        long mTmpTotalTime;
+
+        /**
+         * Create a new top-level process state, for the initial case where there is only
+         * a single package running in a process.  The initial state is not running.
+         */
+        public ProcessState(ProcessStats processStats, String pkg, int uid, String name) {
+            mProcessStats = processStats;
+            mCommonProcess = this;
+            mPackage = pkg;
+            mUid = uid;
+            mName = name;
+        }
+
+        /**
+         * Create a new per-package process state for an existing top-level process
+         * state.  The current running state of the top-level process is also copied,
+         * marked as started running at 'now'.
+         */
+        public ProcessState(ProcessState commonProcess, String pkg, int uid, String name,
+                long now) {
+            mProcessStats = commonProcess.mProcessStats;
+            mCommonProcess = commonProcess;
+            mPackage = pkg;
+            mUid = uid;
+            mName = name;
+            mCurState = commonProcess.mCurState;
+            mStartTime = now;
+        }
+
+        ProcessState clone(String pkg, long now) {
+            ProcessState pnew = new ProcessState(this, pkg, mUid, mName, now);
+            if (mDurationsTable != null) {
+                mProcessStats.mAddLongTable = new int[mDurationsTable.length];
+                mProcessStats.mAddLongTableSize = 0;
+                for (int i=0; i<mDurationsTableSize; i++) {
+                    int origEnt = mDurationsTable[i];
+                    int type = (origEnt>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
+                    int newOff = mProcessStats.addLongData(i, type, 1);
+                    mProcessStats.mAddLongTable[i] = newOff | type;
+                    mProcessStats.setLong(newOff, 0, mProcessStats.getLong(origEnt, 0));
+                }
+                pnew.mDurationsTable = mProcessStats.mAddLongTable;
+                pnew.mDurationsTableSize = mProcessStats.mAddLongTableSize;
+            }
+            if (mPssTable != null) {
+                mProcessStats.mAddLongTable = new int[mPssTable.length];
+                mProcessStats.mAddLongTableSize = 0;
+                for (int i=0; i<mPssTableSize; i++) {
+                    int origEnt = mPssTable[i];
+                    int type = (origEnt>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
+                    int newOff = mProcessStats.addLongData(i, type, PSS_COUNT);
+                    mProcessStats.mAddLongTable[i] = newOff | type;
+                    for (int j=0; j<PSS_COUNT; j++) {
+                        mProcessStats.setLong(newOff, j, mProcessStats.getLong(origEnt, j));
+                    }
+                }
+                pnew.mPssTable = mProcessStats.mAddLongTable;
+                pnew.mPssTableSize = mProcessStats.mAddLongTableSize;
+            }
+            pnew.mNumExcessiveWake = mNumExcessiveWake;
+            pnew.mNumExcessiveCpu = mNumExcessiveCpu;
+            pnew.mNumStartedServices = mNumStartedServices;
+            return pnew;
+        }
+
+        void resetSafely(long now) {
+            mDurationsTable = null;
+            mDurationsTableSize = 0;
+            mStartTime = now;
+            mLastPssState = STATE_NOTHING;
+            mLastPssTime = 0;
+            mPssTable = null;
+            mPssTableSize = 0;
+            mNumExcessiveWake = 0;
+            mNumExcessiveCpu = 0;
+        }
+
+        void writeToParcel(Parcel out, long now) {
+            commitStateTime(now);
+            out.writeInt(mMultiPackage ? 1 : 0);
+            out.writeInt(mDurationsTableSize);
+            for (int i=0; i<mDurationsTableSize; i++) {
+                if (DEBUG) Slog.i(TAG, "Writing in " + mName + " dur #" + i + ": "
+                        + printLongOffset(mDurationsTable[i]));
+                out.writeInt(mDurationsTable[i]);
+            }
+            out.writeInt(mPssTableSize);
+            for (int i=0; i<mPssTableSize; i++) {
+                if (DEBUG) Slog.i(TAG, "Writing in " + mName + " pss #" + i + ": "
+                        + printLongOffset(mPssTable[i]));
+                out.writeInt(mPssTable[i]);
+            }
+            out.writeInt(mNumExcessiveWake);
+            out.writeInt(mNumExcessiveCpu);
+        }
+
+        boolean readFromParcel(Parcel in, boolean fully) {
+            boolean multiPackage = in.readInt() != 0;
+            if (fully) {
+                mMultiPackage = multiPackage;
+            }
+            if (DEBUG) Slog.d(TAG, "Reading durations table...");
+            mDurationsTable = mProcessStats.readTableFromParcel(in, mName, "durations");
+            if (mDurationsTable == BAD_TABLE) {
+                return false;
+            }
+            mDurationsTableSize = mDurationsTable != null ? mDurationsTable.length : 0;
+            if (DEBUG) Slog.d(TAG, "Reading pss table...");
+            mPssTable = mProcessStats.readTableFromParcel(in, mName, "pss");
+            if (mPssTable == BAD_TABLE) {
+                return false;
+            }
+            mPssTableSize = mPssTable != null ? mPssTable.length : 0;
+            mNumExcessiveWake = in.readInt();
+            mNumExcessiveCpu = in.readInt();
+            return true;
+        }
+
+        /**
+         * Update the current state of the given list of processes.
+         *
+         * @param state Current ActivityManager.PROCESS_STATE_*
+         * @param memFactor Current mem factor constant.
+         * @param now Current time.
+         * @param pkgList Processes to update.
+         */
+        public void setState(int state, int memFactor, long now,
+                ArrayMap<String, ProcessState> pkgList) {
+            if (state < 0) {
+                state = mNumStartedServices > 0
+                        ? (STATE_SERVICE_RESTARTING+(memFactor*STATE_COUNT)) : STATE_NOTHING;
+            } else {
+                state = PROCESS_STATE_TO_STATE[state] + (memFactor*STATE_COUNT);
+            }
+
+            // First update the common process.
+            mCommonProcess.setState(state, now);
+
+            // If the common process is not multi-package, there is nothing else to do.
+            if (!mCommonProcess.mMultiPackage) {
+                return;
+            }
+
+            if (pkgList != null) {
+                for (int ip=pkgList.size()-1; ip>=0; ip--) {
+                    pullFixedProc(pkgList, ip).setState(state, now);
+                }
+            }
+        }
+
+        void setState(int state, long now) {
+            if (mCurState != state) {
+                //Slog.i(TAG, "Setting state in " + mName + "/" + mPackage + ": " + state);
+                commitStateTime(now);
+                mCurState = state;
+            }
+        }
+
+        void commitStateTime(long now) {
+            if (mCurState != STATE_NOTHING) {
+                long dur = now - mStartTime;
+                if (dur > 0) {
+                    int idx = binarySearch(mDurationsTable, mDurationsTableSize, mCurState);
+                    int off;
+                    if (idx >= 0) {
+                        off = mDurationsTable[idx];
+                    } else {
+                        mProcessStats.mAddLongTable = mDurationsTable;
+                        mProcessStats.mAddLongTableSize = mDurationsTableSize;
+                        off = mProcessStats.addLongData(~idx, mCurState, 1);
+                        mDurationsTable = mProcessStats.mAddLongTable;
+                        mDurationsTableSize = mProcessStats.mAddLongTableSize;
+                    }
+                    long[] longs = mProcessStats.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+                    longs[(off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK] += dur;
+                }
+            }
+            mStartTime = now;
+        }
+
+        void incStartedServices(int memFactor, long now) {
+            if (mCommonProcess != this) {
+                mCommonProcess.incStartedServices(memFactor, now);
+            }
+            mNumStartedServices++;
+            if (mNumStartedServices == 1 && mCurState == STATE_NOTHING) {
+                setState(STATE_NOTHING, memFactor, now, null);
+            }
+        }
+
+        void decStartedServices(int memFactor, long now) {
+            if (mCommonProcess != this) {
+                mCommonProcess.decStartedServices(memFactor, now);
+            }
+            mNumStartedServices--;
+            if (mNumStartedServices == 0 && mCurState == STATE_SERVICE_RESTARTING) {
+                setState(STATE_NOTHING, memFactor, now, null);
+            } else if (mNumStartedServices < 0) {
+                throw new IllegalStateException("Proc started services underrun: pkg="
+                        + mPackage + " uid=" + mUid + " name=" + mName);
+            }
+        }
+
+        public void addPss(long pss, long uss, boolean always) {
+            if (!always) {
+                if (mLastPssState == mCurState && SystemClock.uptimeMillis()
+                        < (mLastPssTime+(30*1000))) {
+                    return;
+                }
+            }
+            mLastPssState = mCurState;
+            mLastPssTime = SystemClock.uptimeMillis();
+            if (mCurState != STATE_NOTHING) {
+                int idx = binarySearch(mPssTable, mPssTableSize, mCurState);
+                int off;
+                if (idx >= 0) {
+                    off = mPssTable[idx];
+                } else {
+                    mProcessStats.mAddLongTable = mPssTable;
+                    mProcessStats.mAddLongTableSize = mPssTableSize;
+                    off = mProcessStats.addLongData(~idx, mCurState, PSS_COUNT);
+                    mPssTable = mProcessStats.mAddLongTable;
+                    mPssTableSize = mProcessStats.mAddLongTableSize;
+                }
+                long[] longs = mProcessStats.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+                idx = (off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK;
+                long count = longs[idx+PSS_SAMPLE_COUNT];
+                if (count == 0) {
+                    longs[idx+PSS_SAMPLE_COUNT] = 1;
+                    longs[idx+PSS_MINIMUM] = pss;
+                    longs[idx+PSS_AVERAGE] = pss;
+                    longs[idx+PSS_MAXIMUM] = pss;
+                    longs[idx+PSS_USS_MINIMUM] = uss;
+                    longs[idx+PSS_USS_AVERAGE] = uss;
+                    longs[idx+PSS_USS_MAXIMUM] = uss;
+                } else {
+                    longs[idx+PSS_SAMPLE_COUNT] = count+1;
+                    if (longs[idx+PSS_MINIMUM] > pss) {
+                        longs[idx+PSS_MINIMUM] = pss;
+                    }
+                    longs[idx+PSS_AVERAGE] = (long)(
+                            ((longs[idx+PSS_AVERAGE]*(double)count)+pss) / (count+1) );
+                    if (longs[idx+PSS_MAXIMUM] < pss) {
+                        longs[idx+PSS_MAXIMUM] = pss;
+                    }
+                    if (longs[idx+PSS_USS_MINIMUM] > uss) {
+                        longs[idx+PSS_USS_MINIMUM] = uss;
+                    }
+                    longs[idx+PSS_USS_AVERAGE] = (long)(
+                            ((longs[idx+PSS_USS_AVERAGE]*(double)count)+uss) / (count+1) );
+                    if (longs[idx+PSS_USS_MAXIMUM] < uss) {
+                        longs[idx+PSS_USS_MAXIMUM] = uss;
+                    }
+                }
+            }
+        }
+
+        public void reportExcessiveWake(ArrayMap<String, ProcessState> pkgList) {
+            mCommonProcess.mNumExcessiveWake++;
+            if (!mCommonProcess.mMultiPackage) {
+                return;
+            }
+
+            for (int ip=pkgList.size()-1; ip>=0; ip--) {
+                pullFixedProc(pkgList, ip).mNumExcessiveWake++;
+            }
+        }
+
+        public void reportExcessiveCpu(ArrayMap<String, ProcessState> pkgList) {
+            mCommonProcess.mNumExcessiveCpu++;
+            if (!mCommonProcess.mMultiPackage) {
+                return;
+            }
+
+            for (int ip=pkgList.size()-1; ip>=0; ip--) {
+                pullFixedProc(pkgList, ip).mNumExcessiveCpu++;
+            }
+        }
+
+        ProcessState pullFixedProc(String pkgName) {
+            if (mMultiPackage) {
+                // The array map is still pointing to a common process state
+                // that is now shared across packages.  Update it to point to
+                // the new per-package state.
+                ProcessState proc = mProcessStats.mPackages.get(pkgName,
+                        mUid).mProcesses.get(mName);
+                if (proc == null) {
+                    throw new IllegalStateException("Didn't create per-package process");
+                }
+                return proc;
+            }
+            return this;
+        }
+
+        private ProcessState pullFixedProc(ArrayMap<String, ProcessState> pkgList,
+                int index) {
+            ProcessState proc = pkgList.valueAt(index);
+            if (proc.mMultiPackage) {
+                // The array map is still pointing to a common process state
+                // that is now shared across packages.  Update it to point to
+                // the new per-package state.
+                proc = mProcessStats.mPackages.get(pkgList.keyAt(index),
+                        proc.mUid).mProcesses.get(proc.mName);
+                if (proc == null) {
+                    throw new IllegalStateException("Didn't create per-package process");
+                }
+                pkgList.setValueAt(index, proc);
+            }
+            return proc;
+        }
+
+        long getDuration(int state, long now) {
+            int idx = binarySearch(mDurationsTable, mDurationsTableSize, state);
+            long time = idx >= 0 ? mProcessStats.getLong(mDurationsTable[idx], 0) : 0;
+            if (mCurState == state) {
+                time += now - mStartTime;
+            }
+            return time;
+        }
+
+        long getPssSampleCount(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_SAMPLE_COUNT) : 0;
+        }
+
+        long getPssMinimum(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_MINIMUM) : 0;
+        }
+
+        long getPssAverage(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_AVERAGE) : 0;
+        }
+
+        long getPssMaximum(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_MAXIMUM) : 0;
+        }
+
+        long getPssUssMinimum(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_USS_MINIMUM) : 0;
+        }
+
+        long getPssUssAverage(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_USS_AVERAGE) : 0;
+        }
+
+        long getPssUssMaximum(int state) {
+            int idx = binarySearch(mPssTable, mPssTableSize, state);
+            return idx >= 0 ? mProcessStats.getLong(mPssTable[idx], PSS_USS_MAXIMUM) : 0;
+        }
+    }
+
+    public static final class ServiceState {
+        final ProcessStats mProcessStats;
+        final String mPackage;
+        ProcessState mProc;
+
+        int mActive = 1;
+
+        static final int SERVICE_STARTED = 0;
+        static final int SERVICE_BOUND = 1;
+        static final int SERVICE_EXEC = 2;
+        static final int SERVICE_COUNT = 3;
+
+        int[] mDurationsTable;
+        int mDurationsTableSize;
+
+        int mStartedCount;
+        public int mStartedState = STATE_NOTHING;
+        long mStartedStartTime;
+
+        int mBoundCount;
+        public int mBoundState = STATE_NOTHING;
+        long mBoundStartTime;
+
+        int mExecCount;
+        public int mExecState = STATE_NOTHING;
+        long mExecStartTime;
+
+        public ServiceState(ProcessStats processStats, String pkg, ProcessState proc) {
+            mProcessStats = processStats;
+            mPackage = pkg;
+            mProc = proc;
+        }
+
+        public void makeActive() {
+            mActive++;
+        }
+
+        public void makeInactive() {
+            /*
+            RuntimeException here = new RuntimeException("here");
+            here.fillInStackTrace();
+            Slog.i(TAG, "Making " + this + " inactive", here);
+            */
+            mActive--;
+        }
+
+        public boolean isActive() {
+            return mActive > 0;
+        }
+
+        void resetSafely(long now) {
+            mDurationsTable = null;
+            mDurationsTableSize = 0;
+            mStartedCount = mStartedState != STATE_NOTHING ? 1 : 0;
+            mBoundCount = mBoundState != STATE_NOTHING ? 1 : 0;
+            mExecCount = mExecState != STATE_NOTHING ? 1 : 0;
+            mStartedStartTime = mBoundStartTime = mExecStartTime = now;
+        }
+
+        void writeToParcel(Parcel out, long now) {
+            if (mStartedState != STATE_NOTHING) {
+                addStateTime(SERVICE_STARTED, mStartedState, now - mStartedStartTime);
+                mStartedStartTime = now;
+            }
+            if (mBoundState != STATE_NOTHING) {
+                addStateTime(SERVICE_BOUND, mBoundState, now - mBoundStartTime);
+                mBoundStartTime = now;
+            }
+            if (mExecState != STATE_NOTHING) {
+                addStateTime(SERVICE_EXEC, mExecState, now - mExecStartTime);
+                mExecStartTime = now;
+            }
+            out.writeInt(mDurationsTableSize);
+            for (int i=0; i<mDurationsTableSize; i++) {
+                if (DEBUG) Slog.i(TAG, "Writing service in " + mPackage + " dur #" + i + ": "
+                        + printLongOffset(mDurationsTable[i]));
+                out.writeInt(mDurationsTable[i]);
+            }
+            out.writeInt(mStartedCount);
+            out.writeInt(mBoundCount);
+            out.writeInt(mExecCount);
+        }
+
+        boolean readFromParcel(Parcel in) {
+            if (DEBUG) Slog.d(TAG, "Reading durations table...");
+            mDurationsTable = mProcessStats.readTableFromParcel(in, mPackage, "service");
+            if (mDurationsTable == BAD_TABLE) {
+                return false;
+            }
+            mDurationsTableSize = mDurationsTable != null ? mDurationsTable.length : 0;
+            mStartedCount = in.readInt();
+            mBoundCount = in.readInt();
+            mExecCount = in.readInt();
+            return true;
+        }
+
+        void addStateTime(int opType, int memFactor, long time) {
+            if (time > 0) {
+                int state = opType + (memFactor*SERVICE_COUNT);
+                int idx = binarySearch(mDurationsTable, mDurationsTableSize, state);
+                int off;
+                if (idx >= 0) {
+                    off = mDurationsTable[idx];
+                } else {
+                    mProcessStats.mAddLongTable = mDurationsTable;
+                    mProcessStats.mAddLongTableSize = mDurationsTableSize;
+                    off = mProcessStats.addLongData(~idx, state, 1);
+                    mDurationsTable = mProcessStats.mAddLongTable;
+                    mDurationsTableSize = mProcessStats.mAddLongTableSize;
+                }
+                long[] longs = mProcessStats.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
+                longs[(off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK] += time;
+            }
+        }
+
+        public void setStarted(boolean started, int memFactor, long now) {
+            if (mActive <= 0) {
+                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
+            }
+            int state = started ? memFactor : STATE_NOTHING;
+            if (mStartedState != state) {
+                if (mStartedState != STATE_NOTHING) {
+                    addStateTime(SERVICE_STARTED, mStartedState, now - mStartedStartTime);
+                } else if (started) {
+                    mStartedCount++;
+                }
+                mStartedState = state;
+                mStartedStartTime = now;
+                if (mProc != null) {
+                    mProc = mProc.pullFixedProc(mPackage);
+                    if (started) {
+                        mProc.incStartedServices(memFactor, now);
+                    } else {
+                        mProc.decStartedServices(memFactor, now);
+                    }
+                }
+            }
+        }
+
+        public void setBound(boolean bound, int memFactor, long now) {
+            if (mActive <= 0) {
+                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
+            }
+            int state = bound ? memFactor : STATE_NOTHING;
+            if (mBoundState != state) {
+                if (mBoundState != STATE_NOTHING) {
+                    addStateTime(SERVICE_BOUND, mBoundState, now - mBoundStartTime);
+                } else if (bound) {
+                    mBoundCount++;
+                }
+                mBoundState = state;
+                mBoundStartTime = now;
+            }
+        }
+
+        public void setExecuting(boolean executing, int memFactor, long now) {
+            if (mActive <= 0) {
+                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
+            }
+            int state = executing ? memFactor : STATE_NOTHING;
+            if (mExecState != state) {
+                if (mExecState != STATE_NOTHING) {
+                    addStateTime(SERVICE_EXEC, mExecState, now - mExecStartTime);
+                } else if (executing) {
+                    mExecCount++;
+                }
+                mExecState = state;
+                mExecStartTime = now;
+            }
+        }
+
+        long getStartDuration(int opType, int memFactor, long now) {
+            switch (opType) {
+                case SERVICE_STARTED:
+                    return getDuration(opType, mStartedState, mStartedStartTime, memFactor, now);
+                case SERVICE_BOUND:
+                    return getDuration(opType, mBoundState, mBoundStartTime, memFactor, now);
+                case SERVICE_EXEC:
+                    return getDuration(opType, mExecState, mExecStartTime, memFactor, now);
+                default:
+                    throw new IllegalArgumentException("Bad opType: " + opType);
+            }
+        }
+
+
+        private long getDuration(int opType, int curState, long startTime, int memFactor,
+                long now) {
+            int state = opType + (memFactor*SERVICE_COUNT);
+            int idx = binarySearch(mDurationsTable, mDurationsTableSize, state);
+            long time = idx >= 0 ? mProcessStats.getLong(mDurationsTable[idx], 0) : 0;
+            if (curState == memFactor) {
+                time += now - startTime;
+            }
+            return time;
+        }
+    }
+
+    public static final class PackageState {
+        public final ArrayMap<String, ProcessState> mProcesses
+                = new ArrayMap<String, ProcessState>();
+        public final ArrayMap<String, ServiceState> mServices
+                = new ArrayMap<String, ServiceState>();
+        final int mUid;
+
+        public PackageState(int uid) {
+            mUid = uid;
+        }
+    }
+
+    static final class ProcessDataCollection {
+        final int[] screenStates;
+        final int[] memStates;
+        final int[] procStates;
+
+        long totalTime;
+        long numPss;
+        long minPss;
+        long avgPss;
+        long maxPss;
+        long minUss;
+        long avgUss;
+        long maxUss;
+
+        ProcessDataCollection(int[] _screenStates, int[] _memStates, int[] _procStates) {
+            screenStates = _screenStates;
+            memStates = _memStates;
+            procStates = _procStates;
+        }
+
+        void print(PrintWriter pw, long overallTime, boolean full) {
+            printPercent(pw, (double) totalTime / (double) overallTime);
+            if (numPss > 0) {
+                pw.print(" (");
+                printSizeValue(pw, minPss * 1024);
+                pw.print("-");
+                printSizeValue(pw, avgPss * 1024);
+                pw.print("-");
+                printSizeValue(pw, maxPss * 1024);
+                pw.print("/");
+                printSizeValue(pw, minUss * 1024);
+                pw.print("-");
+                printSizeValue(pw, avgUss * 1024);
+                pw.print("-");
+                printSizeValue(pw, maxUss * 1024);
+                if (full) {
+                    pw.print(" over ");
+                    pw.print(numPss);
+                }
+                pw.print(")");
+            }
+        }
+    }
+}
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java
index 457539f..5f3f894 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/java/com/android/server/BatteryService.java
@@ -314,6 +314,8 @@
                     + ", batteryLevel=" + mBatteryProps.batteryLevel
                     + ", batteryTechnology=" + mBatteryProps.batteryTechnology
                     + ", batteryVoltage=" + mBatteryProps.batteryVoltage
+                    + ", batteryCurrentNow=" + mBatteryProps.batteryCurrentNow
+                    + ", batteryChargeCounter=" + mBatteryProps.batteryChargeCounter
                     + ", batteryTemperature=" + mBatteryProps.batteryTemperature
                     + ", mBatteryLevelCritical=" + mBatteryLevelCritical
                     + ", mPlugType=" + mPlugType);
@@ -613,7 +615,16 @@
                 pw.println("  present: " + mBatteryProps.batteryPresent);
                 pw.println("  level: " + mBatteryProps.batteryLevel);
                 pw.println("  scale: " + BATTERY_SCALE);
-                pw.println("  voltage:" + mBatteryProps.batteryVoltage);
+                pw.println("  voltage: " + mBatteryProps.batteryVoltage);
+
+                if (mBatteryProps.batteryCurrentNow != Integer.MIN_VALUE) {
+                    pw.println("  current now: " + mBatteryProps.batteryCurrentNow);
+                }
+
+                if (mBatteryProps.batteryChargeCounter != Integer.MIN_VALUE) {
+                    pw.println("  charge counter: " + mBatteryProps.batteryChargeCounter);
+                }
+
                 pw.println("  temperature: " + mBatteryProps.batteryTemperature);
                 pw.println("  technology: " + mBatteryProps.batteryTechnology);
             } else if (args.length == 3 && "set".equals(args[0])) {
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 17ae85f..3ae2eb5 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -56,13 +56,11 @@
 import android.net.INetworkStatsService;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
-import android.net.Uri;
 import android.net.LinkProperties.CompareResult;
 import android.net.MobileDataStateTracker;
 import android.net.NetworkConfig;
 import android.net.NetworkInfo;
 import android.net.NetworkInfo.DetailedState;
-import android.net.NetworkInfo.State;
 import android.net.NetworkQuotaInfo;
 import android.net.NetworkState;
 import android.net.NetworkStateTracker;
@@ -70,6 +68,7 @@
 import android.net.Proxy;
 import android.net.ProxyProperties;
 import android.net.RouteInfo;
+import android.net.Uri;
 import android.net.wifi.WifiStateTracker;
 import android.net.wimax.WimaxManagerConstants;
 import android.os.AsyncTask;
@@ -102,6 +101,7 @@
 import android.util.Xml;
 
 import com.android.internal.R;
+import com.android.internal.annotations.GuardedBy;
 import com.android.internal.net.LegacyVpnInfo;
 import com.android.internal.net.VpnConfig;
 import com.android.internal.net.VpnProfile;
@@ -110,9 +110,11 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.internal.util.XmlUtils;
+import com.android.net.IProxyService;
 import com.android.server.am.BatteryStatsService;
 import com.android.server.connectivity.DataConnectionStats;
 import com.android.server.connectivity.Nat464Xlat;
+import com.android.server.connectivity.PacManager;
 import com.android.server.connectivity.Tethering;
 import com.android.server.connectivity.Vpn;
 import com.android.server.net.BaseNetworkObserver;
@@ -120,8 +122,6 @@
 import com.google.android.collect.Lists;
 import com.google.android.collect.Sets;
 
-import com.android.internal.annotations.GuardedBy;
-
 import dalvik.system.DexClassLoader;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -370,6 +370,8 @@
     // track the global proxy.
     private ProxyProperties mGlobalProxy = null;
 
+    private PacManager mPacManager = null;
+
     private SettingsObserver mSettingsObserver;
 
     NetworkConfig[] mNetConfigs;
@@ -631,6 +633,8 @@
 
         mDataConnectionStats = new DataConnectionStats(mContext);
         mDataConnectionStats.startMonitoring();
+
+        mPacManager = new PacManager(mContext);
     }
 
     /**
@@ -3168,13 +3172,15 @@
         // of proxy info to all the JVMs.
         // enforceAccessPermission();
         synchronized (mProxyLock) {
-            if (mGlobalProxy != null) return mGlobalProxy;
-            return (mDefaultProxyDisabled ? null : mDefaultProxy);
+            ProxyProperties ret = mGlobalProxy;
+            if ((ret == null) && !mDefaultProxyDisabled) ret = mDefaultProxy;
+            return ret;
         }
     }
 
     public void setGlobalProxy(ProxyProperties proxyProperties) {
         enforceConnectivityInternalPermission();
+
         synchronized (mProxyLock) {
             if (proxyProperties == mGlobalProxy) return;
             if (proxyProperties != null && proxyProperties.equals(mGlobalProxy)) return;
@@ -3183,11 +3189,16 @@
             String host = "";
             int port = 0;
             String exclList = "";
-            if (proxyProperties != null && !TextUtils.isEmpty(proxyProperties.getHost())) {
+            String pacFileUrl = "";
+            if (proxyProperties != null && (!TextUtils.isEmpty(proxyProperties.getHost()) ||
+                    !TextUtils.isEmpty(proxyProperties.getPacFileUrl()))) {
                 mGlobalProxy = new ProxyProperties(proxyProperties);
                 host = mGlobalProxy.getHost();
                 port = mGlobalProxy.getPort();
                 exclList = mGlobalProxy.getExclusionList();
+                if (proxyProperties.getPacFileUrl() != null) {
+                    pacFileUrl = proxyProperties.getPacFileUrl();
+                }
             } else {
                 mGlobalProxy = null;
             }
@@ -3198,6 +3209,7 @@
                 Settings.Global.putInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, port);
                 Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST,
                         exclList);
+                Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_PAC, pacFileUrl);
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
@@ -3215,8 +3227,14 @@
         int port = Settings.Global.getInt(res, Settings.Global.GLOBAL_HTTP_PROXY_PORT, 0);
         String exclList = Settings.Global.getString(res,
                 Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST);
-        if (!TextUtils.isEmpty(host)) {
-            ProxyProperties proxyProperties = new ProxyProperties(host, port, exclList);
+        String pacFileUrl = Settings.Global.getString(res, Settings.Global.GLOBAL_HTTP_PROXY_PAC);
+        if (!TextUtils.isEmpty(host) || !TextUtils.isEmpty(pacFileUrl)) {
+            ProxyProperties proxyProperties;
+            if (!TextUtils.isEmpty(pacFileUrl)) {
+                proxyProperties = new ProxyProperties(pacFileUrl);
+            } else {
+                proxyProperties = new ProxyProperties(host, port, exclList);
+            }
             synchronized (mProxyLock) {
                 mGlobalProxy = proxyProperties;
             }
@@ -3234,7 +3252,8 @@
     }
 
     private void handleApplyDefaultProxy(ProxyProperties proxy) {
-        if (proxy != null && TextUtils.isEmpty(proxy.getHost())) {
+        if (proxy != null && TextUtils.isEmpty(proxy.getHost())
+                && TextUtils.isEmpty(proxy.getPacFileUrl())) {
             proxy = null;
         }
         synchronized (mProxyLock) {
@@ -3276,6 +3295,7 @@
 
     private void sendProxyBroadcast(ProxyProperties proxy) {
         if (proxy == null) proxy = new ProxyProperties("", 0, "");
+        mPacManager.setCurrentProxyScriptUrl(proxy);
         if (DBG) log("sending Proxy Broadcast for " + proxy);
         Intent intent = new Intent(Proxy.PROXY_CHANGE_ACTION);
         intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index da584e2..f442f11 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -969,19 +969,25 @@
     }
 
     /**
-     * @param imi if null, returns enabled subtypes for the current imi
+     * @param imiId if null, returns enabled subtypes for the current imi
      * @return enabled subtypes of the specified imi
      */
     @Override
-    public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi,
+    public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(String imiId,
             boolean allowsImplicitlySelectedSubtypes) {
         // TODO: Make this work even for non-current users?
         if (!calledFromValidUser()) {
-            return Collections.emptyList();
+            return Collections.<InputMethodSubtype>emptyList();
         }
         synchronized (mMethodMap) {
-            if (imi == null && mCurMethodId != null) {
+            final InputMethodInfo imi;
+            if (imiId == null && mCurMethodId != null) {
                 imi = mMethodMap.get(mCurMethodId);
+            } else {
+                imi = mMethodMap.get(imiId);
+            }
+            if (imi == null) {
+                return Collections.<InputMethodSubtype>emptyList();
             }
             return mSettings.getEnabledInputMethodSubtypeListLocked(
                     mContext, imi, allowsImplicitlySelectedSubtypes);
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java
index f3aabe2..b96cf92 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/java/com/android/server/am/ActiveServices.java
@@ -26,6 +26,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import com.android.internal.app.ProcessStats;
 import com.android.internal.os.BatteryStatsImpl;
 import com.android.internal.os.TransferPipe;
 import com.android.server.am.ActivityManagerService.ItemMatcher;
@@ -251,9 +252,9 @@
         }
         r.lastActivity = SystemClock.uptimeMillis();
         r.startRequested = true;
-        ProcessTracker.ServiceState stracker = r.getTracker();
+        ProcessStats.ServiceState stracker = r.getTracker();
         if (stracker != null) {
-            stracker.setStarted(true, mAm.mProcessTracker.getMemFactorLocked(), r.lastActivity);
+            stracker.setStarted(true, mAm.mProcessStats.getMemFactorLocked(), r.lastActivity);
         }
         r.callStart = false;
         r.pendingStarts.add(new ServiceRecord.StartItem(r, false, r.makeNextStartId(),
@@ -274,7 +275,7 @@
         }
         service.startRequested = false;
         if (service.tracker != null) {
-            service.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(),
+            service.tracker.setStarted(false, mAm.mProcessStats.getMemFactorLocked(),
                     SystemClock.uptimeMillis());
         }
         service.callStart = false;
@@ -374,7 +375,7 @@
             }
             r.startRequested = false;
             if (r.tracker != null) {
-                r.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(),
+                r.tracker.setStarted(false, mAm.mProcessStats.getMemFactorLocked(),
                         SystemClock.uptimeMillis());
             }
             r.callStart = false;
@@ -516,9 +517,9 @@
                 s.lastActivity = SystemClock.uptimeMillis();
                 if (!s.hasAutoCreateConnections()) {
                     // This is the first binding, let the tracker know.
-                    ProcessTracker.ServiceState stracker = s.getTracker();
+                    ProcessStats.ServiceState stracker = s.getTracker();
                     if (stracker != null) {
-                        stracker.setBound(true, mAm.mProcessTracker.getMemFactorLocked(),
+                        stracker.setBound(true, mAm.mProcessStats.getMemFactorLocked(),
                                 s.lastActivity);
                     }
                 }
@@ -831,6 +832,10 @@
                         + " requires " + r.permission);
                 return new ServiceLookupResult(null, r.permission);
             }
+            if (!mAm.mIntentFirewall.checkService(r.name, service, callingUid, callingPid,
+                    resolvedType, r.appInfo)) {
+                return null;
+            }
             return new ServiceLookupResult(r, null);
         }
         return null;
@@ -844,9 +849,9 @@
         long now = SystemClock.uptimeMillis();
         if (r.executeNesting == 0) {
             r.executeFg = fg;
-            ProcessTracker.ServiceState stracker = r.getTracker();
+            ProcessStats.ServiceState stracker = r.getTracker();
             if (stracker != null) {
-                stracker.setExecuting(true, mAm.mProcessTracker.getMemFactorLocked(), now);
+                stracker.setExecuting(true, mAm.mProcessStats.getMemFactorLocked(), now);
             }
             if (r.app != null) {
                 if (r.app.executingServices.size() == 0) {
@@ -1079,7 +1084,7 @@
                 Slog.v(TAG_MU, "bringUpServiceLocked: appInfo.uid=" + r.appInfo.uid + " app=" + app);
             if (app != null && app.thread != null) {
                 try {
-                    app.addPackage(r.appInfo.packageName, mAm.mProcessTracker);
+                    app.addPackage(r.appInfo.packageName, mAm.mProcessStats);
                     realStartServiceLocked(r, app, execInFg);
                     return null;
                 } catch (RemoteException e) {
@@ -1364,7 +1369,7 @@
            ((ServiceRestarter)r.restarter).setService(null);
         }
 
-        int memFactor = mAm.mProcessTracker.getMemFactorLocked();
+        int memFactor = mAm.mProcessStats.getMemFactorLocked();
         long now = SystemClock.uptimeMillis();
         if (r.tracker != null) {
             r.tracker.setStarted(false, memFactor, now);
@@ -1435,7 +1440,7 @@
                 boolean hasAutoCreate = s.hasAutoCreateConnections();
                 if (!hasAutoCreate) {
                     if (s.tracker != null) {
-                        s.tracker.setBound(false, mAm.mProcessTracker.getMemFactorLocked(),
+                        s.tracker.setBound(false, mAm.mProcessStats.getMemFactorLocked(),
                                 SystemClock.uptimeMillis());
                     }
                 }
@@ -1541,7 +1546,7 @@
             }
             r.executeFg = false;
             if (r.tracker != null) {
-                r.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(),
+                r.tracker.setExecuting(false, mAm.mProcessStats.getMemFactorLocked(),
                         SystemClock.uptimeMillis());
                 if (inStopping) {
                     r.tracker.makeInactive();
@@ -1566,7 +1571,7 @@
 
                     mPendingServices.remove(i);
                     i--;
-                    proc.addPackage(sr.appInfo.packageName, mAm.mProcessTracker);
+                    proc.addPackage(sr.appInfo.packageName, mAm.mProcessStats);
                     realStartServiceLocked(sr, proc, sr.createdFromFg);
                     didSomething = true;
                 }
@@ -1737,7 +1742,7 @@
             sr.isolatedProc = null;
             sr.executeNesting = 0;
             if (sr.tracker != null) {
-                sr.tracker.setExecuting(false, mAm.mProcessTracker.getMemFactorLocked(),
+                sr.tracker.setExecuting(false, mAm.mProcessStats.getMemFactorLocked(),
                         SystemClock.uptimeMillis());
             }
             if (mStoppingServices.remove(sr)) {
@@ -1772,7 +1777,7 @@
                     if (sr.pendingStarts.size() == 0) {
                         sr.startRequested = false;
                         if (sr.tracker != null) {
-                            sr.tracker.setStarted(false, mAm.mProcessTracker.getMemFactorLocked(),
+                            sr.tracker.setStarted(false, mAm.mProcessStats.getMemFactorLocked(),
                                     SystemClock.uptimeMillis());
                         }
                         if (!sr.hasAutoCreateConnections()) {
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index a164ad1..3d8843e 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -30,10 +30,11 @@
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.app.IAppOpsService;
+import com.android.internal.app.ProcessStats;
 import com.android.internal.app.ResolverActivity;
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.os.BatteryStatsImpl;
-import com.android.internal.os.ProcessStats;
+import com.android.internal.os.ProcessCpuTracker;
 import com.android.internal.os.TransferPipe;
 import com.android.internal.util.FastPrintWriter;
 import com.android.internal.util.FastXmlSerializer;
@@ -438,7 +439,7 @@
      * Tracking long-term execution of processes to look for abuse and other
      * bad app behavior.
      */
-    final ProcessTracker mProcessTracker;
+    final ProcessStatsService mProcessStats;
 
     /**
      * The currently running isolated processes.
@@ -910,19 +911,19 @@
             = new ArrayList<ProcessChangeItem>();
 
     /**
-     * Runtime statistics collection thread.  This object's lock is used to
+     * Runtime CPU use collection thread.  This object's lock is used to
      * protect all related state.
      */
-    final Thread mProcessStatsThread;
+    final Thread mProcessCpuThread;
 
     /**
      * Used to collect process stats when showing not responding dialog.
-     * Protected by mProcessStatsThread.
+     * Protected by mProcessCpuThread.
      */
-    final ProcessStats mProcessStats = new ProcessStats(
+    final ProcessCpuTracker mProcessCpuTracker = new ProcessCpuTracker(
             MONITOR_THREAD_CPU_USAGE);
     final AtomicLong mLastCpuTime = new AtomicLong(0);
-    final AtomicBoolean mProcessStatsMutexFree = new AtomicBoolean(true);
+    final AtomicBoolean mProcessCpuMutexFree = new AtomicBoolean(true);
 
     long mLastWriteTime = 0;
 
@@ -1202,17 +1203,19 @@
                 String host = "";
                 String port = "";
                 String exclList = "";
+                String pacFileUrl = null;
                 if (proxy != null) {
                     host = proxy.getHost();
                     port = Integer.toString(proxy.getPort());
                     exclList = proxy.getExclusionList();
+                    pacFileUrl = proxy.getPacFileUrl();
                 }
                 synchronized (ActivityManagerService.this) {
                     for (int i = mLruProcesses.size() - 1 ; i >= 0 ; i--) {
                         ProcessRecord r = mLruProcesses.get(i);
                         if (r.thread != null) {
                             try {
-                                r.thread.setHttpProxy(host, port, exclList);
+                                r.thread.setHttpProxy(host, port, exclList, pacFileUrl);
                             } catch (RemoteException ex) {
                                 Slog.w(TAG, "Failed to update http proxy for: " +
                                         r.info.processName);
@@ -1764,9 +1767,9 @@
                 return;
             }
 
-            synchronized (mActivityManagerService.mProcessStatsThread) {
-                pw.print(mActivityManagerService.mProcessStats.printCurrentLoad());
-                pw.print(mActivityManagerService.mProcessStats.printCurrentState(
+            synchronized (mActivityManagerService.mProcessCpuThread) {
+                pw.print(mActivityManagerService.mProcessCpuTracker.printCurrentLoad());
+                pw.print(mActivityManagerService.mProcessCpuTracker.printCurrentState(
                         SystemClock.uptimeMillis()));
             }
         }
@@ -1788,7 +1791,7 @@
                 return;
             }
 
-            mActivityManagerService.mProcessTracker.dump(fd, pw, args);
+            mActivityManagerService.mProcessStats.dump(fd, pw, args);
         }
     }
 
@@ -1814,7 +1817,7 @@
                 : mBatteryStatsService.getActiveStatistics().getIsOnBattery();
         mBatteryStatsService.getActiveStatistics().setCallback(this);
 
-        mProcessTracker = new ProcessTracker(this, new File(systemDir, "procstats"));
+        mProcessStats = new ProcessStatsService(this, new File(systemDir, "procstats"));
 
         mUsageStatsService = new UsageStatsService(new File(systemDir, "usagestats").toString());
         mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml"));
@@ -1835,14 +1838,14 @@
         mConfiguration.setLocale(Locale.getDefault());
 
         mConfigurationSeq = mConfiguration.seq = 1;
-        mProcessStats.init();
+        mProcessCpuTracker.init();
 
         mCompatModePackages = new CompatModePackages(this, systemDir);
 
         // Add ourself to the Watchdog monitors.
         Watchdog.getInstance().addMonitor(this);
 
-        mProcessStatsThread = new Thread("ProcessStats") {
+        mProcessCpuThread = new Thread("CpuTracker") {
             @Override
             public void run() {
                 while (true) {
@@ -1858,7 +1861,7 @@
                                     nextCpuDelay = nextWriteDelay;
                                 }
                                 if (nextCpuDelay > 0) {
-                                    mProcessStatsMutexFree.set(true);
+                                    mProcessCpuMutexFree.set(true);
                                     this.wait(nextCpuDelay);
                                 }
                             }
@@ -1871,7 +1874,7 @@
                 }
             }
         };
-        mProcessStatsThread.start();
+        mProcessCpuThread.start();
     }
 
     @Override
@@ -1921,16 +1924,16 @@
         if (mLastCpuTime.get() >= now - MONITOR_CPU_MIN_TIME) {
             return;
         }
-        if (mProcessStatsMutexFree.compareAndSet(true, false)) {
-            synchronized (mProcessStatsThread) {
-                mProcessStatsThread.notify();
+        if (mProcessCpuMutexFree.compareAndSet(true, false)) {
+            synchronized (mProcessCpuThread) {
+                mProcessCpuThread.notify();
             }
         }
     }
 
     void updateCpuStatsNow() {
-        synchronized (mProcessStatsThread) {
-            mProcessStatsMutexFree.set(false);
+        synchronized (mProcessCpuThread) {
+            mProcessCpuMutexFree.set(false);
             final long now = SystemClock.uptimeMillis();
             boolean haveNewCpuStats = false;
 
@@ -1938,19 +1941,19 @@
                     mLastCpuTime.get() < (now-MONITOR_CPU_MIN_TIME)) {
                 mLastCpuTime.set(now);
                 haveNewCpuStats = true;
-                mProcessStats.update();
-                //Slog.i(TAG, mProcessStats.printCurrentState());
+                mProcessCpuTracker.update();
+                //Slog.i(TAG, mProcessCpu.printCurrentState());
                 //Slog.i(TAG, "Total CPU usage: "
-                //        + mProcessStats.getTotalCpuPercent() + "%");
+                //        + mProcessCpu.getTotalCpuPercent() + "%");
 
                 // Slog the cpu usage if the property is set.
                 if ("true".equals(SystemProperties.get("events.cpu"))) {
-                    int user = mProcessStats.getLastUserTime();
-                    int system = mProcessStats.getLastSystemTime();
-                    int iowait = mProcessStats.getLastIoWaitTime();
-                    int irq = mProcessStats.getLastIrqTime();
-                    int softIrq = mProcessStats.getLastSoftIrqTime();
-                    int idle = mProcessStats.getLastIdleTime();
+                    int user = mProcessCpuTracker.getLastUserTime();
+                    int system = mProcessCpuTracker.getLastSystemTime();
+                    int iowait = mProcessCpuTracker.getLastIoWaitTime();
+                    int irq = mProcessCpuTracker.getLastIrqTime();
+                    int softIrq = mProcessCpuTracker.getLastSoftIrqTime();
+                    int idle = mProcessCpuTracker.getLastIdleTime();
 
                     int total = user + system + iowait + irq + softIrq + idle;
                     if (total == 0) total = 1;
@@ -1965,7 +1968,7 @@
                 }
             }
 
-            long[] cpuSpeedTimes = mProcessStats.getLastCpuSpeedTimes();
+            long[] cpuSpeedTimes = mProcessCpuTracker.getLastCpuSpeedTimes();
             final BatteryStatsImpl bstats = mBatteryStatsService.getActiveStatistics();
             synchronized(bstats) {
                 synchronized(mPidsSelfLocked) {
@@ -1974,9 +1977,9 @@
                             int perc = bstats.startAddingCpuLocked();
                             int totalUTime = 0;
                             int totalSTime = 0;
-                            final int N = mProcessStats.countStats();
+                            final int N = mProcessCpuTracker.countStats();
                             for (int i=0; i<N; i++) {
-                                ProcessStats.Stats st = mProcessStats.getStats(i);
+                                ProcessCpuTracker.Stats st = mProcessCpuTracker.getStats(i);
                                 if (!st.working) {
                                     continue;
                                 }
@@ -2252,7 +2255,7 @@
                 // come up (we have a pid but not yet its thread), so keep it.
                 if (DEBUG_PROCESSES) Slog.v(TAG, "App already running: " + app);
                 // If this is a new package in the process, add the package to the list
-                app.addPackage(info.packageName, mProcessTracker);
+                app.addPackage(info.packageName, mProcessStats);
                 return app;
             }
 
@@ -2307,7 +2310,7 @@
             }
         } else {
             // If this is a new package in the process, add the package to the list
-            app.addPackage(info.packageName, mProcessTracker);
+            app.addPackage(info.packageName, mProcessStats);
         }
 
         // If the system is not ready yet, then hold off on starting this
@@ -3387,7 +3390,7 @@
      * @return file containing stack traces, or null if no dump file is configured
      */
     public static File dumpStackTraces(boolean clearTraces, ArrayList<Integer> firstPids,
-            ProcessStats processStats, SparseArray<Boolean> lastPids, String[] nativeProcs) {
+            ProcessCpuTracker processCpuTracker, SparseArray<Boolean> lastPids, String[] nativeProcs) {
         String tracesPath = SystemProperties.get("dalvik.vm.stack-trace-file", null);
         if (tracesPath == null || tracesPath.length() == 0) {
             return null;
@@ -3412,12 +3415,12 @@
             return null;
         }
 
-        dumpStackTraces(tracesPath, firstPids, processStats, lastPids, nativeProcs);
+        dumpStackTraces(tracesPath, firstPids, processCpuTracker, lastPids, nativeProcs);
         return tracesFile;
     }
 
     private static void dumpStackTraces(String tracesPath, ArrayList<Integer> firstPids,
-            ProcessStats processStats, SparseArray<Boolean> lastPids, String[] nativeProcs) {
+            ProcessCpuTracker processCpuTracker, SparseArray<Boolean> lastPids, String[] nativeProcs) {
         // Use a FileObserver to detect when traces finish writing.
         // The order of traces is considered important to maintain for legibility.
         FileObserver observer = new FileObserver(tracesPath, FileObserver.CLOSE_WRITE) {
@@ -3444,23 +3447,23 @@
             }
 
             // Next measure CPU usage.
-            if (processStats != null) {
-                processStats.init();
+            if (processCpuTracker != null) {
+                processCpuTracker.init();
                 System.gc();
-                processStats.update();
+                processCpuTracker.update();
                 try {
-                    synchronized (processStats) {
-                        processStats.wait(500); // measure over 1/2 second.
+                    synchronized (processCpuTracker) {
+                        processCpuTracker.wait(500); // measure over 1/2 second.
                     }
                 } catch (InterruptedException e) {
                 }
-                processStats.update();
+                processCpuTracker.update();
 
                 // We'll take the stack crawls of just the top apps using CPU.
-                final int N = processStats.countWorkingStats();
+                final int N = processCpuTracker.countWorkingStats();
                 int numProcs = 0;
                 for (int i=0; i<N && numProcs<5; i++) {
-                    ProcessStats.Stats stats = processStats.getWorkingStats(i);
+                    ProcessCpuTracker.Stats stats = processCpuTracker.getWorkingStats(i);
                     if (lastPids.indexOfKey(stats.pid) >= 0) {
                         numProcs++;
                         try {
@@ -3648,21 +3651,21 @@
             info.append("Parent: ").append(parent.shortComponentName).append("\n");
         }
 
-        final ProcessStats processStats = new ProcessStats(true);
+        final ProcessCpuTracker processCpuTracker = new ProcessCpuTracker(true);
 
-        File tracesFile = dumpStackTraces(true, firstPids, processStats, lastPids, null);
+        File tracesFile = dumpStackTraces(true, firstPids, processCpuTracker, lastPids, null);
 
         String cpuInfo = null;
         if (MONITOR_CPU_USAGE) {
             updateCpuStatsNow();
-            synchronized (mProcessStatsThread) {
-                cpuInfo = mProcessStats.printCurrentState(anrTime);
+            synchronized (mProcessCpuThread) {
+                cpuInfo = mProcessCpuTracker.printCurrentState(anrTime);
             }
-            info.append(processStats.printCurrentLoad());
+            info.append(processCpuTracker.printCurrentLoad());
             info.append(cpuInfo);
         }
 
-        info.append(processStats.printCurrentState(anrTime));
+        info.append(processCpuTracker.printCurrentState(anrTime));
 
         Slog.e(TAG, info.toString());
         if (tracesFile == null) {
@@ -4493,7 +4496,7 @@
             thread.asBinder().linkToDeath(adr, 0);
             app.deathRecipient = adr;
         } catch (RemoteException e) {
-            app.resetPackageList(mProcessTracker);
+            app.resetPackageList(mProcessStats);
             startProcessLocked(app, "link fail", processName);
             return false;
         }
@@ -4585,7 +4588,7 @@
             // an infinite loop of restarting processes...
             Slog.w(TAG, "Exception thrown during bind!", e);
 
-            app.resetPackageList(mProcessTracker);
+            app.resetPackageList(mProcessStats);
             app.unlinkDeathRecipient();
             startProcessLocked(app, "bind fail", processName);
             return false;
@@ -6801,7 +6804,7 @@
                 if (DEBUG_MU)
                     Slog.v(TAG_MU, "generateApplicationProvidersLocked, cpi.uid = " + cpr.uid);
                 app.pubProviders.put(cpi.name, cpr);
-                app.addPackage(cpi.applicationInfo.packageName, mProcessTracker);
+                app.addPackage(cpi.applicationInfo.packageName, mProcessStats);
                 ensurePackageDexOpt(cpi.applicationInfo.packageName);
             }
         }
@@ -7539,7 +7542,7 @@
             ps = stats.getProcessStatsLocked(info.uid, proc);
         }
         return new ProcessRecord(ps, thread, info, proc, uid,
-                mProcessTracker.getProcessStateLocked(info.packageName, info.uid, proc));
+                mProcessStats.getProcessStateLocked(info.packageName, info.uid, proc));
     }
 
     final ProcessRecord addAppLocked(ApplicationInfo info, boolean isolated) {
@@ -7679,7 +7682,7 @@
         mUsageStatsService.shutdown();
         mBatteryStatsService.shutdown();
         synchronized (this) {
-            mProcessTracker.shutdownLocked();
+            mProcessStats.shutdownLocked();
         }
 
         return timedout;
@@ -11734,7 +11737,7 @@
         app.crashing = false;
         app.notResponding = false;
         
-        app.resetPackageList(mProcessTracker);
+        app.resetPackageList(mProcessStats);
         app.unlinkDeathRecipient();
         app.thread = null;
         app.forcingToForeground = null;
@@ -12439,7 +12442,7 @@
                     Intent intent = (Intent)allSticky.get(i);
                     BroadcastQueue queue = broadcastQueueForIntent(intent);
                     BroadcastRecord r = new BroadcastRecord(queue, intent, null,
-                            null, -1, -1, null, AppOpsManager.OP_NONE, receivers, null, 0,
+                            null, -1, -1, null, null, AppOpsManager.OP_NONE, receivers, null, 0,
                             null, null, false, true, true, -1);
                     queue.enqueueParallelBroadcastLocked(r);
                     queue.scheduleBroadcastsLocked();
@@ -12872,8 +12875,8 @@
             // components to be launched.
             final BroadcastQueue queue = broadcastQueueForIntent(intent);
             BroadcastRecord r = new BroadcastRecord(queue, intent, callerApp,
-                    callerPackage, callingPid, callingUid, requiredPermission, appOp,
-                    registeredReceivers, resultTo, resultCode, resultData, map,
+                    callerPackage, callingPid, callingUid, resolvedType, requiredPermission,
+                    appOp, registeredReceivers, resultTo, resultCode, resultData, map,
                     ordered, sticky, false, userId);
             if (DEBUG_BROADCAST) Slog.v(
                     TAG, "Enqueueing parallel broadcast " + r);
@@ -12962,9 +12965,9 @@
                 || resultTo != null) {
             BroadcastQueue queue = broadcastQueueForIntent(intent);
             BroadcastRecord r = new BroadcastRecord(queue, intent, callerApp,
-                    callerPackage, callingPid, callingUid, requiredPermission, appOp,
-                    receivers, resultTo, resultCode, resultData, map, ordered,
-                    sticky, false, userId);
+                    callerPackage, callingPid, callingUid, resolvedType,
+                    requiredPermission, appOp, receivers, resultTo, resultCode,
+                    resultData, map, ordered, sticky, false, userId);
             if (DEBUG_BROADCAST) Slog.v(
                     TAG, "Enqueueing ordered broadcast " + r
                     + ": prev had " + queue.mOrderedBroadcasts.size());
@@ -14609,7 +14612,7 @@
                     + " to " + app.curProcState);
             app.setProcState = app.curProcState;
             if (!doingAll) {
-                setProcessTrackerState(app, mProcessTracker.getMemFactorLocked(), now);
+                setProcessTrackerState(app, mProcessStats.getMemFactorLocked(), now);
             } else {
                 app.procStateChanged = true;
             }
@@ -14887,17 +14890,17 @@
             int memFactor;
             if (numCachedAndEmpty <= ProcessList.TRIM_CRITICAL_THRESHOLD) {
                 fgTrimLevel = ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL;
-                memFactor = ProcessTracker.ADJ_MEM_FACTOR_CRITICAL;
+                memFactor = ProcessStats.ADJ_MEM_FACTOR_CRITICAL;
             } else if (numCachedAndEmpty <= ProcessList.TRIM_LOW_THRESHOLD) {
                 fgTrimLevel = ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW;
-                memFactor = ProcessTracker.ADJ_MEM_FACTOR_LOW;
+                memFactor = ProcessStats.ADJ_MEM_FACTOR_LOW;
             } else {
                 fgTrimLevel = ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE;
-                memFactor = ProcessTracker.ADJ_MEM_FACTOR_MODERATE;
+                memFactor = ProcessStats.ADJ_MEM_FACTOR_MODERATE;
             }
             int curLevel = ComponentCallbacks2.TRIM_MEMORY_COMPLETE;
-            allChanged = mProcessTracker.setMemFactorLocked(memFactor, !mSleeping, now);
-            final int trackerMemFactor = mProcessTracker.getMemFactorLocked();
+            allChanged = mProcessStats.setMemFactorLocked(memFactor, !mSleeping, now);
+            final int trackerMemFactor = mProcessStats.getMemFactorLocked();
             for (int i=N-1; i>=0; i--) {
                 ProcessRecord app = mLruProcesses.get(i);
                 if (allChanged || app.procStateChanged) {
@@ -14985,9 +14988,9 @@
                 }
             }
         } else {
-            allChanged = mProcessTracker.setMemFactorLocked(
-                    ProcessTracker.ADJ_MEM_FACTOR_NORMAL, !mSleeping, now);
-            final int trackerMemFactor = mProcessTracker.getMemFactorLocked();
+            allChanged = mProcessStats.setMemFactorLocked(
+                    ProcessStats.ADJ_MEM_FACTOR_NORMAL, !mSleeping, now);
+            final int trackerMemFactor = mProcessStats.getMemFactorLocked();
             for (int i=N-1; i>=0; i--) {
                 ProcessRecord app = mLruProcesses.get(i);
                 if (allChanged || app.procStateChanged) {
@@ -15020,14 +15023,14 @@
         }
 
         if (allChanged) {
-            requestPssAllProcsLocked(now, false, mProcessTracker.isMemFactorLowered());
+            requestPssAllProcsLocked(now, false, mProcessStats.isMemFactorLowered());
         }
 
-        if (mProcessTracker.shouldWriteNowLocked(now)) {
+        if (mProcessStats.shouldWriteNowLocked(now)) {
             mHandler.post(new Runnable() {
                 @Override public void run() {
                     synchronized (ActivityManagerService.this) {
-                        mProcessTracker.writeStateAsyncLocked();
+                        mProcessStats.writeStateAsyncLocked();
                     }
                 }
             });
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index cc1be98..a0bbfad 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -177,6 +177,13 @@
     ActivityRecord mLastPausedActivity = null;
 
     /**
+     * Activities that specify No History must be removed once the user navigates away from them.
+     * If the device goes to sleep with such an activity in the paused state then we save it here
+     * and finish it later if another activity replaces it on wakeup.
+     */
+    ActivityRecord mLastNoHistoryActivity = null;
+
+    /**
      * Current activity that is resumed, or null if there is none.
      */
     ActivityRecord mResumedActivity = null;
@@ -710,6 +717,8 @@
         mResumedActivity = null;
         mPausingActivity = prev;
         mLastPausedActivity = prev;
+        mLastNoHistoryActivity = (prev.intent.getFlags() & Intent.FLAG_ACTIVITY_NO_HISTORY) != 0
+                || (prev.info.flags & ActivityInfo.FLAG_NO_HISTORY) != 0 ? prev : null;
         prev.state = ActivityState.PAUSING;
         prev.task.touchActiveTime();
         clearLaunchTime(prev);
@@ -732,10 +741,12 @@
                 Slog.w(TAG, "Exception thrown during pause", e);
                 mPausingActivity = null;
                 mLastPausedActivity = null;
+                mLastNoHistoryActivity = null;
             }
         } else {
             mPausingActivity = null;
             mLastPausedActivity = null;
+            mLastNoHistoryActivity = null;
         }
 
         // If we are not going to sleep, we want to ensure the device is
@@ -893,8 +904,8 @@
             if (prev.app != null && prev.cpuTimeAtResume > 0
                     && mService.mBatteryStatsService.isOnBattery()) {
                 long diff;
-                synchronized (mService.mProcessStatsThread) {
-                    diff = mService.mProcessStats.getCpuTimeForPid(prev.app.pid)
+                synchronized (mService.mProcessCpuThread) {
+                    diff = mService.mProcessCpuTracker.getCpuTimeForPid(prev.app.pid)
                             - prev.cpuTimeAtResume;
                 }
                 if (diff > 0) {
@@ -902,7 +913,7 @@
                     synchronized (bsi) {
                         BatteryStatsImpl.Uid.Proc ps =
                                 bsi.getProcessStatsLocked(prev.info.applicationInfo.uid,
-                                prev.info.packageName);
+                                        prev.info.packageName);
                         if (ps != null) {
                             ps.addForegroundTimeLocked(diff);
                         }
@@ -935,8 +946,8 @@
         // TODO: To be more accurate, the mark should be before the onCreate,
         //       not after the onResume. But for subsequent starts, onResume is fine.
         if (next.app != null) {
-            synchronized (mService.mProcessStatsThread) {
-                next.cpuTimeAtResume = mService.mProcessStats.getCpuTimeForPid(next.app.pid);
+            synchronized (mService.mProcessCpuThread) {
+                next.cpuTimeAtResume = mService.mProcessCpuTracker.getCpuTimeForPid(next.app.pid);
             }
         } else {
             next.cpuTimeAtResume = 0; // Couldn't get the cpu time of process
@@ -1333,16 +1344,13 @@
         // If the most recent activity was noHistory but was only stopped rather
         // than stopped+finished because the device went to sleep, we need to make
         // sure to finish it as we're making a new activity topmost.
-        final ActivityRecord last = mLastPausedActivity;
-        if (mService.mSleeping && last != null && !last.finishing) {
-            if ((last.intent.getFlags()&Intent.FLAG_ACTIVITY_NO_HISTORY) != 0
-                    || (last.info.flags&ActivityInfo.FLAG_NO_HISTORY) != 0) {
-                if (DEBUG_STATES) {
-                    Slog.d(TAG, "no-history finish of " + last + " on new resume");
-                }
-                requestFinishActivityLocked(last.appToken, Activity.RESULT_CANCELED, null,
-                        "no-history", false);
-            }
+        if (mService.mSleeping && mLastNoHistoryActivity != null &&
+                !mLastNoHistoryActivity.finishing) {
+            if (DEBUG_STATES) Slog.d(TAG, "no-history finish of " + mLastNoHistoryActivity +
+                    " on new resume");
+            requestFinishActivityLocked(mLastNoHistoryActivity.appToken, Activity.RESULT_CANCELED,
+                    null, "no-history", false);
+            mLastNoHistoryActivity = null;
         }
 
         if (prev != null && prev != next) {
@@ -2949,7 +2957,6 @@
 
         mWindowManager.moveTaskToTop(tr.taskId);
 
-        mLastPausedActivity = null;
         mStackSupervisor.resumeTopActivitiesLocked();
         EventLog.writeEvent(EventLogTags.AM_TASK_TO_FRONT, tr.userId, tr.taskId);
 
@@ -3368,6 +3375,7 @@
         }
         if (mLastPausedActivity != null && mLastPausedActivity.app == app) {
             mLastPausedActivity = null;
+            mLastNoHistoryActivity = null;
         }
         final ActivityRecord top = topRunningActivityLocked(null);
         final boolean launchHomeTaskNext =
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java
index 1681c2d..8634929 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1027,7 +1027,7 @@
 
         if (app != null && app.thread != null) {
             try {
-                app.addPackage(r.info.packageName, mService.mProcessTracker);
+                app.addPackage(r.info.packageName, mService.mProcessStats);
                 realStartActivityLocked(r, app, andResume, checkConfig);
                 return;
             } catch (RemoteException e) {
@@ -1154,8 +1154,8 @@
             throw new SecurityException(msg);
         }
 
-        boolean abort = !mService.mIntentFirewall.checkStartActivity(intent,
-                callerApp==null?null:callerApp.info, callingUid, callingPid, resolvedType, aInfo);
+        boolean abort = !mService.mIntentFirewall.checkStartActivity(intent, callingUid,
+                callingPid, resolvedType, aInfo.applicationInfo);
 
         if (mService.mController != null) {
             try {
@@ -1398,6 +1398,7 @@
                         r.task = intentActivity.task;
                     }
                     targetStack = intentActivity.task.stack;
+                    targetStack.mLastPausedActivity = null;
                     moveHomeStack(targetStack.isHomeStack());
                     if (intentActivity.task.intent == null) {
                         // This task was started because of movement of
@@ -1417,7 +1418,8 @@
                             null : lastStack.topRunningNonDelayedActivityLocked(notTop);
                     if (curTop != null && curTop.task != intentActivity.task) {
                         r.intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
-                        if (sourceRecord == null || sourceStack.topActivity() == sourceRecord) {
+                        if (sourceRecord == null || (sourceStack.topActivity() != null &&
+                                sourceStack.topActivity().task == sourceRecord.task)) {
                             // We really do want to push this one into the
                             // user's face, right now.
                             movedHome = true;
@@ -1575,6 +1577,7 @@
                                     top.task);
                             // For paranoia, make sure we have correctly
                             // resumed the top activity.
+                            topStack.mLastPausedActivity = null;
                             if (doResume) {
                                 setLaunchHomeTaskNextFlag(sourceRecord, null, topStack);
                                 resumeTopActivitiesLocked();
@@ -1653,6 +1656,7 @@
                     top.deliverNewIntentLocked(callingUid, r.intent);
                     // For paranoia, make sure we have correctly
                     // resumed the top activity.
+                    targetStack.mLastPausedActivity = null;
                     if (doResume) {
                         setLaunchHomeTaskNextFlag(sourceRecord, null, targetStack);
                         targetStack.resumeTopActivityLocked(null);
@@ -1675,6 +1679,7 @@
                     ActivityStack.logStartActivity(EventLogTags.AM_NEW_INTENT, r, task);
                     top.updateOptionsLocked(options);
                     top.deliverNewIntentLocked(callingUid, r.intent);
+                    targetStack.mLastPausedActivity = null;
                     if (doResume) {
                         setLaunchHomeTaskNextFlag(sourceRecord, null, targetStack);
                         targetStack.resumeTopActivityLocked(null);
@@ -1714,6 +1719,7 @@
         }
         ActivityStack.logStartActivity(EventLogTags.AM_CREATE_ACTIVITY, r, r.task);
         setLaunchHomeTaskNextFlag(sourceRecord, r, targetStack);
+        targetStack.mLastPausedActivity = null;
         targetStack.startActivityLocked(r, newTask, doResume, keepCurTransition, options);
         mService.setFocusedActivityLocked(r);
         return ActivityManager.START_SUCCESS;
@@ -2390,7 +2396,10 @@
                         "    mLastPausedActivity: ");
                 if (pr) {
                     printed = true;
+                    needSep = true;
                 }
+                printed |= printThisActivity(pw, stack.mLastNoHistoryActivity, dumpPackage,
+                        needSep, "    mLastNoHistoryActivity: ");
             }
             needSep = printed;
         }
diff --git a/services/java/com/android/server/am/BroadcastQueue.java b/services/java/com/android/server/am/BroadcastQueue.java
index c0140e4..254a219 100644
--- a/services/java/com/android/server/am/BroadcastQueue.java
+++ b/services/java/com/android/server/am/BroadcastQueue.java
@@ -421,6 +421,10 @@
                 skip = true;
             }
         }
+        if (!skip) {
+            skip = !mService.mIntentFirewall.checkBroadcast(r.intent, r.callingUid,
+                    r.callingPid, r.resolvedType, filter.receiverList.uid);
+        }
 
         if (!skip) {
             // If this is not being sent as an ordered broadcast, then we
@@ -729,6 +733,10 @@
                     skip = true;
                 }
             }
+            if (!skip) {
+                skip = !mService.mIntentFirewall.checkBroadcast(r.intent, r.callingUid,
+                        r.callingPid, r.resolvedType, info.activityInfo.applicationInfo.uid);
+            }
             boolean isSingleton = false;
             try {
                 isSingleton = mService.isSingleton(info.activityInfo.processName,
@@ -797,7 +805,7 @@
                     info.activityInfo.applicationInfo.uid);
             if (app != null && app.thread != null) {
                 try {
-                    app.addPackage(info.activityInfo.packageName, mService.mProcessTracker);
+                    app.addPackage(info.activityInfo.packageName, mService.mProcessStats);
                     processCurBroadcastLocked(r, app);
                     return;
                 } catch (RemoteException e) {
diff --git a/services/java/com/android/server/am/BroadcastRecord.java b/services/java/com/android/server/am/BroadcastRecord.java
index eb1df6e..db61e88 100644
--- a/services/java/com/android/server/am/BroadcastRecord.java
+++ b/services/java/com/android/server/am/BroadcastRecord.java
@@ -47,6 +47,7 @@
     final boolean sticky;   // originated from existing sticky data?
     final boolean initialSticky; // initial broadcast from register to sticky?
     final int userId;       // user id this broadcast was for
+    final String resolvedType; // the resolved data type
     final String requiredPermission; // a permission the caller has required
     final int appOp;        // an app op that is associated with this broadcast
     final List receivers;   // contains BroadcastFilter and ResolveInfo
@@ -171,8 +172,8 @@
 
     BroadcastRecord(BroadcastQueue _queue,
             Intent _intent, ProcessRecord _callerApp, String _callerPackage,
-            int _callingPid, int _callingUid, String _requiredPermission, int _appOp,
-            List _receivers, IIntentReceiver _resultTo, int _resultCode,
+            int _callingPid, int _callingUid, String _resolvedType, String _requiredPermission,
+            int _appOp, List _receivers, IIntentReceiver _resultTo, int _resultCode,
             String _resultData, Bundle _resultExtras, boolean _serialized,
             boolean _sticky, boolean _initialSticky,
             int _userId) {
@@ -183,6 +184,7 @@
         callerPackage = _callerPackage;
         callingPid = _callingPid;
         callingUid = _callingUid;
+        resolvedType = _resolvedType;
         requiredPermission = _requiredPermission;
         appOp = _appOp;
         receivers = _receivers;
diff --git a/services/java/com/android/server/am/ProcessRecord.java b/services/java/com/android/server/am/ProcessRecord.java
index 2b73b8a..f1a030e 100644
--- a/services/java/com/android/server/am/ProcessRecord.java
+++ b/services/java/com/android/server/am/ProcessRecord.java
@@ -17,6 +17,7 @@
 package com.android.server.am;
 
 import android.util.ArraySet;
+import com.android.internal.app.ProcessStats;
 import com.android.internal.os.BatteryStatsImpl;
 
 import android.app.ActivityManager;
@@ -51,10 +52,10 @@
     final int uid;              // uid of process; may be different from 'info' if isolated
     final int userId;           // user of process.
     final String processName;   // name of the process
-    final ProcessTracker.ProcessState baseProcessTracker;
+    final ProcessStats.ProcessState baseProcessTracker;
     // List of packages running in the process
-    final ArrayMap<String, ProcessTracker.ProcessState> pkgList
-            = new ArrayMap<String, ProcessTracker.ProcessState>();
+    final ArrayMap<String, ProcessStats.ProcessState> pkgList
+            = new ArrayMap<String, ProcessStats.ProcessState>();
     IApplicationThread thread;  // the actual proc...  may be null only if
                                 // 'persistent' is true (in which case we
                                 // are in the process of launching the app)
@@ -350,7 +351,7 @@
     
     ProcessRecord(BatteryStatsImpl.Uid.Proc _batteryStats, IApplicationThread _thread,
             ApplicationInfo _info, String _processName, int _uid,
-            ProcessTracker.ProcessState tracker) {
+            ProcessStats.ProcessState tracker) {
         batteryStats = _batteryStats;
         info = _info;
         isolated = _info.uid != _uid;
@@ -487,7 +488,7 @@
     /*
      *  Return true if package has been added false if not
      */
-    public boolean addPackage(String pkg, ProcessTracker tracker) {
+    public boolean addPackage(String pkg, ProcessStatsService tracker) {
         if (!pkgList.containsKey(pkg)) {
             pkgList.put(pkg, tracker.getProcessStateLocked(pkg, info.uid, processName));
             return true;
@@ -513,9 +514,9 @@
     /*
      *  Delete all packages from list except the package indicated in info
      */
-    public void resetPackageList(ProcessTracker tracker) {
+    public void resetPackageList(ProcessStatsService tracker) {
         long now = SystemClock.uptimeMillis();
-        baseProcessTracker.setState(ProcessTracker.STATE_NOTHING,
+        baseProcessTracker.setState(ProcessStats.STATE_NOTHING,
                 tracker.getMemFactorLocked(), now, pkgList);
         if (pkgList.size() != 1) {
             pkgList.clear();
diff --git a/services/java/com/android/server/am/ProcessStatsService.java b/services/java/com/android/server/am/ProcessStatsService.java
new file mode 100644
index 0000000..8b4a5a0
--- /dev/null
+++ b/services/java/com/android/server/am/ProcessStatsService.java
@@ -0,0 +1,744 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.am;
+
+import android.app.AppGlobals;
+import android.content.pm.IPackageManager;
+import android.os.Parcel;
+import android.os.ParcelFileDescriptor;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.util.ArrayMap;
+import android.util.AtomicFile;
+import android.util.Slog;
+import android.util.SparseArray;
+import com.android.internal.app.IProcessStats;
+import com.android.internal.app.ProcessStats;
+import com.android.internal.os.BackgroundThread;
+
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.locks.ReentrantLock;
+
+public final class ProcessStatsService extends IProcessStats.Stub {
+    static final String TAG = "ProcessStatsService";
+    static final boolean DEBUG = false;
+
+    // Most data is kept in a sparse data structure: an integer array which integer
+    // holds the type of the entry, and the identifier for a long array that data
+    // exists in and the offset into the array to find it.  The constants below
+    // define the encoding of that data in an integer.
+
+    static final int MAX_HISTORIC_STATES = 4;   // Maximum number of historic states we will keep.
+    static final String STATE_FILE_PREFIX = "state-"; // Prefix to use for state filenames.
+    static final String STATE_FILE_SUFFIX = ".bin"; // Suffix to use for state filenames.
+    static final String STATE_FILE_CHECKIN_SUFFIX = ".ci"; // State files that have checked in.
+    static long WRITE_PERIOD = 30*60*1000;      // Write file every 30 minutes or so.
+    static long COMMIT_PERIOD = 24*60*60*1000;  // Commit current stats every day.
+
+    final Object mLock;
+    final File mBaseDir;
+    ProcessStats mProcessStats;
+    AtomicFile mFile;
+    boolean mCommitPending;
+    boolean mShuttingDown;
+    int mLastMemOnlyState = -1;
+    boolean mMemFactorLowered;
+
+    final ReentrantLock mWriteLock = new ReentrantLock();
+    final Object mPendingWriteLock = new Object();
+    AtomicFile mPendingWriteFile;
+    Parcel mPendingWrite;
+    boolean mPendingWriteCommitted;
+    long mLastWriteTime;
+
+    public ProcessStatsService(Object lock, File file) {
+        mLock = lock;
+        mBaseDir = file;
+        mBaseDir.mkdirs();
+        mProcessStats = new ProcessStats(true);
+        updateFile();
+        SystemProperties.addChangeCallback(new Runnable() {
+            @Override public void run() {
+                synchronized (mLock) {
+                    if (mProcessStats.evaluateSystemProperties(false)) {
+                        mProcessStats.mFlags |= ProcessStats.FLAG_SYSPROPS;
+                        writeStateLocked(true, true);
+                        mProcessStats.evaluateSystemProperties(true);
+                    }
+                }
+            }
+        });
+    }
+
+    public ProcessStats.ProcessState getProcessStateLocked(String packageName,
+            int uid, String processName) {
+        return mProcessStats.getProcessStateLocked(packageName, uid, processName);
+    }
+
+    public ProcessStats.ServiceState getServiceStateLocked(String packageName, int uid,
+            String processName, String className) {
+        final ProcessStats.PackageState as = mProcessStats.getPackageStateLocked(packageName, uid);
+        ProcessStats.ServiceState ss = as.mServices.get(className);
+        if (ss != null) {
+            ss.makeActive();
+            return ss;
+        }
+        final ProcessStats.ProcessState ps = mProcessStats.getProcessStateLocked(packageName,
+                uid, processName);
+        ss = new ProcessStats.ServiceState(mProcessStats, packageName, ps);
+        as.mServices.put(className, ss);
+        return ss;
+    }
+
+    public boolean isMemFactorLowered() {
+        return mMemFactorLowered;
+    }
+
+    public boolean setMemFactorLocked(int memFactor, boolean screenOn, long now) {
+        mMemFactorLowered = memFactor < mLastMemOnlyState;
+        mLastMemOnlyState = memFactor;
+        if (screenOn) {
+            memFactor += ProcessStats.ADJ_SCREEN_ON;
+        }
+        if (memFactor != mProcessStats.mMemFactor) {
+            if (mProcessStats.mMemFactor != ProcessStats.STATE_NOTHING) {
+                mProcessStats.mMemFactorDurations[mProcessStats.mMemFactor]
+                        += now - mProcessStats.mStartTime;
+            }
+            mProcessStats.mMemFactor = memFactor;
+            mProcessStats.mStartTime = now;
+            ArrayMap<String, SparseArray<ProcessStats.PackageState>> pmap
+                    = mProcessStats.mPackages.getMap();
+            for (int i=0; i<pmap.size(); i++) {
+                SparseArray<ProcessStats.PackageState> uids = pmap.valueAt(i);
+                for (int j=0; j<uids.size(); j++) {
+                    ProcessStats.PackageState pkg = uids.valueAt(j);
+                    ArrayMap<String, ProcessStats.ServiceState> services = pkg.mServices;
+                    for (int k=0; k<services.size(); k++) {
+                        ProcessStats.ServiceState service = services.valueAt(k);
+                        if (service.isActive()) {
+                            if (service.mStartedState != ProcessStats.STATE_NOTHING) {
+                                service.setStarted(true, memFactor, now);
+                            }
+                            if (service.mBoundState != ProcessStats.STATE_NOTHING) {
+                                service.setBound(true, memFactor, now);
+                            }
+                            if (service.mExecState != ProcessStats.STATE_NOTHING) {
+                                service.setExecuting(true, memFactor, now);
+                            }
+                        }
+                    }
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    public int getMemFactorLocked() {
+        return mProcessStats.mMemFactor != ProcessStats.STATE_NOTHING ? mProcessStats.mMemFactor : 0;
+    }
+
+    public boolean shouldWriteNowLocked(long now) {
+        if (now > (mLastWriteTime+WRITE_PERIOD)) {
+            if (SystemClock.elapsedRealtime()
+                    > (mProcessStats.mTimePeriodStartRealtime+COMMIT_PERIOD)) {
+                mCommitPending = true;
+            }
+            return true;
+        }
+        return false;
+    }
+
+    public void shutdownLocked() {
+        Slog.w(TAG, "Writing process stats before shutdown...");
+        mProcessStats.mFlags |= ProcessStats.FLAG_SHUTDOWN;
+        writeStateSyncLocked();
+        mShuttingDown = true;
+    }
+
+    public void writeStateAsyncLocked() {
+        writeStateLocked(false);
+    }
+
+    public void writeStateSyncLocked() {
+        writeStateLocked(true);
+    }
+
+    private void writeStateLocked(boolean sync) {
+        if (mShuttingDown) {
+            return;
+        }
+        boolean commitPending = mCommitPending;
+        mCommitPending = false;
+        writeStateLocked(sync, commitPending);
+    }
+
+    public void writeStateLocked(boolean sync, final boolean commit) {
+        synchronized (mPendingWriteLock) {
+            long now = SystemClock.uptimeMillis();
+            if (mPendingWrite == null || !mPendingWriteCommitted) {
+                mPendingWrite = Parcel.obtain();
+                mProcessStats.mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
+                if (commit) {
+                    mProcessStats.mFlags |= ProcessStats.FLAG_COMPLETE;
+                }
+                mProcessStats.writeToParcel(mPendingWrite, 0);
+                mPendingWriteFile = new AtomicFile(mFile.getBaseFile());
+                mPendingWriteCommitted = commit;
+            }
+            if (commit) {
+                mProcessStats.resetSafely();
+                updateFile();
+            }
+            mLastWriteTime = SystemClock.uptimeMillis();
+            Slog.i(TAG, "Prepared write state in " + (SystemClock.uptimeMillis()-now) + "ms");
+            if (!sync) {
+                BackgroundThread.getHandler().post(new Runnable() {
+                    @Override public void run() {
+                        performWriteState();
+                    }
+                });
+                return;
+            }
+        }
+
+        performWriteState();
+    }
+
+    private void updateFile() {
+        mFile = new AtomicFile(new File(mBaseDir, STATE_FILE_PREFIX
+                + mProcessStats.mTimePeriodStartClockStr + STATE_FILE_SUFFIX));
+        mLastWriteTime = SystemClock.uptimeMillis();
+    }
+
+    void performWriteState() {
+        if (DEBUG) Slog.d(TAG, "Performing write to " + mFile.getBaseFile());
+        Parcel data;
+        AtomicFile file;
+        synchronized (mPendingWriteLock) {
+            data = mPendingWrite;
+            file = mPendingWriteFile;
+            mPendingWriteCommitted = false;
+            if (data == null) {
+                return;
+            }
+            mPendingWrite = null;
+            mPendingWriteFile = null;
+            mWriteLock.lock();
+        }
+
+        FileOutputStream stream = null;
+        try {
+            stream = file.startWrite();
+            stream.write(data.marshall());
+            stream.flush();
+            file.finishWrite(stream);
+            if (DEBUG) Slog.d(TAG, "Write completed successfully!");
+        } catch (IOException e) {
+            Slog.w(TAG, "Error writing process statistics", e);
+            file.failWrite(stream);
+        } finally {
+            data.recycle();
+            trimHistoricStatesWriteLocked();
+            mWriteLock.unlock();
+        }
+    }
+
+    static byte[] readFully(FileInputStream stream) throws java.io.IOException {
+        int pos = 0;
+        int avail = stream.available();
+        byte[] data = new byte[avail];
+        while (true) {
+            int amt = stream.read(data, pos, data.length-pos);
+            //Log.i("foo", "Read " + amt + " bytes at " + pos
+            //        + " of avail " + data.length);
+            if (amt <= 0) {
+                //Log.i("foo", "**** FINISHED READING: pos=" + pos
+                //        + " len=" + data.length);
+                return data;
+            }
+            pos += amt;
+            avail = stream.available();
+            if (avail > data.length-pos) {
+                byte[] newData = new byte[pos+avail];
+                System.arraycopy(data, 0, newData, 0, pos);
+                data = newData;
+            }
+        }
+    }
+
+    boolean readLocked(ProcessStats stats, AtomicFile file) {
+        try {
+            FileInputStream stream = file.openRead();
+
+            byte[] raw = readFully(stream);
+            Parcel in = Parcel.obtain();
+            in.unmarshall(raw, 0, raw.length);
+            in.setDataPosition(0);
+            stream.close();
+
+            stats.readFromParcel(in);
+            if (stats.mReadError != null) {
+                Slog.w(TAG, "Ignoring existing stats; " + stats.mReadError);
+                if (DEBUG) {
+                    ArrayMap<String, SparseArray<ProcessStats.ProcessState>> procMap
+                            = stats.mProcesses.getMap();
+                    final int NPROC = procMap.size();
+                    for (int ip=0; ip<NPROC; ip++) {
+                        Slog.w(TAG, "Process: " + procMap.keyAt(ip));
+                        SparseArray<ProcessStats.ProcessState> uids = procMap.valueAt(ip);
+                        final int NUID = uids.size();
+                        for (int iu=0; iu<NUID; iu++) {
+                            Slog.w(TAG, "  Uid " + uids.keyAt(iu) + ": " + uids.valueAt(iu));
+                        }
+                    }
+                    ArrayMap<String, SparseArray<ProcessStats.PackageState>> pkgMap
+                            = stats.mPackages.getMap();
+                    final int NPKG = pkgMap.size();
+                    for (int ip=0; ip<NPKG; ip++) {
+                        Slog.w(TAG, "Package: " + pkgMap.keyAt(ip));
+                        SparseArray<ProcessStats.PackageState> uids = pkgMap.valueAt(ip);
+                        final int NUID = uids.size();
+                        for (int iu=0; iu<NUID; iu++) {
+                            Slog.w(TAG, "  Uid: " + uids.keyAt(iu));
+                            ProcessStats.PackageState pkgState = uids.valueAt(iu);
+                            final int NPROCS = pkgState.mProcesses.size();
+                            for (int iproc=0; iproc<NPROCS; iproc++) {
+                                Slog.w(TAG, "    Process " + pkgState.mProcesses.keyAt(iproc)
+                                        + ": " + pkgState.mProcesses.valueAt(iproc));
+                            }
+                            final int NSRVS = pkgState.mServices.size();
+                            for (int isvc=0; isvc<NSRVS; isvc++) {
+                                Slog.w(TAG, "    Service " + pkgState.mServices.keyAt(isvc)
+                                        + ": " + pkgState.mServices.valueAt(isvc));
+                            }
+                        }
+                    }
+                }
+                return false;
+            }
+        } catch (Throwable e) {
+            stats.mReadError = "caught exception: " + e;
+            Slog.e(TAG, "Error reading process statistics", e);
+            return false;
+        }
+        return true;
+    }
+
+    private ArrayList<String> getCommittedFiles(int minNum, boolean inclAll) {
+        File[] files = mBaseDir.listFiles();
+        if (files == null || files.length <= minNum) {
+            return null;
+        }
+        ArrayList<String> filesArray = new ArrayList<String>(files.length);
+        String currentFile = mFile.getBaseFile().getPath();
+        if (DEBUG) Slog.d(TAG, "Collecting " + files.length + " files except: " + currentFile);
+        for (int i=0; i<files.length; i++) {
+            File file = files[i];
+            String fileStr = file.getPath();
+            if (DEBUG) Slog.d(TAG, "Collecting: " + fileStr);
+            if (!inclAll && fileStr.endsWith(STATE_FILE_CHECKIN_SUFFIX)) {
+                if (DEBUG) Slog.d(TAG, "Skipping: already checked in");
+                continue;
+            }
+            if (fileStr.equals(currentFile)) {
+                if (DEBUG) Slog.d(TAG, "Skipping: current stats");
+                continue;
+            }
+            filesArray.add(fileStr);
+        }
+        Collections.sort(filesArray);
+        return filesArray;
+    }
+
+    public void trimHistoricStatesWriteLocked() {
+        ArrayList<String> filesArray = getCommittedFiles(MAX_HISTORIC_STATES, true);
+        if (filesArray == null) {
+            return;
+        }
+        while (filesArray.size() > MAX_HISTORIC_STATES) {
+            String file = filesArray.remove(0);
+            Slog.i(TAG, "Pruning old procstats: " + file);
+            (new File(file)).delete();
+        }
+    }
+
+    boolean dumpFilteredProcessesCsvLocked(PrintWriter pw, String header,
+            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
+            boolean sepProcStates, int[] procStates, long now, String reqPackage) {
+        ArrayList<ProcessStats.ProcessState> procs = mProcessStats.collectProcessesLocked(
+                screenStates, memStates, procStates, now, reqPackage);
+        if (procs.size() > 0) {
+            if (header != null) {
+                pw.println(header);
+            }
+            ProcessStats.dumpProcessListCsv(pw, procs, sepScreenStates, screenStates,
+                    sepMemStates, memStates, sepProcStates, procStates, now);
+            return true;
+        }
+        return false;
+    }
+
+    static int[] parseStateList(String[] states, int mult, String arg, boolean[] outSep,
+            String[] outError) {
+        ArrayList<Integer> res = new ArrayList<Integer>();
+        int lastPos = 0;
+        for (int i=0; i<=arg.length(); i++) {
+            char c = i < arg.length() ? arg.charAt(i) : 0;
+            if (c != ',' && c != '+' && c != ' ' && c != 0) {
+                continue;
+            }
+            boolean isSep = c == ',';
+            if (lastPos == 0) {
+                // We now know the type of op.
+                outSep[0] = isSep;
+            } else if (c != 0 && outSep[0] != isSep) {
+                outError[0] = "inconsistent separators (can't mix ',' with '+')";
+                return null;
+            }
+            if (lastPos < (i-1)) {
+                String str = arg.substring(lastPos, i);
+                for (int j=0; j<states.length; j++) {
+                    if (str.equals(states[j])) {
+                        res.add(j);
+                        str = null;
+                        break;
+                    }
+                }
+                if (str != null) {
+                    outError[0] = "invalid word \"" + str + "\"";
+                    return null;
+                }
+            }
+            lastPos = i + 1;
+        }
+
+        int[] finalRes = new int[res.size()];
+        for (int i=0; i<res.size(); i++) {
+            finalRes[i] = res.get(i) * mult;
+        }
+        return finalRes;
+    }
+
+    public byte[] getCurrentStats(List<ParcelFileDescriptor> historic) {
+        Parcel current = Parcel.obtain();
+        mWriteLock.lock();
+        try {
+            synchronized (mLock) {
+                mProcessStats.writeToParcel(current, 0);
+            }
+            if (historic != null) {
+                ArrayList<String> files = getCommittedFiles(0, true);
+                if (files != null) {
+                    for (int i=files.size()-1; i>=0; i--) {
+                        try {
+                            ParcelFileDescriptor pfd = ParcelFileDescriptor.open(
+                                    new File(files.get(i)), ParcelFileDescriptor.MODE_READ_ONLY);
+                            historic.add(pfd);
+                        } catch (IOException e) {
+                            Slog.w(TAG, "Failure opening procstat file " + files.get(i), e);
+                        }
+                    }
+                }
+            }
+        } finally {
+            mWriteLock.unlock();
+        }
+        return current.marshall();
+    }
+
+    static private void dumpHelp(PrintWriter pw) {
+        pw.println("Process stats (procstats) dump options:");
+        pw.println("    [--checkin|-c|--csv] [--csv-screen] [--csv-proc] [--csv-mem]");
+        pw.println("    [--details] [--current] [--commit] [--write] [-h] [<package.name>]");
+        pw.println("  --checkin: perform a checkin: print and delete old committed states.");
+        pw.println("  --c: print only state in checkin format.");
+        pw.println("  --csv: output data suitable for putting in a spreadsheet.");
+        pw.println("  --csv-screen: on, off.");
+        pw.println("  --csv-mem: norm, mod, low, crit.");
+        pw.println("  --csv-proc: pers, top, fore, vis, precept, backup,");
+        pw.println("    service, home, prev, cached");
+        pw.println("  --details: dump all execution details, not just summary.");
+        pw.println("  --current: only dump current state.");
+        pw.println("  --commit: commit current stats to disk and reset to start new stats.");
+        pw.println("  --write: write current in-memory stats to disk.");
+        pw.println("  --read: replace current stats with last-written stats.");
+        pw.println("  -a: print everything.");
+        pw.println("  -h: print this help text.");
+        pw.println("  <package.name>: optional name of package to filter output by.");
+    }
+
+    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        final long now = SystemClock.uptimeMillis();
+
+        boolean isCheckin = false;
+        boolean isCompact = false;
+        boolean isCsv = false;
+        boolean currentOnly = false;
+        boolean dumpDetails = false;
+        boolean dumpAll = false;
+        String reqPackage = null;
+        boolean csvSepScreenStats = false;
+        int[] csvScreenStats = new int[] { ProcessStats.ADJ_SCREEN_OFF, ProcessStats.ADJ_SCREEN_ON};
+        boolean csvSepMemStats = false;
+        int[] csvMemStats = new int[] { ProcessStats.ADJ_MEM_FACTOR_CRITICAL};
+        boolean csvSepProcStats = true;
+        int[] csvProcStats = ProcessStats.ALL_PROC_STATES;
+        if (args != null) {
+            for (int i=0; i<args.length; i++) {
+                String arg = args[i];
+                if ("--checkin".equals(arg)) {
+                    isCheckin = true;
+                } else if ("-c".equals(arg)) {
+                    isCompact = true;
+                } else if ("--csv".equals(arg)) {
+                    isCsv = true;
+                } else if ("--csv-screen".equals(arg)) {
+                    i++;
+                    if (i >= args.length) {
+                        pw.println("Error: argument required for --csv-screen");
+                        dumpHelp(pw);
+                        return;
+                    }
+                    boolean[] sep = new boolean[1];
+                    String[] error = new String[1];
+                    csvScreenStats = parseStateList(ProcessStats.ADJ_SCREEN_NAMES_CSV, ProcessStats.ADJ_SCREEN_MOD,
+                            args[i], sep, error);
+                    if (csvScreenStats == null) {
+                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
+                        dumpHelp(pw);
+                        return;
+                    }
+                    csvSepScreenStats = sep[0];
+                } else if ("--csv-mem".equals(arg)) {
+                    i++;
+                    if (i >= args.length) {
+                        pw.println("Error: argument required for --csv-mem");
+                        dumpHelp(pw);
+                        return;
+                    }
+                    boolean[] sep = new boolean[1];
+                    String[] error = new String[1];
+                    csvMemStats = parseStateList(ProcessStats.ADJ_MEM_NAMES_CSV, 1, args[i], sep, error);
+                    if (csvMemStats == null) {
+                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
+                        dumpHelp(pw);
+                        return;
+                    }
+                    csvSepMemStats = sep[0];
+                } else if ("--csv-proc".equals(arg)) {
+                    i++;
+                    if (i >= args.length) {
+                        pw.println("Error: argument required for --csv-proc");
+                        dumpHelp(pw);
+                        return;
+                    }
+                    boolean[] sep = new boolean[1];
+                    String[] error = new String[1];
+                    csvProcStats = parseStateList(ProcessStats.STATE_NAMES_CSV, 1, args[i], sep, error);
+                    if (csvProcStats == null) {
+                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
+                        dumpHelp(pw);
+                        return;
+                    }
+                    csvSepProcStats = sep[0];
+                } else if ("--details".equals(arg)) {
+                    dumpDetails = true;
+                } else if ("--current".equals(arg)) {
+                    currentOnly = true;
+                } else if ("--commit".equals(arg)) {
+                    mProcessStats.mFlags |= ProcessStats.FLAG_COMPLETE;
+                    writeStateLocked(true, true);
+                    pw.println("Process stats committed.");
+                    return;
+                } else if ("--write".equals(arg)) {
+                    writeStateSyncLocked();
+                    pw.println("Process stats written.");
+                    return;
+                } else if ("--read".equals(arg)) {
+                    readLocked(mProcessStats, mFile);
+                    pw.println("Process stats read.");
+                    return;
+                } else if ("-h".equals(arg)) {
+                    dumpHelp(pw);
+                    return;
+                } else if ("-a".equals(arg)) {
+                    dumpDetails = true;
+                    dumpAll = true;
+                } else if (arg.length() > 0 && arg.charAt(0) == '-'){
+                    pw.println("Unknown option: " + arg);
+                    dumpHelp(pw);
+                    return;
+                } else {
+                    // Not an option, last argument must be a package name.
+                    try {
+                        IPackageManager pm = AppGlobals.getPackageManager();
+                        if (pm.getPackageUid(arg, UserHandle.getCallingUserId()) >= 0) {
+                            reqPackage = arg;
+                            // Include all details, since we know we are only going to
+                            // be dumping a smaller set of data.  In fact only the details
+                            // container per-package data, so that are needed to be able
+                            // to dump anything at all when filtering by package.
+                            dumpDetails = true;
+                        }
+                    } catch (RemoteException e) {
+                    }
+                    if (reqPackage == null) {
+                        pw.println("Unknown package: " + arg);
+                        dumpHelp(pw);
+                        return;
+                    }
+                }
+            }
+        }
+
+        if (isCsv) {
+            pw.print("Processes running summed over");
+            if (!csvSepScreenStats) {
+                for (int i=0; i<csvScreenStats.length; i++) {
+                    pw.print(" ");
+                    ProcessStats.printScreenLabelCsv(pw, csvScreenStats[i]);
+                }
+            }
+            if (!csvSepMemStats) {
+                for (int i=0; i<csvMemStats.length; i++) {
+                    pw.print(" ");
+                    ProcessStats.printMemLabelCsv(pw, csvMemStats[i]);
+                }
+            }
+            if (!csvSepProcStats) {
+                for (int i=0; i<csvProcStats.length; i++) {
+                    pw.print(" ");
+                    pw.print(ProcessStats.STATE_NAMES_CSV[csvProcStats[i]]);
+                }
+            }
+            pw.println();
+            synchronized (mLock) {
+                dumpFilteredProcessesCsvLocked(pw, null,
+                        csvSepScreenStats, csvScreenStats, csvSepMemStats, csvMemStats,
+                        csvSepProcStats, csvProcStats, now, reqPackage);
+                /*
+                dumpFilteredProcessesCsvLocked(pw, "Processes running while critical mem:",
+                        false, new int[] {ADJ_SCREEN_OFF, ADJ_SCREEN_ON},
+                        true, new int[] {ADJ_MEM_FACTOR_CRITICAL},
+                        true, new int[] {STATE_PERSISTENT, STATE_TOP, STATE_FOREGROUND, STATE_VISIBLE,
+                                STATE_PERCEPTIBLE, STATE_BACKUP, STATE_SERVICE, STATE_HOME,
+                                STATE_PREVIOUS, STATE_CACHED},
+                        now, reqPackage);
+                dumpFilteredProcessesCsvLocked(pw, "Processes running over all mem:",
+                        false, new int[] {ADJ_SCREEN_OFF, ADJ_SCREEN_ON},
+                        false, new int[] {ADJ_MEM_FACTOR_CRITICAL, ADJ_MEM_FACTOR_LOW,
+                                ADJ_MEM_FACTOR_MODERATE, ADJ_MEM_FACTOR_MODERATE},
+                        true, new int[] {STATE_PERSISTENT, STATE_TOP, STATE_FOREGROUND, STATE_VISIBLE,
+                                STATE_PERCEPTIBLE, STATE_BACKUP, STATE_SERVICE, STATE_HOME,
+                                STATE_PREVIOUS, STATE_CACHED},
+                        now, reqPackage);
+                */
+            }
+            return;
+        }
+
+        boolean sepNeeded = false;
+        if (!currentOnly || isCheckin) {
+            mWriteLock.lock();
+            try {
+                ArrayList<String> files = getCommittedFiles(0, !isCheckin);
+                if (files != null) {
+                    for (int i=0; i<files.size(); i++) {
+                        if (DEBUG) Slog.d(TAG, "Retrieving state: " + files.get(i));
+                        try {
+                            AtomicFile file = new AtomicFile(new File(files.get(i)));
+                            ProcessStats processStats = new ProcessStats(false);
+                            readLocked(processStats, file);
+                            if (processStats.mReadError != null) {
+                                if (isCheckin || isCompact) pw.print("err,");
+                                pw.print("Failure reading "); pw.print(files.get(i));
+                                pw.print("; "); pw.println(processStats.mReadError);
+                                if (DEBUG) Slog.d(TAG, "Deleting state: " + files.get(i));
+                                (new File(files.get(i))).delete();
+                                continue;
+                            }
+                            String fileStr = file.getBaseFile().getPath();
+                            boolean checkedIn = fileStr.endsWith(STATE_FILE_CHECKIN_SUFFIX);
+                            if (isCheckin || isCompact) {
+                                // Don't really need to lock because we uniquely own this object.
+                                processStats.dumpCheckinLocked(pw, reqPackage);
+                            } else {
+                                if (sepNeeded) {
+                                    pw.println();
+                                } else {
+                                    sepNeeded = true;
+                                }
+                                pw.print("COMMITTED STATS FROM ");
+                                pw.print(processStats.mTimePeriodStartClockStr);
+                                if (checkedIn) pw.print(" (checked in)");
+                                pw.println(":");
+                                // Don't really need to lock because we uniquely own this object.
+                                if (dumpDetails) {
+                                    processStats.dumpLocked(pw, reqPackage, now, dumpAll);
+                                } else {
+                                    processStats.dumpSummaryLocked(pw, reqPackage, now);
+                                }
+                            }
+                            if (isCheckin) {
+                                // Rename file suffix to mark that it has checked in.
+                                file.getBaseFile().renameTo(new File(
+                                        fileStr + STATE_FILE_CHECKIN_SUFFIX));
+                            }
+                        } catch (Throwable e) {
+                            pw.print("**** FAILURE DUMPING STATE: "); pw.println(files.get(i));
+                            e.printStackTrace(pw);
+                        }
+                    }
+                }
+            } finally {
+                mWriteLock.unlock();
+            }
+        }
+        if (!isCheckin) {
+            synchronized (mLock) {
+                if (isCompact) {
+                    mProcessStats.dumpCheckinLocked(pw, reqPackage);
+                } else {
+                    if (sepNeeded) {
+                        pw.println();
+                        pw.println("CURRENT STATS:");
+                    }
+                    if (dumpDetails) {
+                        mProcessStats.dumpLocked(pw, reqPackage, now, dumpAll);
+                        if (dumpAll) {
+                            pw.print("  mFile="); pw.println(mFile.getBaseFile());
+                        }
+                    } else {
+                        mProcessStats.dumpSummaryLocked(pw, reqPackage, now);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/services/java/com/android/server/am/ProcessTracker.java b/services/java/com/android/server/am/ProcessTracker.java
deleted file mode 100644
index d78fd5c..0000000
--- a/services/java/com/android/server/am/ProcessTracker.java
+++ /dev/null
@@ -1,3126 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.am;
-
-import android.app.AppGlobals;
-import android.content.pm.IPackageManager;
-import android.os.Parcel;
-import android.os.RemoteException;
-import android.os.SystemClock;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.text.format.DateFormat;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import android.util.AtomicFile;
-import android.util.Slog;
-import android.util.SparseArray;
-import android.util.TimeUtils;
-import android.webkit.WebViewFactory;
-import com.android.internal.os.BackgroundThread;
-import com.android.internal.util.ArrayUtils;
-import com.android.server.ProcessMap;
-import dalvik.system.VMRuntime;
-
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Objects;
-import java.util.concurrent.locks.ReentrantLock;
-
-public final class ProcessTracker {
-    static final String TAG = "ProcessTracker";
-    static final boolean DEBUG = false;
-
-    public static final int STATE_NOTHING = -1;
-    public static final int STATE_PERSISTENT = 0;
-    public static final int STATE_TOP = 1;
-    public static final int STATE_IMPORTANT_FOREGROUND = 2;
-    public static final int STATE_IMPORTANT_BACKGROUND = 3;
-    public static final int STATE_BACKUP = 4;
-    public static final int STATE_HEAVY_WEIGHT = 5;
-    public static final int STATE_SERVICE = 6;
-    public static final int STATE_SERVICE_RESTARTING = 7;
-    public static final int STATE_RECEIVER = 8;
-    public static final int STATE_HOME = 9;
-    public static final int STATE_LAST_ACTIVITY = 10;
-    public static final int STATE_CACHED_ACTIVITY = 11;
-    public static final int STATE_CACHED_ACTIVITY_CLIENT = 12;
-    public static final int STATE_CACHED_EMPTY = 13;
-    public static final int STATE_COUNT = STATE_CACHED_EMPTY+1;
-
-    static final int[] ALL_PROC_STATES = new int[] { STATE_PERSISTENT,
-            STATE_TOP, STATE_IMPORTANT_FOREGROUND, STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
-            STATE_HEAVY_WEIGHT, STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER,
-            STATE_HOME, STATE_LAST_ACTIVITY, STATE_CACHED_ACTIVITY,
-            STATE_CACHED_ACTIVITY_CLIENT, STATE_CACHED_EMPTY
-    };
-
-    static final int[] NON_CACHED_PROC_STATES = new int[] { STATE_PERSISTENT,
-            STATE_TOP, STATE_IMPORTANT_FOREGROUND,
-            STATE_IMPORTANT_BACKGROUND, STATE_BACKUP, STATE_HEAVY_WEIGHT,
-            STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER, STATE_HOME
-    };
-
-    public static final int PSS_SAMPLE_COUNT = 0;
-    public static final int PSS_MINIMUM = 1;
-    public static final int PSS_AVERAGE = 2;
-    public static final int PSS_MAXIMUM = 3;
-    public static final int PSS_USS_MINIMUM = 4;
-    public static final int PSS_USS_AVERAGE = 5;
-    public static final int PSS_USS_MAXIMUM = 6;
-    public static final int PSS_COUNT = PSS_USS_MAXIMUM+1;
-
-    public static final int ADJ_NOTHING = -1;
-    public static final int ADJ_MEM_FACTOR_NORMAL = 0;
-    public static final int ADJ_MEM_FACTOR_MODERATE = 1;
-    public static final int ADJ_MEM_FACTOR_LOW = 2;
-    public static final int ADJ_MEM_FACTOR_CRITICAL = 3;
-    public static final int ADJ_MEM_FACTOR_COUNT = ADJ_MEM_FACTOR_CRITICAL+1;
-    public static final int ADJ_SCREEN_MOD = ADJ_MEM_FACTOR_COUNT;
-    public static final int ADJ_SCREEN_OFF = 0;
-    public static final int ADJ_SCREEN_ON = ADJ_SCREEN_MOD;
-    public static final int ADJ_COUNT = ADJ_SCREEN_ON*2;
-
-    static final int[] ALL_SCREEN_ADJ = new int[] { ADJ_SCREEN_OFF, ADJ_SCREEN_ON };
-    static final int[] ALL_MEM_ADJ = new int[] { ADJ_MEM_FACTOR_NORMAL, ADJ_MEM_FACTOR_MODERATE,
-            ADJ_MEM_FACTOR_LOW, ADJ_MEM_FACTOR_CRITICAL };
-
-    // Most data is kept in a sparse data structure: an integer array which integer
-    // holds the type of the entry, and the identifier for a long array that data
-    // exists in and the offset into the array to find it.  The constants below
-    // define the encoding of that data in an integer.
-
-    // Where the "type"/"state" part of the data appears in an offset integer.
-    static int OFFSET_TYPE_SHIFT = 0;
-    static int OFFSET_TYPE_MASK = 0xff;
-
-    // Where the "which array" part of the data appears in an offset integer.
-    static int OFFSET_ARRAY_SHIFT = 8;
-    static int OFFSET_ARRAY_MASK = 0xff;
-
-    // Where the "index into array" part of the data appears in an offset integer.
-    static int OFFSET_INDEX_SHIFT = 16;
-    static int OFFSET_INDEX_MASK = 0xffff;
-
-    static final String[] STATE_NAMES = new String[] {
-            "Persistent", "Top       ", "Imp Fg    ", "Imp Bg    ",
-            "Backup    ", "Heavy Wght", "Service   ", "Service Rs",
-            "Receiver  ", "Home      ",
-            "Last Act  ", "Cch Act   ", "Cch CliAct", "Cch Empty "
-    };
-
-    static final String[] ADJ_SCREEN_NAMES_CSV = new String[] {
-            "off", "on"
-    };
-
-    static final String[] ADJ_MEM_NAMES_CSV = new String[] {
-            "norm", "mod",  "low", "crit"
-    };
-
-    static final String[] STATE_NAMES_CSV = new String[] {
-            "pers", "top", "impfg", "impbg", "backup", "heavy",
-            "service", "service-rs", "receiver", "home", "lastact",
-            "cch-activity", "cch-aclient", "cch-empty"
-    };
-
-    static final String[] ADJ_SCREEN_TAGS = new String[] {
-            "0", "1"
-    };
-
-    static final String[] ADJ_MEM_TAGS = new String[] {
-            "n", "m",  "l", "c"
-    };
-
-    static final String[] STATE_TAGS = new String[] {
-            "p", "t", "f", "b", "u", "w",
-            "s", "x", "r", "h", "l", "a", "c", "e"
-    };
-
-    // Map from process states to the states we track.
-    static final int[] PROCESS_STATE_TO_STATE = new int[] {
-            STATE_PERSISTENT,               // ActivityManager.PROCESS_STATE_PERSISTENT
-            STATE_PERSISTENT,               // ActivityManager.PROCESS_STATE_PERSISTENT_UI
-            STATE_TOP,                      // ActivityManager.PROCESS_STATE_TOP
-            STATE_IMPORTANT_FOREGROUND,     // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
-            STATE_IMPORTANT_BACKGROUND,     // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
-            STATE_BACKUP,                   // ActivityManager.PROCESS_STATE_BACKUP
-            STATE_HEAVY_WEIGHT,             // ActivityManager.PROCESS_STATE_HEAVY_WEIGHT
-            STATE_SERVICE,                  // ActivityManager.PROCESS_STATE_SERVICE
-            STATE_RECEIVER,                 // ActivityManager.PROCESS_STATE_RECEIVER
-            STATE_HOME,                     // ActivityManager.PROCESS_STATE_HOME
-            STATE_LAST_ACTIVITY,            // ActivityManager.PROCESS_STATE_LAST_ACTIVITY
-            STATE_CACHED_ACTIVITY,          // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY
-            STATE_CACHED_ACTIVITY_CLIENT,   // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT
-            STATE_CACHED_EMPTY,             // ActivityManager.PROCESS_STATE_CACHED_EMPTY
-    };
-
-    static final String CSV_SEP = "\t";
-
-    static final int MAX_HISTORIC_STATES = 4;   // Maximum number of historic states we will keep.
-    static final String STATE_FILE_PREFIX = "state-"; // Prefix to use for state filenames.
-    static final String STATE_FILE_SUFFIX = ".bin"; // Suffix to use for state filenames.
-    static final String STATE_FILE_CHECKIN_SUFFIX = ".ci"; // State files that have checked in.
-    static long WRITE_PERIOD = 30*60*1000;      // Write file every 30 minutes or so.
-    static long COMMIT_PERIOD = 24*60*60*1000;  // Commit current stats every day.
-
-    final Object mLock;
-    final File mBaseDir;
-    State mState;
-    boolean mCommitPending;
-    boolean mShuttingDown;
-    int mLastMemOnlyState = -1;
-    boolean mMemFactorLowered;
-
-    final ReentrantLock mWriteLock = new ReentrantLock();
-
-    public static final class ProcessState {
-        final State mState;
-        final ProcessState mCommonProcess;
-        final String mPackage;
-        final int mUid;
-        final String mName;
-
-        int[] mDurationsTable;
-        int mDurationsTableSize;
-
-        //final long[] mDurations = new long[STATE_COUNT*ADJ_COUNT];
-        int mCurState = STATE_NOTHING;
-        long mStartTime;
-
-        int mLastPssState = STATE_NOTHING;
-        long mLastPssTime;
-        int[] mPssTable;
-        int mPssTableSize;
-
-        int mNumStartedServices;
-
-        int mNumExcessiveWake;
-        int mNumExcessiveCpu;
-
-        boolean mMultiPackage;
-
-        long mTmpTotalTime;
-
-        /**
-         * Create a new top-level process state, for the initial case where there is only
-         * a single package running in a process.  The initial state is not running.
-         */
-        public ProcessState(State state, String pkg, int uid, String name) {
-            mState = state;
-            mCommonProcess = this;
-            mPackage = pkg;
-            mUid = uid;
-            mName = name;
-        }
-
-        /**
-         * Create a new per-package process state for an existing top-level process
-         * state.  The current running state of the top-level process is also copied,
-         * marked as started running at 'now'.
-         */
-        public ProcessState(ProcessState commonProcess, String pkg, int uid, String name,
-                long now) {
-            mState = commonProcess.mState;
-            mCommonProcess = commonProcess;
-            mPackage = pkg;
-            mUid = uid;
-            mName = name;
-            mCurState = commonProcess.mCurState;
-            mStartTime = now;
-        }
-
-        ProcessState clone(String pkg, long now) {
-            ProcessState pnew = new ProcessState(this, pkg, mUid, mName, now);
-            if (mDurationsTable != null) {
-                mState.mAddLongTable = new int[mDurationsTable.length];
-                mState.mAddLongTableSize = 0;
-                for (int i=0; i<mDurationsTableSize; i++) {
-                    int origEnt = mDurationsTable[i];
-                    int type = (origEnt>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
-                    int newOff = mState.addLongData(i, type, 1);
-                    mState.mAddLongTable[i] = newOff | type;
-                    mState.setLong(newOff, 0, mState.getLong(origEnt, 0));
-                }
-                pnew.mDurationsTable = mState.mAddLongTable;
-                pnew.mDurationsTableSize = mState.mAddLongTableSize;
-            }
-            if (mPssTable != null) {
-                mState.mAddLongTable = new int[mPssTable.length];
-                mState.mAddLongTableSize = 0;
-                for (int i=0; i<mPssTableSize; i++) {
-                    int origEnt = mPssTable[i];
-                    int type = (origEnt>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
-                    int newOff = mState.addLongData(i, type, PSS_COUNT);
-                    mState.mAddLongTable[i] = newOff | type;
-                    for (int j=0; j<PSS_COUNT; j++) {
-                        mState.setLong(newOff, j, mState.getLong(origEnt, j));
-                    }
-                }
-                pnew.mPssTable = mState.mAddLongTable;
-                pnew.mPssTableSize = mState.mAddLongTableSize;
-            }
-            pnew.mNumExcessiveWake = mNumExcessiveWake;
-            pnew.mNumExcessiveCpu = mNumExcessiveCpu;
-            pnew.mNumStartedServices = mNumStartedServices;
-            return pnew;
-        }
-
-        void resetSafely(long now) {
-            mDurationsTable = null;
-            mDurationsTableSize = 0;
-            mStartTime = now;
-            mLastPssState = STATE_NOTHING;
-            mLastPssTime = 0;
-            mPssTable = null;
-            mPssTableSize = 0;
-            mNumExcessiveWake = 0;
-            mNumExcessiveCpu = 0;
-        }
-
-        void writeToParcel(Parcel out, long now) {
-            commitStateTime(now);
-            out.writeInt(mMultiPackage ? 1 : 0);
-            out.writeInt(mDurationsTableSize);
-            for (int i=0; i<mDurationsTableSize; i++) {
-                if (DEBUG) Slog.i(TAG, "Writing in " + mName + " dur #" + i + ": "
-                        + State.printLongOffset(mDurationsTable[i]));
-                out.writeInt(mDurationsTable[i]);
-            }
-            out.writeInt(mPssTableSize);
-            for (int i=0; i<mPssTableSize; i++) {
-                if (DEBUG) Slog.i(TAG, "Writing in " + mName + " pss #" + i + ": "
-                        + State.printLongOffset(mPssTable[i]));
-                out.writeInt(mPssTable[i]);
-            }
-            out.writeInt(mNumExcessiveWake);
-            out.writeInt(mNumExcessiveCpu);
-        }
-
-        boolean readFromParcel(Parcel in, boolean fully) {
-            boolean multiPackage = in.readInt() != 0;
-            if (fully) {
-                mMultiPackage = multiPackage;
-            }
-            if (DEBUG) Slog.d(TAG, "Reading durations table...");
-            mDurationsTable = mState.readTableFromParcel(in, mName, "durations");
-            if (mDurationsTable == State.BAD_TABLE) {
-                return false;
-            }
-            mDurationsTableSize = mDurationsTable != null ? mDurationsTable.length : 0;
-            if (DEBUG) Slog.d(TAG, "Reading pss table...");
-            mPssTable = mState.readTableFromParcel(in, mName, "pss");
-            if (mPssTable == State.BAD_TABLE) {
-                return false;
-            }
-            mPssTableSize = mPssTable != null ? mPssTable.length : 0;
-            mNumExcessiveWake = in.readInt();
-            mNumExcessiveCpu = in.readInt();
-            return true;
-        }
-
-        /**
-         * Update the current state of the given list of processes.
-         *
-         * @param state Current ActivityManager.PROCESS_STATE_*
-         * @param memFactor Current mem factor constant.
-         * @param now Current time.
-         * @param pkgList Processes to update.
-         */
-        public void setState(int state, int memFactor, long now,
-                ArrayMap<String, ProcessTracker.ProcessState> pkgList) {
-            if (state < 0) {
-                state = mNumStartedServices > 0
-                        ? (STATE_SERVICE_RESTARTING+(memFactor*STATE_COUNT)) : STATE_NOTHING;
-            } else {
-                state = PROCESS_STATE_TO_STATE[state] + (memFactor*STATE_COUNT);
-            }
-
-            // First update the common process.
-            mCommonProcess.setState(state, now);
-
-            // If the common process is not multi-package, there is nothing else to do.
-            if (!mCommonProcess.mMultiPackage) {
-                return;
-            }
-
-            if (pkgList != null) {
-                for (int ip=pkgList.size()-1; ip>=0; ip--) {
-                    pullFixedProc(pkgList, ip).setState(state, now);
-                }
-            }
-        }
-
-        void setState(int state, long now) {
-            if (mCurState != state) {
-                //Slog.i(TAG, "Setting state in " + mName + "/" + mPackage + ": " + state);
-                commitStateTime(now);
-                mCurState = state;
-            }
-        }
-
-        void commitStateTime(long now) {
-            if (mCurState != STATE_NOTHING) {
-                long dur = now - mStartTime;
-                if (dur > 0) {
-                    int idx = State.binarySearch(mDurationsTable, mDurationsTableSize, mCurState);
-                    int off;
-                    if (idx >= 0) {
-                        off = mDurationsTable[idx];
-                    } else {
-                        mState.mAddLongTable = mDurationsTable;
-                        mState.mAddLongTableSize = mDurationsTableSize;
-                        off = mState.addLongData(~idx, mCurState, 1);
-                        mDurationsTable = mState.mAddLongTable;
-                        mDurationsTableSize = mState.mAddLongTableSize;
-                    }
-                    long[] longs = mState.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-                    longs[(off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK] += dur;
-                }
-            }
-            mStartTime = now;
-        }
-
-        void incStartedServices(int memFactor, long now) {
-            if (mCommonProcess != this) {
-                mCommonProcess.incStartedServices(memFactor, now);
-            }
-            mNumStartedServices++;
-            if (mNumStartedServices == 1 && mCurState == STATE_NOTHING) {
-                setState(STATE_NOTHING, memFactor, now, null);
-            }
-        }
-
-        void decStartedServices(int memFactor, long now) {
-            if (mCommonProcess != this) {
-                mCommonProcess.decStartedServices(memFactor, now);
-            }
-            mNumStartedServices--;
-            if (mNumStartedServices == 0 && mCurState == STATE_SERVICE_RESTARTING) {
-                setState(STATE_NOTHING, memFactor, now, null);
-            } else if (mNumStartedServices < 0) {
-                throw new IllegalStateException("Proc started services underrun: pkg="
-                        + mPackage + " uid=" + mUid + " name=" + mName);
-            }
-        }
-
-        public void addPss(long pss, long uss, boolean always) {
-            if (!always) {
-                if (mLastPssState == mCurState && SystemClock.uptimeMillis()
-                        < (mLastPssTime+(30*1000))) {
-                    return;
-                }
-            }
-            mLastPssState = mCurState;
-            mLastPssTime = SystemClock.uptimeMillis();
-            if (mCurState != STATE_NOTHING) {
-                int idx = State.binarySearch(mPssTable, mPssTableSize, mCurState);
-                int off;
-                if (idx >= 0) {
-                    off = mPssTable[idx];
-                } else {
-                    mState.mAddLongTable = mPssTable;
-                    mState.mAddLongTableSize = mPssTableSize;
-                    off = mState.addLongData(~idx, mCurState, PSS_COUNT);
-                    mPssTable = mState.mAddLongTable;
-                    mPssTableSize = mState.mAddLongTableSize;
-                }
-                long[] longs = mState.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-                idx = (off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK;
-                long count = longs[idx+PSS_SAMPLE_COUNT];
-                if (count == 0) {
-                    longs[idx+PSS_SAMPLE_COUNT] = 1;
-                    longs[idx+PSS_MINIMUM] = pss;
-                    longs[idx+PSS_AVERAGE] = pss;
-                    longs[idx+PSS_MAXIMUM] = pss;
-                    longs[idx+PSS_USS_MINIMUM] = uss;
-                    longs[idx+PSS_USS_AVERAGE] = uss;
-                    longs[idx+PSS_USS_MAXIMUM] = uss;
-                } else {
-                    longs[idx+PSS_SAMPLE_COUNT] = count+1;
-                    if (longs[idx+PSS_MINIMUM] > pss) {
-                        longs[idx+PSS_MINIMUM] = pss;
-                    }
-                    longs[idx+PSS_AVERAGE] = (long)(
-                            ((longs[idx+PSS_AVERAGE]*(double)count)+pss) / (count+1) );
-                    if (longs[idx+PSS_MAXIMUM] < pss) {
-                        longs[idx+PSS_MAXIMUM] = pss;
-                    }
-                    if (longs[idx+PSS_USS_MINIMUM] > uss) {
-                        longs[idx+PSS_USS_MINIMUM] = uss;
-                    }
-                    longs[idx+PSS_USS_AVERAGE] = (long)(
-                            ((longs[idx+PSS_USS_AVERAGE]*(double)count)+uss) / (count+1) );
-                    if (longs[idx+PSS_USS_MAXIMUM] < uss) {
-                        longs[idx+PSS_USS_MAXIMUM] = uss;
-                    }
-                }
-            }
-        }
-
-        public void reportExcessiveWake(ArrayMap<String, ProcessTracker.ProcessState> pkgList) {
-            mCommonProcess.mNumExcessiveWake++;
-            if (!mCommonProcess.mMultiPackage) {
-                return;
-            }
-
-            for (int ip=pkgList.size()-1; ip>=0; ip--) {
-                pullFixedProc(pkgList, ip).mNumExcessiveWake++;
-            }
-        }
-
-        public void reportExcessiveCpu(ArrayMap<String, ProcessTracker.ProcessState> pkgList) {
-            mCommonProcess.mNumExcessiveCpu++;
-            if (!mCommonProcess.mMultiPackage) {
-                return;
-            }
-
-            for (int ip=pkgList.size()-1; ip>=0; ip--) {
-                pullFixedProc(pkgList, ip).mNumExcessiveCpu++;
-            }
-        }
-
-        ProcessState pullFixedProc(String pkgName) {
-            if (mMultiPackage) {
-                // The array map is still pointing to a common process state
-                // that is now shared across packages.  Update it to point to
-                // the new per-package state.
-                ProcessState proc = mState.mPackages.get(pkgName, mUid).mProcesses.get(mName);
-                if (proc == null) {
-                    throw new IllegalStateException("Didn't create per-package process");
-                }
-                return proc;
-            }
-            return this;
-        }
-
-        private ProcessState pullFixedProc(ArrayMap<String, ProcessTracker.ProcessState> pkgList,
-                int index) {
-            ProcessState proc = pkgList.valueAt(index);
-            if (proc.mMultiPackage) {
-                // The array map is still pointing to a common process state
-                // that is now shared across packages.  Update it to point to
-                // the new per-package state.
-                proc = mState.mPackages.get(pkgList.keyAt(index),
-                        proc.mUid).mProcesses.get(proc.mName);
-                if (proc == null) {
-                    throw new IllegalStateException("Didn't create per-package process");
-                }
-                pkgList.setValueAt(index, proc);
-            }
-            return proc;
-        }
-
-        long getDuration(int state, long now) {
-            int idx = State.binarySearch(mDurationsTable, mDurationsTableSize, state);
-            long time = idx >= 0 ? mState.getLong(mDurationsTable[idx], 0) : 0;
-            if (mCurState == state) {
-                time += now - mStartTime;
-            }
-            return time;
-        }
-
-        long getPssSampleCount(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_SAMPLE_COUNT) : 0;
-        }
-
-        long getPssMinimum(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_MINIMUM) : 0;
-        }
-
-        long getPssAverage(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_AVERAGE) : 0;
-        }
-
-        long getPssMaximum(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_MAXIMUM) : 0;
-        }
-
-        long getPssUssMinimum(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_USS_MINIMUM) : 0;
-        }
-
-        long getPssUssAverage(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_USS_AVERAGE) : 0;
-        }
-
-        long getPssUssMaximum(int state) {
-            int idx = State.binarySearch(mPssTable, mPssTableSize, state);
-            return idx >= 0 ? mState.getLong(mPssTable[idx], PSS_USS_MAXIMUM) : 0;
-        }
-    }
-
-    public static final class ServiceState {
-        final State mState;
-        final String mPackage;
-        ProcessState mProc;
-
-        int mActive = 1;
-
-        static final int SERVICE_STARTED = 0;
-        static final int SERVICE_BOUND = 1;
-        static final int SERVICE_EXEC = 2;
-        static final int SERVICE_COUNT = 3;
-
-        int[] mDurationsTable;
-        int mDurationsTableSize;
-
-        int mStartedCount;
-        int mStartedState = STATE_NOTHING;
-        long mStartedStartTime;
-
-        int mBoundCount;
-        int mBoundState = STATE_NOTHING;
-        long mBoundStartTime;
-
-        int mExecCount;
-        int mExecState = STATE_NOTHING;
-        long mExecStartTime;
-
-        ServiceState(State state, String pkg, ProcessState proc) {
-            mState = state;
-            mPackage = pkg;
-            mProc = proc;
-        }
-
-        void makeActive() {
-            mActive++;
-        }
-
-        void makeInactive() {
-            /*
-            RuntimeException here = new RuntimeException("here");
-            here.fillInStackTrace();
-            Slog.i(TAG, "Making " + this + " inactive", here);
-            */
-            mActive--;
-        }
-
-        boolean isActive() {
-            return mActive > 0;
-        }
-
-        void resetSafely(long now) {
-            mDurationsTable = null;
-            mDurationsTableSize = 0;
-            mStartedCount = mStartedState != STATE_NOTHING ? 1 : 0;
-            mBoundCount = mBoundState != STATE_NOTHING ? 1 : 0;
-            mExecCount = mExecState != STATE_NOTHING ? 1 : 0;
-            mStartedStartTime = mBoundStartTime = mExecStartTime = now;
-        }
-
-        void writeToParcel(Parcel out, long now) {
-            if (mStartedState != STATE_NOTHING) {
-                addStateTime(SERVICE_STARTED, mStartedState, now - mStartedStartTime);
-                mStartedStartTime = now;
-            }
-            if (mBoundState != STATE_NOTHING) {
-                addStateTime(SERVICE_BOUND, mBoundState, now - mBoundStartTime);
-                mBoundStartTime = now;
-            }
-            if (mExecState != STATE_NOTHING) {
-                addStateTime(SERVICE_EXEC, mExecState, now - mExecStartTime);
-                mExecStartTime = now;
-            }
-            out.writeInt(mDurationsTableSize);
-            for (int i=0; i<mDurationsTableSize; i++) {
-                if (DEBUG) Slog.i(TAG, "Writing service in " + mPackage + " dur #" + i + ": "
-                        + State.printLongOffset(mDurationsTable[i]));
-                out.writeInt(mDurationsTable[i]);
-            }
-            out.writeInt(mStartedCount);
-            out.writeInt(mBoundCount);
-            out.writeInt(mExecCount);
-        }
-
-        boolean readFromParcel(Parcel in) {
-            if (DEBUG) Slog.d(TAG, "Reading durations table...");
-            mDurationsTable = mState.readTableFromParcel(in, mPackage, "service");
-            if (mDurationsTable == State.BAD_TABLE) {
-                return false;
-            }
-            mStartedCount = in.readInt();
-            mBoundCount = in.readInt();
-            mExecCount = in.readInt();
-            return true;
-        }
-
-        void addStateTime(int opType, int memFactor, long time) {
-            if (time > 0) {
-                int state = opType + (memFactor*SERVICE_COUNT);
-                int idx = State.binarySearch(mDurationsTable, mDurationsTableSize, state);
-                int off;
-                if (idx >= 0) {
-                    off = mDurationsTable[idx];
-                } else {
-                    mState.mAddLongTable = mDurationsTable;
-                    mState.mAddLongTableSize = mDurationsTableSize;
-                    off = mState.addLongData(~idx, state, 1);
-                    mDurationsTable = mState.mAddLongTable;
-                    mDurationsTableSize = mState.mAddLongTableSize;
-                }
-                long[] longs = mState.mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-                longs[(off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK] += time;
-            }
-        }
-
-        public void setStarted(boolean started, int memFactor, long now) {
-            if (mActive <= 0) {
-                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
-            }
-            int state = started ? memFactor : STATE_NOTHING;
-            if (mStartedState != state) {
-                if (mStartedState != STATE_NOTHING) {
-                    addStateTime(SERVICE_STARTED, mStartedState, now - mStartedStartTime);
-                } else if (started) {
-                    mStartedCount++;
-                }
-                mStartedState = state;
-                mStartedStartTime = now;
-                if (mProc != null) {
-                    mProc = mProc.pullFixedProc(mPackage);
-                    if (started) {
-                        mProc.incStartedServices(memFactor, now);
-                    } else {
-                        mProc.decStartedServices(memFactor, now);
-                    }
-                }
-            }
-        }
-
-        public void setBound(boolean bound, int memFactor, long now) {
-            if (mActive <= 0) {
-                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
-            }
-            int state = bound ? memFactor : STATE_NOTHING;
-            if (mBoundState != state) {
-                if (mBoundState != STATE_NOTHING) {
-                    addStateTime(SERVICE_BOUND, mBoundState, now - mBoundStartTime);
-                } else if (bound) {
-                    mBoundCount++;
-                }
-                mBoundState = state;
-                mBoundStartTime = now;
-            }
-        }
-
-        public void setExecuting(boolean executing, int memFactor, long now) {
-            if (mActive <= 0) {
-                throw new IllegalStateException("Service " + this + " has mActive=" + mActive);
-            }
-            int state = executing ? memFactor : STATE_NOTHING;
-            if (mExecState != state) {
-                if (mExecState != STATE_NOTHING) {
-                    addStateTime(SERVICE_EXEC, mExecState, now - mExecStartTime);
-                } else if (executing) {
-                    mExecCount++;
-                }
-                mExecState = state;
-                mExecStartTime = now;
-            }
-        }
-
-        long getStartDuration(int opType, int memFactor, long now) {
-            switch (opType) {
-                case SERVICE_STARTED:
-                    return getDuration(opType, mStartedState, mStartedStartTime, memFactor, now);
-                case SERVICE_BOUND:
-                    return getDuration(opType, mBoundState, mBoundStartTime, memFactor, now);
-                case SERVICE_EXEC:
-                    return getDuration(opType, mExecState, mExecStartTime, memFactor, now);
-                default:
-                    throw new IllegalArgumentException("Bad opType: " + opType);
-            }
-        }
-
-
-        private long getDuration(int opType, int curState, long startTime, int memFactor,
-                long now) {
-            int state = opType + (memFactor*SERVICE_COUNT);
-            int idx = State.binarySearch(mDurationsTable, mDurationsTableSize, state);
-            long time = idx >= 0 ? mState.getLong(mDurationsTable[idx], 0) : 0;
-            if (curState == memFactor) {
-                time += now - startTime;
-            }
-            return time;
-        }
-    }
-
-    public static final class PackageState {
-        final ArrayMap<String, ProcessState> mProcesses = new ArrayMap<String, ProcessState>();
-        final ArrayMap<String, ServiceState> mServices = new ArrayMap<String, ServiceState>();
-        final int mUid;
-
-        public PackageState(int uid) {
-            mUid = uid;
-        }
-    }
-
-    static final class State {
-        // Current version of the parcel format.
-        private static final int PARCEL_VERSION = 9;
-        // In-memory Parcel magic number, used to detect attempts to unmarshall bad data
-        private static final int MAGIC = 0x50535453;
-
-        static final int FLAG_COMPLETE = 1<<0;
-        static final int FLAG_SHUTDOWN = 1<<1;
-        static final int FLAG_SYSPROPS = 1<<2;
-
-        final File mBaseDir;
-        final ProcessTracker mProcessTracker;
-        AtomicFile mFile;
-        String mReadError;
-
-        long mTimePeriodStartClock;
-        String mTimePeriodStartClockStr;
-        long mTimePeriodStartRealtime;
-        long mTimePeriodEndRealtime;
-        String mRuntime;
-        String mWebView;
-        boolean mRunning;
-        int mFlags;
-
-        final ProcessMap<PackageState> mPackages = new ProcessMap<PackageState>();
-        final ProcessMap<ProcessState> mProcesses = new ProcessMap<ProcessState>();
-        final long[] mMemFactorDurations = new long[ADJ_COUNT];
-        int mMemFactor = STATE_NOTHING;
-        long mStartTime;
-
-        static final int LONGS_SIZE = 4096;
-        final ArrayList<long[]> mLongs = new ArrayList<long[]>();
-        int mNextLong;
-
-        int[] mAddLongTable;
-        int mAddLongTableSize;
-
-        final Object mPendingWriteLock = new Object();
-        AtomicFile mPendingWriteFile;
-        Parcel mPendingWrite;
-        boolean mPendingWriteCommitted;
-        long mLastWriteTime;
-
-        State(File baseDir, ProcessTracker tracker) {
-            mBaseDir = baseDir;
-            reset();
-            mProcessTracker = tracker;
-        }
-
-        State(String file) {
-            mBaseDir = null;
-            reset();
-            mFile = new AtomicFile(new File(file));
-            mProcessTracker = null;
-            readLocked();
-        }
-
-        void reset() {
-            if (DEBUG && mFile != null) Slog.d(TAG, "Resetting state of " + mFile.getBaseFile());
-            resetCommon();
-            mPackages.getMap().clear();
-            mProcesses.getMap().clear();
-            mMemFactor = STATE_NOTHING;
-            mStartTime = 0;
-            if (DEBUG && mFile != null) Slog.d(TAG, "State reset; now " + mFile.getBaseFile());
-        }
-
-        void resetSafely() {
-            if (DEBUG && mFile != null) Slog.d(TAG, "Safely resetting state of " + mFile.getBaseFile());
-            resetCommon();
-            long now = SystemClock.uptimeMillis();
-            ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
-            for (int ip=procMap.size()-1; ip>=0; ip--) {
-                SparseArray<ProcessState> uids = procMap.valueAt(ip);
-                for (int iu=uids.size()-1; iu>=0; iu--) {
-                    uids.valueAt(iu).resetSafely(now);
-                }
-            }
-            ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-            for (int ip=pkgMap.size()-1; ip>=0; ip--) {
-                SparseArray<PackageState> uids = pkgMap.valueAt(ip);
-                for (int iu=uids.size()-1; iu>=0; iu--) {
-                    PackageState pkgState = uids.valueAt(iu);
-                    for (int iproc=pkgState.mProcesses.size()-1; iproc>=0; iproc--) {
-                        pkgState.mProcesses.valueAt(iproc).resetSafely(now);
-                    }
-                    for (int isvc=pkgState.mServices.size()-1; isvc>=0; isvc--) {
-                        ServiceState ss = pkgState.mServices.valueAt(isvc);
-                        if (ss.isActive()) {
-                            pkgState.mServices.valueAt(isvc).resetSafely(now);
-                        } else {
-                            pkgState.mServices.removeAt(isvc);
-                        }
-                    }
-                }
-            }
-            mStartTime = SystemClock.uptimeMillis();
-            if (DEBUG && mFile != null) Slog.d(TAG, "State reset; now " + mFile.getBaseFile());
-        }
-
-        private void resetCommon() {
-            mLastWriteTime = SystemClock.uptimeMillis();
-            mTimePeriodStartClock = System.currentTimeMillis();
-            buildTimePeriodStartClockStr();
-            mTimePeriodStartRealtime = mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
-            mLongs.clear();
-            mLongs.add(new long[LONGS_SIZE]);
-            mNextLong = 0;
-            Arrays.fill(mMemFactorDurations, 0);
-            mStartTime = 0;
-            mReadError = null;
-            mFlags = 0;
-            evaluateSystemProperties(true);
-        }
-
-        public boolean evaluateSystemProperties(boolean update) {
-            boolean changed = false;
-            String runtime = SystemProperties.get("persist.sys.dalvik.vm.lib",
-                    VMRuntime.getRuntime().vmLibrary());
-            if (!Objects.equals(runtime, mRuntime)) {
-                changed = true;
-                if (update) {
-                    mRuntime = runtime;
-                }
-            }
-            String webview = WebViewFactory.useExperimentalWebView() ? "chromeview" : "webview";
-            if (!Objects.equals(webview, mWebView)) {
-                changed = true;
-                if (update) {
-                    mWebView = webview;
-                }
-            }
-            return changed;
-        }
-
-        private void buildTimePeriodStartClockStr() {
-            mTimePeriodStartClockStr = DateFormat.format("yyyy-MM-dd-HH-mm-ss",
-                    mTimePeriodStartClock).toString();
-            if (mBaseDir != null) {
-                mFile = new AtomicFile(new File(mBaseDir,
-                        STATE_FILE_PREFIX + mTimePeriodStartClockStr + STATE_FILE_SUFFIX));
-            }
-        }
-
-        static byte[] readFully(FileInputStream stream) throws java.io.IOException {
-            int pos = 0;
-            int avail = stream.available();
-            byte[] data = new byte[avail];
-            while (true) {
-                int amt = stream.read(data, pos, data.length-pos);
-                //Log.i("foo", "Read " + amt + " bytes at " + pos
-                //        + " of avail " + data.length);
-                if (amt <= 0) {
-                    //Log.i("foo", "**** FINISHED READING: pos=" + pos
-                    //        + " len=" + data.length);
-                    return data;
-                }
-                pos += amt;
-                avail = stream.available();
-                if (avail > data.length-pos) {
-                    byte[] newData = new byte[pos+avail];
-                    System.arraycopy(data, 0, newData, 0, pos);
-                    data = newData;
-                }
-            }
-        }
-
-        boolean readLocked() {
-            try {
-                FileInputStream stream = mFile.openRead();
-
-                byte[] raw = readFully(stream);
-                Parcel in = Parcel.obtain();
-                in.unmarshall(raw, 0, raw.length);
-                in.setDataPosition(0);
-                stream.close();
-
-                readFromParcel(in);
-                if (mReadError != null) {
-                    Slog.w(TAG, "Ignoring existing stats; " + mReadError);
-                    if (DEBUG) {
-                        ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
-                        final int NPROC = procMap.size();
-                        for (int ip=0; ip<NPROC; ip++) {
-                            Slog.w(TAG, "Process: " + procMap.keyAt(ip));
-                            SparseArray<ProcessState> uids = procMap.valueAt(ip);
-                            final int NUID = uids.size();
-                            for (int iu=0; iu<NUID; iu++) {
-                                Slog.w(TAG, "  Uid " + uids.keyAt(iu) + ": " + uids.valueAt(iu));
-                            }
-                        }
-                        ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-                        final int NPKG = pkgMap.size();
-                        for (int ip=0; ip<NPKG; ip++) {
-                            Slog.w(TAG, "Package: " + pkgMap.keyAt(ip));
-                            SparseArray<PackageState> uids = pkgMap.valueAt(ip);
-                            final int NUID = uids.size();
-                            for (int iu=0; iu<NUID; iu++) {
-                                Slog.w(TAG, "  Uid: " + uids.keyAt(iu));
-                                PackageState pkgState = uids.valueAt(iu);
-                                final int NPROCS = pkgState.mProcesses.size();
-                                for (int iproc=0; iproc<NPROCS; iproc++) {
-                                    Slog.w(TAG, "    Process " + pkgState.mProcesses.keyAt(iproc)
-                                            + ": " + pkgState.mProcesses.valueAt(iproc));
-                                }
-                                final int NSRVS = pkgState.mServices.size();
-                                for (int isvc=0; isvc<NSRVS; isvc++) {
-                                    Slog.w(TAG, "    Service " + pkgState.mServices.keyAt(isvc)
-                                            + ": " + pkgState.mServices.valueAt(isvc));
-                                }
-                            }
-                        }
-                    }
-                    return false;
-                }
-            } catch (Throwable e) {
-                mReadError = "caught exception: " + e;
-                Slog.e(TAG, "Error reading process statistics", e);
-                return false;
-            }
-            return true;
-        }
-
-        static final int[] BAD_TABLE = new int[0];
-
-        private int[] readTableFromParcel(Parcel in, String name, String what) {
-            final int size = in.readInt();
-            if (size < 0) {
-                Slog.w(TAG, "Ignoring existing stats; bad " + what + " table size: " + size);
-                return BAD_TABLE;
-            }
-            if (size == 0) {
-                return null;
-            }
-            final int[] table = new int[size];
-            for (int i=0; i<size; i++) {
-                table[i] = in.readInt();
-                if (DEBUG) Slog.i(TAG, "Reading in " + name + " table #" + i + ": "
-                        + State.printLongOffset(table[i]));
-                if (!validateLongOffset(table[i])) {
-                    Slog.w(TAG, "Ignoring existing stats; bad " + what + " table entry: "
-                            + State.printLongOffset(table[i]));
-                    return null;
-                }
-            }
-            return table;
-        }
-
-        private void writeStateLocked(boolean sync, final boolean commit) {
-            synchronized (mPendingWriteLock) {
-                long now = SystemClock.uptimeMillis();
-                if (mPendingWrite == null || !mPendingWriteCommitted) {
-                    mPendingWrite = Parcel.obtain();
-                    mTimePeriodEndRealtime = SystemClock.elapsedRealtime();
-                    if (commit) {
-                        mFlags |= State.FLAG_COMPLETE;
-                    }
-                    writeToParcel(mPendingWrite);
-                    mPendingWriteFile = new AtomicFile(mFile.getBaseFile());
-                    mPendingWriteCommitted = commit;
-                }
-                if (commit) {
-                    resetSafely();
-                } else {
-                    mLastWriteTime = SystemClock.uptimeMillis();
-                }
-                Slog.i(TAG, "Prepared write state in " + (SystemClock.uptimeMillis()-now) + "ms");
-                if (!sync) {
-                    BackgroundThread.getHandler().post(new Runnable() {
-                        @Override public void run() {
-                            performWriteState();
-                        }
-                    });
-                    return;
-                }
-            }
-
-            performWriteState();
-        }
-
-        void performWriteState() {
-            if (DEBUG) Slog.d(TAG, "Performing write to " + mFile.getBaseFile());
-            Parcel data;
-            AtomicFile file;
-            synchronized (mPendingWriteLock) {
-                data = mPendingWrite;
-                file = mPendingWriteFile;
-                mPendingWriteCommitted = false;
-                if (data == null) {
-                    return;
-                }
-                mPendingWrite = null;
-                mPendingWriteFile = null;
-                if (mProcessTracker != null) {
-                    mProcessTracker.mWriteLock.lock();
-                }
-            }
-
-            FileOutputStream stream = null;
-            try {
-                stream = file.startWrite();
-                stream.write(data.marshall());
-                stream.flush();
-                file.finishWrite(stream);
-                if (DEBUG) Slog.d(TAG, "Write completed successfully!");
-            } catch (IOException e) {
-                Slog.w(TAG, "Error writing process statistics", e);
-                file.failWrite(stream);
-            } finally {
-                data.recycle();
-                if (mProcessTracker != null) {
-                    mProcessTracker.trimHistoricStatesWriteLocked();
-                    mProcessTracker.mWriteLock.unlock();
-                }
-            }
-
-        }
-
-        void writeToParcel(Parcel out) {
-            long now = SystemClock.uptimeMillis();
-            out.writeInt(MAGIC);
-            out.writeInt(PARCEL_VERSION);
-            out.writeInt(STATE_COUNT);
-            out.writeInt(ADJ_COUNT);
-            out.writeInt(PSS_COUNT);
-            out.writeInt(LONGS_SIZE);
-
-            out.writeLong(mTimePeriodStartClock);
-            out.writeLong(mTimePeriodStartRealtime);
-            out.writeLong(mTimePeriodEndRealtime);
-            out.writeString(mRuntime);
-            out.writeString(mWebView);
-            out.writeInt(mFlags);
-
-            out.writeInt(mLongs.size());
-            out.writeInt(mNextLong);
-            for (int i=0; i<(mLongs.size()-1); i++) {
-                out.writeLongArray(mLongs.get(i));
-            }
-            long[] lastLongs = mLongs.get(mLongs.size()-1);
-            for (int i=0; i<mNextLong; i++) {
-                out.writeLong(lastLongs[i]);
-                if (DEBUG) Slog.d(TAG, "Writing last long #" + i + ": " + lastLongs[i]);
-            }
-
-            if (mMemFactor != STATE_NOTHING) {
-                mMemFactorDurations[mMemFactor] += now - mStartTime;
-                mStartTime = now;
-            }
-            out.writeLongArray(mMemFactorDurations);
-
-            ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
-            final int NPROC = procMap.size();
-            out.writeInt(NPROC);
-            for (int ip=0; ip<NPROC; ip++) {
-                out.writeString(procMap.keyAt(ip));
-                SparseArray<ProcessState> uids = procMap.valueAt(ip);
-                final int NUID = uids.size();
-                out.writeInt(NUID);
-                for (int iu=0; iu<NUID; iu++) {
-                    out.writeInt(uids.keyAt(iu));
-                    ProcessState proc = uids.valueAt(iu);
-                    out.writeString(proc.mPackage);
-                    proc.writeToParcel(out, now);
-                }
-            }
-            ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-            final int NPKG = pkgMap.size();
-            out.writeInt(NPKG);
-            for (int ip=0; ip<NPKG; ip++) {
-                out.writeString(pkgMap.keyAt(ip));
-                SparseArray<PackageState> uids = pkgMap.valueAt(ip);
-                final int NUID = uids.size();
-                out.writeInt(NUID);
-                for (int iu=0; iu<NUID; iu++) {
-                    out.writeInt(uids.keyAt(iu));
-                    PackageState pkgState = uids.valueAt(iu);
-                    final int NPROCS = pkgState.mProcesses.size();
-                    out.writeInt(NPROCS);
-                    for (int iproc=0; iproc<NPROCS; iproc++) {
-                        out.writeString(pkgState.mProcesses.keyAt(iproc));
-                        ProcessState proc = pkgState.mProcesses.valueAt(iproc);
-                        if (proc.mCommonProcess == proc) {
-                            // This is the same as the common process we wrote above.
-                            out.writeInt(0);
-                        } else {
-                            // There is separate data for this package's process.
-                            out.writeInt(1);
-                            proc.writeToParcel(out, now);
-                        }
-                    }
-                    final int NSRVS = pkgState.mServices.size();
-                    out.writeInt(NSRVS);
-                    for (int isvc=0; isvc<NSRVS; isvc++) {
-                        out.writeString(pkgState.mServices.keyAt(isvc));
-                        ServiceState svc = pkgState.mServices.valueAt(isvc);
-                        svc.writeToParcel(out, now);
-                    }
-                }
-            }
-        }
-
-        private boolean readCheckedInt(Parcel in, int val, String what) {
-            int got;
-            if ((got=in.readInt()) != val) {
-                mReadError = "bad " + what + ": " + got;
-                return false;
-            }
-            return true;
-        }
-
-        private void readFromParcel(Parcel in) {
-            final boolean hadData = mPackages.getMap().size() > 0
-                    || mProcesses.getMap().size() > 0;
-            if (hadData) {
-                resetSafely();
-            }
-
-            if (!readCheckedInt(in, MAGIC, "magic number")) {
-                return;
-            }
-            int version = in.readInt();
-            if (version != PARCEL_VERSION && version != 6) {
-                mReadError = "bad version: " + version;
-                return;
-            }
-            if (!readCheckedInt(in, STATE_COUNT, "state count")) {
-                return;
-            }
-            if (!readCheckedInt(in, ADJ_COUNT, "adj count")) {
-                return;
-            }
-            if (!readCheckedInt(in, PSS_COUNT, "pss count")) {
-                return;
-            }
-            if (!readCheckedInt(in, LONGS_SIZE, "longs size")) {
-                return;
-            }
-
-            mTimePeriodStartClock = in.readLong();
-            buildTimePeriodStartClockStr();
-            mTimePeriodStartRealtime = in.readLong();
-            mTimePeriodEndRealtime = in.readLong();
-            if (version ==  PARCEL_VERSION) {
-                mRuntime = in.readString();
-                mWebView = in.readString();
-            }
-            mFlags = in.readInt();
-
-            final int NLONGS = in.readInt();
-            final int NEXTLONG = in.readInt();
-            mLongs.clear();
-            for (int i=0; i<(NLONGS-1); i++) {
-                while (i >= mLongs.size()) {
-                    mLongs.add(new long[LONGS_SIZE]);
-                }
-                in.readLongArray(mLongs.get(i));
-            }
-            long[] longs = new long[LONGS_SIZE];
-            mNextLong = NEXTLONG;
-            for (int i=0; i<NEXTLONG; i++) {
-                longs[i] = in.readLong();
-                if (DEBUG) Slog.d(TAG, "Reading last long #" + i + ": " + longs[i]);
-            }
-            mLongs.add(longs);
-
-            in.readLongArray(mMemFactorDurations);
-
-            int NPROC = in.readInt();
-            if (NPROC < 0) {
-                mReadError = "bad process count: " + NPROC;
-                return;
-            }
-            while (NPROC > 0) {
-                NPROC--;
-                String procName = in.readString();
-                if (procName == null) {
-                    mReadError = "bad process name";
-                    return;
-                }
-                int NUID = in.readInt();
-                if (NUID < 0) {
-                    mReadError = "bad uid count: " + NUID;
-                    return;
-                }
-                while (NUID > 0) {
-                    NUID--;
-                    int uid = in.readInt();
-                    if (uid < 0) {
-                        mReadError = "bad uid: " + uid;
-                        return;
-                    }
-                    String pkgName = in.readString();
-                    if (pkgName == null) {
-                        mReadError = "bad process package name";
-                        return;
-                    }
-                    ProcessState proc = hadData ? mProcesses.get(procName, uid) : null;
-                    if (proc != null) {
-                        if (!proc.readFromParcel(in, false)) {
-                            return;
-                        }
-                    } else {
-                        proc = new ProcessState(this, pkgName, uid, procName);
-                        if (!proc.readFromParcel(in, true)) {
-                            return;
-                        }
-                    }
-                    if (DEBUG) Slog.d(TAG, "Adding process: " + procName + " " + uid + " " + proc);
-                    mProcesses.put(procName, uid, proc);
-                }
-            }
-
-            if (DEBUG) Slog.d(TAG, "Read " + mProcesses.getMap().size() + " processes");
-
-            int NPKG = in.readInt();
-            if (NPKG < 0) {
-                mReadError = "bad package count: " + NPKG;
-                return;
-            }
-            while (NPKG > 0) {
-                NPKG--;
-                String pkgName = in.readString();
-                if (pkgName == null) {
-                    mReadError = "bad package name";
-                    return;
-                }
-                int NUID = in.readInt();
-                if (NUID < 0) {
-                    mReadError = "bad uid count: " + NUID;
-                    return;
-                }
-                while (NUID > 0) {
-                    NUID--;
-                    int uid = in.readInt();
-                    if (uid < 0) {
-                        mReadError = "bad uid: " + uid;
-                        return;
-                    }
-                    PackageState pkgState = new PackageState(uid);
-                    mPackages.put(pkgName, uid, pkgState);
-                    int NPROCS = in.readInt();
-                    if (NPROCS < 0) {
-                        mReadError = "bad package process count: " + NPROCS;
-                        return;
-                    }
-                    while (NPROCS > 0) {
-                        NPROCS--;
-                        String procName = in.readString();
-                        if (procName == null) {
-                            mReadError = "bad package process name";
-                            return;
-                        }
-                        int hasProc = in.readInt();
-                        if (DEBUG) Slog.d(TAG, "Reading package " + pkgName + " " + uid
-                                + " process " + procName + " hasProc=" + hasProc);
-                        ProcessState commonProc = mProcesses.get(procName, uid);
-                        if (DEBUG) Slog.d(TAG, "Got common proc " + procName + " " + uid
-                                + ": " + commonProc);
-                        if (commonProc == null) {
-                            mReadError = "no common proc: " + procName;
-                            return;
-                        }
-                        if (hasProc != 0) {
-                            // The process for this package is unique to the package; we
-                            // need to load it.  We don't need to do anything about it if
-                            // it is not unique because if someone later looks for it
-                            // they will find and use it from the global procs.
-                            ProcessState proc = hadData ? pkgState.mProcesses.get(procName) : null;
-                            if (proc != null) {
-                                if (!proc.readFromParcel(in, false)) {
-                                    return;
-                                }
-                            } else {
-                                proc = new ProcessState(commonProc, pkgName, uid, procName, 0);
-                                if (!proc.readFromParcel(in, true)) {
-                                    return;
-                                }
-                            }
-                            if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " process: "
-                                    + procName + " " + uid + " " + proc);
-                            pkgState.mProcesses.put(procName, proc);
-                        } else {
-                            if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " process: "
-                                    + procName + " " + uid + " " + commonProc);
-                            pkgState.mProcesses.put(procName, commonProc);
-                        }
-                    }
-                    int NSRVS = in.readInt();
-                    if (NSRVS < 0) {
-                        mReadError = "bad package service count: " + NSRVS;
-                        return;
-                    }
-                    while (NSRVS > 0) {
-                        NSRVS--;
-                        String serviceName = in.readString();
-                        if (serviceName == null) {
-                            mReadError = "bad package service name";
-                            return;
-                        }
-                        ServiceState serv = hadData ? pkgState.mServices.get(serviceName) : null;
-                        if (serv == null) {
-                            serv = new ServiceState(this, pkgName, null);
-                        }
-                        if (!serv.readFromParcel(in)) {
-                            return;
-                        }
-                        if (DEBUG) Slog.d(TAG, "Adding package " + pkgName + " service: "
-                                + serviceName + " " + uid + " " + serv);
-                        pkgState.mServices.put(serviceName, serv);
-                    }
-                }
-            }
-
-            if (DEBUG) Slog.d(TAG, "Successfully read procstats!");
-        }
-
-        int addLongData(int index, int type, int num) {
-            int tableLen = mAddLongTable != null ? mAddLongTable.length : 0;
-            if (mAddLongTableSize >= tableLen) {
-                int newSize = ArrayUtils.idealIntArraySize(tableLen + 1);
-                int[] newTable = new int[newSize];
-                if (tableLen > 0) {
-                    System.arraycopy(mAddLongTable, 0, newTable, 0, tableLen);
-                }
-                mAddLongTable = newTable;
-            }
-            if (mAddLongTableSize > 0 && mAddLongTableSize - index != 0) {
-                System.arraycopy(mAddLongTable, index, mAddLongTable, index + 1,
-                        mAddLongTableSize - index);
-            }
-            int off = allocLongData(num);
-            mAddLongTable[index] = type | off;
-            mAddLongTableSize++;
-            return off;
-        }
-
-        int allocLongData(int num) {
-            int whichLongs = mLongs.size()-1;
-            long[] longs = mLongs.get(whichLongs);
-            if (mNextLong + num > longs.length) {
-                longs = new long[LONGS_SIZE];
-                mLongs.add(longs);
-                whichLongs++;
-                mNextLong = 0;
-            }
-            int off = (whichLongs<<OFFSET_ARRAY_SHIFT) | (mNextLong<<OFFSET_INDEX_SHIFT);
-            mNextLong += num;
-            return off;
-        }
-
-        boolean validateLongOffset(int off) {
-            int arr = (off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK;
-            if (arr >= mLongs.size()) {
-                return false;
-            }
-            int idx = (off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK;
-            if (idx >= LONGS_SIZE) {
-                return false;
-            }
-            if (DEBUG) Slog.d(TAG, "Validated long " + printLongOffset(off)
-                    + ": " + getLong(off, 0));
-            return true;
-        }
-
-        static String printLongOffset(int off) {
-            StringBuilder sb = new StringBuilder(16);
-            sb.append("a"); sb.append((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-            sb.append("i"); sb.append((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK);
-            sb.append("t"); sb.append((off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK);
-            return sb.toString();
-        }
-
-        void setLong(int off, int index, long value) {
-            long[] longs = mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-            longs[index + ((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK)] = value;
-        }
-
-        long getLong(int off, int index) {
-            long[] longs = mLongs.get((off>>OFFSET_ARRAY_SHIFT)&OFFSET_ARRAY_MASK);
-            return longs[index + ((off>>OFFSET_INDEX_SHIFT)&OFFSET_INDEX_MASK)];
-        }
-
-        static int binarySearch(int[] array, int size, int value) {
-            int lo = 0;
-            int hi = size - 1;
-
-            while (lo <= hi) {
-                int mid = (lo + hi) >>> 1;
-                int midVal = (array[mid] >> OFFSET_TYPE_SHIFT) & OFFSET_TYPE_MASK;
-
-                if (midVal < value) {
-                    lo = mid + 1;
-                } else if (midVal > value) {
-                    hi = mid - 1;
-                } else {
-                    return mid;  // value found
-                }
-            }
-            return ~lo;  // value not present
-        }
-
-        PackageState getPackageStateLocked(String packageName, int uid) {
-            PackageState as = mPackages.get(packageName, uid);
-            if (as != null) {
-                return as;
-            }
-            as = new PackageState(uid);
-            mPackages.put(packageName, uid, as);
-            return as;
-        }
-
-        ProcessState getProcessStateLocked(String packageName, int uid, String processName) {
-            final PackageState pkgState = getPackageStateLocked(packageName, uid);
-            ProcessState ps = pkgState.mProcesses.get(processName);
-            if (ps != null) {
-                return ps;
-            }
-            ProcessState commonProc = mProcesses.get(processName, uid);
-            if (commonProc == null) {
-                commonProc = new ProcessState(this, packageName, uid, processName);
-                mProcesses.put(processName, uid, commonProc);
-            }
-            if (!commonProc.mMultiPackage) {
-                if (packageName.equals(commonProc.mPackage)) {
-                    // This common process is not in use by multiple packages, and
-                    // is for the calling package, so we can just use it directly.
-                    ps = commonProc;
-                } else {
-                    // This common process has not been in use by multiple packages,
-                    // but it was created for a different package than the caller.
-                    // We need to convert it to a multi-package process.
-                    commonProc.mMultiPackage = true;
-                    // The original package it was created for now needs to point
-                    // to its own copy.
-                    long now = SystemClock.uptimeMillis();
-                    pkgState.mProcesses.put(commonProc.mName, commonProc.clone(
-                            commonProc.mPackage, now));
-                    ps = new ProcessState(commonProc, packageName, uid, processName, now);
-                }
-            } else {
-                // The common process is for multiple packages, we need to create a
-                // separate object for the per-package data.
-                ps = new ProcessState(commonProc, packageName, uid, processName,
-                        SystemClock.uptimeMillis());
-            }
-            pkgState.mProcesses.put(processName, ps);
-            return ps;
-        }
-
-        void dumpLocked(PrintWriter pw, String reqPackage, long now, boolean dumpAll) {
-            long totalTime = dumpSingleTime(null, null, mMemFactorDurations, mMemFactor,
-                    mStartTime, now);
-            ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-            boolean printedHeader = false;
-            for (int ip=0; ip<pkgMap.size(); ip++) {
-                String pkgName = pkgMap.keyAt(ip);
-                if (reqPackage != null && !reqPackage.equals(pkgName)) {
-                    continue;
-                }
-                SparseArray<PackageState> uids = pkgMap.valueAt(ip);
-                for (int iu=0; iu<uids.size(); iu++) {
-                    int uid = uids.keyAt(iu);
-                    PackageState pkgState = uids.valueAt(iu);
-                    final int NPROCS = pkgState.mProcesses.size();
-                    final int NSRVS = pkgState.mServices.size();
-                    if (NPROCS > 0 || NSRVS > 0) {
-                        if (!printedHeader) {
-                            pw.println("Per-Package Process Stats:");
-                            printedHeader = true;
-                        }
-                        pw.print("  * "); pw.print(pkgName); pw.print(" / ");
-                                UserHandle.formatUid(pw, uid); pw.println(":");
-                    }
-                    if (dumpAll) {
-                        for (int iproc=0; iproc<NPROCS; iproc++) {
-                            ProcessState proc = pkgState.mProcesses.valueAt(iproc);
-                            pw.print("      Process ");
-                            pw.print(pkgState.mProcesses.keyAt(iproc));
-                            pw.print(" (");
-                            pw.print(proc.mDurationsTableSize);
-                            pw.print(" entries)");
-                            pw.println(":");
-                            dumpProcessState(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                                    ALL_PROC_STATES, now);
-                            dumpProcessPss(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                                    ALL_PROC_STATES);
-                            if (dumpAll) {
-                                pw.print("        mNumStartedServices=");
-                                        pw.println(proc.mNumStartedServices);
-                            }
-                        }
-                    } else {
-                        ArrayList<ProcessState> procs = new ArrayList<ProcessState>();
-                        for (int iproc=0; iproc<NPROCS; iproc++) {
-                            procs.add(pkgState.mProcesses.valueAt(iproc));
-                        }
-                        dumpProcessSummaryLocked(pw, "      ", procs, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                                NON_CACHED_PROC_STATES, now, totalTime);
-                    }
-                    for (int isvc=0; isvc<NSRVS; isvc++) {
-                        if (dumpAll) {
-                            pw.print("      Service ");
-                        } else {
-                            pw.print("      * ");
-                        }
-                        pw.print(pkgState.mServices.keyAt(isvc));
-                        pw.println(":");
-                        ServiceState svc = pkgState.mServices.valueAt(isvc);
-                        dumpServiceStats(pw, "        ", "          ", "    ", "Started", svc,
-                                svc.mStartedCount, ServiceState.SERVICE_STARTED, svc.mStartedState,
-                                svc.mStartedStartTime, now, totalTime, dumpAll);
-                        dumpServiceStats(pw, "        ", "          ", "      ", "Bound", svc,
-                                svc.mBoundCount, ServiceState.SERVICE_BOUND, svc.mBoundState,
-                                svc.mBoundStartTime, now, totalTime, dumpAll);
-                        dumpServiceStats(pw, "        ", "          ", "  ", "Executing", svc,
-                                svc.mExecCount, ServiceState.SERVICE_EXEC, svc.mExecState,
-                                svc.mExecStartTime, now, totalTime, dumpAll);
-                    }
-                }
-            }
-
-            if (reqPackage == null) {
-                ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
-                printedHeader = false;
-                for (int ip=0; ip<procMap.size(); ip++) {
-                    String procName = procMap.keyAt(ip);
-                    SparseArray<ProcessState> uids = procMap.valueAt(ip);
-                    for (int iu=0; iu<uids.size(); iu++) {
-                        int uid = uids.keyAt(iu);
-                        ProcessState proc = uids.valueAt(iu);
-                        if (proc.mDurationsTableSize == 0 && proc.mCurState == STATE_NOTHING
-                                && proc.mPssTableSize == 0) {
-                            continue;
-                        }
-                        if (!printedHeader) {
-                            pw.println("Process Stats:");
-                            printedHeader = true;
-                        }
-                        pw.print("  * "); pw.print(procName); pw.print(" / ");
-                                UserHandle.formatUid(pw, uid);
-                                pw.print(" ("); pw.print(proc.mDurationsTableSize);
-                                pw.print(" entries)"); pw.println(":");
-                        dumpProcessState(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                                ALL_PROC_STATES, now);
-                        dumpProcessPss(pw, "        ", proc, ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                                ALL_PROC_STATES);
-                    }
-                }
-
-                pw.println();
-                pw.println("Summary:");
-                dumpSummaryLocked(pw, reqPackage, now);
-            } else {
-                pw.println();
-                dumpTotalsLocked(pw, now);
-            }
-
-            if (dumpAll) {
-                pw.println();
-                pw.println("Internal state:");
-                pw.print("  mFile="); pw.println(mFile.getBaseFile());
-                pw.print("  Num long arrays: "); pw.println(mLongs.size());
-                pw.print("  Next long entry: "); pw.println(mNextLong);
-                pw.print("  mRunning="); pw.println(mRunning);
-            }
-        }
-
-        static long dumpSingleServiceTime(PrintWriter pw, String prefix, ServiceState service,
-                int serviceType, int curState, long curStartTime, long now) {
-            long totalTime = 0;
-            int printedScreen = -1;
-            for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
-                int printedMem = -1;
-                for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
-                    int state = imem+iscreen;
-                    long time = service.getDuration(serviceType, curState, curStartTime,
-                            state, now);
-                    String running = "";
-                    if (curState == state) {
-                        time += now - curStartTime;
-                        if (pw != null) {
-                            running = " (running)";
-                        }
-                    }
-                    if (time != 0) {
-                        if (pw != null) {
-                            pw.print(prefix);
-                            printScreenLabel(pw, printedScreen != iscreen
-                                    ? iscreen : STATE_NOTHING);
-                            printedScreen = iscreen;
-                            printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
-                            printedMem = imem;
-                            TimeUtils.formatDuration(time, pw); pw.println(running);
-                        }
-                        totalTime += time;
-                    }
-                }
-            }
-            if (totalTime != 0 && pw != null) {
-                pw.print(prefix);
-                printScreenLabel(pw, STATE_NOTHING);
-                pw.print("TOTAL: ");
-                TimeUtils.formatDuration(totalTime, pw);
-                pw.println();
-            }
-            return totalTime;
-        }
-
-        void dumpServiceStats(PrintWriter pw, String prefix, String prefixInner,
-                String headerPrefix, String header, ServiceState service,
-                int count, int serviceType, int state, long startTime, long now, long totalTime,
-                boolean dumpAll) {
-            if (count != 0) {
-                if (dumpAll) {
-                    pw.print(prefix); pw.print(header);
-                    pw.print(" op count "); pw.print(count); pw.println(":");
-                    dumpSingleServiceTime(pw, prefixInner, service, serviceType, state, startTime,
-                            now);
-                } else {
-                    long myTime = dumpSingleServiceTime(null, null, service, serviceType, state,
-                            startTime, now);
-                    pw.print(prefix); pw.print(headerPrefix); pw.print(header);
-                    pw.print(" count "); pw.print(count);
-                    pw.print(" / time ");
-                    printPercent(pw, (double)myTime/(double)totalTime);
-                    pw.println();
-                }
-            }
-        }
-
-        void dumpSummaryLocked(PrintWriter pw, String reqPackage, long now) {
-            long totalTime = dumpSingleTime(null, null, mMemFactorDurations, mMemFactor,
-                    mStartTime, now);
-            dumpFilteredSummaryLocked(pw, null, "  ", ALL_SCREEN_ADJ, ALL_MEM_ADJ,
-                    NON_CACHED_PROC_STATES, now, totalTime, reqPackage);
-            pw.println();
-            dumpTotalsLocked(pw, now);
-        }
-
-        void dumpTotalsLocked(PrintWriter pw, long now) {
-            pw.println("Run time Stats:");
-            dumpSingleTime(pw, "  ", mMemFactorDurations, mMemFactor, mStartTime, now);
-            pw.println();
-            pw.print("          Start time: ");
-            pw.print(DateFormat.format("yyyy-MM-dd HH:mm:ss", mTimePeriodStartClock));
-            pw.println();
-            pw.print("  Total elapsed time: ");
-            TimeUtils.formatDuration(
-                    (mRunning ? SystemClock.elapsedRealtime() : mTimePeriodEndRealtime)
-                            - mTimePeriodStartRealtime, pw);
-            boolean partial = true;
-            if ((mFlags&FLAG_SHUTDOWN) != 0) {
-                pw.print(" (shutdown)");
-                partial = false;
-            }
-            if ((mFlags&FLAG_SYSPROPS) != 0) {
-                pw.print(" (sysprops)");
-                partial = false;
-            }
-            if ((mFlags&FLAG_COMPLETE) != 0) {
-                pw.print(" (complete)");
-                partial = false;
-            }
-            if (partial) {
-                pw.print(" (partial)");
-            }
-            pw.print(' ');
-            pw.print(mRuntime);
-            pw.print(' ');
-            pw.print(mWebView);
-            pw.println();
-        }
-
-        void dumpFilteredSummaryLocked(PrintWriter pw, String header, String prefix,
-                int[] screenStates, int[] memStates, int[] procStates, long now, long totalTime,
-                String reqPackage) {
-            ArrayList<ProcessState> procs = collectProcessesLocked(screenStates, memStates,
-                    procStates, now, reqPackage);
-            if (procs.size() > 0) {
-                if (header != null) {
-                    pw.println();
-                    pw.println(header);
-                }
-                dumpProcessSummaryLocked(pw, prefix, procs, screenStates, memStates, procStates,
-                        now, totalTime);
-            }
-        }
-
-        ArrayList<ProcessState> collectProcessesLocked(int[] screenStates, int[] memStates,
-                int[] procStates, long now, String reqPackage) {
-            ArraySet<ProcessState> foundProcs = new ArraySet<ProcessState>();
-            ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-            for (int ip=0; ip<pkgMap.size(); ip++) {
-                if (reqPackage != null && !reqPackage.equals(pkgMap.keyAt(ip))) {
-                    continue;
-                }
-                SparseArray<PackageState> procs = pkgMap.valueAt(ip);
-                for (int iu=0; iu<procs.size(); iu++) {
-                    PackageState state = procs.valueAt(iu);
-                    for (int iproc=0; iproc<state.mProcesses.size(); iproc++) {
-                        ProcessState proc = state.mProcesses.valueAt(iproc);
-                        foundProcs.add(proc.mCommonProcess);
-                    }
-                }
-            }
-            ArrayList<ProcessState> outProcs = new ArrayList<ProcessState>(foundProcs.size());
-            for (int i=0; i<foundProcs.size(); i++) {
-                ProcessState proc = foundProcs.valueAt(i);
-                if (computeProcessTimeLocked(proc, screenStates, memStates,
-                        procStates, now) > 0) {
-                    outProcs.add(proc);
-                }
-            }
-            Collections.sort(outProcs, new Comparator<ProcessState>() {
-                @Override
-                public int compare(ProcessState lhs, ProcessState rhs) {
-                    if (lhs.mTmpTotalTime < rhs.mTmpTotalTime) {
-                        return -1;
-                    } else if (lhs.mTmpTotalTime > rhs.mTmpTotalTime) {
-                        return 1;
-                    }
-                    return 0;
-                }
-            });
-            return outProcs;
-        }
-
-        String collapseString(String pkgName, String itemName) {
-            if (itemName.startsWith(pkgName)) {
-                final int ITEMLEN = itemName.length();
-                final int PKGLEN = pkgName.length();
-                if (ITEMLEN == PKGLEN) {
-                    return "";
-                } else if (ITEMLEN >= PKGLEN) {
-                    if (itemName.charAt(PKGLEN) == '.') {
-                        return itemName.substring(PKGLEN);
-                    }
-                }
-            }
-            return itemName;
-        }
-
-        void dumpCheckinLocked(PrintWriter pw, String reqPackage) {
-            final long now = SystemClock.uptimeMillis();
-            ArrayMap<String, SparseArray<PackageState>> pkgMap = mPackages.getMap();
-            pw.println("vers,3");
-            pw.print("period,"); pw.print(mTimePeriodStartClockStr);
-            pw.print(","); pw.print(mTimePeriodStartRealtime); pw.print(",");
-            pw.print(mRunning ? SystemClock.elapsedRealtime() : mTimePeriodEndRealtime);
-            boolean partial = true;
-            if ((mFlags&FLAG_SHUTDOWN) != 0) {
-                pw.print(",shutdown");
-                partial = false;
-            }
-            if ((mFlags&FLAG_SYSPROPS) != 0) {
-                pw.print(",sysprops");
-                partial = false;
-            }
-            if ((mFlags&FLAG_COMPLETE) != 0) {
-                pw.print(",complete");
-                partial = false;
-            }
-            if (partial) {
-                pw.print(",partial");
-            }
-            pw.println();
-            pw.print("config,"); pw.print(mRuntime); pw.print(','); pw.println(mWebView);
-            for (int ip=0; ip<pkgMap.size(); ip++) {
-                String pkgName = pkgMap.keyAt(ip);
-                if (reqPackage != null && !reqPackage.equals(pkgName)) {
-                    continue;
-                }
-                SparseArray<PackageState> uids = pkgMap.valueAt(ip);
-                for (int iu=0; iu<uids.size(); iu++) {
-                    int uid = uids.keyAt(iu);
-                    PackageState pkgState = uids.valueAt(iu);
-                    final int NPROCS = pkgState.mProcesses.size();
-                    final int NSRVS = pkgState.mServices.size();
-                    for (int iproc=0; iproc<NPROCS; iproc++) {
-                        ProcessState proc = pkgState.mProcesses.valueAt(iproc);
-                        pw.print("pkgproc,");
-                        pw.print(pkgName);
-                        pw.print(",");
-                        pw.print(uid);
-                        pw.print(",");
-                        pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
-                        dumpAllProcessStateCheckin(pw, proc, now);
-                        pw.println();
-                        if (proc.mPssTableSize > 0) {
-                            pw.print("pkgpss,");
-                            pw.print(pkgName);
-                            pw.print(",");
-                            pw.print(uid);
-                            pw.print(",");
-                            pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
-                            dumpAllProcessPssCheckin(pw, proc);
-                            pw.println();
-                        }
-                        if (proc.mNumExcessiveWake > 0 || proc.mNumExcessiveCpu > 0) {
-                            pw.print("pkgkills,");
-                            pw.print(pkgName);
-                            pw.print(",");
-                            pw.print(uid);
-                            pw.print(",");
-                            pw.print(collapseString(pkgName, pkgState.mProcesses.keyAt(iproc)));
-                            pw.print(",");
-                            pw.print(proc.mNumExcessiveWake);
-                            pw.print(",");
-                            pw.print(proc.mNumExcessiveCpu);
-                            pw.println();
-                        }
-                    }
-                    for (int isvc=0; isvc<NSRVS; isvc++) {
-                        String serviceName = collapseString(pkgName,
-                                pkgState.mServices.keyAt(isvc));
-                        ServiceState svc = pkgState.mServices.valueAt(isvc);
-                        dumpServiceTimeCheckin(pw, "pkgsvc-start", pkgName, uid, serviceName,
-                                svc, ServiceState.SERVICE_STARTED, svc.mStartedCount,
-                                svc.mStartedState, svc.mStartedStartTime, now);
-                        dumpServiceTimeCheckin(pw, "pkgsvc-bound", pkgName, uid, serviceName,
-                                svc, ServiceState.SERVICE_BOUND, svc.mBoundCount,
-                                svc.mBoundState, svc.mBoundStartTime, now);
-                        dumpServiceTimeCheckin(pw, "pkgsvc-exec", pkgName, uid, serviceName,
-                                svc, ServiceState.SERVICE_EXEC, svc.mExecCount,
-                                svc.mExecState, svc.mExecStartTime, now);
-                    }
-                }
-            }
-
-            ArrayMap<String, SparseArray<ProcessState>> procMap = mProcesses.getMap();
-            for (int ip=0; ip<procMap.size(); ip++) {
-                String procName = procMap.keyAt(ip);
-                SparseArray<ProcessState> uids = procMap.valueAt(ip);
-                for (int iu=0; iu<uids.size(); iu++) {
-                    int uid = uids.keyAt(iu);
-                    ProcessState procState = uids.valueAt(iu);
-                    if (procState.mDurationsTableSize > 0) {
-                        pw.print("proc,");
-                        pw.print(procName);
-                        pw.print(",");
-                        pw.print(uid);
-                        dumpAllProcessStateCheckin(pw, procState, now);
-                        pw.println();
-                    }
-                    if (procState.mPssTableSize > 0) {
-                        pw.print("pss,");
-                        pw.print(procName);
-                        pw.print(",");
-                        pw.print(uid);
-                        dumpAllProcessPssCheckin(pw, procState);
-                        pw.println();
-                    }
-                    if (procState.mNumExcessiveWake > 0 || procState.mNumExcessiveCpu > 0) {
-                        pw.print("kills,");
-                        pw.print(procName);
-                        pw.print(",");
-                        pw.print(uid);
-                        pw.print(",");
-                        pw.print(procState.mNumExcessiveWake);
-                        pw.print(",");
-                        pw.print(procState.mNumExcessiveCpu);
-                        pw.println();
-                    }
-                }
-            }
-            pw.print("total");
-            dumpAdjTimesCheckin(pw, ",", mMemFactorDurations, mMemFactor,
-                    mStartTime, now);
-            pw.println();
-        }
-    }
-
-    public ProcessTracker(Object lock, File file) {
-        mLock = lock;
-        mBaseDir = file;
-        mBaseDir.mkdirs();
-        mState = new State(mBaseDir, this);
-        mState.mRunning = true;
-        SystemProperties.addChangeCallback(new Runnable() {
-            @Override public void run() {
-                synchronized (mLock) {
-                    if (mState.evaluateSystemProperties(false)) {
-                        mState.mFlags |= State.FLAG_SYSPROPS;
-                        mState.writeStateLocked(true, true);
-                        mState.evaluateSystemProperties(true);
-                    }
-                }
-            }
-        });
-    }
-
-    public ProcessState getProcessStateLocked(String packageName, int uid, String processName) {
-        return mState.getProcessStateLocked(packageName, uid, processName);
-    }
-
-    public ServiceState getServiceStateLocked(String packageName, int uid,
-            String processName, String className) {
-        final PackageState as = mState.getPackageStateLocked(packageName, uid);
-        ServiceState ss = as.mServices.get(className);
-        if (ss != null) {
-            ss.makeActive();
-            return ss;
-        }
-        final ProcessState ps = mState.getProcessStateLocked(packageName, uid, processName);
-        ss = new ServiceState(mState, packageName, ps);
-        as.mServices.put(className, ss);
-        return ss;
-    }
-
-    public boolean isMemFactorLowered() {
-        return mMemFactorLowered;
-    }
-
-    public boolean setMemFactorLocked(int memFactor, boolean screenOn, long now) {
-        mMemFactorLowered = memFactor < mLastMemOnlyState;
-        mLastMemOnlyState = memFactor;
-        if (screenOn) {
-            memFactor += ADJ_SCREEN_ON;
-        }
-        if (memFactor != mState.mMemFactor) {
-            if (mState.mMemFactor != STATE_NOTHING) {
-                mState.mMemFactorDurations[mState.mMemFactor] += now - mState.mStartTime;
-            }
-            mState.mMemFactor = memFactor;
-            mState.mStartTime = now;
-            ArrayMap<String, SparseArray<PackageState>> pmap = mState.mPackages.getMap();
-            for (int i=0; i<pmap.size(); i++) {
-                SparseArray<PackageState> uids = pmap.valueAt(i);
-                for (int j=0; j<uids.size(); j++) {
-                    PackageState pkg = uids.valueAt(j);
-                    ArrayMap<String, ServiceState> services = pkg.mServices;
-                    for (int k=0; k<services.size(); k++) {
-                        ServiceState service = services.valueAt(k);
-                        if (service.isActive()) {
-                            if (service.mStartedState != STATE_NOTHING) {
-                                service.setStarted(true, memFactor, now);
-                            }
-                            if (service.mBoundState != STATE_NOTHING) {
-                                service.setBound(true, memFactor, now);
-                            }
-                            if (service.mExecState != STATE_NOTHING) {
-                                service.setExecuting(true, memFactor, now);
-                            }
-                        }
-                    }
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    public int getMemFactorLocked() {
-        return mState.mMemFactor != STATE_NOTHING ? mState.mMemFactor : 0;
-    }
-
-    public void readLocked() {
-        mState.readLocked();
-    }
-
-    public boolean shouldWriteNowLocked(long now) {
-        if (now > (mState.mLastWriteTime+WRITE_PERIOD)) {
-            if (SystemClock.elapsedRealtime() > (mState.mTimePeriodStartRealtime+COMMIT_PERIOD)) {
-                mCommitPending = true;
-            }
-            return true;
-        }
-        return false;
-    }
-
-    public void shutdownLocked() {
-        Slog.w(TAG, "Writing process stats before shutdown...");
-        mState.mFlags |= State.FLAG_SHUTDOWN;
-        writeStateSyncLocked();
-        mShuttingDown = true;
-    }
-
-    public void writeStateAsyncLocked() {
-        writeStateLocked(false);
-    }
-
-    public void writeStateSyncLocked() {
-        writeStateLocked(true);
-    }
-
-    private void writeStateLocked(boolean sync) {
-        if (mShuttingDown) {
-            return;
-        }
-        boolean commitPending = mCommitPending;
-        mCommitPending = false;
-        mState.writeStateLocked(sync, commitPending);
-    }
-
-    private ArrayList<String> getCommittedFiles(int minNum, boolean inclAll) {
-        File[] files = mBaseDir.listFiles();
-        if (files == null || files.length <= minNum) {
-            return null;
-        }
-        ArrayList<String> filesArray = new ArrayList<String>(files.length);
-        String currentFile = mState.mFile.getBaseFile().getPath();
-        if (DEBUG) Slog.d(TAG, "Collecting " + files.length + " files except: " + currentFile);
-        for (int i=0; i<files.length; i++) {
-            File file = files[i];
-            String fileStr = file.getPath();
-            if (DEBUG) Slog.d(TAG, "Collecting: " + fileStr);
-            if (!inclAll && fileStr.endsWith(STATE_FILE_CHECKIN_SUFFIX)) {
-                if (DEBUG) Slog.d(TAG, "Skipping: already checked in");
-                continue;
-            }
-            if (fileStr.equals(currentFile)) {
-                if (DEBUG) Slog.d(TAG, "Skipping: current stats");
-                continue;
-            }
-            filesArray.add(fileStr);
-        }
-        Collections.sort(filesArray);
-        return filesArray;
-    }
-
-    public void trimHistoricStatesWriteLocked() {
-        ArrayList<String> filesArray = getCommittedFiles(MAX_HISTORIC_STATES, true);
-        if (filesArray == null) {
-            return;
-        }
-        while (filesArray.size() > MAX_HISTORIC_STATES) {
-            String file = filesArray.remove(0);
-            Slog.i(TAG, "Pruning old procstats: " + file);
-            (new File(file)).delete();
-        }
-    }
-
-    static private void printScreenLabel(PrintWriter pw, int offset) {
-        switch (offset) {
-            case ADJ_NOTHING:
-                pw.print("             ");
-                break;
-            case ADJ_SCREEN_OFF:
-                pw.print("Screen Off / ");
-                break;
-            case ADJ_SCREEN_ON:
-                pw.print("Screen On  / ");
-                break;
-            default:
-                pw.print("?????????? / ");
-                break;
-        }
-    }
-
-    static private void printScreenLabelCsv(PrintWriter pw, int offset) {
-        switch (offset) {
-            case ADJ_NOTHING:
-                break;
-            case ADJ_SCREEN_OFF:
-                pw.print(ADJ_SCREEN_NAMES_CSV[0]);
-                break;
-            case ADJ_SCREEN_ON:
-                pw.print(ADJ_SCREEN_NAMES_CSV[1]);
-                break;
-            default:
-                pw.print("???");
-                break;
-        }
-    }
-
-    static private void printMemLabel(PrintWriter pw, int offset) {
-        switch (offset) {
-            case ADJ_NOTHING:
-                pw.print("       ");
-                break;
-            case ADJ_MEM_FACTOR_NORMAL:
-                pw.print("Norm / ");
-                break;
-            case ADJ_MEM_FACTOR_MODERATE:
-                pw.print("Mod  / ");
-                break;
-            case ADJ_MEM_FACTOR_LOW:
-                pw.print("Low  / ");
-                break;
-            case ADJ_MEM_FACTOR_CRITICAL:
-                pw.print("Crit / ");
-                break;
-            default:
-                pw.print("???? / ");
-                break;
-        }
-    }
-
-    static private void printMemLabelCsv(PrintWriter pw, int offset) {
-        if (offset >= ADJ_MEM_FACTOR_NORMAL) {
-            if (offset <= ADJ_MEM_FACTOR_CRITICAL) {
-                pw.print(ADJ_MEM_NAMES_CSV[offset]);
-            } else {
-                pw.print("???");
-            }
-        }
-    }
-
-    static long dumpSingleTime(PrintWriter pw, String prefix, long[] durations,
-            int curState, long curStartTime, long now) {
-        long totalTime = 0;
-        int printedScreen = -1;
-        for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
-            int printedMem = -1;
-            for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
-                int state = imem+iscreen;
-                long time = durations[state];
-                String running = "";
-                if (curState == state) {
-                    time += now - curStartTime;
-                    if (pw != null) {
-                        running = " (running)";
-                    }
-                }
-                if (time != 0) {
-                    if (pw != null) {
-                        pw.print(prefix);
-                        printScreenLabel(pw, printedScreen != iscreen
-                                ? iscreen : STATE_NOTHING);
-                        printedScreen = iscreen;
-                        printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
-                        printedMem = imem;
-                        TimeUtils.formatDuration(time, pw); pw.println(running);
-                    }
-                    totalTime += time;
-                }
-            }
-        }
-        if (totalTime != 0 && pw != null) {
-            pw.print(prefix);
-            printScreenLabel(pw, STATE_NOTHING);
-            pw.print("TOTAL: ");
-            TimeUtils.formatDuration(totalTime, pw);
-            pw.println();
-        }
-        return totalTime;
-    }
-
-    static void dumpAdjTimesCheckin(PrintWriter pw, String sep, long[] durations,
-            int curState, long curStartTime, long now) {
-        for (int iscreen=0; iscreen<ADJ_COUNT; iscreen+=ADJ_SCREEN_MOD) {
-            for (int imem=0; imem<ADJ_MEM_FACTOR_COUNT; imem++) {
-                int state = imem+iscreen;
-                long time = durations[state];
-                if (curState == state) {
-                    time += now - curStartTime;
-                }
-                if (time != 0) {
-                    printAdjTagAndValue(pw, state, time);
-                }
-            }
-        }
-    }
-
-    static void dumpServiceTimeCheckin(PrintWriter pw, String label, String packageName,
-            int uid, String serviceName, ServiceState svc, int serviceType, int opCount,
-            int curState, long curStartTime, long now) {
-        if (opCount <= 0) {
-            return;
-        }
-        pw.print(label);
-        pw.print(",");
-        pw.print(packageName);
-        pw.print(",");
-        pw.print(uid);
-        pw.print(",");
-        pw.print(serviceName);
-        pw.print(",");
-        pw.print(opCount);
-        boolean didCurState = false;
-        for (int i=0; i<svc.mDurationsTableSize; i++) {
-            int off = svc.mDurationsTable[i];
-            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
-            int memFactor = type / ServiceState.SERVICE_COUNT;
-            type %= ServiceState.SERVICE_COUNT;
-            if (type != serviceType) {
-                continue;
-            }
-            long time = svc.mState.getLong(off, 0);
-            if (curState == memFactor) {
-                didCurState = true;
-                time += now - curStartTime;
-            }
-            printAdjTagAndValue(pw, memFactor, time);
-        }
-        if (!didCurState && curState != STATE_NOTHING) {
-            printAdjTagAndValue(pw, curState, now - curStartTime);
-        }
-        pw.println();
-    }
-
-    static final class ProcessDataCollection {
-        final int[] screenStates;
-        final int[] memStates;
-        final int[] procStates;
-
-        long totalTime;
-        long numPss;
-        long minPss;
-        long avgPss;
-        long maxPss;
-        long minUss;
-        long avgUss;
-        long maxUss;
-
-        ProcessDataCollection(int[] _screenStates, int[] _memStates, int[] _procStates) {
-            screenStates = _screenStates;
-            memStates = _memStates;
-            procStates = _procStates;
-        }
-
-        void print(PrintWriter pw, long overallTime, boolean full) {
-            printPercent(pw, (double) totalTime / (double) overallTime);
-            if (numPss > 0) {
-                pw.print(" (");
-                printSizeValue(pw, minPss * 1024);
-                pw.print("-");
-                printSizeValue(pw, avgPss * 1024);
-                pw.print("-");
-                printSizeValue(pw, maxPss * 1024);
-                pw.print("/");
-                printSizeValue(pw, minUss * 1024);
-                pw.print("-");
-                printSizeValue(pw, avgUss * 1024);
-                pw.print("-");
-                printSizeValue(pw, maxUss * 1024);
-                if (full) {
-                    pw.print(" over ");
-                    pw.print(numPss);
-                }
-                pw.print(")");
-            }
-        }
-    }
-
-    static void computeProcessData(ProcessState proc, ProcessDataCollection data, long now) {
-        data.totalTime = 0;
-        data.numPss = data.minPss = data.avgPss = data.maxPss =
-                data.minUss = data.avgUss = data.maxUss = 0;
-        for (int is=0; is<data.screenStates.length; is++) {
-            for (int im=0; im<data.memStates.length; im++) {
-                for (int ip=0; ip<data.procStates.length; ip++) {
-                    int bucket = ((data.screenStates[is] + data.memStates[im]) * STATE_COUNT)
-                            + data.procStates[ip];
-                    data.totalTime += proc.getDuration(bucket, now);
-                    long samples = proc.getPssSampleCount(bucket);
-                    if (samples > 0) {
-                        long minPss = proc.getPssMinimum(bucket);
-                        long avgPss = proc.getPssAverage(bucket);
-                        long maxPss = proc.getPssMaximum(bucket);
-                        long minUss = proc.getPssUssMinimum(bucket);
-                        long avgUss = proc.getPssUssAverage(bucket);
-                        long maxUss = proc.getPssUssMaximum(bucket);
-                        if (data.numPss == 0) {
-                            data.minPss = minPss;
-                            data.avgPss = avgPss;
-                            data.maxPss = maxPss;
-                            data.minUss = minUss;
-                            data.avgUss = avgUss;
-                            data.maxUss = maxUss;
-                        } else {
-                            if (minPss < data.minPss) {
-                                data.minPss = minPss;
-                            }
-                            data.avgPss = (long)( ((data.avgPss*(double)data.numPss)
-                                    + (avgPss*(double)samples)) / (data.numPss+samples) );
-                            if (maxPss > data.maxPss) {
-                                data.maxPss = maxPss;
-                            }
-                            if (minUss < data.minUss) {
-                                data.minUss = minUss;
-                            }
-                            data.avgUss = (long)( ((data.avgUss*(double)data.numPss)
-                                    + (avgUss*(double)samples)) / (data.numPss+samples) );
-                            if (maxUss > data.maxUss) {
-                                data.maxUss = maxUss;
-                            }
-                        }
-                        data.numPss += samples;
-                    }
-                }
-            }
-        }
-    }
-
-    static long computeProcessTimeLocked(ProcessState proc, int[] screenStates, int[] memStates,
-                int[] procStates, long now) {
-        long totalTime = 0;
-        /*
-        for (int i=0; i<proc.mDurationsTableSize; i++) {
-            int val = proc.mDurationsTable[i];
-            totalTime += proc.mState.getLong(val, 0);
-            if ((val&0xff) == proc.mCurState) {
-                totalTime += now - proc.mStartTime;
-            }
-        }
-        */
-        for (int is=0; is<screenStates.length; is++) {
-            for (int im=0; im<memStates.length; im++) {
-                for (int ip=0; ip<procStates.length; ip++) {
-                    int bucket = ((screenStates[is] + memStates[im]) * STATE_COUNT)
-                            + procStates[ip];
-                    totalTime += proc.getDuration(bucket, now);
-                }
-            }
-        }
-        proc.mTmpTotalTime = totalTime;
-        return totalTime;
-    }
-
-    static void dumpProcessState(PrintWriter pw, String prefix, ProcessState proc,
-            int[] screenStates, int[] memStates, int[] procStates, long now) {
-        long totalTime = 0;
-        int printedScreen = -1;
-        for (int is=0; is<screenStates.length; is++) {
-            int printedMem = -1;
-            for (int im=0; im<memStates.length; im++) {
-                for (int ip=0; ip<procStates.length; ip++) {
-                    final int iscreen = screenStates[is];
-                    final int imem = memStates[im];
-                    final int bucket = ((iscreen + imem) * STATE_COUNT) + procStates[ip];
-                    long time = proc.getDuration(bucket, now);
-                    String running = "";
-                    if (proc.mCurState == bucket) {
-                        running = " (running)";
-                    }
-                    if (time != 0) {
-                        pw.print(prefix);
-                        if (screenStates.length > 1) {
-                            printScreenLabel(pw, printedScreen != iscreen
-                                    ? iscreen : STATE_NOTHING);
-                            printedScreen = iscreen;
-                        }
-                        if (memStates.length > 1) {
-                            printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
-                            printedMem = imem;
-                        }
-                        pw.print(STATE_NAMES[procStates[ip]]); pw.print(": ");
-                        TimeUtils.formatDuration(time, pw); pw.println(running);
-                        totalTime += time;
-                    }
-                }
-            }
-        }
-        if (totalTime != 0) {
-            pw.print(prefix);
-            if (screenStates.length > 1) {
-                printScreenLabel(pw, STATE_NOTHING);
-            }
-            if (memStates.length > 1) {
-                printMemLabel(pw, STATE_NOTHING);
-            }
-            pw.print("TOTAL     : ");
-            TimeUtils.formatDuration(totalTime, pw);
-            pw.println();
-        }
-    }
-
-    static void dumpProcessPss(PrintWriter pw, String prefix, ProcessState proc, int[] screenStates,
-            int[] memStates, int[] procStates) {
-        boolean printedHeader = false;
-        int printedScreen = -1;
-        for (int is=0; is<screenStates.length; is++) {
-            int printedMem = -1;
-            for (int im=0; im<memStates.length; im++) {
-                for (int ip=0; ip<procStates.length; ip++) {
-                    final int iscreen = screenStates[is];
-                    final int imem = memStates[im];
-                    final int bucket = ((iscreen + imem) * STATE_COUNT) + procStates[ip];
-                    long count = proc.getPssSampleCount(bucket);
-                    if (count > 0) {
-                        if (!printedHeader) {
-                            pw.print(prefix);
-                            pw.print("PSS/USS (");
-                            pw.print(proc.mPssTableSize);
-                            pw.println(" entries):");
-                            printedHeader = true;
-                        }
-                        pw.print(prefix);
-                        pw.print("  ");
-                        if (screenStates.length > 1) {
-                            printScreenLabel(pw, printedScreen != iscreen
-                                    ? iscreen : STATE_NOTHING);
-                            printedScreen = iscreen;
-                        }
-                        if (memStates.length > 1) {
-                            printMemLabel(pw, printedMem != imem ? imem : STATE_NOTHING);
-                            printedMem = imem;
-                        }
-                        pw.print(STATE_NAMES[procStates[ip]]); pw.print(": ");
-                        pw.print(count);
-                        pw.print(" samples ");
-                        printSizeValue(pw, proc.getPssMinimum(bucket) * 1024);
-                        pw.print(" ");
-                        printSizeValue(pw, proc.getPssAverage(bucket) * 1024);
-                        pw.print(" ");
-                        printSizeValue(pw, proc.getPssMaximum(bucket) * 1024);
-                        pw.print(" / ");
-                        printSizeValue(pw, proc.getPssUssMinimum(bucket) * 1024);
-                        pw.print(" ");
-                        printSizeValue(pw, proc.getPssUssAverage(bucket) * 1024);
-                        pw.print(" ");
-                        printSizeValue(pw, proc.getPssUssMaximum(bucket) * 1024);
-                        pw.println();
-                    }
-                }
-            }
-        }
-        if (proc.mNumExcessiveWake != 0) {
-            pw.print(prefix); pw.print("Killed for excessive wake locks: ");
-                    pw.print(proc.mNumExcessiveWake); pw.println(" times");
-        }
-        if (proc.mNumExcessiveCpu != 0) {
-            pw.print(prefix); pw.print("Killed for excessive CPU use: ");
-                    pw.print(proc.mNumExcessiveCpu); pw.println(" times");
-        }
-    }
-
-    static void dumpStateHeadersCsv(PrintWriter pw, String sep, int[] screenStates,
-            int[] memStates, int[] procStates) {
-        final int NS = screenStates != null ? screenStates.length : 1;
-        final int NM = memStates != null ? memStates.length : 1;
-        final int NP = procStates != null ? procStates.length : 1;
-        for (int is=0; is<NS; is++) {
-            for (int im=0; im<NM; im++) {
-                for (int ip=0; ip<NP; ip++) {
-                    pw.print(sep);
-                    boolean printed = false;
-                    if (screenStates != null && screenStates.length > 1) {
-                        printScreenLabelCsv(pw, screenStates[is]);
-                        printed = true;
-                    }
-                    if (memStates != null && memStates.length > 1) {
-                        if (printed) {
-                            pw.print("-");
-                        }
-                        printMemLabelCsv(pw, memStates[im]);
-                        printed = true;
-                    }
-                    if (procStates != null && procStates.length > 1) {
-                        if (printed) {
-                            pw.print("-");
-                        }
-                        pw.print(STATE_NAMES_CSV[procStates[ip]]);
-                    }
-                }
-            }
-        }
-    }
-
-    static void dumpProcessStateCsv(PrintWriter pw, ProcessState proc,
-            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
-            boolean sepProcStates, int[] procStates, long now) {
-        final int NSS = sepScreenStates ? screenStates.length : 1;
-        final int NMS = sepMemStates ? memStates.length : 1;
-        final int NPS = sepProcStates ? procStates.length : 1;
-        for (int iss=0; iss<NSS; iss++) {
-            for (int ims=0; ims<NMS; ims++) {
-                for (int ips=0; ips<NPS; ips++) {
-                    final int vsscreen = sepScreenStates ? screenStates[iss] : 0;
-                    final int vsmem = sepMemStates ? memStates[ims] : 0;
-                    final int vsproc = sepProcStates ? procStates[ips] : 0;
-                    final int NSA = sepScreenStates ? 1 : screenStates.length;
-                    final int NMA = sepMemStates ? 1 : memStates.length;
-                    final int NPA = sepProcStates ? 1 : procStates.length;
-                    long totalTime = 0;
-                    for (int isa=0; isa<NSA; isa++) {
-                        for (int ima=0; ima<NMA; ima++) {
-                            for (int ipa=0; ipa<NPA; ipa++) {
-                                final int vascreen = sepScreenStates ? 0 : screenStates[isa];
-                                final int vamem = sepMemStates ? 0 : memStates[ima];
-                                final int vaproc = sepProcStates ? 0 : procStates[ipa];
-                                final int bucket = ((vsscreen + vascreen + vsmem + vamem)
-                                        * STATE_COUNT) + vsproc + vaproc;
-                                totalTime += proc.getDuration(bucket, now);
-                            }
-                        }
-                    }
-                    pw.print(CSV_SEP);
-                    pw.print(totalTime);
-                }
-            }
-        }
-    }
-
-    static void dumpProcessList(PrintWriter pw, String prefix, ArrayList<ProcessState> procs,
-            int[] screenStates, int[] memStates, int[] procStates, long now) {
-        String innerPrefix = prefix + "  ";
-        for (int i=procs.size()-1; i>=0; i--) {
-            ProcessState proc = procs.get(i);
-            pw.print(prefix);
-            pw.print(proc.mName);
-            pw.print(" / ");
-            UserHandle.formatUid(pw, proc.mUid);
-            pw.print(" (");
-            pw.print(proc.mDurationsTableSize);
-            pw.print(" entries)");
-            pw.println(":");
-            dumpProcessState(pw, innerPrefix, proc, screenStates, memStates, procStates, now);
-            if (proc.mPssTableSize > 0) {
-                dumpProcessPss(pw, innerPrefix, proc, screenStates, memStates, procStates);
-            }
-        }
-    }
-
-    static void dumpProcessSummaryDetails(PrintWriter pw, ProcessState proc, String prefix,
-            String label, int[] screenStates, int[] memStates, int[] procStates,
-            long now, long totalTime, boolean full) {
-        ProcessDataCollection totals = new ProcessDataCollection(screenStates,
-                memStates, procStates);
-        computeProcessData(proc, totals, now);
-        if (totals.totalTime != 0 || totals.numPss != 0) {
-            if (prefix != null) {
-                pw.print(prefix);
-            }
-            if (label != null) {
-                pw.print(label);
-            }
-            totals.print(pw, totalTime, full);
-            if (prefix != null) {
-                pw.println();
-            }
-        }
-    }
-
-    static void dumpProcessSummaryLocked(PrintWriter pw, String prefix,
-            ArrayList<ProcessState> procs, int[] screenStates, int[] memStates, int[] procStates,
-            long now, long totalTime) {
-        for (int i=procs.size()-1; i>=0; i--) {
-            ProcessState proc = procs.get(i);
-            pw.print(prefix);
-            pw.print("* ");
-            pw.print(proc.mName);
-            pw.print(" / ");
-            UserHandle.formatUid(pw, proc.mUid);
-            pw.println(":");
-            dumpProcessSummaryDetails(pw, proc, prefix, "         TOTAL: ", screenStates, memStates,
-                    procStates, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "    Persistent: ", screenStates, memStates,
-                    new int[] { STATE_PERSISTENT }, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "           Top: ", screenStates, memStates,
-                    new int[] {STATE_TOP}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "        Imp Fg: ", screenStates, memStates,
-                    new int[] { STATE_IMPORTANT_FOREGROUND }, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "        Imp Bg: ", screenStates, memStates,
-                    new int[] {STATE_IMPORTANT_BACKGROUND}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "        Backup: ", screenStates, memStates,
-                    new int[] {STATE_BACKUP}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "     Heavy Wgt: ", screenStates, memStates,
-                    new int[] {STATE_HEAVY_WEIGHT}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "       Service: ", screenStates, memStates,
-                    new int[] {STATE_SERVICE}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "    Service Rs: ", screenStates, memStates,
-                    new int[] {STATE_SERVICE_RESTARTING}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "      Receiver: ", screenStates, memStates,
-                    new int[] {STATE_RECEIVER}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "          Home: ", screenStates, memStates,
-                    new int[] {STATE_HOME}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "    (Last Act): ", screenStates, memStates,
-                    new int[] {STATE_LAST_ACTIVITY}, now, totalTime, true);
-            dumpProcessSummaryDetails(pw, proc, prefix, "      (Cached): ", screenStates, memStates,
-                    new int[] {STATE_CACHED_ACTIVITY, STATE_CACHED_ACTIVITY_CLIENT,
-                            STATE_CACHED_EMPTY}, now, totalTime, true);
-        }
-    }
-
-    static void printPercent(PrintWriter pw, double fraction) {
-        fraction *= 100;
-        if (fraction < 1) {
-            pw.print(String.format("%.2f", fraction));
-        } else if (fraction < 10) {
-            pw.print(String.format("%.1f", fraction));
-        } else {
-            pw.print(String.format("%.0f", fraction));
-        }
-        pw.print("%");
-    }
-
-    static void printSizeValue(PrintWriter pw, long number) {
-        float result = number;
-        String suffix = "";
-        if (result > 900) {
-            suffix = "KB";
-            result = result / 1024;
-        }
-        if (result > 900) {
-            suffix = "MB";
-            result = result / 1024;
-        }
-        if (result > 900) {
-            suffix = "GB";
-            result = result / 1024;
-        }
-        if (result > 900) {
-            suffix = "TB";
-            result = result / 1024;
-        }
-        if (result > 900) {
-            suffix = "PB";
-            result = result / 1024;
-        }
-        String value;
-        if (result < 1) {
-            value = String.format("%.2f", result);
-        } else if (result < 10) {
-            value = String.format("%.1f", result);
-        } else if (result < 100) {
-            value = String.format("%.0f", result);
-        } else {
-            value = String.format("%.0f", result);
-        }
-        pw.print(value);
-        pw.print(suffix);
-    }
-
-    static void dumpProcessListCsv(PrintWriter pw, ArrayList<ProcessState> procs,
-            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
-            boolean sepProcStates, int[] procStates, long now) {
-        pw.print("process");
-        pw.print(CSV_SEP);
-        pw.print("uid");
-        dumpStateHeadersCsv(pw, CSV_SEP, sepScreenStates ? screenStates : null,
-                sepMemStates ? memStates : null,
-                sepProcStates ? procStates : null);
-        pw.println();
-        for (int i=procs.size()-1; i>=0; i--) {
-            ProcessState proc = procs.get(i);
-            pw.print(proc.mName);
-            pw.print(CSV_SEP);
-            UserHandle.formatUid(pw, proc.mUid);
-            dumpProcessStateCsv(pw, proc, sepScreenStates, screenStates,
-                    sepMemStates, memStates, sepProcStates, procStates, now);
-            pw.println();
-        }
-    }
-
-    boolean dumpFilteredProcessesCsvLocked(PrintWriter pw, String header,
-            boolean sepScreenStates, int[] screenStates, boolean sepMemStates, int[] memStates,
-            boolean sepProcStates, int[] procStates, long now, String reqPackage) {
-        ArrayList<ProcessState> procs = mState.collectProcessesLocked(screenStates, memStates,
-                procStates, now, reqPackage);
-        if (procs.size() > 0) {
-            if (header != null) {
-                pw.println(header);
-            }
-            dumpProcessListCsv(pw, procs, sepScreenStates, screenStates,
-                    sepMemStates, memStates, sepProcStates, procStates, now);
-            return true;
-        }
-        return false;
-    }
-
-    static int printArrayEntry(PrintWriter pw, String[] array, int value, int mod) {
-        int index = value/mod;
-        if (index >= 0 && index < array.length) {
-            pw.print(array[index]);
-        } else {
-            pw.print('?');
-        }
-        return value - index*mod;
-    }
-
-    static void printProcStateTag(PrintWriter pw, int state) {
-        state = printArrayEntry(pw, ADJ_SCREEN_TAGS,  state, ADJ_SCREEN_MOD*STATE_COUNT);
-        state = printArrayEntry(pw, ADJ_MEM_TAGS,  state, STATE_COUNT);
-        printArrayEntry(pw, STATE_TAGS,  state, 1);
-    }
-
-    static void printAdjTag(PrintWriter pw, int state) {
-        state = printArrayEntry(pw, ADJ_SCREEN_TAGS,  state, ADJ_SCREEN_MOD);
-        printArrayEntry(pw, ADJ_MEM_TAGS, state, 1);
-    }
-
-    static void printProcStateTagAndValue(PrintWriter pw, int state, long value) {
-        pw.print(',');
-        printProcStateTag(pw, state);
-        pw.print(':');
-        pw.print(value);
-    }
-
-    static void printAdjTagAndValue(PrintWriter pw, int state, long value) {
-        pw.print(',');
-        printAdjTag(pw, state);
-        pw.print(':');
-        pw.print(value);
-    }
-
-    static void dumpAllProcessStateCheckin(PrintWriter pw, ProcessState proc, long now) {
-        boolean didCurState = false;
-        for (int i=0; i<proc.mDurationsTableSize; i++) {
-            int off = proc.mDurationsTable[i];
-            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
-            long time = proc.mState.getLong(off, 0);
-            if (proc.mCurState == type) {
-                didCurState = true;
-                time += now - proc.mStartTime;
-            }
-            printProcStateTagAndValue(pw, type, time);
-        }
-        if (!didCurState && proc.mCurState != STATE_NOTHING) {
-            printProcStateTagAndValue(pw, proc.mCurState, now - proc.mStartTime);
-        }
-    }
-
-    static void dumpAllProcessPssCheckin(PrintWriter pw, ProcessState proc) {
-        for (int i=0; i<proc.mPssTableSize; i++) {
-            int off = proc.mPssTable[i];
-            int type = (off>>OFFSET_TYPE_SHIFT)&OFFSET_TYPE_MASK;
-            long count = proc.mState.getLong(off, PSS_SAMPLE_COUNT);
-            long min = proc.mState.getLong(off, PSS_MINIMUM);
-            long avg = proc.mState.getLong(off, PSS_AVERAGE);
-            long max = proc.mState.getLong(off, PSS_MAXIMUM);
-            long umin = proc.mState.getLong(off, PSS_USS_MINIMUM);
-            long uavg = proc.mState.getLong(off, PSS_USS_AVERAGE);
-            long umax = proc.mState.getLong(off, PSS_USS_MAXIMUM);
-            pw.print(',');
-            printProcStateTag(pw, type);
-            pw.print(':');
-            pw.print(count);
-            pw.print(':');
-            pw.print(min);
-            pw.print(':');
-            pw.print(avg);
-            pw.print(':');
-            pw.print(max);
-            pw.print(':');
-            pw.print(umin);
-            pw.print(':');
-            pw.print(uavg);
-            pw.print(':');
-            pw.print(umax);
-        }
-    }
-
-    static int[] parseStateList(String[] states, int mult, String arg, boolean[] outSep,
-            String[] outError) {
-        ArrayList<Integer> res = new ArrayList<Integer>();
-        int lastPos = 0;
-        for (int i=0; i<=arg.length(); i++) {
-            char c = i < arg.length() ? arg.charAt(i) : 0;
-            if (c != ',' && c != '+' && c != ' ' && c != 0) {
-                continue;
-            }
-            boolean isSep = c == ',';
-            if (lastPos == 0) {
-                // We now know the type of op.
-                outSep[0] = isSep;
-            } else if (c != 0 && outSep[0] != isSep) {
-                outError[0] = "inconsistent separators (can't mix ',' with '+')";
-                return null;
-            }
-            if (lastPos < (i-1)) {
-                String str = arg.substring(lastPos, i);
-                for (int j=0; j<states.length; j++) {
-                    if (str.equals(states[j])) {
-                        res.add(j);
-                        str = null;
-                        break;
-                    }
-                }
-                if (str != null) {
-                    outError[0] = "invalid word \"" + str + "\"";
-                    return null;
-                }
-            }
-            lastPos = i + 1;
-        }
-
-        int[] finalRes = new int[res.size()];
-        for (int i=0; i<res.size(); i++) {
-            finalRes[i] = res.get(i) * mult;
-        }
-        return finalRes;
-    }
-
-    static private void dumpHelp(PrintWriter pw) {
-        pw.println("Process stats (procstats) dump options:");
-        pw.println("    [--checkin|-c|--csv] [--csv-screen] [--csv-proc] [--csv-mem]");
-        pw.println("    [--details] [--current] [--commit] [--write] [-h] [<package.name>]");
-        pw.println("  --checkin: perform a checkin: print and delete old committed states.");
-        pw.println("  --c: print only state in checkin format.");
-        pw.println("  --csv: output data suitable for putting in a spreadsheet.");
-        pw.println("  --csv-screen: on, off.");
-        pw.println("  --csv-mem: norm, mod, low, crit.");
-        pw.println("  --csv-proc: pers, top, fore, vis, precept, backup,");
-        pw.println("    service, home, prev, cached");
-        pw.println("  --details: dump all execution details, not just summary.");
-        pw.println("  --current: only dump current state.");
-        pw.println("  --commit: commit current stats to disk and reset to start new stats.");
-        pw.println("  --write: write current in-memory stats to disk.");
-        pw.println("  --read: replace current stats with last-written stats.");
-        pw.println("  -a: print everything.");
-        pw.println("  -h: print this help text.");
-        pw.println("  <package.name>: optional name of package to filter output by.");
-    }
-
-    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
-        final long now = SystemClock.uptimeMillis();
-
-        boolean isCheckin = false;
-        boolean isCompact = false;
-        boolean isCsv = false;
-        boolean currentOnly = false;
-        boolean dumpDetails = false;
-        boolean dumpAll = false;
-        String reqPackage = null;
-        boolean csvSepScreenStats = false;
-        int[] csvScreenStats = new int[] {ADJ_SCREEN_OFF, ADJ_SCREEN_ON};
-        boolean csvSepMemStats = false;
-        int[] csvMemStats = new int[] {ADJ_MEM_FACTOR_CRITICAL};
-        boolean csvSepProcStats = true;
-        int[] csvProcStats = ALL_PROC_STATES;
-        if (args != null) {
-            for (int i=0; i<args.length; i++) {
-                String arg = args[i];
-                if ("--checkin".equals(arg)) {
-                    isCheckin = true;
-                } else if ("-c".equals(arg)) {
-                    isCompact = true;
-                } else if ("--csv".equals(arg)) {
-                    isCsv = true;
-                } else if ("--csv-screen".equals(arg)) {
-                    i++;
-                    if (i >= args.length) {
-                        pw.println("Error: argument required for --csv-screen");
-                        dumpHelp(pw);
-                        return;
-                    }
-                    boolean[] sep = new boolean[1];
-                    String[] error = new String[1];
-                    csvScreenStats = parseStateList(ADJ_SCREEN_NAMES_CSV, ADJ_SCREEN_MOD,
-                            args[i], sep, error);
-                    if (csvScreenStats == null) {
-                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
-                        dumpHelp(pw);
-                        return;
-                    }
-                    csvSepScreenStats = sep[0];
-                } else if ("--csv-mem".equals(arg)) {
-                    i++;
-                    if (i >= args.length) {
-                        pw.println("Error: argument required for --csv-mem");
-                        dumpHelp(pw);
-                        return;
-                    }
-                    boolean[] sep = new boolean[1];
-                    String[] error = new String[1];
-                    csvMemStats = parseStateList(ADJ_MEM_NAMES_CSV, 1, args[i], sep, error);
-                    if (csvMemStats == null) {
-                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
-                        dumpHelp(pw);
-                        return;
-                    }
-                    csvSepMemStats = sep[0];
-                } else if ("--csv-proc".equals(arg)) {
-                    i++;
-                    if (i >= args.length) {
-                        pw.println("Error: argument required for --csv-proc");
-                        dumpHelp(pw);
-                        return;
-                    }
-                    boolean[] sep = new boolean[1];
-                    String[] error = new String[1];
-                    csvProcStats = parseStateList(STATE_NAMES_CSV, 1, args[i], sep, error);
-                    if (csvProcStats == null) {
-                        pw.println("Error in \"" + args[i] + "\": " + error[0]);
-                        dumpHelp(pw);
-                        return;
-                    }
-                    csvSepProcStats = sep[0];
-                } else if ("--details".equals(arg)) {
-                    dumpDetails = true;
-                } else if ("--current".equals(arg)) {
-                    currentOnly = true;
-                } else if ("--commit".equals(arg)) {
-                    mState.mFlags |= State.FLAG_COMPLETE;
-                    mState.writeStateLocked(true, true);
-                    pw.println("Process stats committed.");
-                    return;
-                } else if ("--write".equals(arg)) {
-                    writeStateSyncLocked();
-                    pw.println("Process stats written.");
-                    return;
-                } else if ("--read".equals(arg)) {
-                    readLocked();
-                    pw.println("Process stats read.");
-                    return;
-                } else if ("-h".equals(arg)) {
-                    dumpHelp(pw);
-                    return;
-                } else if ("-a".equals(arg)) {
-                    dumpDetails = true;
-                    dumpAll = true;
-                } else if (arg.length() > 0 && arg.charAt(0) == '-'){
-                    pw.println("Unknown option: " + arg);
-                    dumpHelp(pw);
-                    return;
-                } else {
-                    // Not an option, last argument must be a package name.
-                    try {
-                        IPackageManager pm = AppGlobals.getPackageManager();
-                        if (pm.getPackageUid(arg, UserHandle.getCallingUserId()) >= 0) {
-                            reqPackage = arg;
-                            // Include all details, since we know we are only going to
-                            // be dumping a smaller set of data.  In fact only the details
-                            // container per-package data, so that are needed to be able
-                            // to dump anything at all when filtering by package.
-                            dumpDetails = true;
-                        }
-                    } catch (RemoteException e) {
-                    }
-                    if (reqPackage == null) {
-                        pw.println("Unknown package: " + arg);
-                        dumpHelp(pw);
-                        return;
-                    }
-                }
-            }
-        }
-
-        if (isCsv) {
-            pw.print("Processes running summed over");
-            if (!csvSepScreenStats) {
-                for (int i=0; i<csvScreenStats.length; i++) {
-                    pw.print(" ");
-                    printScreenLabelCsv(pw, csvScreenStats[i]);
-                }
-            }
-            if (!csvSepMemStats) {
-                for (int i=0; i<csvMemStats.length; i++) {
-                    pw.print(" ");
-                    printMemLabelCsv(pw, csvMemStats[i]);
-                }
-            }
-            if (!csvSepProcStats) {
-                for (int i=0; i<csvProcStats.length; i++) {
-                    pw.print(" ");
-                    pw.print(STATE_NAMES_CSV[csvProcStats[i]]);
-                }
-            }
-            pw.println();
-            synchronized (mLock) {
-                dumpFilteredProcessesCsvLocked(pw, null,
-                        csvSepScreenStats, csvScreenStats, csvSepMemStats, csvMemStats,
-                        csvSepProcStats, csvProcStats, now, reqPackage);
-                /*
-                dumpFilteredProcessesCsvLocked(pw, "Processes running while critical mem:",
-                        false, new int[] {ADJ_SCREEN_OFF, ADJ_SCREEN_ON},
-                        true, new int[] {ADJ_MEM_FACTOR_CRITICAL},
-                        true, new int[] {STATE_PERSISTENT, STATE_TOP, STATE_FOREGROUND, STATE_VISIBLE,
-                                STATE_PERCEPTIBLE, STATE_BACKUP, STATE_SERVICE, STATE_HOME,
-                                STATE_PREVIOUS, STATE_CACHED},
-                        now, reqPackage);
-                dumpFilteredProcessesCsvLocked(pw, "Processes running over all mem:",
-                        false, new int[] {ADJ_SCREEN_OFF, ADJ_SCREEN_ON},
-                        false, new int[] {ADJ_MEM_FACTOR_CRITICAL, ADJ_MEM_FACTOR_LOW,
-                                ADJ_MEM_FACTOR_MODERATE, ADJ_MEM_FACTOR_MODERATE},
-                        true, new int[] {STATE_PERSISTENT, STATE_TOP, STATE_FOREGROUND, STATE_VISIBLE,
-                                STATE_PERCEPTIBLE, STATE_BACKUP, STATE_SERVICE, STATE_HOME,
-                                STATE_PREVIOUS, STATE_CACHED},
-                        now, reqPackage);
-                */
-            }
-            return;
-        }
-
-        boolean sepNeeded = false;
-        if (!currentOnly || isCheckin) {
-            mWriteLock.lock();
-            try {
-                ArrayList<String> files = getCommittedFiles(0, !isCheckin);
-                if (files != null) {
-                    for (int i=0; i<files.size(); i++) {
-                        if (DEBUG) Slog.d(TAG, "Retrieving state: " + files.get(i));
-                        try {
-                            State state = new State(files.get(i));
-                            if (state.mReadError != null) {
-                                if (isCheckin || isCompact) pw.print("err,");
-                                pw.print("Failure reading "); pw.print(files.get(i));
-                                pw.print("; "); pw.println(state.mReadError);
-                                if (DEBUG) Slog.d(TAG, "Deleting state: " + files.get(i));
-                                (new File(files.get(i))).delete();
-                                continue;
-                            }
-                            String fileStr = state.mFile.getBaseFile().getPath();
-                            boolean checkedIn = fileStr.endsWith(STATE_FILE_CHECKIN_SUFFIX);
-                            if (isCheckin || isCompact) {
-                                // Don't really need to lock because we uniquely own this object.
-                                state.dumpCheckinLocked(pw, reqPackage);
-                            } else {
-                                if (sepNeeded) {
-                                    pw.println();
-                                } else {
-                                    sepNeeded = true;
-                                }
-                                pw.print("COMMITTED STATS FROM ");
-                                pw.print(state.mTimePeriodStartClockStr);
-                                if (checkedIn) pw.print(" (checked in)");
-                                pw.println(":");
-                                // Don't really need to lock because we uniquely own this object.
-                                if (dumpDetails) {
-                                    state.dumpLocked(pw, reqPackage, now, dumpAll);
-                                } else {
-                                    state.dumpSummaryLocked(pw, reqPackage, now);
-                                }
-                            }
-                            if (isCheckin) {
-                                // Rename file suffix to mark that it has checked in.
-                                state.mFile.getBaseFile().renameTo(new File(
-                                        fileStr + STATE_FILE_CHECKIN_SUFFIX));
-                            }
-                        } catch (Throwable e) {
-                            pw.print("**** FAILURE DUMPING STATE: "); pw.println(files.get(i));
-                            e.printStackTrace(pw);
-                        }
-                    }
-                }
-            } finally {
-                mWriteLock.unlock();
-            }
-        }
-        if (!isCheckin) {
-            synchronized (mLock) {
-                if (isCompact) {
-                    mState.dumpCheckinLocked(pw, reqPackage);
-                } else {
-                    if (sepNeeded) {
-                        pw.println();
-                        pw.println("CURRENT STATS:");
-                    }
-                    if (dumpDetails) {
-                        mState.dumpLocked(pw, reqPackage, now, dumpAll);
-                    } else {
-                        mState.dumpSummaryLocked(pw, reqPackage, now);
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/services/java/com/android/server/am/ServiceRecord.java b/services/java/com/android/server/am/ServiceRecord.java
index 14ccece..39756c3 100644
--- a/services/java/com/android/server/am/ServiceRecord.java
+++ b/services/java/com/android/server/am/ServiceRecord.java
@@ -16,6 +16,7 @@
 
 package com.android.server.am;
 
+import com.android.internal.app.ProcessStats;
 import com.android.internal.os.BatteryStatsImpl;
 import com.android.server.NotificationManagerService;
 
@@ -83,7 +84,7 @@
 
     ProcessRecord app;      // where this service is running or null.
     ProcessRecord isolatedProc; // keep track of isolated process, if requested
-    ProcessTracker.ServiceState tracker; // tracking service execution, may be null
+    ProcessStats.ServiceState tracker; // tracking service execution, may be null
     boolean isForeground;   // is service currently in foreground mode?
     int foregroundId;       // Notification ID of last foreground req.
     Notification foregroundNoti; // Notification record of foreground state.
@@ -310,12 +311,12 @@
         createdFromFg = callerIsFg;
     }
 
-    public ProcessTracker.ServiceState getTracker() {
+    public ProcessStats.ServiceState getTracker() {
         if (tracker != null) {
             return tracker;
         }
         if ((serviceInfo.applicationInfo.flags&ApplicationInfo.FLAG_PERSISTENT) == 0) {
-            tracker = ams.mProcessTracker.getServiceStateLocked(serviceInfo.packageName,
+            tracker = ams.mProcessStats.getServiceStateLocked(serviceInfo.packageName,
                     serviceInfo.applicationInfo.uid, serviceInfo.processName, serviceInfo.name);
         }
         return tracker;
diff --git a/services/java/com/android/server/connectivity/PacManager.java b/services/java/com/android/server/connectivity/PacManager.java
new file mode 100644
index 0000000..189c626
--- /dev/null
+++ b/services/java/com/android/server/connectivity/PacManager.java
@@ -0,0 +1,226 @@
+package com.android.server.connectivity;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+import android.net.ProxyProperties;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.net.IProxyService;
+
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpException;
+import org.apache.http.HttpHost;
+import org.apache.http.HttpRequest;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.conn.params.ConnRouteParams;
+import org.apache.http.conn.routing.HttpRoute;
+import org.apache.http.conn.routing.HttpRoutePlanner;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.protocol.HttpContext;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
+import java.net.ProxySelector;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * @hide
+ */
+public class PacManager implements Runnable {
+    public static final int NO_ERROR = 0;
+    public static final int PERMISSION_DENIED = 1;
+    public static final String PROXY_SERVICE = "com.android.net.IProxyService";
+
+
+    private static final String TAG = "PACManager";
+
+    private static final String ACTION_PAC_REFRESH = "android.net.proxy.PAC_REFRESH";
+
+    private static final String DEFAULT_DELAYS = "8 32 120 14400 43200";
+    private static final int DELAY_1 = 0;
+    private static final int DELAY_4 = 3;
+    private static final int DELAY_LONG = 4;
+
+    /** Keep these values up-to-date with ProxyService.java */
+    public static final String KEY_PROXY = "keyProxy";
+    private String mCurrentPac;
+    private volatile String mPacUrl;
+
+    private AlarmManager mAlarmManager;
+    private IProxyService mProxyService;
+    private PendingIntent mPacRefreshIntent;
+    private Context mContext;
+
+    private int mCurrentDelay;
+
+    class PacRefreshIntentReceiver extends BroadcastReceiver {
+        public void onReceive(Context context, Intent intent) {
+            new Thread(PacManager.this).start();
+        }
+    }
+
+    public PacManager(Context context) {
+        mContext = context;
+        mProxyService = IProxyService.Stub.asInterface(
+                ServiceManager.getService(PROXY_SERVICE));
+
+        mPacRefreshIntent = PendingIntent.getBroadcast(
+                context, 0, new Intent(ACTION_PAC_REFRESH), 0);
+        context.registerReceiver(new PacRefreshIntentReceiver(),
+                new IntentFilter(ACTION_PAC_REFRESH));
+    }
+
+    private AlarmManager getAlarmManager() {
+        if (mAlarmManager == null) {
+            mAlarmManager = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
+        }
+        return mAlarmManager;
+    }
+
+    public void setCurrentProxyScriptUrl(ProxyProperties proxy) {
+        if (!TextUtils.isEmpty(proxy.getPacFileUrl())) {
+            try {
+                mProxyService.startPacSystem();
+                mPacUrl = proxy.getPacFileUrl();
+                mCurrentDelay = DELAY_1;
+                getAlarmManager().cancel(mPacRefreshIntent);
+                new Thread(this).start();
+            } catch (RemoteException e) {
+                Log.e(TAG, "Unable to reach ProxyService - PAC will not be started", e);
+            }
+        } else {
+            try {
+                mProxyService.stopPacSystem();
+            } catch (RemoteException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * Does a post and reports back the status code.
+     *
+     * @throws IOException
+     */
+    public static String get(String urlString) throws IOException {
+        URL url = new URL(urlString);
+        URLConnection urlConnection = url.openConnection(java.net.Proxy.NO_PROXY);
+        BufferedReader in = new BufferedReader(new InputStreamReader(
+                urlConnection.getInputStream()));
+        String inputLine;
+        String resp = "";
+        while ((inputLine = in.readLine()) != null) {
+            resp = resp + inputLine + "\n";
+        }
+        in.close();
+        return resp;
+    }
+
+    private static String toString(InputStream content) throws IOException {
+        StringBuffer buffer = new StringBuffer();
+        String line;
+        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(content));
+
+        while ((line = bufferedReader.readLine()) != null) {
+            if (buffer.length() != 0) {
+                buffer.append('\n');
+            }
+            buffer.append(line);
+        }
+
+        return buffer.toString();
+    }
+
+    @Override
+    public void run() {
+        String file;
+        try {
+            file = get(mPacUrl);
+        } catch (IOException ioe) {
+            file = null;
+        }
+        if (file != null) {
+            if (!file.equals(mCurrentPac)) {
+                setCurrentProxyScript(file);
+            }
+            longSchedule();
+        } else {
+            reschedule();
+        }
+    }
+
+    private int getNextDelay(int currentDelay) {
+       if (++currentDelay > DELAY_4) {
+           return DELAY_4;
+       }
+       return currentDelay;
+    }
+
+    private void longSchedule() {
+        mCurrentDelay = DELAY_1;
+        setDownloadIn(DELAY_LONG);
+    }
+
+    private void reschedule() {
+        mCurrentDelay = getNextDelay(mCurrentDelay);
+        setDownloadIn(mCurrentDelay);
+    }
+
+    private String getPacChangeDelay() {
+        final ContentResolver cr = mContext.getContentResolver();
+
+        /** Check system properties for the default value then use secure settings value, if any. */
+        String defaultDelay = SystemProperties.get(
+                "conn." + Settings.Global.PAC_CHANGE_DELAY,
+                DEFAULT_DELAYS);
+        String val = Settings.Global.getString(cr, Settings.Global.PAC_CHANGE_DELAY);
+        return (val == null) ? defaultDelay : val;
+    }
+
+    private long getDownloadDelay(int delayIndex) {
+        String[] list = getPacChangeDelay().split(" ");
+        if (delayIndex < list.length) {
+            return Long.parseLong(list[delayIndex]);
+        }
+        return 0;
+    }
+
+    private void setDownloadIn(int delayIndex) {
+        long delay = getDownloadDelay(delayIndex);
+        long timeTillTrigger = 1000 * delay + SystemClock.elapsedRealtime();
+        getAlarmManager().set(AlarmManager.ELAPSED_REALTIME, timeTillTrigger, mPacRefreshIntent);
+    }
+
+    private boolean setCurrentProxyScript(String script) {
+        try {
+            if (mProxyService.setPacFile(script) != NO_ERROR) {
+                Log.e(TAG, "Unable to parse proxy script.");
+                return false;
+            }
+            mCurrentPac = script;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Unable to set PAC file", e);
+        }
+        return true;
+    }
+}
diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java
index 20db4cd..4b3463c 100644
--- a/services/java/com/android/server/display/DisplayManagerService.java
+++ b/services/java/com/android/server/display/DisplayManagerService.java
@@ -314,6 +314,9 @@
      * to the display information synchronously so that applications will immediately
      * observe the new state.
      *
+     * NOTE: This method must be the only entry point by which the window manager
+     * influences the logical configuration of displays.
+     *
      * @param displayId The logical display id.
      * @param info The new data to be stored.
      */
@@ -322,9 +325,7 @@
         synchronized (mSyncRoot) {
             LogicalDisplay display = mLogicalDisplays.get(displayId);
             if (display != null) {
-                mTempDisplayInfo.copyFrom(display.getDisplayInfoLocked());
-                display.setDisplayInfoOverrideFromWindowManagerLocked(info);
-                if (!mTempDisplayInfo.equals(display.getDisplayInfoLocked())) {
+                if (display.setDisplayInfoOverrideFromWindowManagerLocked(info)) {
                     sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
                     scheduleTraversalLocked(false);
                 }
@@ -333,18 +334,6 @@
     }
 
     /**
-     * Sets the overscan insets for a particular display.
-     */
-    public void setOverscan(int displayId, int left, int top, int right, int bottom) {
-        synchronized (mSyncRoot) {
-            LogicalDisplay display = mLogicalDisplays.get(displayId);
-            if (display != null) {
-                display.setOverscan(left, top, right, bottom);
-            }
-        }
-    }
-
-    /**
      * Called by the window manager to perform traversals while holding a
      * surface flinger transaction.
      */
diff --git a/services/java/com/android/server/display/LogicalDisplay.java b/services/java/com/android/server/display/LogicalDisplay.java
index b9839c2..7e357c0 100644
--- a/services/java/com/android/server/display/LogicalDisplay.java
+++ b/services/java/com/android/server/display/LogicalDisplay.java
@@ -128,32 +128,24 @@
      *
      * @param info The logical display information, may be null.
      */
-    public void setDisplayInfoOverrideFromWindowManagerLocked(DisplayInfo info) {
+    public boolean setDisplayInfoOverrideFromWindowManagerLocked(DisplayInfo info) {
         if (info != null) {
             if (mOverrideDisplayInfo == null) {
                 mOverrideDisplayInfo = new DisplayInfo(info);
                 mInfo = null;
-            } else if (!mOverrideDisplayInfo.equals(info)) {
+                return true;
+            }
+            if (!mOverrideDisplayInfo.equals(info)) {
                 mOverrideDisplayInfo.copyFrom(info);
                 mInfo = null;
+                return true;
             }
         } else if (mOverrideDisplayInfo != null) {
             mOverrideDisplayInfo = null;
             mInfo = null;
+            return true;
         }
-    }
-
-    public void setOverscan(int left, int top, int right, int bottom) {
-        mInfo.overscanLeft = left;
-        mInfo.overscanTop = top;
-        mInfo.overscanRight = right;
-        mInfo.overscanBottom = bottom;
-        if (mOverrideDisplayInfo != null) {
-            mOverrideDisplayInfo.overscanLeft = left;
-            mOverrideDisplayInfo.overscanTop = top;
-            mOverrideDisplayInfo.overscanRight = right;
-            mOverrideDisplayInfo.overscanBottom = bottom;
-        }
+        return false;
     }
 
     /**
diff --git a/services/java/com/android/server/firewall/AndFilter.java b/services/java/com/android/server/firewall/AndFilter.java
index e4276d0..13551de 100644
--- a/services/java/com/android/server/firewall/AndFilter.java
+++ b/services/java/com/android/server/firewall/AndFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -25,11 +25,11 @@
 
 class AndFilter extends FilterList {
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
         for (int i=0; i<children.size(); i++) {
-            if (!children.get(i).matches(ifw, intent, callerApp, callerUid, callerPid, resolvedType,
-                    resolvedApp)) {
+            if (!children.get(i).matches(ifw, resolvedComponent, intent, callerUid, callerPid,
+                    resolvedType, receivingUid)) {
                 return false;
             }
         }
diff --git a/services/java/com/android/server/firewall/CategoryFilter.java b/services/java/com/android/server/firewall/CategoryFilter.java
index 4938cb8..246c096 100644
--- a/services/java/com/android/server/firewall/CategoryFilter.java
+++ b/services/java/com/android/server/firewall/CategoryFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -34,8 +34,8 @@
     }
 
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
         Set<String> categories = intent.getCategories();
         if (categories == null) {
             return false;
diff --git a/services/java/com/android/server/firewall/Filter.java b/services/java/com/android/server/firewall/Filter.java
index 0e783e8..0a124f7 100644
--- a/services/java/com/android/server/firewall/Filter.java
+++ b/services/java/com/android/server/firewall/Filter.java
@@ -16,24 +16,21 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 
 interface Filter {
     /**
      * Does the given intent + context info match this filter?
      *
      * @param ifw The IntentFirewall instance
+     * @param resolvedComponent The actual component that the intent was resolved to
      * @param intent The intent being started/bound/broadcast
-     * @param callerApp An ApplicationInfo of an application in the caller's process. This may not
-     *                  be the specific app that is actually sending the intent. This also may be
-     *                  null, if the caller is the system process, or an unrecognized process (e.g.
-     *                  am start)
-     * @param callerUid
-     * @param callerPid
+     * @param callerUid The uid of the caller
+     * @param callerPid The pid of the caller
      * @param resolvedType The resolved mime type of the intent
-     * @param resolvedApp The application that contains the resolved component that the intent is
+     * @param receivingUid The uid of the component receiving the intent
      */
-    boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp);
+    boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid);
 }
diff --git a/services/java/com/android/server/firewall/IntentFirewall.java b/services/java/com/android/server/firewall/IntentFirewall.java
index 4496aae..aaa0b58 100644
--- a/services/java/com/android/server/firewall/IntentFirewall.java
+++ b/services/java/com/android/server/firewall/IntentFirewall.java
@@ -20,7 +20,6 @@
 import android.content.ComponentName;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
@@ -29,8 +28,10 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.RemoteException;
+import android.util.ArrayMap;
 import android.util.Slog;
 import android.util.Xml;
+import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.XmlUtils;
 import com.android.server.EventLogTags;
 import com.android.server.IntentResolver;
@@ -42,15 +43,15 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
 public class IntentFirewall {
-    private static final String TAG = "IntentFirewall";
+    static final String TAG = "IntentFirewall";
 
-    // e.g. /data/system/ifw/ifw.xml or /data/secure/system/ifw/ifw.xml
-    private static final File RULES_FILE =
-            new File(Environment.getSystemSecureDirectory(), "ifw/ifw.xml");
+    // e.g. /data/system/ifw or /data/secure/system/ifw
+    private static final File RULES_DIR = new File(Environment.getSystemSecureDirectory(), "ifw");
 
     private static final int LOG_PACKAGES_MAX_LENGTH = 150;
     private static final int LOG_PACKAGES_SUFFICIENT_LENGTH = 125;
@@ -87,6 +88,7 @@
                 StringFilter.DATA,
                 StringFilter.HOST,
                 StringFilter.MIME_TYPE,
+                StringFilter.SCHEME,
                 StringFilter.PATH,
                 StringFilter.SSP,
 
@@ -106,12 +108,12 @@
 
     public IntentFirewall(AMSInterface ams) {
         mAms = ams;
-        File rulesFile = getRulesFile();
-        rulesFile.getParentFile().mkdirs();
+        File rulesDir = getRulesDir();
+        rulesDir.mkdirs();
 
-        readRules(rulesFile);
+        readRulesDir(rulesDir);
 
-        mObserver = new RuleObserver(rulesFile);
+        mObserver = new RuleObserver(rulesDir);
         mObserver.startWatching();
     }
 
@@ -119,16 +121,45 @@
      * This is called from ActivityManager to check if a start activity intent should be allowed.
      * It is assumed the caller is already holding the global ActivityManagerService lock.
      */
-    public boolean checkStartActivity(Intent intent, ApplicationInfo callerApp, int callerUid,
-            int callerPid, String resolvedType, ActivityInfo resolvedActivity) {
-        List<Rule> matchingRules = mActivityResolver.queryIntent(intent, resolvedType, false, 0);
+    public boolean checkStartActivity(Intent intent, int callerUid, int callerPid,
+            String resolvedType, ApplicationInfo resolvedApp) {
+        return checkIntent(mActivityResolver, intent.getComponent(), TYPE_ACTIVITY, intent,
+                callerUid, callerPid, resolvedType, resolvedApp.uid);
+    }
+
+    public boolean checkService(ComponentName resolvedService, Intent intent, int callerUid,
+            int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+        return checkIntent(mServiceResolver, resolvedService, TYPE_SERVICE, intent, callerUid,
+                callerPid, resolvedType, resolvedApp.uid);
+    }
+
+    public boolean checkBroadcast(Intent intent, int callerUid, int callerPid,
+            String resolvedType, int receivingUid) {
+        return checkIntent(mBroadcastResolver, intent.getComponent(), TYPE_BROADCAST, intent,
+                callerUid, callerPid, resolvedType, receivingUid);
+    }
+
+    public boolean checkIntent(FirewallIntentResolver resolver, ComponentName resolvedComponent,
+            int intentType, Intent intent, int callerUid, int callerPid, String resolvedType,
+            int receivingUid) {
         boolean log = false;
         boolean block = false;
 
-        for (int i=0; i< matchingRules.size(); i++) {
-            Rule rule = matchingRules.get(i);
-            if (rule.matches(this, intent, callerApp, callerUid, callerPid, resolvedType,
-                    resolvedActivity.applicationInfo)) {
+        // For the first pass, find all the rules that have at least one intent-filter or
+        // component-filter that matches this intent
+        List<Rule> candidateRules;
+        candidateRules = resolver.queryIntent(intent, resolvedType, false, 0);
+        if (candidateRules == null) {
+            candidateRules = new ArrayList<Rule>();
+        }
+        resolver.queryByComponent(resolvedComponent, candidateRules);
+
+        // For the second pass, try to match the potentially more specific conditions in each
+        // rule against the intent
+        for (int i=0; i<candidateRules.size(); i++) {
+            Rule rule = candidateRules.get(i);
+            if (rule.matches(this, resolvedComponent, intent, callerUid, callerPid, resolvedType,
+                    receivingUid)) {
                 block |= rule.getBlock();
                 log |= rule.getLog();
 
@@ -141,7 +172,7 @@
         }
 
         if (log) {
-            logIntent(TYPE_ACTIVITY, intent, callerUid, resolvedType);
+            logIntent(intentType, intent, callerUid, resolvedType);
         }
 
         return !block;
@@ -216,22 +247,58 @@
         return null;
     }
 
-    public static File getRulesFile() {
-        return RULES_FILE;
+    public static File getRulesDir() {
+        return RULES_DIR;
     }
 
     /**
-     * Reads rules from the given file and replaces our set of rules with the newly read rules
+     * Reads rules from all xml files (*.xml) in the given directory, and replaces our set of rules
+     * with the newly read rules.
+     *
+     * We only check for files ending in ".xml", to allow for temporary files that are atomically
+     * renamed to .xml
      *
      * All calls to this method from the file observer come through a handler and are inherently
      * serialized
      */
-    private void readRules(File rulesFile) {
+    private void readRulesDir(File rulesDir) {
         FirewallIntentResolver[] resolvers = new FirewallIntentResolver[3];
         for (int i=0; i<resolvers.length; i++) {
             resolvers[i] = new FirewallIntentResolver();
         }
 
+        File[] files = rulesDir.listFiles();
+        for (int i=0; i<files.length; i++) {
+            File file = files[i];
+
+            if (file.getName().endsWith(".xml")) {
+                readRules(file, resolvers);
+            }
+        }
+
+        Slog.i(TAG, "Read new rules (A:" + resolvers[TYPE_ACTIVITY].filterSet().size() +
+                " B:" + resolvers[TYPE_BROADCAST].filterSet().size() +
+                " S:" + resolvers[TYPE_SERVICE].filterSet().size() + ")");
+
+        synchronized (mAms.getAMSLock()) {
+            mActivityResolver = resolvers[TYPE_ACTIVITY];
+            mBroadcastResolver = resolvers[TYPE_BROADCAST];
+            mServiceResolver = resolvers[TYPE_SERVICE];
+        }
+    }
+
+    /**
+     * Reads rules from the given file and add them to the given resolvers
+     */
+    private void readRules(File rulesFile, FirewallIntentResolver[] resolvers) {
+        // some temporary lists to hold the rules while we parse the xml file, so that we can
+        // add the rules all at once, after we know there weren't any major structural problems
+        // with the xml file
+        List<List<Rule>> rulesByType = new ArrayList<List<Rule>>(3);
+        for (int i=0; i<3; i++) {
+            rulesByType.add(new ArrayList<Rule>());
+        }
+
         FileInputStream fis;
         try {
             fis = new FileInputStream(rulesFile);
@@ -247,8 +314,6 @@
 
             XmlUtils.beginDocument(parser, TAG_RULES);
 
-            int[] numRules = new int[3];
-
             int outerDepth = parser.getDepth();
             while (XmlUtils.nextElementWithin(parser, outerDepth)) {
                 int ruleType = -1;
@@ -265,41 +330,28 @@
                 if (ruleType != -1) {
                     Rule rule = new Rule();
 
-                    FirewallIntentResolver resolver = resolvers[ruleType];
+                    List<Rule> rules = rulesByType.get(ruleType);
 
                     // if we get an error while parsing a particular rule, we'll just ignore
                     // that rule and continue on with the next rule
                     try {
                         rule.readFromXml(parser);
                     } catch (XmlPullParserException ex) {
-                        Slog.e(TAG, "Error reading intent firewall rule", ex);
+                        Slog.e(TAG, "Error reading an intent firewall rule from " + rulesFile, ex);
                         continue;
                     }
 
-                    numRules[ruleType]++;
-
-                    for (int i=0; i<rule.getIntentFilterCount(); i++) {
-                        resolver.addFilter(rule.getIntentFilter(i));
-                    }
+                    rules.add(rule);
                 }
             }
-
-            Slog.i(TAG, "Read new rules (A:" + numRules[TYPE_ACTIVITY] +
-                    " B:" + numRules[TYPE_BROADCAST] + " S:" + numRules[TYPE_SERVICE] + ")");
-
-            synchronized (mAms.getAMSLock()) {
-                mActivityResolver = resolvers[TYPE_ACTIVITY];
-                mBroadcastResolver = resolvers[TYPE_BROADCAST];
-                mServiceResolver = resolvers[TYPE_SERVICE];
-            }
         } catch (XmlPullParserException ex) {
             // if there was an error outside of a specific rule, then there are probably
             // structural problems with the xml file, and we should completely ignore it
-            Slog.e(TAG, "Error reading intent firewall rules", ex);
-            clearRules();
+            Slog.e(TAG, "Error reading intent firewall rules from " + rulesFile, ex);
+            return;
         } catch (IOException ex) {
-            Slog.e(TAG, "Error reading intent firewall rules", ex);
-            clearRules();
+            Slog.e(TAG, "Error reading intent firewall rules from " + rulesFile, ex);
+            return;
         } finally {
             try {
                 fis.close();
@@ -307,21 +359,20 @@
                 Slog.e(TAG, "Error while closing " + rulesFile, ex);
             }
         }
-    }
 
-    /**
-     * Clears out all of our rules
-     *
-     * All calls to this method from the file observer come through a handler and are inherently
-     * serialized
-     */
-    private void clearRules() {
-        Slog.i(TAG, "Clearing all rules");
+        for (int ruleType=0; ruleType<rulesByType.size(); ruleType++) {
+            List<Rule> rules = rulesByType.get(ruleType);
+            FirewallIntentResolver resolver = resolvers[ruleType];
 
-        synchronized (mAms.getAMSLock())  {
-            mActivityResolver = new FirewallIntentResolver();
-            mBroadcastResolver = new FirewallIntentResolver();
-            mServiceResolver = new FirewallIntentResolver();
+            for (int ruleIndex=0; ruleIndex<rules.size(); ruleIndex++) {
+                Rule rule = rules.get(ruleIndex);
+                for (int i=0; i<rule.getIntentFilterCount(); i++) {
+                    resolver.addFilter(rule.getIntentFilter(i));
+                }
+                for (int i=0; i<rule.getComponentFilterCount(); i++) {
+                    resolver.addComponentFilter(rule.getComponentFilter(i), rule);
+                }
+            }
         }
     }
 
@@ -336,14 +387,35 @@
         return factory.newFilter(parser);
     }
 
+    /**
+     * Represents a single activity/service/broadcast rule within one of the xml files.
+     *
+     * Rules are matched against an incoming intent in two phases. The goal of the first phase
+     * is to select a subset of rules that might match a given intent.
+     *
+     * For the first phase, we use a combination of intent filters (via an IntentResolver)
+     * and component filters to select which rules to check. If a rule has multiple intent or
+     * component filters, only a single filter must match for the rule to be passed on to the
+     * second phase.
+     *
+     * In the second phase, we check the specific conditions in each rule against the values in the
+     * intent. All top level conditions (but not filters) in the rule must match for the rule as a
+     * whole to match.
+     *
+     * If the rule matches, then we block or log the intent, as specified by the rule. If multiple
+     * rules match, we combine the block/log flags from any matching rule.
+     */
     private static class Rule extends AndFilter {
         private static final String TAG_INTENT_FILTER = "intent-filter";
+        private static final String TAG_COMPONENT_FILTER = "component-filter";
+        private static final String ATTR_NAME = "name";
 
         private static final String ATTR_BLOCK = "block";
         private static final String ATTR_LOG = "log";
 
         private final ArrayList<FirewallIntentFilter> mIntentFilters =
                 new ArrayList<FirewallIntentFilter>(1);
+        private final ArrayList<ComponentName> mComponentFilters = new ArrayList<ComponentName>(0);
         private boolean block;
         private boolean log;
 
@@ -358,10 +430,25 @@
 
         @Override
         protected void readChild(XmlPullParser parser) throws IOException, XmlPullParserException {
-            if (parser.getName().equals(TAG_INTENT_FILTER)) {
+            String currentTag = parser.getName();
+
+            if (currentTag.equals(TAG_INTENT_FILTER)) {
                 FirewallIntentFilter intentFilter = new FirewallIntentFilter(this);
                 intentFilter.readFromXml(parser);
                 mIntentFilters.add(intentFilter);
+            } else if (currentTag.equals(TAG_COMPONENT_FILTER)) {
+                String componentStr = parser.getAttributeValue(null, ATTR_NAME);
+                if (componentStr == null) {
+                    throw new XmlPullParserException("Component name must be specified.",
+                            parser, null);
+                }
+
+                ComponentName componentName = ComponentName.unflattenFromString(componentStr);
+                if (componentName == null) {
+                    throw new XmlPullParserException("Invalid component name: " + componentStr);
+                }
+
+                mComponentFilters.add(componentName);
             } else {
                 super.readChild(parser);
             }
@@ -375,6 +462,13 @@
             return mIntentFilters.get(index);
         }
 
+        public int getComponentFilterCount() {
+            return mComponentFilters.size();
+        }
+
+        public ComponentName getComponentFilter(int index) {
+            return mComponentFilters.get(index);
+        }
         public boolean getBlock() {
             return block;
         }
@@ -419,56 +513,50 @@
             // there's no need to sort the results
             return;
         }
-    }
 
-    private static final int READ_RULES = 0;
-    private static final int CLEAR_RULES = 1;
+        public void queryByComponent(ComponentName componentName, List<Rule> candidateRules) {
+            Rule[] rules = mRulesByComponent.get(componentName);
+            if (rules != null) {
+                candidateRules.addAll(Arrays.asList(rules));
+            }
+        }
+
+        public void addComponentFilter(ComponentName componentName, Rule rule) {
+            Rule[] rules = mRulesByComponent.get(componentName);
+            rules = ArrayUtils.appendElement(Rule.class, rules, rule);
+            mRulesByComponent.put(componentName, rules);
+        }
+
+        private final ArrayMap<ComponentName, Rule[]> mRulesByComponent =
+                new ArrayMap<ComponentName, Rule[]>(0);
+    }
 
     final Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case READ_RULES:
-                    readRules(getRulesFile());
-                    break;
-                case CLEAR_RULES:
-                    clearRules();
-                    break;
-            }
+            readRulesDir(getRulesDir());
         }
     };
 
     /**
-     * Monitors for the creation/deletion/modification of the rule file
+     * Monitors for the creation/deletion/modification of any .xml files in the rule directory
      */
     private class RuleObserver extends FileObserver {
-        // The file name we're monitoring, with no path component
-        private final String mMonitoredFile;
+        private static final int MONITORED_EVENTS = FileObserver.CREATE|FileObserver.MOVED_TO|
+                FileObserver.CLOSE_WRITE|FileObserver.DELETE|FileObserver.MOVED_FROM;
 
-        private static final int CREATED_FLAGS = FileObserver.CREATE|FileObserver.MOVED_TO|
-                FileObserver.CLOSE_WRITE;
-        private static final int DELETED_FLAGS = FileObserver.DELETE|FileObserver.MOVED_FROM;
-
-        public RuleObserver(File monitoredFile) {
-            super(monitoredFile.getParentFile().getAbsolutePath(), CREATED_FLAGS|DELETED_FLAGS);
-            mMonitoredFile = monitoredFile.getName();
+        public RuleObserver(File monitoredDir) {
+            super(monitoredDir.getAbsolutePath(), MONITORED_EVENTS);
         }
 
         @Override
         public void onEvent(int event, String path) {
-            if (path.equals(mMonitoredFile)) {
+            if (path.endsWith(".xml")) {
                 // we wait 250ms before taking any action on an event, in order to dedup multiple
                 // events. E.g. a delete event followed by a create event followed by a subsequent
-                // write+close event;
-                if ((event & CREATED_FLAGS) != 0) {
-                    mHandler.removeMessages(READ_RULES);
-                    mHandler.removeMessages(CLEAR_RULES);
-                    mHandler.sendEmptyMessageDelayed(READ_RULES, 250);
-                } else if ((event & DELETED_FLAGS) != 0) {
-                    mHandler.removeMessages(READ_RULES);
-                    mHandler.removeMessages(CLEAR_RULES);
-                    mHandler.sendEmptyMessageDelayed(CLEAR_RULES, 250);
-                }
+                // write+close event
+                mHandler.removeMessages(0);
+                mHandler.sendEmptyMessageDelayed(0, 250);
             }
         }
     }
@@ -509,4 +597,5 @@
             return false;
         }
     }
+
 }
diff --git a/services/java/com/android/server/firewall/NotFilter.java b/services/java/com/android/server/firewall/NotFilter.java
index f0fc337..09bf629 100644
--- a/services/java/com/android/server/firewall/NotFilter.java
+++ b/services/java/com/android/server/firewall/NotFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import com.android.internal.util.XmlUtils;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -32,10 +32,10 @@
     }
 
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
-        return !mChild.matches(ifw, intent, callerApp, callerUid, callerPid, resolvedType,
-                resolvedApp);
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
+        return !mChild.matches(ifw, resolvedComponent, intent, callerUid, callerPid, resolvedType,
+                receivingUid);
     }
 
     public static final FilterFactory FACTORY = new FilterFactory("not") {
diff --git a/services/java/com/android/server/firewall/OrFilter.java b/services/java/com/android/server/firewall/OrFilter.java
index 72db31e..f6a6f22 100644
--- a/services/java/com/android/server/firewall/OrFilter.java
+++ b/services/java/com/android/server/firewall/OrFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -25,11 +25,11 @@
 
 class OrFilter extends FilterList {
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
         for (int i=0; i<children.size(); i++) {
-            if (children.get(i).matches(ifw, intent, callerApp, callerUid, callerPid, resolvedType,
-                    resolvedApp)) {
+            if (children.get(i).matches(ifw, resolvedComponent, intent, callerUid, callerPid,
+                    resolvedType, receivingUid)) {
                 return true;
             }
         }
diff --git a/services/java/com/android/server/firewall/PortFilter.java b/services/java/com/android/server/firewall/PortFilter.java
index fe7e085..84ace553 100644
--- a/services/java/com/android/server/firewall/PortFilter.java
+++ b/services/java/com/android/server/firewall/PortFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import android.net.Uri;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
@@ -41,8 +41,8 @@
     }
 
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
         int port = -1;
         Uri uri = intent.getData();
         if (uri != null) {
diff --git a/services/java/com/android/server/firewall/SenderFilter.java b/services/java/com/android/server/firewall/SenderFilter.java
index 58bdd73..c0eee69 100644
--- a/services/java/com/android/server/firewall/SenderFilter.java
+++ b/services/java/com/android/server/firewall/SenderFilter.java
@@ -16,9 +16,14 @@
 
 package com.android.server.firewall;
 
+import android.app.AppGlobals;
+import android.content.ComponentName;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageManager;
 import android.os.Process;
+import android.os.RemoteException;
+import android.util.Slog;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -32,15 +37,21 @@
     private static final String VAL_SYSTEM_OR_SIGNATURE = "system|signature";
     private static final String VAL_USER_ID = "userId";
 
-    static boolean isSystemApp(ApplicationInfo callerApp, int callerUid, int callerPid) {
-        if (callerUid == Process.SYSTEM_UID ||
-                callerPid == Process.myPid()) {
+    static boolean isPrivilegedApp(int callerUid, int callerPid) {
+        if (callerUid == Process.SYSTEM_UID || callerUid == 0 ||
+                callerPid == Process.myPid() || callerPid == 0) {
             return true;
         }
-        if (callerApp == null) {
-            return false;
+
+        IPackageManager pm = AppGlobals.getPackageManager();
+        try {
+            return (pm.getFlagsForUid(callerUid) & ApplicationInfo.FLAG_PRIVILEGED) != 0;
+        } catch (RemoteException ex) {
+            Slog.e(IntentFirewall.TAG, "Remote exception while retrieving uid flags",
+                    ex);
         }
-        return (callerApp.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+
+        return false;
     }
 
     public static final FilterFactory FACTORY = new FilterFactory("sender") {
@@ -67,45 +78,38 @@
 
     private static final Filter SIGNATURE = new Filter() {
         @Override
-        public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-                int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
-            if (callerApp == null) {
-                return false;
-            }
-            return ifw.signaturesMatch(callerUid, resolvedApp.uid);
+        public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+                int callerUid, int callerPid, String resolvedType, int receivingUid) {
+            return ifw.signaturesMatch(callerUid, receivingUid);
         }
     };
 
     private static final Filter SYSTEM = new Filter() {
         @Override
-        public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-                int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
-            if (callerApp == null) {
-                // if callerApp is null, the caller is the system process
-                return false;
-            }
-            return isSystemApp(callerApp, callerUid, callerPid);
+        public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+                int callerUid, int callerPid, String resolvedType, int receivingUid) {
+            return isPrivilegedApp(callerUid, callerPid);
         }
     };
 
     private static final Filter SYSTEM_OR_SIGNATURE = new Filter() {
         @Override
-        public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-                int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
-            return isSystemApp(callerApp, callerUid, callerPid) ||
-                    ifw.signaturesMatch(callerUid, resolvedApp.uid);
+        public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+                int callerUid, int callerPid, String resolvedType, int receivingUid) {
+            return isPrivilegedApp(callerUid, callerPid) ||
+                    ifw.signaturesMatch(callerUid, receivingUid);
         }
     };
 
     private static final Filter USER_ID = new Filter() {
         @Override
-        public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-                int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+        public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+                int callerUid, int callerPid, String resolvedType, int receivingUid) {
             // This checks whether the caller is either the system process, or has the same user id
             // I.e. the same app, or an app that uses the same shared user id.
             // This is the same set of applications that would be able to access the component if
             // it wasn't exported.
-            return ifw.checkComponentPermission(null, callerPid, callerUid, resolvedApp.uid, false);
+            return ifw.checkComponentPermission(null, callerPid, callerUid, receivingUid, false);
         }
     };
 }
diff --git a/services/java/com/android/server/firewall/SenderPermissionFilter.java b/services/java/com/android/server/firewall/SenderPermissionFilter.java
index 310da20..caa65f3 100644
--- a/services/java/com/android/server/firewall/SenderPermissionFilter.java
+++ b/services/java/com/android/server/firewall/SenderPermissionFilter.java
@@ -16,8 +16,8 @@
 
 package com.android.server.firewall;
 
+import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -33,12 +33,12 @@
     }
 
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
         // We assume the component is exported here. If the component is not exported, then
         // ActivityManager would only resolve to this component for callers from the same uid.
         // In this case, it doesn't matter whether the component is exported or not.
-        return ifw.checkComponentPermission(mPermission, callerPid, callerUid, resolvedApp.uid,
+        return ifw.checkComponentPermission(mPermission, callerPid, callerUid, receivingUid,
                 true);
     }
 
diff --git a/services/java/com/android/server/firewall/StringFilter.java b/services/java/com/android/server/firewall/StringFilter.java
index ed5d3f3..28e99b3 100644
--- a/services/java/com/android/server/firewall/StringFilter.java
+++ b/services/java/com/android/server/firewall/StringFilter.java
@@ -18,7 +18,6 @@
 
 import android.content.ComponentName;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
 import android.net.Uri;
 import android.os.PatternMatcher;
 import org.xmlpull.v1.XmlPullParser;
@@ -119,9 +118,9 @@
     protected abstract boolean matchesValue(String value);
 
     @Override
-    public boolean matches(IntentFirewall ifw, Intent intent, ApplicationInfo callerApp,
-            int callerUid, int callerPid, String resolvedType, ApplicationInfo resolvedApp) {
-        String value = mValueProvider.getValue(intent, callerApp, resolvedType, resolvedApp);
+    public boolean matches(IntentFirewall ifw, ComponentName resolvedComponent, Intent intent,
+            int callerUid, int callerPid, String resolvedType, int receivingUid) {
+        String value = mValueProvider.getValue(resolvedComponent, intent, resolvedType);
         return matchesValue(value);
     }
 
@@ -135,8 +134,8 @@
             return StringFilter.readFromXml(this, parser);
         }
 
-        public abstract String getValue(Intent intent, ApplicationInfo callerApp,
-                String resolvedType, ApplicationInfo resolvedApp);
+        public abstract String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType);
     }
 
     private static class EqualsFilter extends StringFilter {
@@ -230,11 +229,10 @@
 
     public static final ValueProvider COMPONENT = new ValueProvider("component") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
-            ComponentName cn = intent.getComponent();
-            if (cn != null) {
-                return cn.flattenToString();
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
+            if (resolvedComponent != null) {
+                return resolvedComponent.flattenToString();
             }
             return null;
         }
@@ -242,11 +240,10 @@
 
     public static final ValueProvider COMPONENT_NAME = new ValueProvider("component-name") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
-            ComponentName cn = intent.getComponent();
-            if (cn != null) {
-                return cn.getClassName();
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
+            if (resolvedComponent != null) {
+                return resolvedComponent.getClassName();
             }
             return null;
         }
@@ -254,11 +251,10 @@
 
     public static final ValueProvider COMPONENT_PACKAGE = new ValueProvider("component-package") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
-            ComponentName cn = intent.getComponent();
-            if (cn != null) {
-                return cn.getPackageName();
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
+            if (resolvedComponent != null) {
+                return resolvedComponent.getPackageName();
             }
             return null;
         }
@@ -266,16 +262,16 @@
 
     public static final FilterFactory ACTION = new ValueProvider("action") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             return intent.getAction();
         }
     };
 
     public static final ValueProvider DATA = new ValueProvider("data") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             Uri data = intent.getData();
             if (data != null) {
                 return data.toString();
@@ -286,16 +282,16 @@
 
     public static final ValueProvider MIME_TYPE = new ValueProvider("mime-type") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             return resolvedType;
         }
     };
 
     public static final ValueProvider SCHEME = new ValueProvider("scheme") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             Uri data = intent.getData();
             if (data != null) {
                 return data.getScheme();
@@ -306,8 +302,8 @@
 
     public static final ValueProvider SSP = new ValueProvider("scheme-specific-part") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             Uri data = intent.getData();
             if (data != null) {
                 return data.getSchemeSpecificPart();
@@ -318,8 +314,8 @@
 
     public static final ValueProvider HOST = new ValueProvider("host") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             Uri data = intent.getData();
             if (data != null) {
                 return data.getHost();
@@ -330,8 +326,8 @@
 
     public static final ValueProvider PATH = new ValueProvider("path") {
         @Override
-        public String getValue(Intent intent, ApplicationInfo callerApp, String resolvedType,
-                ApplicationInfo resolvedApp) {
+        public String getValue(ComponentName resolvedComponent, Intent intent,
+                String resolvedType) {
             Uri data = intent.getData();
             if (data != null) {
                 return data.getPath();
diff --git a/services/java/com/android/server/pm/GrantedPermissions.java b/services/java/com/android/server/pm/GrantedPermissions.java
index c7629b9..14258a4 100644
--- a/services/java/com/android/server/pm/GrantedPermissions.java
+++ b/services/java/com/android/server/pm/GrantedPermissions.java
@@ -44,6 +44,7 @@
     void setFlags(int pkgFlags) {
         this.pkgFlags = pkgFlags
                 & (ApplicationInfo.FLAG_SYSTEM
+                        | ApplicationInfo.FLAG_PRIVILEGED
                         | ApplicationInfo.FLAG_FORWARD_LOCK
                         | ApplicationInfo.FLAG_EXTERNAL_STORAGE);
     }
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index fea7fe7c..80e20a5 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -2574,6 +2574,20 @@
         }
     }
 
+    public int getFlagsForUid(int uid) {
+        synchronized (mPackages) {
+            Object obj = mSettings.getUserIdLPr(UserHandle.getAppId(uid));
+            if (obj instanceof SharedUserSetting) {
+                final SharedUserSetting sus = (SharedUserSetting) obj;
+                return sus.pkgFlags;
+            } else if (obj instanceof PackageSetting) {
+                final PackageSetting ps = (PackageSetting) obj;
+                return ps.pkgFlags;
+            }
+        }
+        return 0;
+    }
+
     @Override
     public ResolveInfo resolveIntent(Intent intent, String resolvedType,
             int flags, int userId) {
@@ -4058,8 +4072,7 @@
             }
 
             if (pkg.mSharedUserId != null) {
-                suid = mSettings.getSharedUserLPw(pkg.mSharedUserId,
-                        pkg.applicationInfo.flags, true);
+                suid = mSettings.getSharedUserLPw(pkg.mSharedUserId, 0, true);
                 if (suid == null) {
                     Slog.w(TAG, "Creating application package " + pkg.packageName
                             + " for shared user failed");
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java
index e6611f0..163536a 100644
--- a/services/java/com/android/server/pm/Settings.java
+++ b/services/java/com/android/server/pm/Settings.java
@@ -594,7 +594,7 @@
                         "Package " + p.name + " was user "
                         + p.sharedUser + " but is now " + sharedUser
                         + "; I am not changing its files so it will probably fail!");
-                p.sharedUser.packages.remove(p);
+                p.sharedUser.removePackage(p);
             } else if (p.appId != sharedUser.userId) {
                 PackageManagerService.reportSettingsProblem(Log.ERROR,
                     "Package " + p.name + " was user id " + p.appId
@@ -603,7 +603,7 @@
                     + "; I am not changing its files so it will probably fail!");
             }
 
-            sharedUser.packages.add(p);
+            sharedUser.addPackage(p);
             p.sharedUser = sharedUser;
             p.appId = sharedUser.userId;
         }
@@ -663,7 +663,7 @@
         if (p != null) {
             mPackages.remove(name);
             if (p.sharedUser != null) {
-                p.sharedUser.packages.remove(p);
+                p.sharedUser.removePackage(p);
                 if (p.sharedUser.packages.size() == 0) {
                     mSharedUsers.remove(p.sharedUser.name);
                     removeUserIdLPw(p.sharedUser.userId);
@@ -681,8 +681,8 @@
         final PackageSetting p = mPackages.get(name);
         if (p != null) {
             if (p.sharedUser != null) {
-                p.sharedUser.packages.remove(p);
-                p.sharedUser.packages.add(newp);
+                p.sharedUser.removePackage(p);
+                p.sharedUser.addPackage(newp);
             } else {
                 replaceUserIdLPw(p.appId, newp);
             }
diff --git a/services/java/com/android/server/pm/SharedUserSetting.java b/services/java/com/android/server/pm/SharedUserSetting.java
index 76826ea..ca1eeea 100644
--- a/services/java/com/android/server/pm/SharedUserSetting.java
+++ b/services/java/com/android/server/pm/SharedUserSetting.java
@@ -26,12 +26,16 @@
 
     int userId;
 
+    // flags that are associated with this uid, regardless of any package flags
+    int uidFlags;
+
     final HashSet<PackageSetting> packages = new HashSet<PackageSetting>();
 
     final PackageSignatures signatures = new PackageSignatures();
 
     SharedUserSetting(String _name, int _pkgFlags) {
         super(_pkgFlags);
+        uidFlags =  _pkgFlags;
         name = _name;
     }
 
@@ -40,4 +44,23 @@
         return "SharedUserSetting{" + Integer.toHexString(System.identityHashCode(this)) + " "
                 + name + "/" + userId + "}";
     }
+
+    void removePackage(PackageSetting packageSetting) {
+        if (packages.remove(packageSetting)) {
+            // recalculate the pkgFlags for this shared user if needed
+            if ((this.pkgFlags & packageSetting.pkgFlags) != 0) {
+                int aggregatedFlags = uidFlags;
+                for (PackageSetting ps : packages) {
+                    aggregatedFlags |= ps.pkgFlags;
+                }
+                setFlags(aggregatedFlags);
+            }
+        }
+    }
+
+    void addPackage(PackageSetting packageSetting) {
+        if (packages.add(packageSetting)) {
+            setFlags(this.pkgFlags | packageSetting.pkgFlags);
+        }
+    }
 }
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java
index 4ead8d5..bb37917 100644
--- a/services/java/com/android/server/pm/UserManagerService.java
+++ b/services/java/com/android/server/pm/UserManagerService.java
@@ -26,6 +26,7 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.RestrictionEntry;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -116,7 +117,7 @@
 
     private static final int MIN_USER_ID = 10;
 
-    private static final int USER_VERSION = 2;
+    private static final int USER_VERSION = 4;
 
     private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms
 
@@ -162,6 +163,8 @@
     private boolean mGuestEnabled;
     private int mNextSerialNumber;
     private int mUserVersion = 0;
+    // Temporary cleanup variable, this and associated code should be removed later.
+    private boolean mUnblockAppsTemp;
 
     private static UserManagerService sInstance;
 
@@ -232,12 +235,14 @@
                 sInstance = this;
             }
         }
-
     }
 
     void systemReady() {
-        mUserPackageMonitor.register(ActivityThread.systemMain().getSystemContext(),
+        final Context context = ActivityThread.systemMain().getSystemContext();
+        mUserPackageMonitor.register(context,
                 null, UserHandle.ALL, false);
+        context.registerReceiver(mBootCompletedReceiver,
+                new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
         userForeground(UserHandle.USER_OWNER);
     }
 
@@ -425,6 +430,7 @@
                     && restrictions.getBoolean(UserManager.DISALLOW_APP_RESTRICTIONS, false)) {
                 restrictions.putBoolean(UserManager.DISALLOW_APP_RESTRICTIONS, false);
             }
+            mUserRestrictions.get(userId).clear();
             mUserRestrictions.get(userId).putAll(restrictions);
             writeUserLocked(mUsers.get(userId));
         }
@@ -555,7 +561,7 @@
                 }
             }
             updateUserIdsLocked();
-            upgradeIfNecessary();
+            upgradeIfNecessaryLocked();
         } catch (IOException ioe) {
             fallbackToSingleUserLocked();
         } catch (XmlPullParserException pe) {
@@ -573,7 +579,7 @@
     /**
      * Upgrade steps between versions, either for fixing bugs or changing the data format.
      */
-    private void upgradeIfNecessary() {
+    private void upgradeIfNecessaryLocked() {
         int userVersion = mUserVersion;
         if (userVersion < 1) {
             // Assign a proper name for the owner, if not initialized correctly before
@@ -595,6 +601,23 @@
             userVersion = 2;
         }
 
+        if (userVersion < 3) {
+            // Remove restrictions PIN for all users
+            for (int i = 0; i < mRestrictionsPinStates.size(); i++) {
+                int userId = mRestrictionsPinStates.keyAt(i);
+                RestrictionsPinState state = mRestrictionsPinStates.valueAt(i);
+                if (state.salt != 0 && state.pinHash != null) {
+                    removeRestrictionsForUser(userId, false);
+                }
+            }
+            userVersion = 3;
+        }
+
+        if (userVersion < 4) {
+            mUnblockAppsTemp = true;
+            userVersion = 4;
+        }
+
         if (userVersion < USER_VERSION) {
             Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to "
                     + USER_VERSION);
@@ -1221,6 +1244,10 @@
     public void removeRestrictions() {
         checkManageUsersPermission("Only system can remove restrictions");
         final int userHandle = UserHandle.getCallingUserId();
+        removeRestrictionsForUser(userHandle, true);
+    }
+
+    private void removeRestrictionsForUser(final int userHandle, boolean unblockApps) {
         synchronized (mPackagesLock) {
             // Remove all user restrictions
             setUserRestrictions(new Bundle(), userHandle);
@@ -1229,6 +1256,12 @@
             // Remove any app restrictions
             cleanAppRestrictions(userHandle, true);
         }
+        if (unblockApps) {
+            unblockAllAppsForUser(userHandle);
+        }
+    }
+
+    private void unblockAllAppsForUser(final int userHandle) {
         mHandler.post(new Runnable() {
             @Override
             public void run() {
@@ -1555,4 +1588,19 @@
             }
         }
     };
+
+    private BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() {
+        @Override public void onReceive(Context context, Intent intent) {
+            // This code block can be removed after cleanup
+            if (mUnblockAppsTemp) {
+                synchronized (mPackagesLock) {
+                    // Unblock apps due to removal of restrictions feature
+                    for (int i = 0; i < mUsers.size(); i++) {
+                        int userId = mUsers.keyAt(i);
+                        unblockAllAppsForUser(userId);
+                    }
+                }
+            }
+        }
+    };
 }
diff --git a/services/java/com/android/server/updates/IntentFirewallInstallReceiver.java b/services/java/com/android/server/updates/IntentFirewallInstallReceiver.java
index 9185903..0b54f92 100644
--- a/services/java/com/android/server/updates/IntentFirewallInstallReceiver.java
+++ b/services/java/com/android/server/updates/IntentFirewallInstallReceiver.java
@@ -21,7 +21,8 @@
 public class IntentFirewallInstallReceiver extends ConfigUpdateInstallReceiver {
 
     public IntentFirewallInstallReceiver() {
-        super(IntentFirewall.getRulesFile().getParent(), IntentFirewall.getRulesFile().getName(),
-                "metadata/", "version");
+        // TODO: should we dynamically generate a filename and store the name in metadata?
+        super(IntentFirewall.getRulesDir().getAbsolutePath(), "ifw.xml", "metadata/",
+                "gservices.version");
     }
 }
diff --git a/services/java/com/android/server/wm/DimLayer.java b/services/java/com/android/server/wm/DimLayer.java
index 7839d06..39e664f 100644
--- a/services/java/com/android/server/wm/DimLayer.java
+++ b/services/java/com/android/server/wm/DimLayer.java
@@ -48,9 +48,10 @@
     /** Time in milliseconds to take to transition from mStartAlpha to mTargetAlpha */
     long mDuration;
 
-    DimLayer(WindowManagerService service, int displayId) {
+    DimLayer(WindowManagerService service, DisplayContent displayContent) {
+        mDisplayContent = displayContent;
+        final int displayId = displayContent.getDisplayId();
         if (DEBUG) Slog.v(TAG, "Ctor: displayId=" + displayId);
-        mDisplayContent = service.getDisplayContentLocked(displayId);
         SurfaceControl.openTransaction();
         try {
             if (WindowManagerService.DEBUG_SURFACE_TRACE) {
diff --git a/services/java/com/android/server/wm/DisplayContent.java b/services/java/com/android/server/wm/DisplayContent.java
index 74676ca..beeb899 100644
--- a/services/java/com/android/server/wm/DisplayContent.java
+++ b/services/java/com/android/server/wm/DisplayContent.java
@@ -111,14 +111,25 @@
     /** Save allocating when calculating rects */
     Rect mTmpRect = new Rect();
 
+    final WindowManagerService mService;
+
     /**
      * @param display May not be null.
+     * @param service TODO(cmautner):
      */
-    DisplayContent(Display display) {
+    DisplayContent(Display display, WindowManagerService service) {
         mDisplay = display;
         mDisplayId = display.getDisplayId();
         display.getDisplayInfo(mDisplayInfo);
         isDefaultDisplay = mDisplayId == Display.DEFAULT_DISPLAY;
+        mService = service;
+
+        StackBox newBox = new StackBox(service, this, null);
+        mStackBoxes.add(newBox);
+        TaskStack newStack = new TaskStack(service, HOME_STACK_ID, this);
+        newStack.mStackBox = newBox;
+        newBox.mStack = newStack;
+        mHomeStack = newStack;
     }
 
     int getDisplayId() {
@@ -201,22 +212,15 @@
     }
 
     /** Refer to {@link WindowManagerService#createStack(int, int, int, float)} */
-    TaskStack createStack(WindowManagerService service, int stackId, int relativeStackBoxId,
-            int position, float weight) {
+    TaskStack createStack(int stackId, int relativeStackBoxId, int position, float weight) {
         TaskStack newStack = null;
         if (DEBUG_STACK) Slog.d(TAG, "createStack: stackId=" + stackId + " relativeStackBoxId="
                 + relativeStackBoxId + " position=" + position + " weight=" + weight);
-        if (mStackBoxes.isEmpty()) {
-            if (stackId != HOME_STACK_ID) {
-                throw new IllegalArgumentException("createStack: First stackId not "
-                        + HOME_STACK_ID);
+        if (stackId == HOME_STACK_ID) {
+            if (mStackBoxes.size() != 1) {
+                throw new IllegalArgumentException("createStack: HOME_STACK_ID (0) not first.");
             }
-            StackBox newBox = new StackBox(service, this, null);
-            mStackBoxes.add(newBox);
-            newStack = new TaskStack(service, stackId, this);
-            newStack.mStackBox = newBox;
-            newBox.mStack = newStack;
-            mHomeStack = newStack;
+            newStack = mHomeStack;
         } else {
             int stackBoxNdx;
             for (stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
@@ -225,8 +229,8 @@
                         || position == StackBox.TASK_STACK_GOES_UNDER) {
                     // Position indicates a new box is added at top level only.
                     if (box.contains(relativeStackBoxId)) {
-                        StackBox newBox = new StackBox(service, this, null);
-                        newStack = new TaskStack(service, stackId, this);
+                        StackBox newBox = new StackBox(mService, this, null);
+                        newStack = new TaskStack(mService, stackId, this);
                         newStack.mStackBox = newBox;
                         newBox.mStack = newStack;
                         final int offset = position == StackBox.TASK_STACK_GOES_OVER ? 1 : 0;
@@ -423,6 +427,12 @@
         }
     }
 
+    void close() {
+        for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
+            mStackBoxes.get(stackBoxNdx).close();
+        }
+    }
+
     public void dump(String prefix, PrintWriter pw) {
         pw.print(prefix); pw.print("Display: mDisplayId="); pw.println(mDisplayId);
         final String subPrefix = "  " + prefix;
diff --git a/services/java/com/android/server/wm/StackBox.java b/services/java/com/android/server/wm/StackBox.java
index d4cf4e2..d054e9a 100644
--- a/services/java/com/android/server/wm/StackBox.java
+++ b/services/java/com/android/server/wm/StackBox.java
@@ -380,6 +380,16 @@
         mSecond.switchUserStacks(userId);
     }
 
+    void close() {
+        if (mStack != null) {
+            mStack.mDimLayer.mDimSurface.destroy();
+            mStack.mAnimationBackgroundSurface.mDimSurface.destroy();
+            return;
+        }
+        mFirst.close();
+        mSecond.close();
+    }
+
     public void dump(String prefix, PrintWriter pw) {
         pw.print(prefix); pw.print("mParent="); pw.println(mParent);
         pw.print(prefix); pw.print("mBounds="); pw.print(mBounds.toShortString());
diff --git a/services/java/com/android/server/wm/TaskStack.java b/services/java/com/android/server/wm/TaskStack.java
index 29156be..7bb6734 100644
--- a/services/java/com/android/server/wm/TaskStack.java
+++ b/services/java/com/android/server/wm/TaskStack.java
@@ -71,8 +71,8 @@
         mStackId = stackId;
         mDisplayContent = displayContent;
         final int displayId = displayContent.getDisplayId();
-        mDimLayer = new DimLayer(service, displayId);
-        mAnimationBackgroundSurface = new DimLayer(service, displayId);
+        mDimLayer = new DimLayer(service, displayContent);
+        mAnimationBackgroundSurface = new DimLayer(service, displayContent);
     }
 
     DisplayContent getDisplayContent() {
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java
index 2688cff..25b042c 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/java/com/android/server/wm/WindowAnimator.java
@@ -526,6 +526,10 @@
                 }
             }
 
+            if (mAnimating) {
+                mService.scheduleAnimationLocked();
+            }
+
             mService.setFocusedStackLayer();
 
             if (mService.mWatermark != null) {
@@ -561,9 +565,7 @@
             mService.requestTraversalLocked();
         }
 
-        if (mAnimating) {
-            mService.scheduleAnimationLocked();
-        } else if (wasAnimating) {
+        if (!mAnimating && wasAnimating) {
             mService.requestTraversalLocked();
         }
         if (WindowManagerService.DEBUG_WINDOW_TRACE) {
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 0750e71..364b854 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -733,6 +733,7 @@
 
         mPointerEventDispatcher = new PointerEventDispatcher(mInputManager.monitorInput(TAG));
 
+        mFxSession = new SurfaceSession();
         mDisplayManager = (DisplayManager)context.getSystemService(Context.DISPLAY_SERVICE);
         mDisplayManager.registerDisplayListener(this, null);
         Display[] displays = mDisplayManager.getDisplays();
@@ -779,7 +780,6 @@
                 | PowerManager.ON_AFTER_RELEASE, TAG);
         mHoldingScreenWakeLock.setReferenceCounted(false);
 
-        mFxSession = new SurfaceSession();
         mAnimator = new WindowAnimator(this);
 
         initPolicy(UiThread.getHandler());
@@ -4832,8 +4832,8 @@
             final int numDisplays = mDisplayContents.size();
             for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
                 final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
-                TaskStack stack = displayContent.createStack(this, stackId, relativeStackBoxId,
-                        position, weight);
+                TaskStack stack = displayContent.createStack(stackId, relativeStackBoxId, position,
+                        weight);
                 if (stack != null) {
                     mStackIdToStack.put(stackId, stack);
                     displayContent.moveStack(stack, true);
@@ -6961,12 +6961,7 @@
         synchronized(mWindowMap) {
             mIsTouchDevice = mContext.getPackageManager().hasSystemFeature(
                     PackageManager.FEATURE_TOUCHSCREEN);
-
-            final DisplayContent displayContent = getDefaultDisplayContentLocked();
-            mPolicy.setInitialDisplaySize(displayContent.getDisplay(),
-                    displayContent.mInitialDisplayWidth,
-                    displayContent.mInitialDisplayHeight,
-                    displayContent.mInitialDisplayDensity);
+            configureDisplayPolicyLocked(getDefaultDisplayContentLocked());
         }
 
         try {
@@ -7793,11 +7788,7 @@
     // displayContent must not be null
     private void reconfigureDisplayLocked(DisplayContent displayContent) {
         // TODO: Multidisplay: for now only use with default display.
-        mPolicy.setInitialDisplaySize(displayContent.getDisplay(),
-                displayContent.mBaseDisplayWidth,
-                displayContent.mBaseDisplayHeight,
-                displayContent.mBaseDisplayDensity);
-
+        configureDisplayPolicyLocked(displayContent);
         displayContent.layoutNeeded = true;
 
         boolean configChanged = updateOrientationFromAppTokensLocked(false);
@@ -7818,6 +7809,18 @@
         performLayoutAndPlaceSurfacesLocked();
     }
 
+    private void configureDisplayPolicyLocked(DisplayContent displayContent) {
+        mPolicy.setInitialDisplaySize(displayContent.getDisplay(),
+                displayContent.mBaseDisplayWidth,
+                displayContent.mBaseDisplayHeight,
+                displayContent.mBaseDisplayDensity);
+
+        DisplayInfo displayInfo = displayContent.getDisplayInfo();
+        mPolicy.setDisplayOverscan(displayContent.getDisplay(),
+                displayInfo.overscanLeft, displayInfo.overscanTop,
+                displayInfo.overscanRight, displayInfo.overscanBottom);
+    }
+
     @Override
     public void setOverscan(int displayId, int left, int top, int right, int bottom) {
         if (mContext.checkCallingOrSelfPermission(
@@ -7829,23 +7832,27 @@
         synchronized(mWindowMap) {
             DisplayContent displayContent = getDisplayContentLocked(displayId);
             if (displayContent != null) {
-                mDisplayManagerService.setOverscan(displayId, left, top, right, bottom);
-                final DisplayInfo displayInfo = displayContent.getDisplayInfo();
-                synchronized(displayContent.mDisplaySizeLock) {
-                    displayInfo.overscanLeft = left;
-                    displayInfo.overscanTop = top;
-                    displayInfo.overscanRight = right;
-                    displayInfo.overscanBottom = bottom;
-                }
-                mPolicy.setDisplayOverscan(displayContent.getDisplay(), left, top, right, bottom);
-                displayContent.layoutNeeded = true;
-                mDisplaySettings.setOverscanLocked(displayInfo.name, left, top, right, bottom);
-                mDisplaySettings.writeSettingsLocked();
-                performLayoutAndPlaceSurfacesLocked();
+                setOverscanLocked(displayContent, left, top, right, bottom);
             }
         }
     }
 
+    private void setOverscanLocked(DisplayContent displayContent,
+            int left, int top, int right, int bottom) {
+        final DisplayInfo displayInfo = displayContent.getDisplayInfo();
+        synchronized (displayContent.mDisplaySizeLock) {
+            displayInfo.overscanLeft = left;
+            displayInfo.overscanTop = top;
+            displayInfo.overscanRight = right;
+            displayInfo.overscanBottom = bottom;
+        }
+
+        mDisplaySettings.setOverscanLocked(displayInfo.name, left, top, right, bottom);
+        mDisplaySettings.writeSettingsLocked();
+
+        reconfigureDisplayLocked(displayContent);
+    }
+
     // -------------------------------------------------------------
     // Internals
     // -------------------------------------------------------------
@@ -10716,20 +10723,22 @@
     }
 
     private DisplayContent newDisplayContentLocked(final Display display) {
-        DisplayContent displayContent = new DisplayContent(display);
+        DisplayContent displayContent = new DisplayContent(display, this);
         final int displayId = display.getDisplayId();
         mDisplayContents.put(displayId, displayContent);
+
+        DisplayInfo displayInfo = displayContent.getDisplayInfo();
         final Rect rect = new Rect();
-        DisplayInfo info = displayContent.getDisplayInfo();
-        mDisplaySettings.getOverscanLocked(info.name, rect);
-        info.overscanLeft = rect.left;
-        info.overscanTop = rect.top;
-        info.overscanRight = rect.right;
-        info.overscanBottom = rect.bottom;
-        mDisplayManagerService.setOverscan(display.getDisplayId(), rect.left, rect.top,
-                rect.right, rect.bottom);
-        mPolicy.setDisplayOverscan(displayContent.getDisplay(), rect.left, rect.top,
-                rect.right, rect.bottom);
+        mDisplaySettings.getOverscanLocked(displayInfo.name, rect);
+        synchronized (displayContent.mDisplaySizeLock) {
+            displayInfo.overscanLeft = rect.left;
+            displayInfo.overscanTop = rect.top;
+            displayInfo.overscanRight = rect.right;
+            displayInfo.overscanBottom = rect.bottom;
+            mDisplayManagerService.setDisplayInfoOverrideFromWindowManager(
+                    displayId, displayInfo);
+        }
+        configureDisplayPolicyLocked(displayContent);
 
         // TODO: Create an input channel for each display with touch capability.
         if (displayId == Display.DEFAULT_DISPLAY) {
@@ -10818,7 +10827,7 @@
         final DisplayContent displayContent = getDisplayContentLocked(displayId);
         if (displayContent != null) {
             mDisplayContents.delete(displayId);
-
+            displayContent.close();
             if (displayId == Display.DEFAULT_DISPLAY) {
                 unregisterPointerEventListener(displayContent.mTapDetector);
             }
diff --git a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
index 90a9b6a..a9909b2 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
@@ -40,7 +40,6 @@
 import static android.text.format.DateUtils.WEEK_IN_MILLIS;
 import static com.android.server.net.NetworkStatsService.ACTION_NETWORK_STATS_POLL;
 import static org.easymock.EasyMock.anyLong;
-import static org.easymock.EasyMock.anyObject;
 import static org.easymock.EasyMock.aryEq;
 import static org.easymock.EasyMock.capture;
 import static org.easymock.EasyMock.createMock;
@@ -881,7 +880,7 @@
         expectLastCall().anyTimes();
 
         mAlarmManager.set(eq(AlarmManager.ELAPSED_REALTIME), anyLong(), anyLong(), anyLong(),
-                isA(PendingIntent.class), anyObject(WorkSource.class));
+                isA(PendingIntent.class), isA(WorkSource.class));
         expectLastCall().atLeastOnce();
 
         mNetManager.setGlobalAlert(anyLong());
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
index d6abbaa..3eec7a2 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeIInputMethodManager.java
@@ -63,7 +63,7 @@
     }
 
     @Override
-    public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo arg0,
+    public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(String arg0,
             boolean arg1) throws RemoteException {
         // TODO Auto-generated method stub
         return null;
diff --git a/wifi/java/android/net/wifi/WifiConfigStore.java b/wifi/java/android/net/wifi/WifiConfigStore.java
index 9418de1..ad700aa 100644
--- a/wifi/java/android/net/wifi/WifiConfigStore.java
+++ b/wifi/java/android/net/wifi/WifiConfigStore.java
@@ -141,6 +141,7 @@
     private static final String PROXY_SETTINGS_KEY = "proxySettings";
     private static final String PROXY_HOST_KEY = "proxyHost";
     private static final String PROXY_PORT_KEY = "proxyPort";
+    private static final String PROXY_PAC_FILE = "proxyPac";
     private static final String EXCLUSION_LIST_KEY = "exclusionList";
     private static final String EOS = "eos";
 
@@ -771,6 +772,14 @@
                                 out.writeUTF(exclusionList);
                                 writeToFile = true;
                                 break;
+                            case PAC:
+                                ProxyProperties proxyPacProperties = linkProperties.getHttpProxy();
+                                out.writeUTF(PROXY_SETTINGS_KEY);
+                                out.writeUTF(config.proxySettings.toString());
+                                out.writeUTF(PROXY_PAC_FILE);
+                                out.writeUTF(proxyPacProperties.getPacFileUrl());
+                                writeToFile = true;
+                                break;
                             case NONE:
                                 out.writeUTF(PROXY_SETTINGS_KEY);
                                 out.writeUTF(config.proxySettings.toString());
@@ -838,6 +847,7 @@
                 ProxySettings proxySettings = ProxySettings.NONE;
                 LinkProperties linkProperties = new LinkProperties();
                 String proxyHost = null;
+                String pacFileUrl = null;
                 int proxyPort = -1;
                 String exclusionList = null;
                 String key;
@@ -879,6 +889,8 @@
                             proxyHost = in.readUTF();
                         } else if (key.equals(PROXY_PORT_KEY)) {
                             proxyPort = in.readInt();
+                        } else if (key.equals(PROXY_PAC_FILE)) {
+                            pacFileUrl = in.readUTF();
                         } else if (key.equals(EXCLUSION_LIST_KEY)) {
                             exclusionList = in.readUTF();
                         } else if (key.equals(EOS)) {
@@ -920,6 +932,12 @@
                                     new ProxyProperties(proxyHost, proxyPort, exclusionList);
                                 linkProperties.setHttpProxy(proxyProperties);
                                 break;
+                            case PAC:
+                                config.proxySettings = proxySettings;
+                                ProxyProperties proxyPacProperties = 
+                                        new ProxyProperties(pacFileUrl);
+                                linkProperties.setHttpProxy(proxyPacProperties);
+                                break;
                             case NONE:
                                 config.proxySettings = proxySettings;
                                 break;
@@ -1247,6 +1265,7 @@
 
         switch (newConfig.proxySettings) {
             case STATIC:
+            case PAC:
                 ProxyProperties newHttpProxy = newConfig.linkProperties.getHttpProxy();
                 ProxyProperties currentHttpProxy = currentConfig.linkProperties.getHttpProxy();
 
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index bd8f0eb..de377ee 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -312,7 +312,10 @@
         STATIC,
         /* no proxy details are assigned, this is used to indicate
          * that any existing proxy settings should be retained */
-        UNASSIGNED
+        UNASSIGNED,
+        /* Use a Pac based proxy.
+         */
+        PAC
     }
     /**
      * @hide