Merge "Mapping up/down of legacy Gps vs. Gnss Status" into nyc-dev
diff --git a/api/current.txt b/api/current.txt
index c808e04..af9a448 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -861,8 +861,6 @@
     field public static final int minResizeWidth = 16843669; // 0x1010395
     field public static final int minSdkVersion = 16843276; // 0x101020c
     field public static final int minWidth = 16843071; // 0x101013f
-    field public static final int minimalHeight = 16844067; // 0x1010523
-    field public static final int minimalWidth = 16844022; // 0x10104f6
     field public static final int minimumHorizontalAngle = 16843901; // 0x101047d
     field public static final int minimumVerticalAngle = 16843902; // 0x101047e
     field public static final int mipMap = 16843725; // 0x10103cd
@@ -943,7 +941,7 @@
     field public static final deprecated int phoneNumber = 16843111; // 0x1010167
     field public static final int pivotX = 16843189; // 0x10101b5
     field public static final int pivotY = 16843190; // 0x10101b6
-    field public static final int pointerShape = 16844042; // 0x101050a
+    field public static final int pointerIcon = 16844042; // 0x101050a
     field public static final int popupAnimationStyle = 16843465; // 0x10102c9
     field public static final int popupBackground = 16843126; // 0x1010176
     field public static final int popupCharacters = 16843332; // 0x1010244
@@ -3479,7 +3477,6 @@
     method public boolean isInMultiWindowMode();
     method public boolean isInPictureInPictureMode();
     method public boolean isLocalVoiceInteractionSupported();
-    method public boolean isOverlayWithDecorCaptionEnabled();
     method public boolean isTaskRoot();
     method public boolean isVoiceInteraction();
     method public boolean isVoiceInteractionRoot();
@@ -3601,7 +3598,6 @@
     method public void setImmersive(boolean);
     method public void setIntent(android.content.Intent);
     method public final void setMediaController(android.media.session.MediaController);
-    method public void setOverlayWithDecorCaptionEnabled(boolean);
     method public final deprecated void setProgress(int);
     method public final deprecated void setProgressBarIndeterminate(boolean);
     method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -4925,7 +4921,7 @@
     field public static final int DEFAULT_VIBRATE = 2; // 0x2
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
-    field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown";
+    field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
     field public static final java.lang.String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
     field public static final java.lang.String EXTRA_INFO_TEXT = "android.infoText";
@@ -5084,7 +5080,7 @@
     method public android.app.Notification.Builder setActions(android.app.Notification.Action...);
     method public android.app.Notification.Builder setAutoCancel(boolean);
     method public android.app.Notification.Builder setCategory(java.lang.String);
-    method public android.app.Notification.Builder setChronometerCountsDown(boolean);
+    method public android.app.Notification.Builder setChronometerCountDown(boolean);
     method public android.app.Notification.Builder setColor(int);
     method public deprecated android.app.Notification.Builder setContent(android.widget.RemoteViews);
     method public deprecated android.app.Notification.Builder setContentInfo(java.lang.CharSequence);
@@ -5775,7 +5771,9 @@
     method public void clearWallpaperOffsets(android.os.IBinder);
     method public void forgetLoadedWallpaper();
     method public android.graphics.drawable.Drawable getBuiltInDrawable();
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int);
     method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float);
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float, int);
     method public android.content.Intent getCropAndSetWallpaperIntent(android.net.Uri);
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
@@ -6325,9 +6323,9 @@
     method public long getInitialBackoffMillis();
     method public long getIntervalMillis();
     method public long getMaxExecutionDelayMillis();
+    method public static final long getMinFlexMillis();
     method public long getMinLatencyMillis();
-    method public static final long getMinimumFlex();
-    method public static final long getMinimumPeriod();
+    method public static final long getMinPeriodMillis();
     method public int getNetworkType();
     method public android.content.ComponentName getService();
     method public long getTriggerContentMaxDelay();
@@ -9326,8 +9324,8 @@
     field public final int gravity;
     field public final int height;
     field public final float heightFraction;
-    field public final int minimalHeight;
-    field public final int minimalWidth;
+    field public final int minHeight;
+    field public final int minWidth;
     field public final int width;
     field public final float widthFraction;
   }
@@ -10116,14 +10114,14 @@
     method public int diff(android.content.res.Configuration);
     method public boolean equals(android.content.res.Configuration);
     method public int getLayoutDirection();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public boolean isLayoutSizeAtLeast(int);
     method public boolean isScreenRound();
     method public static boolean needNewResources(int, int);
     method public void readFromParcel(android.os.Parcel);
     method public void setLayoutDirection(java.util.Locale);
     method public void setLocale(java.util.Locale);
-    method public void setLocales(android.util.LocaleList);
+    method public void setLocales(android.os.LocaleList);
     method public void setTo(android.content.res.Configuration);
     method public void setToDefaults();
     method public int updateFrom(android.content.res.Configuration);
@@ -12035,7 +12033,7 @@
     method public void getTextBounds(java.lang.String, int, int, android.graphics.Rect);
     method public void getTextBounds(char[], int, int, android.graphics.Rect);
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public void getTextPath(char[], int, int, float, float, android.graphics.Path);
     method public void getTextPath(java.lang.String, int, int, float, float, android.graphics.Path);
     method public float getTextScaleX();
@@ -12091,7 +12089,7 @@
     method public void setSubpixelText(boolean);
     method public void setTextAlign(android.graphics.Paint.Align);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSkewX(float);
@@ -28675,6 +28673,24 @@
     method public abstract android.os.IBinder asBinder();
   }
 
+  public final class LocaleList implements android.os.Parcelable {
+    ctor public LocaleList(java.util.Locale...);
+    method public int describeContents();
+    method public static android.os.LocaleList forLanguageTags(java.lang.String);
+    method public java.util.Locale get(int);
+    method public static android.os.LocaleList getAdjustedDefault();
+    method public static android.os.LocaleList getDefault();
+    method public static android.os.LocaleList getEmptyLocaleList();
+    method public java.util.Locale getFirstMatch(java.lang.String[]);
+    method public int indexOf(java.util.Locale);
+    method public boolean isEmpty();
+    method public static void setDefault(android.os.LocaleList);
+    method public int size();
+    method public java.lang.String toLanguageTags();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.os.LocaleList> CREATOR;
+  }
+
   public final class Looper {
     method public void dump(android.util.Printer, java.lang.String);
     method public static android.os.Looper getMainLooper();
@@ -29368,7 +29384,6 @@
   }
 
   public class SystemHealthManager {
-    method public static android.os.health.SystemHealthManager from(android.content.Context);
     method public android.os.health.HealthStats takeMyUidSnapshot();
     method public android.os.health.HealthStats takeUidSnapshot(int);
     method public android.os.health.HealthStats[] takeUidSnapshots(int[]);
@@ -39215,11 +39230,11 @@
 
   public class LocaleSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public LocaleSpan(java.util.Locale);
-    ctor public LocaleSpan(android.util.LocaleList);
+    ctor public LocaleSpan(android.os.LocaleList);
     ctor public LocaleSpan(android.os.Parcel);
     method public int describeContents();
     method public java.util.Locale getLocale();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public int getSpanTypeId();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
@@ -40238,24 +40253,6 @@
     field public static final int RTL = 1; // 0x1
   }
 
-  public final class LocaleList implements android.os.Parcelable {
-    ctor public LocaleList(java.util.Locale...);
-    method public int describeContents();
-    method public static android.util.LocaleList forLanguageTags(java.lang.String);
-    method public java.util.Locale get(int);
-    method public static android.util.LocaleList getAdjustedDefault();
-    method public static android.util.LocaleList getDefault();
-    method public static android.util.LocaleList getEmptyLocaleList();
-    method public java.util.Locale getFirstMatch(java.lang.String[]);
-    method public int indexOf(java.util.Locale);
-    method public boolean isEmpty();
-    method public static void setDefault(android.util.LocaleList);
-    method public int size();
-    method public java.lang.String toLanguageTags();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.util.LocaleList> CREATOR;
-  }
-
   public final class Log {
     method public static int d(java.lang.String, java.lang.String);
     method public static int d(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -40826,7 +40823,6 @@
   }
 
   public static final class Display.HdrCapabilities implements android.os.Parcelable {
-    ctor public Display.HdrCapabilities(int[], float, float, float);
     method public int describeContents();
     method public float getDesiredMaxAverageLuminance();
     method public float getDesiredMaxLuminance();
@@ -41938,35 +41934,35 @@
   }
 
   public final class PointerIcon implements android.os.Parcelable {
-    method public static android.view.PointerIcon createCustomIcon(android.graphics.Bitmap, float, float);
+    method public static android.view.PointerIcon create(android.graphics.Bitmap, float, float);
     method public int describeContents();
     method public static android.view.PointerIcon getSystemIcon(android.content.Context, int);
-    method public static android.view.PointerIcon loadCustomIcon(android.content.res.Resources, int);
+    method public static android.view.PointerIcon load(android.content.res.Resources, int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.PointerIcon> CREATOR;
-    field public static final int STYLE_ALIAS = 1010; // 0x3f2
-    field public static final int STYLE_ALL_SCROLL = 1013; // 0x3f5
-    field public static final int STYLE_ARROW = 1000; // 0x3e8
-    field public static final int STYLE_CELL = 1006; // 0x3ee
-    field public static final int STYLE_CONTEXT_MENU = 1001; // 0x3e9
-    field public static final int STYLE_COPY = 1011; // 0x3f3
-    field public static final int STYLE_CROSSHAIR = 1007; // 0x3ef
-    field public static final int STYLE_DEFAULT = 1000; // 0x3e8
-    field public static final int STYLE_GRAB = 1020; // 0x3fc
-    field public static final int STYLE_GRABBING = 1021; // 0x3fd
-    field public static final int STYLE_HAND = 1002; // 0x3ea
-    field public static final int STYLE_HELP = 1003; // 0x3eb
-    field public static final int STYLE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
-    field public static final int STYLE_NO_DROP = 1012; // 0x3f4
-    field public static final int STYLE_NULL = 0; // 0x0
-    field public static final int STYLE_TEXT = 1008; // 0x3f0
-    field public static final int STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
-    field public static final int STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
-    field public static final int STYLE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
-    field public static final int STYLE_VERTICAL_TEXT = 1009; // 0x3f1
-    field public static final int STYLE_WAIT = 1004; // 0x3ec
-    field public static final int STYLE_ZOOM_IN = 1018; // 0x3fa
-    field public static final int STYLE_ZOOM_OUT = 1019; // 0x3fb
+    field public static final int TYPE_ALIAS = 1010; // 0x3f2
+    field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+    field public static final int TYPE_ARROW = 1000; // 0x3e8
+    field public static final int TYPE_CELL = 1006; // 0x3ee
+    field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+    field public static final int TYPE_COPY = 1011; // 0x3f3
+    field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+    field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+    field public static final int TYPE_GRAB = 1020; // 0x3fc
+    field public static final int TYPE_GRABBING = 1021; // 0x3fd
+    field public static final int TYPE_HAND = 1002; // 0x3ea
+    field public static final int TYPE_HELP = 1003; // 0x3eb
+    field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+    field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+    field public static final int TYPE_NULL = 0; // 0x0
+    field public static final int TYPE_TEXT = 1008; // 0x3f0
+    field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+    field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+    field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+    field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+    field public static final int TYPE_WAIT = 1004; // 0x3ec
+    field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+    field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
   }
 
   public class ScaleGestureDetector {
@@ -42332,7 +42328,7 @@
     method public android.view.ViewParent getParentForAccessibility();
     method public float getPivotX();
     method public float getPivotY();
-    method public android.view.PointerIcon getPointerIcon(android.view.MotionEvent, float, float);
+    method public android.view.PointerIcon getPointerIcon();
     method public android.content.res.Resources getResources();
     method public final int getRight();
     method protected float getRightFadingEdgeStrength();
@@ -42483,6 +42479,7 @@
     method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onProvideStructure(android.view.ViewStructure);
     method public void onProvideVirtualStructure(android.view.ViewStructure);
+    method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int);
     method protected void onRestoreInstanceState(android.os.Parcelable);
     method public void onRtlPropertiesChanged(int);
     method protected android.os.Parcelable onSaveInstanceState();
@@ -42529,6 +42526,7 @@
     method public boolean requestFocus(int, android.graphics.Rect);
     method public final boolean requestFocusFromTouch();
     method public void requestLayout();
+    method public void requestPointerCapture();
     method public boolean requestRectangleOnScreen(android.graphics.Rect);
     method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean);
     method public final void requestUnbufferedDispatch(android.view.MotionEvent);
@@ -42619,7 +42617,6 @@
     method public void setPaddingRelative(int, int, int, int);
     method public void setPivotX(float);
     method public void setPivotY(float);
-    method public void setPointerCapture();
     method public void setPointerIcon(android.view.PointerIcon);
     method public void setPressed(boolean);
     method public final void setRight(int);
@@ -44655,7 +44652,7 @@
     field public android.os.Bundle extras;
     field public int fieldId;
     field public java.lang.String fieldName;
-    field public android.util.LocaleList hintLocales;
+    field public android.os.LocaleList hintLocales;
     field public java.lang.CharSequence hintText;
     field public int imeOptions;
     field public int initialCapsMode;
@@ -47942,7 +47939,7 @@
     method public int getHyphenationFrequency();
     method public int getImeActionId();
     method public java.lang.CharSequence getImeActionLabel();
-    method public android.util.LocaleList getImeHintLocales();
+    method public android.os.LocaleList getImeHintLocales();
     method public int getImeOptions();
     method public boolean getIncludeFontPadding();
     method public android.os.Bundle getInputExtras(boolean);
@@ -47981,7 +47978,7 @@
     method public java.lang.CharSequence getText();
     method public final android.content.res.ColorStateList getTextColors();
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public float getTextScaleX();
     method public float getTextSize();
     method public int getTotalPaddingBottom();
@@ -48049,7 +48046,7 @@
     method public void setHorizontallyScrolling(boolean);
     method public void setHyphenationFrequency(int);
     method public void setImeActionLabel(java.lang.CharSequence, int);
-    method public void setImeHintLocales(android.util.LocaleList);
+    method public void setImeHintLocales(android.os.LocaleList);
     method public void setImeOptions(int);
     method public void setIncludeFontPadding(boolean);
     method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
@@ -48095,7 +48092,7 @@
     method public final void setTextKeepState(java.lang.CharSequence);
     method public final void setTextKeepState(java.lang.CharSequence, android.widget.TextView.BufferType);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSize(int, float);
@@ -51409,7 +51406,6 @@
     method public java.lang.StringBuffer insert(int, double);
     method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
     method public synchronized java.lang.StringBuffer reverse();
-    method public synchronized java.lang.String toString();
   }
 
   public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
@@ -51447,7 +51443,6 @@
     method public java.lang.StringBuilder insert(int, double);
     method public java.lang.StringBuilder replace(int, int, java.lang.String);
     method public java.lang.StringBuilder reverse();
-    method public java.lang.String toString();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
@@ -51811,9 +51806,7 @@
   }
 
   public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<T> getDeclaringClass();
     method public java.lang.Class<?>[] getExceptionTypes();
     method public java.lang.reflect.Type[] getGenericExceptionTypes();
@@ -51898,7 +51891,6 @@
   }
 
   public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Object getDefaultValue();
diff --git a/api/removed.txt b/api/removed.txt
index a160218..42c64ea 100644
--- a/api/removed.txt
+++ b/api/removed.txt
@@ -1,3 +1,17 @@
+package android {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
 package android.app {
 
   public class Notification implements android.os.Parcelable {
@@ -483,3 +497,17 @@
 
 }
 
+package com.android.internal {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
diff --git a/api/system-current.txt b/api/system-current.txt
index fa9bdb8..dd77960 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -967,8 +967,6 @@
     field public static final int minResizeWidth = 16843669; // 0x1010395
     field public static final int minSdkVersion = 16843276; // 0x101020c
     field public static final int minWidth = 16843071; // 0x101013f
-    field public static final int minimalHeight = 16844067; // 0x1010523
-    field public static final int minimalWidth = 16844022; // 0x10104f6
     field public static final int minimumHorizontalAngle = 16843901; // 0x101047d
     field public static final int minimumVerticalAngle = 16843902; // 0x101047e
     field public static final int mipMap = 16843725; // 0x10103cd
@@ -1049,7 +1047,7 @@
     field public static final deprecated int phoneNumber = 16843111; // 0x1010167
     field public static final int pivotX = 16843189; // 0x10101b5
     field public static final int pivotY = 16843190; // 0x10101b6
-    field public static final int pointerShape = 16844042; // 0x101050a
+    field public static final int pointerIcon = 16844042; // 0x101050a
     field public static final int popupAnimationStyle = 16843465; // 0x10102c9
     field public static final int popupBackground = 16843126; // 0x1010176
     field public static final int popupCharacters = 16843332; // 0x1010244
@@ -3606,7 +3604,6 @@
     method public boolean isInMultiWindowMode();
     method public boolean isInPictureInPictureMode();
     method public boolean isLocalVoiceInteractionSupported();
-    method public boolean isOverlayWithDecorCaptionEnabled();
     method public boolean isTaskRoot();
     method public boolean isVoiceInteraction();
     method public boolean isVoiceInteractionRoot();
@@ -3729,7 +3726,6 @@
     method public void setImmersive(boolean);
     method public void setIntent(android.content.Intent);
     method public final void setMediaController(android.media.session.MediaController);
-    method public void setOverlayWithDecorCaptionEnabled(boolean);
     method public final deprecated void setProgress(int);
     method public final deprecated void setProgressBarIndeterminate(boolean);
     method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -5070,7 +5066,7 @@
     field public static final int DEFAULT_VIBRATE = 2; // 0x2
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
-    field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown";
+    field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
     field public static final java.lang.String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
     field public static final java.lang.String EXTRA_INFO_TEXT = "android.infoText";
@@ -5231,7 +5227,7 @@
     method public android.app.Notification.Builder setActions(android.app.Notification.Action...);
     method public android.app.Notification.Builder setAutoCancel(boolean);
     method public android.app.Notification.Builder setCategory(java.lang.String);
-    method public android.app.Notification.Builder setChronometerCountsDown(boolean);
+    method public android.app.Notification.Builder setChronometerCountDown(boolean);
     method public android.app.Notification.Builder setColor(int);
     method public deprecated android.app.Notification.Builder setContent(android.widget.RemoteViews);
     method public deprecated android.app.Notification.Builder setContentInfo(java.lang.CharSequence);
@@ -5924,7 +5920,9 @@
     method public void clearWallpaperOffsets(android.os.IBinder);
     method public void forgetLoadedWallpaper();
     method public android.graphics.drawable.Drawable getBuiltInDrawable();
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int);
     method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float);
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float, int);
     method public android.content.Intent getCropAndSetWallpaperIntent(android.net.Uri);
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
@@ -6606,9 +6604,9 @@
     method public long getInitialBackoffMillis();
     method public long getIntervalMillis();
     method public long getMaxExecutionDelayMillis();
+    method public static final long getMinFlexMillis();
     method public long getMinLatencyMillis();
-    method public static final long getMinimumFlex();
-    method public static final long getMinimumPeriod();
+    method public static final long getMinPeriodMillis();
     method public int getNetworkType();
     method public android.content.ComponentName getService();
     method public long getTriggerContentMaxDelay();
@@ -8885,7 +8883,6 @@
     field public static final java.lang.String ACTION_INPUT_METHOD_CHANGED = "android.intent.action.INPUT_METHOD_CHANGED";
     field public static final java.lang.String ACTION_INSERT = "android.intent.action.INSERT";
     field public static final java.lang.String ACTION_INSERT_OR_EDIT = "android.intent.action.INSERT_OR_EDIT";
-    field public static final java.lang.String ACTION_INSTALL_EPHEMERAL_PACKAGE = "android.intent.action.INSTALL_EPHEMERAL_PACKAGE";
     field public static final java.lang.String ACTION_INSTALL_PACKAGE = "android.intent.action.INSTALL_PACKAGE";
     field public static final java.lang.String ACTION_INTENT_FILTER_NEEDS_VERIFICATION = "android.intent.action.INTENT_FILTER_NEEDS_VERIFICATION";
     field public static final java.lang.String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED";
@@ -8943,7 +8940,6 @@
     field public static final java.lang.String ACTION_QUICK_CLOCK = "android.intent.action.QUICK_CLOCK";
     field public static final java.lang.String ACTION_QUICK_VIEW = "android.intent.action.QUICK_VIEW";
     field public static final java.lang.String ACTION_REBOOT = "android.intent.action.REBOOT";
-    field public static final java.lang.String ACTION_RESOLVE_EPHEMERAL_PACKAGE = "android.intent.action.RESOLVE_EPHEMERAL_PACKAGE";
     field public static final java.lang.String ACTION_REVIEW_PERMISSIONS = "android.intent.action.REVIEW_PERMISSIONS";
     field public static final java.lang.String ACTION_RUN = "android.intent.action.RUN";
     field public static final java.lang.String ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF";
@@ -9039,8 +9035,6 @@
     field public static final int EXTRA_DOCK_STATE_UNDOCKED = 0; // 0x0
     field public static final java.lang.String EXTRA_DONT_KILL_APP = "android.intent.extra.DONT_KILL_APP";
     field public static final java.lang.String EXTRA_EMAIL = "android.intent.extra.EMAIL";
-    field public static final java.lang.String EXTRA_EPHEMERAL_FAILURE = "android.intent.extra.EPHEMERAL_FAILURE";
-    field public static final java.lang.String EXTRA_EPHEMERAL_SUCCESS = "android.intent.extra.EPHEMERAL_SUCCESS";
     field public static final java.lang.String EXTRA_EXCLUDE_COMPONENTS = "android.intent.extra.EXCLUDE_COMPONENTS";
     field public static final java.lang.String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
     field public static final java.lang.String EXTRA_INDEX = "android.intent.extra.INDEX";
@@ -9670,8 +9664,8 @@
     field public final int gravity;
     field public final int height;
     field public final float heightFraction;
-    field public final int minimalHeight;
-    field public final int minimalWidth;
+    field public final int minHeight;
+    field public final int minWidth;
     field public final int width;
     field public final float widthFraction;
   }
@@ -10557,14 +10551,14 @@
     method public int diff(android.content.res.Configuration);
     method public boolean equals(android.content.res.Configuration);
     method public int getLayoutDirection();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public boolean isLayoutSizeAtLeast(int);
     method public boolean isScreenRound();
     method public static boolean needNewResources(int, int);
     method public void readFromParcel(android.os.Parcel);
     method public void setLayoutDirection(java.util.Locale);
     method public void setLocale(java.util.Locale);
-    method public void setLocales(android.util.LocaleList);
+    method public void setLocales(android.os.LocaleList);
     method public void setTo(android.content.res.Configuration);
     method public void setToDefaults();
     method public int updateFrom(android.content.res.Configuration);
@@ -12476,7 +12470,7 @@
     method public void getTextBounds(java.lang.String, int, int, android.graphics.Rect);
     method public void getTextBounds(char[], int, int, android.graphics.Rect);
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public void getTextPath(char[], int, int, float, float, android.graphics.Path);
     method public void getTextPath(java.lang.String, int, int, float, float, android.graphics.Path);
     method public float getTextScaleX();
@@ -12532,7 +12526,7 @@
     method public void setSubpixelText(boolean);
     method public void setTextAlign(android.graphics.Paint.Align);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSkewX(float);
@@ -31118,6 +31112,24 @@
     method public abstract android.os.IBinder asBinder();
   }
 
+  public final class LocaleList implements android.os.Parcelable {
+    ctor public LocaleList(java.util.Locale...);
+    method public int describeContents();
+    method public static android.os.LocaleList forLanguageTags(java.lang.String);
+    method public java.util.Locale get(int);
+    method public static android.os.LocaleList getAdjustedDefault();
+    method public static android.os.LocaleList getDefault();
+    method public static android.os.LocaleList getEmptyLocaleList();
+    method public java.util.Locale getFirstMatch(java.lang.String[]);
+    method public int indexOf(java.util.Locale);
+    method public boolean isEmpty();
+    method public static void setDefault(android.os.LocaleList);
+    method public int size();
+    method public java.lang.String toLanguageTags();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.os.LocaleList> CREATOR;
+  }
+
   public final class Looper {
     method public void dump(android.util.Printer, java.lang.String);
     method public static android.os.Looper getMainLooper();
@@ -31762,6 +31774,7 @@
     method public android.os.UserHandle getUserForSerialNumber(long);
     method public java.lang.String getUserName();
     method public java.util.List<android.os.UserHandle> getUserProfiles();
+    method public int getUserRestrictionSource(java.lang.String, android.os.UserHandle);
     method public android.os.Bundle getUserRestrictions();
     method public android.os.Bundle getUserRestrictions(android.os.UserHandle);
     method public boolean hasUserRestriction(java.lang.String);
@@ -31779,7 +31792,6 @@
     method public deprecated void setUserRestrictions(android.os.Bundle);
     method public deprecated void setUserRestrictions(android.os.Bundle, android.os.UserHandle);
     method public static boolean supportsMultipleUsers();
-    method public int getUserRestrictionSource(java.lang.String, android.os.UserHandle);
     field public static final java.lang.String ALLOW_PARENT_PROFILE_APP_LINKING = "allow_parent_profile_app_linking";
     field public static final java.lang.String DISALLOW_ADD_USER = "no_add_user";
     field public static final java.lang.String DISALLOW_ADJUST_VOLUME = "no_adjust_volume";
@@ -31815,12 +31827,12 @@
     field public static final java.lang.String DISALLOW_USB_FILE_TRANSFER = "no_usb_file_transfer";
     field public static final java.lang.String ENSURE_VERIFY_APPS = "ensure_verify_apps";
     field public static final java.lang.String KEY_RESTRICTIONS_PENDING = "restrictions_pending";
-    field public static final int USER_CREATION_FAILED_NOT_PERMITTED = 1; // 0x1
-    field public static final int USER_CREATION_FAILED_NO_MORE_USERS = 2; // 0x2
     field public static final int RESTRICTION_NOT_SET = 0; // 0x0
-    field public static final int RESTRICTION_SOURCE_SYSTEM = 1; // 0x1
     field public static final int RESTRICTION_SOURCE_DEVICE_OWNER = 2; // 0x2
     field public static final int RESTRICTION_SOURCE_PROFILE_OWNER = 4; // 0x4
+    field public static final int RESTRICTION_SOURCE_SYSTEM = 1; // 0x1
+    field public static final int USER_CREATION_FAILED_NOT_PERMITTED = 1; // 0x1
+    field public static final int USER_CREATION_FAILED_NO_MORE_USERS = 2; // 0x2
   }
 
   public static abstract class UserManager.UserRestrictionSource implements java.lang.annotation.Annotation {
@@ -31904,7 +31916,6 @@
   }
 
   public class SystemHealthManager {
-    method public static android.os.health.SystemHealthManager from(android.content.Context);
     method public android.os.health.HealthStats takeMyUidSnapshot();
     method public android.os.health.HealthStats takeUidSnapshot(int);
     method public android.os.health.HealthStats[] takeUidSnapshots(int[]);
@@ -42217,11 +42228,11 @@
 
   public class LocaleSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public LocaleSpan(java.util.Locale);
-    ctor public LocaleSpan(android.util.LocaleList);
+    ctor public LocaleSpan(android.os.LocaleList);
     ctor public LocaleSpan(android.os.Parcel);
     method public int describeContents();
     method public java.util.Locale getLocale();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public int getSpanTypeId();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
@@ -43240,24 +43251,6 @@
     field public static final int RTL = 1; // 0x1
   }
 
-  public final class LocaleList implements android.os.Parcelable {
-    ctor public LocaleList(java.util.Locale...);
-    method public int describeContents();
-    method public static android.util.LocaleList forLanguageTags(java.lang.String);
-    method public java.util.Locale get(int);
-    method public static android.util.LocaleList getAdjustedDefault();
-    method public static android.util.LocaleList getDefault();
-    method public static android.util.LocaleList getEmptyLocaleList();
-    method public java.util.Locale getFirstMatch(java.lang.String[]);
-    method public int indexOf(java.util.Locale);
-    method public boolean isEmpty();
-    method public static void setDefault(android.util.LocaleList);
-    method public int size();
-    method public java.lang.String toLanguageTags();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.util.LocaleList> CREATOR;
-  }
-
   public final class Log {
     method public static int d(java.lang.String, java.lang.String);
     method public static int d(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -43828,7 +43821,6 @@
   }
 
   public static final class Display.HdrCapabilities implements android.os.Parcelable {
-    ctor public Display.HdrCapabilities(int[], float, float, float);
     method public int describeContents();
     method public float getDesiredMaxAverageLuminance();
     method public float getDesiredMaxLuminance();
@@ -44940,35 +44932,35 @@
   }
 
   public final class PointerIcon implements android.os.Parcelable {
-    method public static android.view.PointerIcon createCustomIcon(android.graphics.Bitmap, float, float);
+    method public static android.view.PointerIcon create(android.graphics.Bitmap, float, float);
     method public int describeContents();
     method public static android.view.PointerIcon getSystemIcon(android.content.Context, int);
-    method public static android.view.PointerIcon loadCustomIcon(android.content.res.Resources, int);
+    method public static android.view.PointerIcon load(android.content.res.Resources, int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.PointerIcon> CREATOR;
-    field public static final int STYLE_ALIAS = 1010; // 0x3f2
-    field public static final int STYLE_ALL_SCROLL = 1013; // 0x3f5
-    field public static final int STYLE_ARROW = 1000; // 0x3e8
-    field public static final int STYLE_CELL = 1006; // 0x3ee
-    field public static final int STYLE_CONTEXT_MENU = 1001; // 0x3e9
-    field public static final int STYLE_COPY = 1011; // 0x3f3
-    field public static final int STYLE_CROSSHAIR = 1007; // 0x3ef
-    field public static final int STYLE_DEFAULT = 1000; // 0x3e8
-    field public static final int STYLE_GRAB = 1020; // 0x3fc
-    field public static final int STYLE_GRABBING = 1021; // 0x3fd
-    field public static final int STYLE_HAND = 1002; // 0x3ea
-    field public static final int STYLE_HELP = 1003; // 0x3eb
-    field public static final int STYLE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
-    field public static final int STYLE_NO_DROP = 1012; // 0x3f4
-    field public static final int STYLE_NULL = 0; // 0x0
-    field public static final int STYLE_TEXT = 1008; // 0x3f0
-    field public static final int STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
-    field public static final int STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
-    field public static final int STYLE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
-    field public static final int STYLE_VERTICAL_TEXT = 1009; // 0x3f1
-    field public static final int STYLE_WAIT = 1004; // 0x3ec
-    field public static final int STYLE_ZOOM_IN = 1018; // 0x3fa
-    field public static final int STYLE_ZOOM_OUT = 1019; // 0x3fb
+    field public static final int TYPE_ALIAS = 1010; // 0x3f2
+    field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+    field public static final int TYPE_ARROW = 1000; // 0x3e8
+    field public static final int TYPE_CELL = 1006; // 0x3ee
+    field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+    field public static final int TYPE_COPY = 1011; // 0x3f3
+    field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+    field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+    field public static final int TYPE_GRAB = 1020; // 0x3fc
+    field public static final int TYPE_GRABBING = 1021; // 0x3fd
+    field public static final int TYPE_HAND = 1002; // 0x3ea
+    field public static final int TYPE_HELP = 1003; // 0x3eb
+    field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+    field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+    field public static final int TYPE_NULL = 0; // 0x0
+    field public static final int TYPE_TEXT = 1008; // 0x3f0
+    field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+    field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+    field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+    field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+    field public static final int TYPE_WAIT = 1004; // 0x3ec
+    field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+    field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
   }
 
   public class ScaleGestureDetector {
@@ -45334,7 +45326,7 @@
     method public android.view.ViewParent getParentForAccessibility();
     method public float getPivotX();
     method public float getPivotY();
-    method public android.view.PointerIcon getPointerIcon(android.view.MotionEvent, float, float);
+    method public android.view.PointerIcon getPointerIcon();
     method public android.content.res.Resources getResources();
     method public final int getRight();
     method protected float getRightFadingEdgeStrength();
@@ -45485,6 +45477,7 @@
     method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onProvideStructure(android.view.ViewStructure);
     method public void onProvideVirtualStructure(android.view.ViewStructure);
+    method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int);
     method protected void onRestoreInstanceState(android.os.Parcelable);
     method public void onRtlPropertiesChanged(int);
     method protected android.os.Parcelable onSaveInstanceState();
@@ -45531,6 +45524,7 @@
     method public boolean requestFocus(int, android.graphics.Rect);
     method public final boolean requestFocusFromTouch();
     method public void requestLayout();
+    method public void requestPointerCapture();
     method public boolean requestRectangleOnScreen(android.graphics.Rect);
     method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean);
     method public final void requestUnbufferedDispatch(android.view.MotionEvent);
@@ -45621,7 +45615,6 @@
     method public void setPaddingRelative(int, int, int, int);
     method public void setPivotX(float);
     method public void setPivotY(float);
-    method public void setPointerCapture();
     method public void setPointerIcon(android.view.PointerIcon);
     method public void setPressed(boolean);
     method public final void setRight(int);
@@ -47660,7 +47653,7 @@
     field public android.os.Bundle extras;
     field public int fieldId;
     field public java.lang.String fieldName;
-    field public android.util.LocaleList hintLocales;
+    field public android.os.LocaleList hintLocales;
     field public java.lang.CharSequence hintText;
     field public int imeOptions;
     field public int initialCapsMode;
@@ -51301,7 +51294,7 @@
     method public int getHyphenationFrequency();
     method public int getImeActionId();
     method public java.lang.CharSequence getImeActionLabel();
-    method public android.util.LocaleList getImeHintLocales();
+    method public android.os.LocaleList getImeHintLocales();
     method public int getImeOptions();
     method public boolean getIncludeFontPadding();
     method public android.os.Bundle getInputExtras(boolean);
@@ -51340,7 +51333,7 @@
     method public java.lang.CharSequence getText();
     method public final android.content.res.ColorStateList getTextColors();
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public float getTextScaleX();
     method public float getTextSize();
     method public int getTotalPaddingBottom();
@@ -51408,7 +51401,7 @@
     method public void setHorizontallyScrolling(boolean);
     method public void setHyphenationFrequency(int);
     method public void setImeActionLabel(java.lang.CharSequence, int);
-    method public void setImeHintLocales(android.util.LocaleList);
+    method public void setImeHintLocales(android.os.LocaleList);
     method public void setImeOptions(int);
     method public void setIncludeFontPadding(boolean);
     method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
@@ -51454,7 +51447,7 @@
     method public final void setTextKeepState(java.lang.CharSequence);
     method public final void setTextKeepState(java.lang.CharSequence, android.widget.TextView.BufferType);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSize(int, float);
@@ -54768,7 +54761,6 @@
     method public java.lang.StringBuffer insert(int, double);
     method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
     method public synchronized java.lang.StringBuffer reverse();
-    method public synchronized java.lang.String toString();
   }
 
   public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
@@ -54806,7 +54798,6 @@
     method public java.lang.StringBuilder insert(int, double);
     method public java.lang.StringBuilder replace(int, int, java.lang.String);
     method public java.lang.StringBuilder reverse();
-    method public java.lang.String toString();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
@@ -55170,9 +55161,7 @@
   }
 
   public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<T> getDeclaringClass();
     method public java.lang.Class<?>[] getExceptionTypes();
     method public java.lang.reflect.Type[] getGenericExceptionTypes();
@@ -55257,7 +55246,6 @@
   }
 
   public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Object getDefaultValue();
diff --git a/api/system-removed.txt b/api/system-removed.txt
index 3f2613e..4873605 100644
--- a/api/system-removed.txt
+++ b/api/system-removed.txt
@@ -1,3 +1,17 @@
+package android {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
 package android.app {
 
   public class Notification implements android.os.Parcelable {
@@ -481,3 +495,17 @@
 
 }
 
+package com.android.internal {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
diff --git a/api/test-current.txt b/api/test-current.txt
index d572c8d..6f9b6d5 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -861,8 +861,6 @@
     field public static final int minResizeWidth = 16843669; // 0x1010395
     field public static final int minSdkVersion = 16843276; // 0x101020c
     field public static final int minWidth = 16843071; // 0x101013f
-    field public static final int minimalHeight = 16844067; // 0x1010523
-    field public static final int minimalWidth = 16844022; // 0x10104f6
     field public static final int minimumHorizontalAngle = 16843901; // 0x101047d
     field public static final int minimumVerticalAngle = 16843902; // 0x101047e
     field public static final int mipMap = 16843725; // 0x10103cd
@@ -943,7 +941,7 @@
     field public static final deprecated int phoneNumber = 16843111; // 0x1010167
     field public static final int pivotX = 16843189; // 0x10101b5
     field public static final int pivotY = 16843190; // 0x10101b6
-    field public static final int pointerShape = 16844042; // 0x101050a
+    field public static final int pointerIcon = 16844042; // 0x101050a
     field public static final int popupAnimationStyle = 16843465; // 0x10102c9
     field public static final int popupBackground = 16843126; // 0x1010176
     field public static final int popupCharacters = 16843332; // 0x1010244
@@ -3479,7 +3477,6 @@
     method public boolean isInMultiWindowMode();
     method public boolean isInPictureInPictureMode();
     method public boolean isLocalVoiceInteractionSupported();
-    method public boolean isOverlayWithDecorCaptionEnabled();
     method public boolean isTaskRoot();
     method public boolean isVoiceInteraction();
     method public boolean isVoiceInteractionRoot();
@@ -3601,7 +3598,6 @@
     method public void setImmersive(boolean);
     method public void setIntent(android.content.Intent);
     method public final void setMediaController(android.media.session.MediaController);
-    method public void setOverlayWithDecorCaptionEnabled(boolean);
     method public final deprecated void setProgress(int);
     method public final deprecated void setProgressBarIndeterminate(boolean);
     method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -4926,7 +4922,7 @@
     field public static final int DEFAULT_VIBRATE = 2; // 0x2
     field public static final java.lang.String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
     field public static final java.lang.String EXTRA_BIG_TEXT = "android.bigText";
-    field public static final java.lang.String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown";
+    field public static final java.lang.String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
     field public static final java.lang.String EXTRA_COMPACT_ACTIONS = "android.compactActions";
     field public static final java.lang.String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
     field public static final java.lang.String EXTRA_INFO_TEXT = "android.infoText";
@@ -5085,7 +5081,7 @@
     method public android.app.Notification.Builder setActions(android.app.Notification.Action...);
     method public android.app.Notification.Builder setAutoCancel(boolean);
     method public android.app.Notification.Builder setCategory(java.lang.String);
-    method public android.app.Notification.Builder setChronometerCountsDown(boolean);
+    method public android.app.Notification.Builder setChronometerCountDown(boolean);
     method public android.app.Notification.Builder setColor(int);
     method public deprecated android.app.Notification.Builder setContent(android.widget.RemoteViews);
     method public deprecated android.app.Notification.Builder setContentInfo(java.lang.CharSequence);
@@ -5781,7 +5777,9 @@
     method public void clearWallpaperOffsets(android.os.IBinder);
     method public void forgetLoadedWallpaper();
     method public android.graphics.drawable.Drawable getBuiltInDrawable();
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int);
     method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float);
+    method public android.graphics.drawable.Drawable getBuiltInDrawable(int, int, boolean, float, float, int);
     method public android.content.Intent getCropAndSetWallpaperIntent(android.net.Uri);
     method public int getDesiredMinimumHeight();
     method public int getDesiredMinimumWidth();
@@ -6331,9 +6329,9 @@
     method public long getInitialBackoffMillis();
     method public long getIntervalMillis();
     method public long getMaxExecutionDelayMillis();
+    method public static final long getMinFlexMillis();
     method public long getMinLatencyMillis();
-    method public static final long getMinimumFlex();
-    method public static final long getMinimumPeriod();
+    method public static final long getMinPeriodMillis();
     method public int getNetworkType();
     method public android.content.ComponentName getService();
     method public long getTriggerContentMaxDelay();
@@ -9335,8 +9333,8 @@
     field public final int gravity;
     field public final int height;
     field public final float heightFraction;
-    field public final int minimalHeight;
-    field public final int minimalWidth;
+    field public final int minHeight;
+    field public final int minWidth;
     field public final int width;
     field public final float widthFraction;
   }
@@ -10129,14 +10127,14 @@
     method public int diff(android.content.res.Configuration);
     method public boolean equals(android.content.res.Configuration);
     method public int getLayoutDirection();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public boolean isLayoutSizeAtLeast(int);
     method public boolean isScreenRound();
     method public static boolean needNewResources(int, int);
     method public void readFromParcel(android.os.Parcel);
     method public void setLayoutDirection(java.util.Locale);
     method public void setLocale(java.util.Locale);
-    method public void setLocales(android.util.LocaleList);
+    method public void setLocales(android.os.LocaleList);
     method public void setTo(android.content.res.Configuration);
     method public void setToDefaults();
     method public int updateFrom(android.content.res.Configuration);
@@ -12048,7 +12046,7 @@
     method public void getTextBounds(java.lang.String, int, int, android.graphics.Rect);
     method public void getTextBounds(char[], int, int, android.graphics.Rect);
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public void getTextPath(char[], int, int, float, float, android.graphics.Path);
     method public void getTextPath(java.lang.String, int, int, float, float, android.graphics.Path);
     method public float getTextScaleX();
@@ -12104,7 +12102,7 @@
     method public void setSubpixelText(boolean);
     method public void setTextAlign(android.graphics.Paint.Align);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSkewX(float);
@@ -28744,6 +28742,24 @@
     method public abstract android.os.IBinder asBinder();
   }
 
+  public final class LocaleList implements android.os.Parcelable {
+    ctor public LocaleList(java.util.Locale...);
+    method public int describeContents();
+    method public static android.os.LocaleList forLanguageTags(java.lang.String);
+    method public java.util.Locale get(int);
+    method public static android.os.LocaleList getAdjustedDefault();
+    method public static android.os.LocaleList getDefault();
+    method public static android.os.LocaleList getEmptyLocaleList();
+    method public java.util.Locale getFirstMatch(java.lang.String[]);
+    method public int indexOf(java.util.Locale);
+    method public boolean isEmpty();
+    method public static void setDefault(android.os.LocaleList);
+    method public int size();
+    method public java.lang.String toLanguageTags();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator<android.os.LocaleList> CREATOR;
+  }
+
   public final class Looper {
     method public void dump(android.util.Printer, java.lang.String);
     method public static android.os.Looper getMainLooper();
@@ -29438,7 +29454,6 @@
   }
 
   public class SystemHealthManager {
-    method public static android.os.health.SystemHealthManager from(android.content.Context);
     method public android.os.health.HealthStats takeMyUidSnapshot();
     method public android.os.health.HealthStats takeUidSnapshot(int);
     method public android.os.health.HealthStats[] takeUidSnapshots(int[]);
@@ -39294,11 +39309,11 @@
 
   public class LocaleSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan {
     ctor public LocaleSpan(java.util.Locale);
-    ctor public LocaleSpan(android.util.LocaleList);
+    ctor public LocaleSpan(android.os.LocaleList);
     ctor public LocaleSpan(android.os.Parcel);
     method public int describeContents();
     method public java.util.Locale getLocale();
-    method public android.util.LocaleList getLocales();
+    method public android.os.LocaleList getLocales();
     method public int getSpanTypeId();
     method public void updateDrawState(android.text.TextPaint);
     method public void updateMeasureState(android.text.TextPaint);
@@ -40317,24 +40332,6 @@
     field public static final int RTL = 1; // 0x1
   }
 
-  public final class LocaleList implements android.os.Parcelable {
-    ctor public LocaleList(java.util.Locale...);
-    method public int describeContents();
-    method public static android.util.LocaleList forLanguageTags(java.lang.String);
-    method public java.util.Locale get(int);
-    method public static android.util.LocaleList getAdjustedDefault();
-    method public static android.util.LocaleList getDefault();
-    method public static android.util.LocaleList getEmptyLocaleList();
-    method public java.util.Locale getFirstMatch(java.lang.String[]);
-    method public int indexOf(java.util.Locale);
-    method public boolean isEmpty();
-    method public static void setDefault(android.util.LocaleList);
-    method public int size();
-    method public java.lang.String toLanguageTags();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.util.LocaleList> CREATOR;
-  }
-
   public final class Log {
     method public static int d(java.lang.String, java.lang.String);
     method public static int d(java.lang.String, java.lang.String, java.lang.Throwable);
@@ -40905,7 +40902,6 @@
   }
 
   public static final class Display.HdrCapabilities implements android.os.Parcelable {
-    ctor public Display.HdrCapabilities(int[], float, float, float);
     method public int describeContents();
     method public float getDesiredMaxAverageLuminance();
     method public float getDesiredMaxLuminance();
@@ -42017,35 +42013,35 @@
   }
 
   public final class PointerIcon implements android.os.Parcelable {
-    method public static android.view.PointerIcon createCustomIcon(android.graphics.Bitmap, float, float);
+    method public static android.view.PointerIcon create(android.graphics.Bitmap, float, float);
     method public int describeContents();
     method public static android.view.PointerIcon getSystemIcon(android.content.Context, int);
-    method public static android.view.PointerIcon loadCustomIcon(android.content.res.Resources, int);
+    method public static android.view.PointerIcon load(android.content.res.Resources, int);
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator<android.view.PointerIcon> CREATOR;
-    field public static final int STYLE_ALIAS = 1010; // 0x3f2
-    field public static final int STYLE_ALL_SCROLL = 1013; // 0x3f5
-    field public static final int STYLE_ARROW = 1000; // 0x3e8
-    field public static final int STYLE_CELL = 1006; // 0x3ee
-    field public static final int STYLE_CONTEXT_MENU = 1001; // 0x3e9
-    field public static final int STYLE_COPY = 1011; // 0x3f3
-    field public static final int STYLE_CROSSHAIR = 1007; // 0x3ef
-    field public static final int STYLE_DEFAULT = 1000; // 0x3e8
-    field public static final int STYLE_GRAB = 1020; // 0x3fc
-    field public static final int STYLE_GRABBING = 1021; // 0x3fd
-    field public static final int STYLE_HAND = 1002; // 0x3ea
-    field public static final int STYLE_HELP = 1003; // 0x3eb
-    field public static final int STYLE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
-    field public static final int STYLE_NO_DROP = 1012; // 0x3f4
-    field public static final int STYLE_NULL = 0; // 0x0
-    field public static final int STYLE_TEXT = 1008; // 0x3f0
-    field public static final int STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
-    field public static final int STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
-    field public static final int STYLE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
-    field public static final int STYLE_VERTICAL_TEXT = 1009; // 0x3f1
-    field public static final int STYLE_WAIT = 1004; // 0x3ec
-    field public static final int STYLE_ZOOM_IN = 1018; // 0x3fa
-    field public static final int STYLE_ZOOM_OUT = 1019; // 0x3fb
+    field public static final int TYPE_ALIAS = 1010; // 0x3f2
+    field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+    field public static final int TYPE_ARROW = 1000; // 0x3e8
+    field public static final int TYPE_CELL = 1006; // 0x3ee
+    field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+    field public static final int TYPE_COPY = 1011; // 0x3f3
+    field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+    field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+    field public static final int TYPE_GRAB = 1020; // 0x3fc
+    field public static final int TYPE_GRABBING = 1021; // 0x3fd
+    field public static final int TYPE_HAND = 1002; // 0x3ea
+    field public static final int TYPE_HELP = 1003; // 0x3eb
+    field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+    field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+    field public static final int TYPE_NULL = 0; // 0x0
+    field public static final int TYPE_TEXT = 1008; // 0x3f0
+    field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+    field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+    field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+    field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+    field public static final int TYPE_WAIT = 1004; // 0x3ec
+    field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+    field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
   }
 
   public class ScaleGestureDetector {
@@ -42411,7 +42407,7 @@
     method public android.view.ViewParent getParentForAccessibility();
     method public float getPivotX();
     method public float getPivotY();
-    method public android.view.PointerIcon getPointerIcon(android.view.MotionEvent, float, float);
+    method public android.view.PointerIcon getPointerIcon();
     method public android.content.res.Resources getResources();
     method public final int getRight();
     method protected float getRightFadingEdgeStrength();
@@ -42562,6 +42558,7 @@
     method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent);
     method public void onProvideStructure(android.view.ViewStructure);
     method public void onProvideVirtualStructure(android.view.ViewStructure);
+    method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int);
     method protected void onRestoreInstanceState(android.os.Parcelable);
     method public void onRtlPropertiesChanged(int);
     method protected android.os.Parcelable onSaveInstanceState();
@@ -42608,6 +42605,7 @@
     method public boolean requestFocus(int, android.graphics.Rect);
     method public final boolean requestFocusFromTouch();
     method public void requestLayout();
+    method public void requestPointerCapture();
     method public boolean requestRectangleOnScreen(android.graphics.Rect);
     method public boolean requestRectangleOnScreen(android.graphics.Rect, boolean);
     method public final void requestUnbufferedDispatch(android.view.MotionEvent);
@@ -42698,7 +42696,6 @@
     method public void setPaddingRelative(int, int, int, int);
     method public void setPivotX(float);
     method public void setPivotY(float);
-    method public void setPointerCapture();
     method public void setPointerIcon(android.view.PointerIcon);
     method public void setPressed(boolean);
     method public final void setRight(int);
@@ -44734,7 +44731,7 @@
     field public android.os.Bundle extras;
     field public int fieldId;
     field public java.lang.String fieldName;
-    field public android.util.LocaleList hintLocales;
+    field public android.os.LocaleList hintLocales;
     field public java.lang.CharSequence hintText;
     field public int imeOptions;
     field public int initialCapsMode;
@@ -48021,7 +48018,7 @@
     method public int getHyphenationFrequency();
     method public int getImeActionId();
     method public java.lang.CharSequence getImeActionLabel();
-    method public android.util.LocaleList getImeHintLocales();
+    method public android.os.LocaleList getImeHintLocales();
     method public int getImeOptions();
     method public boolean getIncludeFontPadding();
     method public android.os.Bundle getInputExtras(boolean);
@@ -48060,7 +48057,7 @@
     method public java.lang.CharSequence getText();
     method public final android.content.res.ColorStateList getTextColors();
     method public java.util.Locale getTextLocale();
-    method public android.util.LocaleList getTextLocales();
+    method public android.os.LocaleList getTextLocales();
     method public float getTextScaleX();
     method public float getTextSize();
     method public int getTotalPaddingBottom();
@@ -48128,7 +48125,7 @@
     method public void setHorizontallyScrolling(boolean);
     method public void setHyphenationFrequency(int);
     method public void setImeActionLabel(java.lang.CharSequence, int);
-    method public void setImeHintLocales(android.util.LocaleList);
+    method public void setImeHintLocales(android.os.LocaleList);
     method public void setImeOptions(int);
     method public void setIncludeFontPadding(boolean);
     method public void setInputExtras(int) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
@@ -48174,7 +48171,7 @@
     method public final void setTextKeepState(java.lang.CharSequence);
     method public final void setTextKeepState(java.lang.CharSequence, android.widget.TextView.BufferType);
     method public void setTextLocale(java.util.Locale);
-    method public void setTextLocales(android.util.LocaleList);
+    method public void setTextLocales(android.os.LocaleList);
     method public void setTextScaleX(float);
     method public void setTextSize(float);
     method public void setTextSize(int, float);
@@ -51489,7 +51486,6 @@
     method public java.lang.StringBuffer insert(int, double);
     method public synchronized java.lang.StringBuffer replace(int, int, java.lang.String);
     method public synchronized java.lang.StringBuffer reverse();
-    method public synchronized java.lang.String toString();
   }
 
   public final class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
@@ -51527,7 +51523,6 @@
     method public java.lang.StringBuilder insert(int, double);
     method public java.lang.StringBuilder replace(int, int, java.lang.String);
     method public java.lang.StringBuilder reverse();
-    method public java.lang.String toString();
   }
 
   public class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
@@ -51891,9 +51886,7 @@
   }
 
   public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
-    method public java.lang.annotation.Annotation[] getDeclaredAnnotations();
     method public java.lang.Class<T> getDeclaringClass();
     method public java.lang.Class<?>[] getExceptionTypes();
     method public java.lang.reflect.Type[] getGenericExceptionTypes();
@@ -51978,7 +51971,6 @@
   }
 
   public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member {
-    method public boolean equals(java.lang.Object);
     method public A getAnnotation(java.lang.Class<A>);
     method public java.lang.Class<?> getDeclaringClass();
     method public java.lang.Object getDefaultValue();
diff --git a/api/test-removed.txt b/api/test-removed.txt
index a160218..42c64ea 100644
--- a/api/test-removed.txt
+++ b/api/test-removed.txt
@@ -1,3 +1,17 @@
+package android {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
 package android.app {
 
   public class Notification implements android.os.Parcelable {
@@ -483,3 +497,17 @@
 
 }
 
+package com.android.internal {
+
+  public static final class R.attr {
+    field public static final int minimalHeight = 16844067; // 0x1010523
+    field public static final int minimalWidth = 16844022; // 0x10104f6
+  }
+
+  public static final class R.styleable {
+    field public static final int AndroidManifestLayout_minimalHeight = 6; // 0x6
+    field public static final int AndroidManifestLayout_minimalWidth = 5; // 0x5
+  }
+
+}
+
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 59edc8c..6d405f6 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -7007,6 +7007,8 @@
      * @return True if caption is displayed on content, false if it pushes the content down.
      *
      * @see {@link #setOverlayWithDecorCaptionEnabled(boolean)}
+     *
+     * @hide
      */
     public boolean isOverlayWithDecorCaptionEnabled() {
         return mWindow.isOverlayWithDecorCaptionEnabled();
@@ -7018,6 +7020,8 @@
      * This affects only freeform windows since they display the caption and only the main
      * window of the activity. The caption is used to drag the window around and also shows
      * maximize and close action buttons.
+     *
+     * @hide
      */
     public void setOverlayWithDecorCaptionEnabled(boolean enabled) {
         mWindow.setOverlayWithDecorCaptionEnabled(enabled);
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 8a92b54..31fe390 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -702,6 +702,14 @@
         public static boolean windowsAreScaleable(int stackId) {
             return stackId == PINNED_STACK_ID;
         }
+
+        /**
+         * Returns true if windows in this stack should be given move animations
+         * by default.
+         */
+        public static boolean hasMovementAnimations(int stackId) {
+            return stackId != PINNED_STACK_ID;
+        }
     }
 
     /**
@@ -2370,6 +2378,8 @@
         public int displayId;
         public int userId;
         public boolean visible;
+        // Index of the stack in the display's stack list, can be used for comparison of stack order
+        public int position;
 
         @Override
         public int describeContents() {
@@ -2397,6 +2407,7 @@
             dest.writeInt(displayId);
             dest.writeInt(userId);
             dest.writeInt(visible ? 1 : 0);
+            dest.writeInt(position);
             if (topActivity != null) {
                 dest.writeInt(1);
                 topActivity.writeToParcel(dest, 0);
@@ -2426,6 +2437,7 @@
             displayId = source.readInt();
             userId = source.readInt();
             visible = source.readInt() > 0;
+            position = source.readInt();
             if (source.readInt() > 0) {
                 topActivity = ComponentName.readFromParcel(source);
             }
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index cfffe34..a30a606 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -102,7 +102,6 @@
 import android.view.WindowManager;
 import android.view.WindowManagerGlobal;
 import android.renderscript.RenderScriptCacheDir;
-import android.security.keystore.AndroidKeyStoreProvider;
 import android.system.Os;
 import android.system.OsConstants;
 import android.system.ErrnoException;
@@ -4937,6 +4936,7 @@
             // Isolated processes aren't going to do UI.
             return;
         }
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "setupGraphicsSupport");
         try {
             int uid = Process.myUid();
             String[] packages = getPackageManager().getPackagesForUid(uid);
@@ -4949,6 +4949,8 @@
             }
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
         }
     }
 
@@ -5131,6 +5133,7 @@
         /**
          * Initialize the default http proxy in this process for the reasons we set the time zone.
          */
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "Setup proxies");
         final IBinder b = ServiceManager.getService(Context.CONNECTIVITY_SERVICE);
         if (b != null) {
             // In pre-boot mode (doing initial launch to collect password), not
@@ -5141,9 +5144,11 @@
                 final ProxyInfo proxyInfo = service.getProxyForNetwork(null);
                 Proxy.setHttpProxySystemProperty(proxyInfo);
             } catch (RemoteException e) {
+                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                 throw e.rethrowFromSystemServer();
             }
         }
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
         // Instrumentation info affects the class loader, so load it before
         // setting up the app context.
@@ -5215,7 +5220,9 @@
         // Install the Network Security Config Provider. This must happen before the application
         // code is loaded to prevent issues with instances of TLS objects being created before
         // the provider is installed.
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "NetworkSecurityConfigProvider.install");
         NetworkSecurityConfigProvider.install(appContext);
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
         // Continue loading instrumentation.
         if (ii != null) {
@@ -5983,8 +5990,6 @@
         // Set the reporter for event logging in libcore
         EventLogger.setReporter(new EventLoggingReporter());
 
-        AndroidKeyStoreProvider.install();
-
         // Make sure TrustedCertificateStore looks in the right place for CA certificates
         final File configDir = Environment.getUserConfigDirectory(UserHandle.myUserId());
         TrustedCertificateStore.setDefaultUserDirectory(configDir);
diff --git a/core/java/android/app/ApplicationLoaders.java b/core/java/android/app/ApplicationLoaders.java
index c869944..6a73829 100644
--- a/core/java/android/app/ApplicationLoaders.java
+++ b/core/java/android/app/ApplicationLoaders.java
@@ -65,7 +65,9 @@
 
                 Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
+                Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "setupVulkanLayerPath");
                 setupVulkanLayerPath(pathClassloader, librarySearchPath);
+                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
                 mLoaders.put(zip, pathClassloader);
                 return pathClassloader;
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index 7d43a11..1f3dfa7 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -458,8 +458,14 @@
             }
         }
 
-        final List<String> zipPaths = new ArrayList<>();
-        final List<String> libPaths = new ArrayList<>();
+        // Lists for the elements of zip/code and native libraries.
+        //
+        // Both lists are usually not empty. We expect on average one APK for the zip component,
+        // but shared libraries and splits are not uncommon. We expect at least three elements
+        // for native libraries (app-based, system, vendor). As such, give both some breathing
+        // space and initialize to a small value (instead of incurring growth code).
+        final List<String> zipPaths = new ArrayList<>(10);
+        final List<String> libPaths = new ArrayList<>(10);
         makePaths(mActivityThread, mApplicationInfo, zipPaths, libPaths);
 
         final boolean isBundledApp = mApplicationInfo.isSystemApp()
@@ -495,8 +501,11 @@
         /*
          * With all the combination done (if necessary, actually create the java class
          * loader and set up JIT profiling support if necessary.
+         *
+         * In many cases this is a single APK, so try to avoid the StringBuilder in TextUtils.
          */
-        final String zip = TextUtils.join(File.pathSeparator, zipPaths);
+        final String zip = (zipPaths.size() == 1) ? zipPaths.get(0) :
+                TextUtils.join(File.pathSeparator, zipPaths);
 
         if (ActivityThread.localLOGV)
             Slog.v(ActivityThread.TAG, "Class path: " + zip +
@@ -806,6 +815,8 @@
             return mApplication;
         }
 
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "makeApplication");
+
         Application app = null;
 
         String appClass = mApplicationInfo.className;
@@ -816,7 +827,10 @@
         try {
             java.lang.ClassLoader cl = getClassLoader();
             if (!mPackageName.equals("android")) {
+                Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER,
+                        "initializeJavaContextClassLoader");
                 initializeJavaContextClassLoader();
+                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
             }
             ContextImpl appContext = ContextImpl.createAppContext(mActivityThread, this);
             app = mActivityThread.mInstrumentation.newApplication(
@@ -824,6 +838,7 @@
             appContext.setOuterContext(app);
         } catch (Exception e) {
             if (!mActivityThread.mInstrumentation.onException(app, e)) {
+                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                 throw new RuntimeException(
                     "Unable to instantiate application " + appClass
                     + ": " + e.toString(), e);
@@ -837,6 +852,7 @@
                 instrumentation.callApplicationOnCreate(app);
             } catch (Exception e) {
                 if (!instrumentation.onException(app, e)) {
+                    Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                     throw new RuntimeException(
                         "Unable to create application " + app.getClass().getName()
                         + ": " + e.toString(), e);
@@ -857,6 +873,8 @@
             rewriteRValues(getClassLoader(), packageIdentifiers.valueAt(i), id);
         }
 
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
+
         return app;
     }
 
@@ -1046,11 +1064,17 @@
             @Override
             public void performReceive(Intent intent, int resultCode, String data,
                     Bundle extras, boolean ordered, boolean sticky, int sendingUser) {
-                LoadedApk.ReceiverDispatcher rd = mDispatcher.get();
+                final LoadedApk.ReceiverDispatcher rd;
+                if (intent == null) {
+                    Log.wtf(TAG, "Null intent received");
+                    rd = null;
+                } else {
+                    rd = mDispatcher.get();
+                }
                 if (ActivityThread.DEBUG_BROADCAST) {
                     int seq = intent.getIntExtra("seq", -1);
-                    Slog.i(ActivityThread.TAG, "Receiving broadcast " + intent.getAction() + " seq=" + seq
-                            + " to " + (rd != null ? rd.mReceiver : null));
+                    Slog.i(ActivityThread.TAG, "Receiving broadcast " + intent.getAction()
+                            + " seq=" + seq + " to " + (rd != null ? rd.mReceiver : null));
                 }
                 if (rd != null) {
                     rd.performReceive(intent, resultCode, data, extras,
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 460640e..a666e66 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -55,11 +55,9 @@
 import android.text.style.TextAppearanceSpan;
 import android.util.Log;
 import android.util.SparseArray;
-import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.NotificationHeaderView;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.ProgressBar;
 import android.widget.RemoteViews;
 
@@ -867,8 +865,9 @@
     /**
      * {@link #extras} key: whether the chronometer set on the notification should count down
      * instead of counting up. Is only relevant if key {@link #EXTRA_SHOW_CHRONOMETER} is present.
+     * This extra is a boolean. The default is false.
      */
-    public static final String EXTRA_CHRONOMETER_COUNTS_DOWN = "android.chronometerCountsDown";
+    public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
 
     /**
      * {@link #extras} key: whether {@link #when} should be shown,
@@ -934,12 +933,13 @@
     /**
      * {@link #extras} key: the username to be displayed for all messages sent by the user including
      * direct replies
-     * {@link android.app.Notification.MessagingStyle} notification.
+     * {@link android.app.Notification.MessagingStyle} notification. This extra is a
+     * {@link CharSequence}
      */
     public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
 
     /**
-     * {@link #extras} key: a {@link String} to be displayed as the title to a conversation
+     * {@link #extras} key: a {@link CharSequence} to be displayed as the title to a conversation
      * represented by a {@link android.app.Notification.MessagingStyle}
      */
     public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
@@ -947,7 +947,8 @@
     /**
      * {@link #extras} key: an array of {@link android.app.Notification.MessagingStyle.Message}
      * bundles provided by a
-     * {@link android.app.Notification.MessagingStyle} notification.
+     * {@link android.app.Notification.MessagingStyle} notification. This extra is a parcelable
+     * array of bundles.
      */
     public static final String EXTRA_MESSAGES = "android.messages";
 
@@ -2337,11 +2338,11 @@
          * Useful when showing an elapsed time (like an ongoing phone call).
          *
          * The counter can also be set to count down to <code>when</code> when using
-         * {@link #setChronometerCountsDown(boolean)}.
+         * {@link #setChronometerCountDown(boolean)}.
          *
          * @see android.widget.Chronometer
          * @see Notification#when
-         * @see #setChronometerCountsDown(boolean)
+         * @see #setChronometerCountDown(boolean)
          */
         public Builder setUsesChronometer(boolean b) {
             mN.extras.putBoolean(EXTRA_SHOW_CHRONOMETER, b);
@@ -2356,8 +2357,8 @@
          *
          * @see #setUsesChronometer(boolean)
          */
-        public Builder setChronometerCountsDown(boolean countsDown) {
-            mN.extras.putBoolean(EXTRA_CHRONOMETER_COUNTS_DOWN, countsDown);
+        public Builder setChronometerCountDown(boolean countDown) {
+            mN.extras.putBoolean(EXTRA_CHRONOMETER_COUNT_DOWN, countDown);
             return this;
         }
 
@@ -3288,7 +3289,7 @@
                     contentView.setLong(R.id.chronometer, "setBase",
                             mN.when + (SystemClock.elapsedRealtime() - System.currentTimeMillis()));
                     contentView.setBoolean(R.id.chronometer, "setStarted", true);
-                    boolean countsDown = mN.extras.getBoolean(EXTRA_CHRONOMETER_COUNTS_DOWN);
+                    boolean countsDown = mN.extras.getBoolean(EXTRA_CHRONOMETER_COUNT_DOWN);
                     contentView.setChronometerCountDown(R.id.chronometer, countsDown);
                 } else {
                     contentView.setViewVisibility(R.id.time, View.VISIBLE);
@@ -3559,8 +3560,8 @@
                     savedBundle.getBoolean(EXTRA_SHOW_WHEN));
             publicExtras.putBoolean(EXTRA_SHOW_CHRONOMETER,
                     savedBundle.getBoolean(EXTRA_SHOW_CHRONOMETER));
-            publicExtras.putBoolean(EXTRA_CHRONOMETER_COUNTS_DOWN,
-                    savedBundle.getBoolean(EXTRA_CHRONOMETER_COUNTS_DOWN));
+            publicExtras.putBoolean(EXTRA_CHRONOMETER_COUNT_DOWN,
+                    savedBundle.getBoolean(EXTRA_CHRONOMETER_COUNT_DOWN));
             publicExtras.putCharSequence(EXTRA_TITLE,
                     mContext.getString(R.string.notification_hidden_text));
             mN.extras = publicExtras;
@@ -4459,8 +4460,8 @@
             super.restoreFromExtras(extras);
 
             mMessages.clear();
-            mUserDisplayName = extras.getString(EXTRA_SELF_DISPLAY_NAME);
-            mConversationTitle = extras.getString(EXTRA_CONVERSATION_TITLE);
+            mUserDisplayName = extras.getCharSequence(EXTRA_SELF_DISPLAY_NAME);
+            mConversationTitle = extras.getCharSequence(EXTRA_CONVERSATION_TITLE);
             Parcelable[] parcelables = extras.getParcelableArray(EXTRA_MESSAGES);
             if (parcelables != null && parcelables instanceof Parcelable[]) {
                 mMessages = Message.getMessagesFromBundleArray(parcelables);
@@ -4726,8 +4727,7 @@
 
             static Message getMessageFromBundle(Bundle bundle) {
                 try {
-                    if (!bundle.containsKey(KEY_TEXT) || !bundle.containsKey(KEY_TIMESTAMP) ||
-                            !bundle.containsKey(KEY_SENDER)) {
+                    if (!bundle.containsKey(KEY_TEXT) || !bundle.containsKey(KEY_TIMESTAMP)) {
                         return null;
                     } else {
                         Message message = new Message(bundle.getCharSequence(KEY_TEXT),
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index f411178..b4e9db8 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -29,10 +29,10 @@
 import android.content.res.ResourcesKey;
 import android.hardware.display.DisplayManagerGlobal;
 import android.os.IBinder;
+import android.os.LocaleList;
 import android.os.Trace;
 import android.util.ArrayMap;
 import android.util.DisplayMetrics;
-import android.util.LocaleList;
 import android.util.Log;
 import android.util.Pair;
 import android.util.Slog;
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 18a5593..2b82929 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -26,6 +26,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.BitmapRegionDecoder;
@@ -86,6 +87,8 @@
     /** {@hide} */
     private static final String PROP_WALLPAPER = "ro.config.wallpaper";
     /** {@hide} */
+    private static final String PROP_LOCK_WALLPAPER = "ro.config.lock_wallpaper";
+    /** {@hide} */
     private static final String PROP_WALLPAPER_COMPONENT = "ro.config.wallpaper_component";
 
     /**
@@ -157,7 +160,7 @@
      */
     public static final String EXTRA_NEW_WALLPAPER_ID = "android.service.wallpaper.extra.ID";
 
-    // flags for which kind of wallpaper to set
+    // flags for which kind of wallpaper to act on
 
     /** @hide */
     @IntDef(flag = true, value = {
@@ -168,12 +171,12 @@
     public @interface SetWallpaperFlags {}
 
     /**
-     * Flag: use the supplied imagery as the general system wallpaper.
+     * Flag: set or retrieve the general system wallpaper.
      */
     public static final int FLAG_SYSTEM = 1 << 0;
 
     /**
-     * Flag: use the supplied imagery as the lock-screen wallpaper.
+     * Flag: set or retrieve the lock-screen-specific wallpaper.
      */
     public static final int FLAG_LOCK = 1 << 1;
 
@@ -281,11 +284,13 @@
             forgetLoadedWallpaper();
         }
 
-        public Bitmap peekWallpaperBitmap(Context context, boolean returnDefault) {
-            return peekWallpaperBitmap(context, returnDefault, context.getUserId());
+        public Bitmap peekWallpaperBitmap(Context context, boolean returnDefault,
+                @SetWallpaperFlags int which) {
+            return peekWallpaperBitmap(context, returnDefault, which, context.getUserId());
         }
 
-        public Bitmap peekWallpaperBitmap(Context context, boolean returnDefault, int userId) {
+        public Bitmap peekWallpaperBitmap(Context context, boolean returnDefault,
+                @SetWallpaperFlags int which, int userId) {
             synchronized (this) {
                 if (mService != null) {
                     try {
@@ -312,7 +317,7 @@
                 }
                 if (returnDefault) {
                     if (mDefaultWallpaper == null) {
-                        mDefaultWallpaper = getDefaultWallpaperLocked(context);
+                        mDefaultWallpaper = getDefaultWallpaperLocked(context, which);
                     }
                     return mDefaultWallpaper;
                 }
@@ -355,8 +360,8 @@
             return null;
         }
 
-        private Bitmap getDefaultWallpaperLocked(Context context) {
-            InputStream is = openDefaultWallpaper(context);
+        private Bitmap getDefaultWallpaperLocked(Context context, @SetWallpaperFlags int which) {
+            InputStream is = openDefaultWallpaper(context, which);
             if (is != null) {
                 try {
                     BitmapFactory.Options options = new BitmapFactory.Options();
@@ -410,7 +415,7 @@
      * @return Returns a Drawable object that will draw the wallpaper.
      */
     public Drawable getDrawable() {
-        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, true);
+        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, true, FLAG_SYSTEM);
         if (bm != null) {
             Drawable dr = new BitmapDrawable(mContext.getResources(), bm);
             dr.setDither(false);
@@ -420,11 +425,22 @@
     }
 
     /**
-     * Returns a drawable for the system built-in static wallpaper .
-     *
+     * Obtain a drawable for the built-in static system wallpaper.
      */
     public Drawable getBuiltInDrawable() {
-        return getBuiltInDrawable(0, 0, false, 0, 0);
+        return getBuiltInDrawable(0, 0, false, 0, 0, FLAG_SYSTEM);
+    }
+
+    /**
+     * Obtain a drawable for the specified built-in static system wallpaper.
+     *
+     * @param which The {@code FLAG_*} identifier of a valid wallpaper type.  Throws
+     *     IllegalArgumentException if an invalid wallpaper is requested.
+     * @return A Drawable presenting the specified wallpaper image, or {@code null}
+     *     if no built-in default image for that wallpaper type exists.
+     */
+    public Drawable getBuiltInDrawable(@SetWallpaperFlags int which) {
+        return getBuiltInDrawable(0, 0, false, 0, 0, which);
     }
 
     /**
@@ -438,30 +454,61 @@
      *        0 for left-aligned, 0.5 for horizontal center-aligned, and 1 for right-aligned
      * @param verticalAlignment A float value between 0 and 1 specifying where to crop the image;
      *        0 for top-aligned, 0.5 for vertical center-aligned, and 1 for bottom-aligned
-     *
+     * @return A Drawable presenting the built-in default system wallpaper image,
+     *        or {@code null} if no such default image is defined on this device.
      */
     public Drawable getBuiltInDrawable(int outWidth, int outHeight,
             boolean scaleToFit, float horizontalAlignment, float verticalAlignment) {
+        return getBuiltInDrawable(outWidth, outHeight, scaleToFit,
+                horizontalAlignment, verticalAlignment, FLAG_SYSTEM);
+    }
+
+    /**
+     * Returns a drawable for the built-in static wallpaper of the specified type.  Based on the
+     * parameters, the drawable can be cropped and scaled.
+     *
+     * @param outWidth The width of the returned drawable
+     * @param outWidth The height of the returned drawable
+     * @param scaleToFit If true, scale the wallpaper down rather than just cropping it
+     * @param horizontalAlignment A float value between 0 and 1 specifying where to crop the image;
+     *        0 for left-aligned, 0.5 for horizontal center-aligned, and 1 for right-aligned
+     * @param verticalAlignment A float value between 0 and 1 specifying where to crop the image;
+     *        0 for top-aligned, 0.5 for vertical center-aligned, and 1 for bottom-aligned
+     * @param which The {@code FLAG_*} identifier of a valid wallpaper type.  Throws
+     *     IllegalArgumentException if an invalid wallpaper is requested.
+     * @return A Drawable presenting the built-in default wallpaper image of the given type,
+     *        or {@code null} if no default image of that type is defined on this device.
+     */
+    public Drawable getBuiltInDrawable(int outWidth, int outHeight, boolean scaleToFit,
+            float horizontalAlignment, float verticalAlignment, @SetWallpaperFlags int which) {
         if (sGlobals.mService == null) {
             Log.w(TAG, "WallpaperService not running");
             return null;
         }
+
+        if (which != FLAG_SYSTEM && which != FLAG_LOCK) {
+            throw new IllegalArgumentException("Must request exactly one kind of wallpaper");
+        }
+
         Resources resources = mContext.getResources();
         horizontalAlignment = Math.max(0, Math.min(1, horizontalAlignment));
         verticalAlignment = Math.max(0, Math.min(1, verticalAlignment));
 
-        InputStream is = new BufferedInputStream(openDefaultWallpaper(mContext));
-
-        if (is == null) {
-            Log.e(TAG, "default wallpaper input stream is null");
+        InputStream wpStream = openDefaultWallpaper(mContext, which);
+        if (wpStream == null) {
+            if (DEBUG) {
+                Log.w(TAG, "default wallpaper stream " + which + " is null");
+            }
             return null;
         } else {
+            InputStream is = new BufferedInputStream(wpStream);
             if (outWidth <= 0 || outHeight <= 0) {
                 Bitmap fullSize = BitmapFactory.decodeStream(is, null, null);
                 return new BitmapDrawable(resources, fullSize);
             } else {
                 int inWidth;
                 int inHeight;
+                // Just measure this time through...
                 {
                     BitmapFactory.Options options = new BitmapFactory.Options();
                     options.inJustDecodeBounds = true;
@@ -475,7 +522,9 @@
                     }
                 }
 
-                is = new BufferedInputStream(openDefaultWallpaper(mContext));
+                // Reopen the stream to do the full decode.  We know at this point
+                // that openDefaultWallpaper() will return non-null.
+                is = new BufferedInputStream(openDefaultWallpaper(mContext, which));
 
                 RectF cropRectF;
 
@@ -523,16 +572,15 @@
                 }
 
                 if (crop == null) {
-                    // BitmapRegionDecoder has failed, try to crop in-memory
-                    is = new BufferedInputStream(openDefaultWallpaper(mContext));
+                    // BitmapRegionDecoder has failed, try to crop in-memory. We know at
+                    // this point that openDefaultWallpaper() will return non-null.
+                    is = new BufferedInputStream(openDefaultWallpaper(mContext, which));
                     Bitmap fullSize = null;
-                    if (is != null) {
-                        BitmapFactory.Options options = new BitmapFactory.Options();
-                        if (scaleDownSampleSize > 1) {
-                            options.inSampleSize = scaleDownSampleSize;
-                        }
-                        fullSize = BitmapFactory.decodeStream(is, null, options);
+                    BitmapFactory.Options options = new BitmapFactory.Options();
+                    if (scaleDownSampleSize > 1) {
+                        options.inSampleSize = scaleDownSampleSize;
                     }
+                    fullSize = BitmapFactory.decodeStream(is, null, options);
                     if (fullSize != null) {
                         crop = Bitmap.createBitmap(fullSize, roundedTrueCrop.left,
                                 roundedTrueCrop.top, roundedTrueCrop.width(),
@@ -598,7 +646,7 @@
      * null pointer if these is none.
      */
     public Drawable peekDrawable() {
-        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, false);
+        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, false, FLAG_SYSTEM);
         if (bm != null) {
             Drawable dr = new BitmapDrawable(mContext.getResources(), bm);
             dr.setDither(false);
@@ -621,7 +669,7 @@
      * @return Returns a Drawable object that will draw the wallpaper.
      */
     public Drawable getFastDrawable() {
-        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, true);
+        Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, true, FLAG_SYSTEM);
         if (bm != null) {
             return new FastBitmapDrawable(bm);
         }
@@ -636,7 +684,7 @@
      * wallpaper or a null pointer if these is none.
      */
     public Drawable peekFastDrawable() {
-       Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, false);
+       Bitmap bm = sGlobals.peekWallpaperBitmap(mContext, false, FLAG_SYSTEM);
         if (bm != null) {
             return new FastBitmapDrawable(bm);
         }
@@ -658,7 +706,7 @@
      * @hide
      */
     public Bitmap getBitmapAsUser(int userId) {
-        return sGlobals.peekWallpaperBitmap(mContext, true, userId);
+        return sGlobals.peekWallpaperBitmap(mContext, true, FLAG_SYSTEM, userId);
     }
 
     /**
@@ -676,7 +724,7 @@
      * @see #FLAG_LOCK
      * @see #FLAG_SYSTEM
      */
-    public ParcelFileDescriptor getWallpaperFile(int which) {
+    public ParcelFileDescriptor getWallpaperFile(@SetWallpaperFlags int which) {
         return getWallpaperFile(which, mContext.getUserId());
     }
 
@@ -695,7 +743,7 @@
      *
      * @hide
      */
-    public ParcelFileDescriptor getWallpaperFile(int which, int userId) {
+    public ParcelFileDescriptor getWallpaperFile(@SetWallpaperFlags int which, int userId) {
         if (which != FLAG_SYSTEM && which != FLAG_LOCK) {
             throw new IllegalArgumentException("Must request exactly one kind of wallpaper");
         }
@@ -751,7 +799,7 @@
      * @return The positive numeric ID of the current wallpaper of the given kind,
      *     or a negative value if no such wallpaper is configured.
      */
-    public int getWallpaperId(int which) {
+    public int getWallpaperId(@SetWallpaperFlags int which) {
         return getWallpaperIdForUser(which, mContext.getUserId());
     }
 
@@ -760,7 +808,7 @@
      * is no such wallpaper configured, returns a negative number.
      * @hide
      */
-    public int getWallpaperIdForUser(int which, int userId) {
+    public int getWallpaperIdForUser(@SetWallpaperFlags int which, int userId) {
         try {
             if (sGlobals.mService == null) {
                 Log.w(TAG, "WallpaperService not running");
@@ -1314,7 +1362,7 @@
      * @hide
      */
     @SystemApi
-    public void clearWallpaper(int which, int userId) {
+    public void clearWallpaper(@SetWallpaperFlags int which, int userId) {
         if (sGlobals.mService == null) {
             Log.w(TAG, "WallpaperService not running");
             return;
@@ -1479,7 +1527,7 @@
      * wallpaper.
      */
     public void clear() throws IOException {
-        setStream(openDefaultWallpaper(mContext));
+        setStream(openDefaultWallpaper(mContext, FLAG_SYSTEM), null, false);
     }
 
     /**
@@ -1492,7 +1540,7 @@
      *   {@link #FLAG_LOCK}
      * @throws IOException If an error occurs reverting to the built-in wallpaper.
      */
-    public void clear(int which) throws IOException {
+    public void clear(@SetWallpaperFlags int which) throws IOException {
         if ((which & FLAG_SYSTEM) != 0) {
             clear();
         }
@@ -1504,10 +1552,22 @@
     /**
      * Open stream representing the default static image wallpaper.
      *
+     * If the device defines no default wallpaper of the requested kind,
+     * {@code null} is returned.
+     *
      * @hide
      */
-    public static InputStream openDefaultWallpaper(Context context) {
-        final String path = SystemProperties.get(PROP_WALLPAPER);
+    public static InputStream openDefaultWallpaper(Context context, @SetWallpaperFlags int which) {
+        final String whichProp;
+        final int defaultResId;
+        if (which == FLAG_LOCK) {
+            whichProp = PROP_LOCK_WALLPAPER;
+            defaultResId = com.android.internal.R.drawable.default_lock_wallpaper;
+        } else {
+            whichProp = PROP_WALLPAPER;
+            defaultResId = com.android.internal.R.drawable.default_wallpaper;
+        }
+        final String path = SystemProperties.get(whichProp);
         if (!TextUtils.isEmpty(path)) {
             final File file = new File(path);
             if (file.exists()) {
@@ -1518,8 +1578,12 @@
                 }
             }
         }
-        return context.getResources().openRawResource(
-                com.android.internal.R.drawable.default_wallpaper);
+        try {
+            return context.getResources().openRawResource(defaultResId);
+        } catch (NotFoundException e) {
+            // no default defined for this device; this is not a failure
+        }
+        return null;
     }
 
     /**
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index f78ed1e..a672d80 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -5062,26 +5062,6 @@
     }
 
     /**
-     * Called by the system to get the user restrictions for a user.
-     *
-     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
-     * @param userHandle user id the admin is running as.
-     *
-     * @hide
-     */
-    public Bundle getUserRestrictionsForUser(@NonNull ComponentName admin, int userHandle) {
-        Bundle ret = null;
-        if (mService != null) {
-            try {
-                ret = mService.getUserRestrictionsForUser(admin, userHandle);
-            } catch (RemoteException e) {
-                throw e.rethrowFromSystemServer();
-            }
-        }
-        return ret == null ? new Bundle() : ret;
-    }
-
-    /**
      * Called by profile or device owners to hide or unhide packages. When a package is hidden it is
      * unavailable for use, but the data and actual package file remain.
      *
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 447ee29..ddec412 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -174,7 +174,6 @@
 
     void setUserRestriction(in ComponentName who, in String key, boolean enable);
     Bundle getUserRestrictions(in ComponentName who);
-    Bundle getUserRestrictionsForUser(in ComponentName who, int userId);
     void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags);
     void clearCrossProfileIntentFilters(in ComponentName admin);
 
diff --git a/core/java/android/app/job/JobInfo.java b/core/java/android/app/job/JobInfo.java
index c475575..61790ea 100644
--- a/core/java/android/app/job/JobInfo.java
+++ b/core/java/android/app/job/JobInfo.java
@@ -88,7 +88,7 @@
      *
      * @return The minimum available interval for scheduling periodic jobs, in milliseconds.
      */
-    public static final long getMinimumPeriod() {
+    public static final long getMinPeriodMillis() {
         return MIN_PERIOD_MILLIS;
     }
 
@@ -99,7 +99,7 @@
      *
      * @return The minimum available flex time for scheduling periodic jobs, in milliseconds.
      */
-    public static final long getMinimumFlex() {
+    public static final long getMinFlexMillis() {
         return MIN_FLEX_MILLIS;
     }
 
@@ -306,7 +306,7 @@
      * job does not recur periodically.
      */
     public long getIntervalMillis() {
-        return intervalMillis >= getMinimumPeriod() ? intervalMillis : getMinimumPeriod();
+        return intervalMillis >= getMinPeriodMillis() ? intervalMillis : getMinPeriodMillis();
     }
 
     /**
@@ -316,7 +316,7 @@
     public long getFlexMillis() {
         long interval = getIntervalMillis();
         long percentClamp = 5 * interval / 100;
-        long clampedFlex = Math.max(flexMillis, Math.max(percentClamp, getMinimumFlex()));
+        long clampedFlex = Math.max(flexMillis, Math.max(percentClamp, getMinFlexMillis()));
         return clampedFlex <= interval ? clampedFlex : interval;
     }
 
@@ -682,9 +682,9 @@
          * Specify that this job should recur with the provided interval and flex. The job can
          * execute at any time in a window of flex length at the end of the period.
          * @param intervalMillis Millisecond interval for which this job will repeat. A minimum
-         *                       value of {@link #getMinimumPeriod()} is enforced.
+         *                       value of {@link #getMinPeriodMillis()} is enforced.
          * @param flexMillis Millisecond flex for this job. Flex is clamped to be at least
-         *                   {@link #getMinimumFlex()} or 5 percent of the period, whichever is
+         *                   {@link #getMinFlexMillis()} or 5 percent of the period, whichever is
          *                   higher.
          */
         public Builder setPeriodic(long intervalMillis, long flexMillis) {
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 8f5ddf8..a43d06e 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -342,6 +342,14 @@
      * {@link android.R.attr#isolatedProcess isolated},
      * {@link android.R.attr#externalService external} service.  This binds the service into the
      * calling application's package, rather than the package in which the service is declared.
+     * <p>
+     * When using this flag, the code for the service being bound will execute under the calling
+     * application's package name and user ID.  Because the service must be an isolated process,
+     * it will not have direct access to the application's data, though.
+     *
+     * The purpose of this flag is to allow applications to provide services that are attributed
+     * to the app using the service, rather than the application providing the service.
+     * </p>
      */
     public static final int BIND_EXTERNAL_SERVICE = 0x80000000;
 
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 47abd2b..9118f01 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1481,7 +1481,6 @@
      *
      * @hide
      */
-    @SystemApi
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_INSTALL_EPHEMERAL_PACKAGE
             = "android.intent.action.INSTALL_EPHEMERAL_PACKAGE";
@@ -1495,7 +1494,6 @@
      *
      * @hide
      */
-    @SystemApi
     @SdkConstant(SdkConstantType.SERVICE_ACTION)
     public static final String ACTION_RESOLVE_EPHEMERAL_PACKAGE
             = "android.intent.action.RESOLVE_EPHEMERAL_PACKAGE";
@@ -3764,14 +3762,12 @@
      * A {@link IntentSender} to start after ephemeral installation success.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_EPHEMERAL_SUCCESS = "android.intent.extra.EPHEMERAL_SUCCESS";
 
     /**
      * A {@link IntentSender} to start after ephemeral installation failure.
      * @hide
      */
-    @SystemApi
     public static final String EXTRA_EPHEMERAL_FAILURE = "android.intent.extra.EPHEMERAL_FAILURE";
 
     /**
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index bdea1e0..5a09c00 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -944,8 +944,8 @@
             dest.writeInt(windowLayout.height);
             dest.writeFloat(windowLayout.heightFraction);
             dest.writeInt(windowLayout.gravity);
-            dest.writeInt(windowLayout.minimalWidth);
-            dest.writeInt(windowLayout.minimalHeight);
+            dest.writeInt(windowLayout.minWidth);
+            dest.writeInt(windowLayout.minHeight);
         } else {
             dest.writeInt(0);
         }
@@ -997,19 +997,19 @@
      * @attr ref android.R.styleable#AndroidManifestLayout_defaultWidth
      * @attr ref android.R.styleable#AndroidManifestLayout_defaultHeight
      * @attr ref android.R.styleable#AndroidManifestLayout_gravity
-     * @attr ref android.R.styleable#AndroidManifestLayout_minimalWidth
-     * @attr ref android.R.styleable#AndroidManifestLayout_minimalHeight
+     * @attr ref android.R.styleable#AndroidManifestLayout_minWidth
+     * @attr ref android.R.styleable#AndroidManifestLayout_minHeight
      */
     public static final class WindowLayout {
         public WindowLayout(int width, float widthFraction, int height, float heightFraction, int gravity,
-                int minimalWidth, int minimalHeight) {
+                int minWidth, int minHeight) {
             this.width = width;
             this.widthFraction = widthFraction;
             this.height = height;
             this.heightFraction = heightFraction;
             this.gravity = gravity;
-            this.minimalWidth = minimalWidth;
-            this.minimalHeight = minimalHeight;
+            this.minWidth = minWidth;
+            this.minHeight = minHeight;
         }
 
         WindowLayout(Parcel source) {
@@ -1018,8 +1018,8 @@
             height = source.readInt();
             heightFraction = source.readFloat();
             gravity = source.readInt();
-            minimalWidth = source.readInt();
-            minimalHeight = source.readInt();
+            minWidth = source.readInt();
+            minHeight = source.readInt();
         }
 
         /**
@@ -1069,9 +1069,9 @@
          * width, then the system will set the same minimal width on all other activities in the
          * task. It will also ignore any other minimal width attributes of non-root activities.
          *
-         * @attr ref android.R.styleable#AndroidManifestLayout_minimalWidth
+         * @attr ref android.R.styleable#AndroidManifestLayout_minWidth
          */
-        public final int minimalWidth;
+        public final int minWidth;
 
         /**
          * Minimal height of activity in pixels to be able to display its content.
@@ -1081,8 +1081,8 @@
          * height, then the system will set the same minimal height on all other activities in the
          * task. It will also ignore any other minimal height attributes of non-root activities.
          *
-         * @attr ref android.R.styleable#AndroidManifestLayout_minimalHeight
+         * @attr ref android.R.styleable#AndroidManifestLayout_minHeight
          */
-        public final int minimalHeight;
+        public final int minHeight;
     }
 }
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 7ee7044..de1284e 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -3536,6 +3536,12 @@
             a.info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
             final boolean appDefault = (owner.applicationInfo.privateFlags
                     & PRIVATE_FLAG_RESIZEABLE_ACTIVITIES) != 0;
+            // This flag is used to workaround the issue with ignored resizeableActivity param when
+            // either targetSdkVersion is not set at all or <uses-sdk> tag is below <application>
+            // tag in AndroidManifest. If this param was explicitly set to 'false' we need to set
+            // corresponding resizeMode regardless of targetSdkVersion value at this point in time.
+            final boolean resizeableSetExplicitly
+                    = sa.hasValue(R.styleable.AndroidManifestActivity_resizeableActivity);
             final boolean resizeable = sa.getBoolean(
                     R.styleable.AndroidManifestActivity_resizeableActivity, appDefault);
 
@@ -3546,7 +3552,8 @@
                 } else {
                     a.info.resizeMode = RESIZE_MODE_RESIZEABLE;
                 }
-            } else if (owner.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.N) {
+            } else if (owner.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.N
+                    || resizeableSetExplicitly) {
                 a.info.resizeMode = RESIZE_MODE_UNRESIZEABLE;
             } else if (!a.info.isFixedOrientation() && (a.info.flags & FLAG_IMMERSIVE) == 0) {
                 a.info.resizeMode = RESIZE_MODE_FORCE_RESIZEABLE;
@@ -3712,15 +3719,15 @@
         int gravity = sw.getInt(
                 com.android.internal.R.styleable.AndroidManifestLayout_gravity,
                 Gravity.CENTER);
-        int minimalWidth = sw.getDimensionPixelSize(
-                com.android.internal.R.styleable.AndroidManifestLayout_minimalWidth,
+        int minWidth = sw.getDimensionPixelSize(
+                com.android.internal.R.styleable.AndroidManifestLayout_minWidth,
                 -1);
-        int minimalHeight = sw.getDimensionPixelSize(
-                com.android.internal.R.styleable.AndroidManifestLayout_minimalHeight,
+        int minHeight = sw.getDimensionPixelSize(
+                com.android.internal.R.styleable.AndroidManifestLayout_minHeight,
                 -1);
         sw.recycle();
         a.info.windowLayout = new ActivityInfo.WindowLayout(width, widthFraction,
-                height, heightFraction, gravity, minimalWidth, minimalHeight);
+                height, heightFraction, gravity, minWidth, minHeight);
     }
 
     private Activity parseActivityAlias(Package owner, Resources res,
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 2d0e74c..29e5b5d 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -28,10 +28,10 @@
 import android.content.pm.ActivityInfo;
 import android.content.pm.ActivityInfo.Config;
 import android.os.Build;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
-import android.util.LocaleList;
 import android.view.View;
 
 import java.io.IOException;
diff --git a/core/java/android/content/res/ResourcesImpl.java b/core/java/android/content/res/ResourcesImpl.java
index 110df5d..dada612 100644
--- a/core/java/android/content/res/ResourcesImpl.java
+++ b/core/java/android/content/res/ResourcesImpl.java
@@ -35,10 +35,10 @@
 import android.graphics.drawable.Drawable;
 import android.icu.text.PluralRules;
 import android.os.Build;
+import android.os.LocaleList;
 import android.os.Trace;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
-import android.util.LocaleList;
 import android.util.Log;
 import android.util.LongSparseArray;
 import android.util.Slog;
diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl
index c4ee347..49c106e 100644
--- a/core/java/android/hardware/input/IInputManager.aidl
+++ b/core/java/android/hardware/input/IInputManager.aidl
@@ -79,7 +79,7 @@
     void vibrate(int deviceId, in long[] pattern, int repeat, IBinder token);
     void cancelVibrate(int deviceId, IBinder token);
 
-    void setPointerIconShape(int shapeId);
+    void setPointerIconType(int typeId);
     void setCustomPointerIcon(in PointerIcon icon);
 
     void setPointerIconDetached(boolean detached);
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index 8a43acb..a5aeae3 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -872,13 +872,13 @@
      * Changes the mouse pointer's icon shape into the specified id.
      *
      * @param iconId The id of the pointer graphic, as a value between
-     * {@link PointerIcon.STYLE_ARROW} and {@link PointerIcon.STYLE_GRABBING}.
+     * {@link PointerIcon.TYPE_ARROW} and {@link PointerIcon.TYPE_GRABBING}.
      *
      * @hide
      */
-    public void setPointerIconShape(int iconId) {
+    public void setPointerIconType(int iconId) {
         try {
-            mIm.setPointerIconShape(iconId);
+            mIm.setPointerIconType(iconId);
         } catch (RemoteException ex) {
             throw ex.rethrowFromSystemServer();
         }
diff --git a/core/java/android/hardware/input/KeyboardLayout.java b/core/java/android/hardware/input/KeyboardLayout.java
index 2cafa08..d395578 100644
--- a/core/java/android/hardware/input/KeyboardLayout.java
+++ b/core/java/android/hardware/input/KeyboardLayout.java
@@ -17,9 +17,9 @@
 package android.hardware.input;
 
 import android.annotation.NonNull;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.util.LocaleList;
 
 import java.util.Locale;
 
diff --git a/core/java/android/net/StaticIpConfiguration.java b/core/java/android/net/StaticIpConfiguration.java
index 7f1b179..58b1b88 100644
--- a/core/java/android/net/StaticIpConfiguration.java
+++ b/core/java/android/net/StaticIpConfiguration.java
@@ -131,7 +131,7 @@
             str.append(" ").append(dnsServer.getHostAddress());
         }
 
-        str.append(" ] Domains");
+        str.append(" ] Domains ");
         if (domains != null) str.append(domains);
         return str.toString();
     }
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index b546da0..36ba6966 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -436,4 +436,6 @@
 
     void addInterfaceToLocalNetwork(String iface, in List<RouteInfo> routes);
     void removeInterfaceFromLocalNetwork(String iface);
+
+    void setAllowOnlyVpnForUids(boolean enable, in UidRange[] uidRanges);
 }
diff --git a/core/java/android/util/LocaleList.aidl b/core/java/android/os/LocaleList.aidl
similarity index 96%
rename from core/java/android/util/LocaleList.aidl
rename to core/java/android/os/LocaleList.aidl
index f5de354..acb3648 100644
--- a/core/java/android/util/LocaleList.aidl
+++ b/core/java/android/os/LocaleList.aidl
@@ -14,6 +14,6 @@
  * limitations under the License.
  */
 
-package android.util;
+package android.os;
 
 parcelable LocaleList;
diff --git a/core/java/android/util/LocaleList.java b/core/java/android/os/LocaleList.java
similarity index 99%
rename from core/java/android/util/LocaleList.java
rename to core/java/android/os/LocaleList.java
index 3c3db58..8136796 100644
--- a/core/java/android/util/LocaleList.java
+++ b/core/java/android/os/LocaleList.java
@@ -14,15 +14,13 @@
  * limitations under the License.
  */
 
-package android.util;
+package android.os;
 
 import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.Size;
 import android.icu.util.ULocale;
-import android.os.Parcel;
-import android.os.Parcelable;
 
 import com.android.internal.annotations.GuardedBy;
 
diff --git a/core/java/android/os/health/SystemHealthManager.java b/core/java/android/os/health/SystemHealthManager.java
index 7c37fa4..32e8425 100644
--- a/core/java/android/os/health/SystemHealthManager.java
+++ b/core/java/android/os/health/SystemHealthManager.java
@@ -53,6 +53,8 @@
 
     /**
      * Obtain a SystemHealthManager object for the supplied context.
+     *
+     * @hide
      */
     public static SystemHealthManager from(Context context) {
         return (SystemHealthManager)context.getSystemService(Context.SYSTEM_HEALTH_SERVICE);
diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java
index 3915b02..b9bcd1c 100644
--- a/core/java/android/os/storage/IMountService.java
+++ b/core/java/android/os/storage/IMountService.java
@@ -1233,8 +1233,8 @@
             }
 
             @Override
-            public void changeUserKey(int userId, int serialNumber,
-                    byte[] token, byte[] oldSecret, byte[] newSecret) throws RemoteException {
+            public void addUserKeyAuth(int userId, int serialNumber,
+                    byte[] token, byte[] secret) throws RemoteException {
                 Parcel _data = Parcel.obtain();
                 Parcel _reply = Parcel.obtain();
                 try {
@@ -1242,9 +1242,23 @@
                     _data.writeInt(userId);
                     _data.writeInt(serialNumber);
                     _data.writeByteArray(token);
-                    _data.writeByteArray(oldSecret);
-                    _data.writeByteArray(newSecret);
-                    mRemote.transact(Stub.TRANSACTION_changeUserKey, _data, _reply, 0);
+                    _data.writeByteArray(secret);
+                    mRemote.transact(Stub.TRANSACTION_addUserKeyAuth, _data, _reply, 0);
+                    _reply.readException();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+            }
+
+            @Override
+            public void fixateNewestUserKeyAuth(int userId) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeInt(userId);
+                    mRemote.transact(Stub.TRANSACTION_fixateNewestUserKeyAuth, _data, _reply, 0);
                     _reply.readException();
                 } finally {
                     _reply.recycle();
@@ -1489,7 +1503,9 @@
 
         static final int TRANSACTION_mountAppFuse = IBinder.FIRST_CALL_TRANSACTION + 69;
 
-        static final int TRANSACTION_changeUserKey = IBinder.FIRST_CALL_TRANSACTION + 70;
+        static final int TRANSACTION_addUserKeyAuth = IBinder.FIRST_CALL_TRANSACTION + 70;
+
+        static final int TRANSACTION_fixateNewestUserKeyAuth = IBinder.FIRST_CALL_TRANSACTION + 71;
 
         /**
          * Cast an IBinder object into an IMountService interface, generating a
@@ -2069,14 +2085,20 @@
                     reply.writeNoException();
                     return true;
                 }
-                case TRANSACTION_changeUserKey: {
+                case TRANSACTION_addUserKeyAuth: {
                     data.enforceInterface(DESCRIPTOR);
                     int userId = data.readInt();
                     int serialNumber = data.readInt();
                     byte[] token = data.createByteArray();
-                    byte[] oldSecret = data.createByteArray();
-                    byte[] newSecret = data.createByteArray();
-                    changeUserKey(userId, serialNumber, token, oldSecret, newSecret);
+                    byte[] secret = data.createByteArray();
+                    addUserKeyAuth(userId, serialNumber, token, secret);
+                    reply.writeNoException();
+                    return true;
+                }
+                case TRANSACTION_fixateNewestUserKeyAuth: {
+                    data.enforceInterface(DESCRIPTOR);
+                    int userId = data.readInt();
+                    fixateNewestUserKeyAuth(userId);
                     reply.writeNoException();
                     return true;
                 }
@@ -2452,8 +2474,9 @@
     public void createUserKey(int userId, int serialNumber, boolean ephemeral)
             throws RemoteException;
     public void destroyUserKey(int userId) throws RemoteException;
-    public void changeUserKey(int userId, int serialNumber,
-            byte[] token, byte[] oldSecret, byte[] newSecret) throws RemoteException;
+    public void addUserKeyAuth(int userId, int serialNumber,
+            byte[] token, byte[] secret) throws RemoteException;
+    public void fixateNewestUserKeyAuth(int userId) throws RemoteException;
 
     public void unlockUserKey(int userId, int serialNumber,
             byte[] token, byte[] secret) throws RemoteException;
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 76f5175..66d487f 100755
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -48,6 +48,7 @@
 import android.os.Bundle;
 import android.os.DropBoxManager;
 import android.os.IBinder;
+import android.os.LocaleList;
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -58,7 +59,6 @@
 import android.util.AndroidException;
 import android.util.ArrayMap;
 import android.util.ArraySet;
-import android.util.LocaleList;
 import android.util.Log;
 
 import android.util.MemoryIntArray;
@@ -2650,7 +2650,7 @@
          * The serialized system locale value.
          *
          * Do not use this value directory.
-         * To get system locale, use {@link android.util.LocaleList#getDefault} instead.
+         * To get system locale, use {@link LocaleList#getDefault} instead.
          * To update system locale, use {@link com.android.internal.app.LocalePicker#updateLocales}
          * instead.
          * @hide
@@ -4702,6 +4702,14 @@
         public static final String ALWAYS_ON_VPN_APP = "always_on_vpn_app";
 
         /**
+         * Whether to block networking outside of VPN connections while always-on is set.
+         * @see #ALWAYS_ON_VPN_APP
+         *
+         * @hide
+         */
+        public static final String ALWAYS_ON_VPN_LOCKDOWN = "always_on_vpn_lockdown";
+
+        /**
          * Whether applications can be installed for this user via the system's
          * {@link Intent#ACTION_INSTALL_PACKAGE} mechanism.
          *
diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java
index 71b53f1..1c13962 100644
--- a/core/java/android/text/TextUtils.java
+++ b/core/java/android/text/TextUtils.java
@@ -309,14 +309,13 @@
      */
     public static String join(CharSequence delimiter, Iterable tokens) {
         StringBuilder sb = new StringBuilder();
-        boolean firstTime = true;
-        for (Object token: tokens) {
-            if (firstTime) {
-                firstTime = false;
-            } else {
+        Iterator<?> it = tokens.iterator();
+        if (it.hasNext()) {
+            sb.append(it.next());
+            while (it.hasNext()) {
                 sb.append(delimiter);
+                sb.append(it.next());
             }
-            sb.append(token);
         }
         return sb.toString();
     }
diff --git a/core/java/android/text/style/LocaleSpan.java b/core/java/android/text/style/LocaleSpan.java
index 91990df..b842851 100644
--- a/core/java/android/text/style/LocaleSpan.java
+++ b/core/java/android/text/style/LocaleSpan.java
@@ -21,11 +21,11 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.graphics.Paint;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.text.ParcelableSpan;
 import android.text.TextPaint;
 import android.text.TextUtils;
-import android.util.LocaleList;
 
 import java.util.Locale;
 
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 48eee05..2f2fe57 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -1168,6 +1168,9 @@
         public HdrCapabilities() {
         }
 
+        /**
+         * @hide
+         */
         public HdrCapabilities(int[] supportedHdrTypes, float maxLuminance,
                 float maxAverageLuminance, float minLuminance) {
             mSupportedHdrTypes = supportedHdrTypes;
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index 88cd7ca..e5748c1 100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
@@ -775,12 +775,12 @@
     }
 
     /**
-     * Sets the current pointer shape.
-     * @param pointerShape the id of the pointer icon.
+     * Sets the current pointer type.
+     * @param pointerType the type of the pointer icon.
      * @hide
      */
-    public void setPointerShape(int pointerShape) {
-        InputManager.getInstance().setPointerIconShape(pointerShape);
+    public void setPointerType(int pointerType) {
+        InputManager.getInstance().setPointerIconType(pointerType);
     }
 
     /**
diff --git a/core/java/android/view/PointerIcon.java b/core/java/android/view/PointerIcon.java
index 81bb638..fc79f53 100644
--- a/core/java/android/view/PointerIcon.java
+++ b/core/java/android/view/PointerIcon.java
@@ -36,112 +36,112 @@
 /**
  * Represents an icon that can be used as a mouse pointer.
  * <p>
- * Pointer icons can be provided either by the system using system styles,
+ * Pointer icons can be provided either by the system using system types,
  * or by applications using bitmaps or application resources.
  * </p>
  */
 public final class PointerIcon implements Parcelable {
     private static final String TAG = "PointerIcon";
 
-    /** {@hide} Style constant: Custom icon with a user-supplied bitmap. */
-    public static final int STYLE_CUSTOM = -1;
+    /** {@hide} Type constant: Custom icon with a user-supplied bitmap. */
+    public static final int TYPE_CUSTOM = -1;
 
-    /** Style constant: Null icon.  It has no bitmap. */
-    public static final int STYLE_NULL = 0;
+    /** Type constant: Null icon.  It has no bitmap. */
+    public static final int TYPE_NULL = 0;
 
-    /** Style constant: no icons are specified. If all views uses this, then falls back
-     * to the default style, but this is helpful to distinguish a view explicitly want
+    /** Type constant: no icons are specified. If all views uses this, then falls back
+     * to the default type, but this is helpful to distinguish a view explicitly want
      * to have the default icon.
      * @hide
      */
-    public static final int STYLE_NOT_SPECIFIED = 1;
+    public static final int TYPE_NOT_SPECIFIED = 1;
 
-    /** Style constant: Arrow icon.  (Default mouse pointer) */
-    public static final int STYLE_ARROW = 1000;
+    /** Type constant: Arrow icon.  (Default mouse pointer) */
+    public static final int TYPE_ARROW = 1000;
 
-    /** {@hide} Style constant: Spot hover icon for touchpads. */
-    public static final int STYLE_SPOT_HOVER = 2000;
+    /** {@hide} Type constant: Spot hover icon for touchpads. */
+    public static final int TYPE_SPOT_HOVER = 2000;
 
-    /** {@hide} Style constant: Spot touch icon for touchpads. */
-    public static final int STYLE_SPOT_TOUCH = 2001;
+    /** {@hide} Type constant: Spot touch icon for touchpads. */
+    public static final int TYPE_SPOT_TOUCH = 2001;
 
-    /** {@hide} Style constant: Spot anchor icon for touchpads. */
-    public static final int STYLE_SPOT_ANCHOR = 2002;
+    /** {@hide} Type constant: Spot anchor icon for touchpads. */
+    public static final int TYPE_SPOT_ANCHOR = 2002;
 
-    // Style constants for additional predefined icons for mice.
-    /** Style constant: context-menu. */
-    public static final int STYLE_CONTEXT_MENU = 1001;
+    // Type constants for additional predefined icons for mice.
+    /** Type constant: context-menu. */
+    public static final int TYPE_CONTEXT_MENU = 1001;
 
-    /** Style constant: hand. */
-    public static final int STYLE_HAND = 1002;
+    /** Type constant: hand. */
+    public static final int TYPE_HAND = 1002;
 
-    /** Style constant: help. */
-    public static final int STYLE_HELP = 1003;
+    /** Type constant: help. */
+    public static final int TYPE_HELP = 1003;
 
-    /** Style constant: wait. */
-    public static final int STYLE_WAIT = 1004;
+    /** Type constant: wait. */
+    public static final int TYPE_WAIT = 1004;
 
-    /** Style constant: cell. */
-    public static final int STYLE_CELL = 1006;
+    /** Type constant: cell. */
+    public static final int TYPE_CELL = 1006;
 
-    /** Style constant: crosshair. */
-    public static final int STYLE_CROSSHAIR = 1007;
+    /** Type constant: crosshair. */
+    public static final int TYPE_CROSSHAIR = 1007;
 
-    /** Style constant: text. */
-    public static final int STYLE_TEXT = 1008;
+    /** Type constant: text. */
+    public static final int TYPE_TEXT = 1008;
 
-    /** Style constant: vertical-text. */
-    public static final int STYLE_VERTICAL_TEXT = 1009;
+    /** Type constant: vertical-text. */
+    public static final int TYPE_VERTICAL_TEXT = 1009;
 
-    /** Style constant: alias (indicating an alias of/shortcut to something is
+    /** Type constant: alias (indicating an alias of/shortcut to something is
       * to be created. */
-    public static final int STYLE_ALIAS = 1010;
+    public static final int TYPE_ALIAS = 1010;
 
-    /** Style constant: copy. */
-    public static final int STYLE_COPY = 1011;
+    /** Type constant: copy. */
+    public static final int TYPE_COPY = 1011;
 
-    /** Style constant: no-drop. */
-    public static final int STYLE_NO_DROP = 1012;
+    /** Type constant: no-drop. */
+    public static final int TYPE_NO_DROP = 1012;
 
-    /** Style constant: all-scroll. */
-    public static final int STYLE_ALL_SCROLL = 1013;
+    /** Type constant: all-scroll. */
+    public static final int TYPE_ALL_SCROLL = 1013;
 
-    /** Style constant: horizontal double arrow mainly for resizing. */
-    public static final int STYLE_HORIZONTAL_DOUBLE_ARROW = 1014;
+    /** Type constant: horizontal double arrow mainly for resizing. */
+    public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014;
 
-    /** Style constant: vertical double arrow mainly for resizing. */
-    public static final int STYLE_VERTICAL_DOUBLE_ARROW = 1015;
+    /** Type constant: vertical double arrow mainly for resizing. */
+    public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015;
 
-    /** Style constant: diagonal double arrow -- top-right to bottom-left. */
-    public static final int STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016;
+    /** Type constant: diagonal double arrow -- top-right to bottom-left. */
+    public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016;
 
-    /** Style constant: diagonal double arrow -- top-left to bottom-right. */
-    public static final int STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017;
+    /** Type constant: diagonal double arrow -- top-left to bottom-right. */
+    public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017;
 
-    /** Style constant: zoom-in. */
-    public static final int STYLE_ZOOM_IN = 1018;
+    /** Type constant: zoom-in. */
+    public static final int TYPE_ZOOM_IN = 1018;
 
-    /** Style constant: zoom-out. */
-    public static final int STYLE_ZOOM_OUT = 1019;
+    /** Type constant: zoom-out. */
+    public static final int TYPE_ZOOM_OUT = 1019;
 
-    /** Style constant: grab. */
-    public static final int STYLE_GRAB = 1020;
+    /** Type constant: grab. */
+    public static final int TYPE_GRAB = 1020;
 
-    /** Style constant: grabbing. */
-    public static final int STYLE_GRABBING = 1021;
+    /** Type constant: grabbing. */
+    public static final int TYPE_GRABBING = 1021;
 
-    // OEM private styles should be defined starting at this range to avoid
-    // conflicts with any system styles that may be defined in the future.
-    private static final int STYLE_OEM_FIRST = 10000;
+    // OEM private types should be defined starting at this range to avoid
+    // conflicts with any system types that may be defined in the future.
+    private static final int TYPE_OEM_FIRST = 10000;
 
     /** The default pointer icon. */
-    public static final int STYLE_DEFAULT = STYLE_ARROW;
+    public static final int TYPE_DEFAULT = TYPE_ARROW;
 
-    private static final PointerIcon gNullIcon = new PointerIcon(STYLE_NULL);
+    private static final PointerIcon gNullIcon = new PointerIcon(TYPE_NULL);
     private static final SparseArray<PointerIcon> gSystemIcons = new SparseArray<PointerIcon>();
     private static boolean sUseLargeIcons = false;
 
-    private final int mStyle;
+    private final int mType;
     private int mSystemIconResourceId;
     private Bitmap mBitmap;
     private float mHotSpotX;
@@ -151,8 +151,8 @@
     private Bitmap mBitmapFrames[];
     private int mDurationPerFrame;
 
-    private PointerIcon(int style) {
-        mStyle = style;
+    private PointerIcon(int type) {
+        mType = type;
     }
 
     /**
@@ -160,7 +160,7 @@
      *
      * @return The null pointer icon.
      *
-     * @see #STYLE_NULL
+     * @see #TYPE_NULL
      * @hide
      */
     public static PointerIcon getNullIcon() {
@@ -177,36 +177,36 @@
      * @hide
      */
     public static PointerIcon getDefaultIcon(@NonNull Context context) {
-        return getSystemIcon(context, STYLE_DEFAULT);
+        return getSystemIcon(context, TYPE_DEFAULT);
     }
 
     /**
-     * Gets a system pointer icon for the given style.
-     * If style is not recognized, returns the default pointer icon.
+     * Gets a system pointer icon for the given type.
+     * If typeis not recognized, returns the default pointer icon.
      *
      * @param context The context.
-     * @param style The pointer icon style.
+     * @param type The pointer icon type.
      * @return The pointer icon.
      *
      * @throws IllegalArgumentException if context is null.
      */
-    public static PointerIcon getSystemIcon(@NonNull Context context, int style) {
+    public static PointerIcon getSystemIcon(@NonNull Context context, int type) {
         if (context == null) {
             throw new IllegalArgumentException("context must not be null");
         }
 
-        if (style == STYLE_NULL) {
+        if (type == TYPE_NULL) {
             return gNullIcon;
         }
 
-        PointerIcon icon = gSystemIcons.get(style);
+        PointerIcon icon = gSystemIcons.get(type);
         if (icon != null) {
             return icon;
         }
 
-        int styleIndex = getSystemIconStyleIndex(style);
-        if (styleIndex == 0) {
-            styleIndex = getSystemIconStyleIndex(STYLE_DEFAULT);
+        int typeIndex = getSystemIconTypeIndex(type);
+        if (typeIndex == 0) {
+            typeIndex = getSystemIconTypeIndex(TYPE_DEFAULT);
         }
 
         int defStyle = sUseLargeIcons ?
@@ -214,21 +214,21 @@
         TypedArray a = context.obtainStyledAttributes(null,
                 com.android.internal.R.styleable.Pointer,
                 0, defStyle);
-        int resourceId = a.getResourceId(styleIndex, -1);
+        int resourceId = a.getResourceId(typeIndex, -1);
         a.recycle();
 
         if (resourceId == -1) {
-            Log.w(TAG, "Missing theme resources for pointer icon style " + style);
-            return style == STYLE_DEFAULT ? gNullIcon : getSystemIcon(context, STYLE_DEFAULT);
+            Log.w(TAG, "Missing theme resources for pointer icon type " + type);
+            return type == TYPE_DEFAULT ? gNullIcon : getSystemIcon(context, TYPE_DEFAULT);
         }
 
-        icon = new PointerIcon(style);
+        icon = new PointerIcon(type);
         if ((resourceId & 0xff000000) == 0x01000000) {
             icon.mSystemIconResourceId = resourceId;
         } else {
             icon.loadResource(context, context.getResources(), resourceId);
         }
-        gSystemIcons.append(style, icon);
+        gSystemIcons.append(type, icon);
         return icon;
     }
 
@@ -242,7 +242,7 @@
     }
 
     /**
-     * Creates a custom pointer from the given bitmap and hotspot information.
+     * Creates a custom pointer icon from the given bitmap and hotspot information.
      *
      * @param bitmap The bitmap for the icon.
      * @param hotSpotX The X offset of the pointer icon hotspot in the bitmap.
@@ -254,14 +254,13 @@
      * @throws IllegalArgumentException if bitmap is null, or if the x/y hotspot
      *         parameters are invalid.
      */
-    public static PointerIcon createCustomIcon(
-            @NonNull Bitmap bitmap, float hotSpotX, float hotSpotY) {
+    public static PointerIcon create(@NonNull Bitmap bitmap, float hotSpotX, float hotSpotY) {
         if (bitmap == null) {
             throw new IllegalArgumentException("bitmap must not be null");
         }
         validateHotSpot(bitmap, hotSpotX, hotSpotY);
 
-        PointerIcon icon = new PointerIcon(STYLE_CUSTOM);
+        PointerIcon icon = new PointerIcon(TYPE_CUSTOM);
         icon.mBitmap = bitmap;
         icon.mHotSpotX = hotSpotX;
         icon.mHotSpotY = hotSpotY;
@@ -289,12 +288,12 @@
      * @throws Resources.NotFoundException if the resource was not found or the drawable
      * linked in the resource was not found.
      */
-    public static PointerIcon loadCustomIcon(@NonNull Resources resources, @XmlRes int resourceId) {
+    public static PointerIcon load(@NonNull Resources resources, @XmlRes int resourceId) {
         if (resources == null) {
             throw new IllegalArgumentException("resources must not be null");
         }
 
-        PointerIcon icon = new PointerIcon(STYLE_CUSTOM);
+        PointerIcon icon = new PointerIcon(TYPE_CUSTOM);
         icon.loadResource(null, resources, resourceId);
         return icon;
     }
@@ -318,28 +317,28 @@
             return this;
         }
 
-        PointerIcon result = new PointerIcon(mStyle);
+        PointerIcon result = new PointerIcon(mType);
         result.mSystemIconResourceId = mSystemIconResourceId;
         result.loadResource(context, context.getResources(), mSystemIconResourceId);
         return result;
     }
 
     /** @hide */
-    public int getStyle() {
-        return mStyle;
+    public int getType() {
+        return mType;
     }
 
     public static final Parcelable.Creator<PointerIcon> CREATOR
             = new Parcelable.Creator<PointerIcon>() {
         public PointerIcon createFromParcel(Parcel in) {
-            int style = in.readInt();
-            if (style == STYLE_NULL) {
+            int type = in.readInt();
+            if (type == TYPE_NULL) {
                 return getNullIcon();
             }
 
             int systemIconResourceId = in.readInt();
             if (systemIconResourceId != 0) {
-                PointerIcon icon = new PointerIcon(style);
+                PointerIcon icon = new PointerIcon(type);
                 icon.mSystemIconResourceId = systemIconResourceId;
                 return icon;
             }
@@ -347,7 +346,7 @@
             Bitmap bitmap = Bitmap.CREATOR.createFromParcel(in);
             float hotSpotX = in.readFloat();
             float hotSpotY = in.readFloat();
-            return PointerIcon.createCustomIcon(bitmap, hotSpotX, hotSpotY);
+            return PointerIcon.create(bitmap, hotSpotX, hotSpotY);
         }
 
         public PointerIcon[] newArray(int size) {
@@ -360,9 +359,9 @@
     }
 
     public void writeToParcel(Parcel out, int flags) {
-        out.writeInt(mStyle);
+        out.writeInt(mType);
 
-        if (mStyle != STYLE_NULL) {
+        if (mType != TYPE_NULL) {
             out.writeInt(mSystemIconResourceId);
             if (mSystemIconResourceId == 0) {
                 mBitmap.writeToParcel(out, flags);
@@ -383,7 +382,7 @@
         }
 
         PointerIcon otherIcon = (PointerIcon) other;
-        if (mStyle != otherIcon.mStyle
+        if (mType != otherIcon.mType
                 || mSystemIconResourceId != otherIcon.mSystemIconResourceId) {
             return false;
         }
@@ -477,57 +476,57 @@
         }
     }
 
-    private static int getSystemIconStyleIndex(int style) {
-        switch (style) {
-            case STYLE_ARROW:
+    private static int getSystemIconTypeIndex(int type) {
+        switch (type) {
+            case TYPE_ARROW:
                 return com.android.internal.R.styleable.Pointer_pointerIconArrow;
-            case STYLE_SPOT_HOVER:
+            case TYPE_SPOT_HOVER:
                 return com.android.internal.R.styleable.Pointer_pointerIconSpotHover;
-            case STYLE_SPOT_TOUCH:
+            case TYPE_SPOT_TOUCH:
                 return com.android.internal.R.styleable.Pointer_pointerIconSpotTouch;
-            case STYLE_SPOT_ANCHOR:
+            case TYPE_SPOT_ANCHOR:
                 return com.android.internal.R.styleable.Pointer_pointerIconSpotAnchor;
-            case STYLE_HAND:
+            case TYPE_HAND:
                 return com.android.internal.R.styleable.Pointer_pointerIconHand;
-            case STYLE_CONTEXT_MENU:
+            case TYPE_CONTEXT_MENU:
                 return com.android.internal.R.styleable.Pointer_pointerIconContextMenu;
-            case STYLE_HELP:
+            case TYPE_HELP:
                 return com.android.internal.R.styleable.Pointer_pointerIconHelp;
-            case STYLE_WAIT:
+            case TYPE_WAIT:
                 return com.android.internal.R.styleable.Pointer_pointerIconWait;
-            case STYLE_CELL:
+            case TYPE_CELL:
                 return com.android.internal.R.styleable.Pointer_pointerIconCell;
-            case STYLE_CROSSHAIR:
+            case TYPE_CROSSHAIR:
                 return com.android.internal.R.styleable.Pointer_pointerIconCrosshair;
-            case STYLE_TEXT:
+            case TYPE_TEXT:
                 return com.android.internal.R.styleable.Pointer_pointerIconText;
-            case STYLE_VERTICAL_TEXT:
+            case TYPE_VERTICAL_TEXT:
                 return com.android.internal.R.styleable.Pointer_pointerIconVerticalText;
-            case STYLE_ALIAS:
+            case TYPE_ALIAS:
                 return com.android.internal.R.styleable.Pointer_pointerIconAlias;
-            case STYLE_COPY:
+            case TYPE_COPY:
                 return com.android.internal.R.styleable.Pointer_pointerIconCopy;
-            case STYLE_ALL_SCROLL:
+            case TYPE_ALL_SCROLL:
                 return com.android.internal.R.styleable.Pointer_pointerIconAllScroll;
-            case STYLE_NO_DROP:
+            case TYPE_NO_DROP:
                 return com.android.internal.R.styleable.Pointer_pointerIconNodrop;
-            case STYLE_HORIZONTAL_DOUBLE_ARROW:
+            case TYPE_HORIZONTAL_DOUBLE_ARROW:
                 return com.android.internal.R.styleable.Pointer_pointerIconHorizontalDoubleArrow;
-            case STYLE_VERTICAL_DOUBLE_ARROW:
+            case TYPE_VERTICAL_DOUBLE_ARROW:
                 return com.android.internal.R.styleable.Pointer_pointerIconVerticalDoubleArrow;
-            case STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW:
+            case TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW:
                 return com.android.internal.R.styleable.
                         Pointer_pointerIconTopRightDiagonalDoubleArrow;
-            case STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW:
+            case TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW:
                 return com.android.internal.R.styleable.
                         Pointer_pointerIconTopLeftDiagonalDoubleArrow;
-            case STYLE_ZOOM_IN:
+            case TYPE_ZOOM_IN:
                 return com.android.internal.R.styleable.Pointer_pointerIconZoomIn;
-            case STYLE_ZOOM_OUT:
+            case TYPE_ZOOM_OUT:
                 return com.android.internal.R.styleable.Pointer_pointerIconZoomOut;
-            case STYLE_GRAB:
+            case TYPE_GRAB:
                 return com.android.internal.R.styleable.Pointer_pointerIconGrab;
-            case STYLE_GRABBING:
+            case TYPE_GRABBING:
                 return com.android.internal.R.styleable.Pointer_pointerIconGrabbing;
             default:
                 return 0;
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index ccb5ec4..d59c8ac 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -82,6 +82,13 @@
  * and
  * {@link SurfaceHolder.Callback#surfaceDestroyed SurfaceHolder.Callback.surfaceDestroyed()}.
  * </ul>
+ *
+ * <p class="note"><strong>Note:</strong> Starting in platform version
+ * {@link android.os.Build.VERSION_CODES#N}, SurfaceView's window position is
+ * updated synchronously with other View rendering. This means that translating
+ * and scaling a SurfaceView on screen will not cause rendering artifacts. Such
+ * artifacts may occur on previous versions of the platform when its window is
+ * positioned asynchronously.</p>
  */
 public class SurfaceView extends View {
     static private final String TAG = "SurfaceView";
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 77884f6..2269282 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2644,7 +2644,7 @@
     private static final int PFLAG3_POINTER_ICON_NOT_SPECIFIED = 0 << PFLAG3_POINTER_ICON_LSHIFT;
 
     /**
-     * Value indicating {@link PointerIcon.STYLE_NULL}.
+     * Value indicating {@link PointerIcon.TYPE_NULL}.
      */
     private static final int PFLAG3_POINTER_ICON_NULL = 1 << PFLAG3_POINTER_ICON_LSHIFT;
 
@@ -4539,15 +4539,15 @@
                         initializeScrollIndicators = true;
                     }
                     break;
-                case R.styleable.View_pointerShape:
+                case R.styleable.View_pointerIcon:
                     final int resourceId = a.getResourceId(attr, 0);
                     if (resourceId != 0) {
-                        setPointerIcon(PointerIcon.loadCustomIcon(
+                        setPointerIcon(PointerIcon.load(
                                 context.getResources(), resourceId));
                     } else {
-                        final int pointerShape = a.getInt(attr, PointerIcon.STYLE_NOT_SPECIFIED);
-                        if (pointerShape != PointerIcon.STYLE_NOT_SPECIFIED) {
-                            setPointerIcon(PointerIcon.getSystemIcon(context, pointerShape));
+                        final int pointerType = a.getInt(attr, PointerIcon.TYPE_NOT_SPECIFIED);
+                        if (pointerType != PointerIcon.TYPE_NOT_SPECIFIED) {
+                            setPointerIcon(PointerIcon.getSystemIcon(context, pointerType));
                         }
                     }
                     break;
@@ -21788,19 +21788,22 @@
      * The default implementation does not care the location or event types, but some subclasses
      * may use it (such as WebViews).
      * @param event The MotionEvent from a mouse
-     * @param x The x position of the event, local to the view
-     * @param y The y position of the event, local to the view
+     * @param pointerIndex The index of the pointer for which to retrieve the {@link PointerIcon}.
+     *                     This will be between 0 and {@link MotionEvent#getPointerCount()}.
      * @see PointerIcon
      */
-    public PointerIcon getPointerIcon(MotionEvent event, float x, float y) {
+    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
+        final float x = event.getX(pointerIndex);
+        final float y = event.getY(pointerIndex);
         if (isDraggingScrollBar() || isOnScrollbarThumb(x, y)) {
-            return PointerIcon.getSystemIcon(mContext, PointerIcon.STYLE_ARROW);
+            return PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_ARROW);
         }
         return mPointerIcon;
     }
 
     /**
      * Set the pointer icon for the current view.
+     * Passing {@code null} will restore the pointer icon to its default value.
      * @param pointerIcon A PointerIcon instance which will be shown when the mouse hovers.
      */
     public void setPointerIcon(PointerIcon pointerIcon) {
@@ -21815,10 +21818,18 @@
     }
 
     /**
+     * Gets the pointer icon for the current view.
+     */
+    public PointerIcon getPointerIcon() {
+        return mPointerIcon;
+    }
+
+
+    /**
      * Request capturing further mouse events.
      *
-     * When the view captures, the mouse pointer icon will disappear and will not change its
-     * position. Further mouse events will come to the capturing view, and the mouse movements
+     * When the view captures, the pointer icon will disappear and will not change its
+     * position. Further pointer events will come to the capturing view, and the pointer movements
      * will can be detected through {@link MotionEvent#AXIS_RELATIVE_X} and
      * {@link MotionEvent#AXIS_RELATIVE_Y}. Non-mouse events (touchscreens, or stylus) will not
      * be affected.
@@ -21830,10 +21841,10 @@
      * @see #releasePointerCapture()
      * @see #hasPointerCapture()
      */
-    public void setPointerCapture() {
+    public void requestPointerCapture() {
         final ViewRootImpl viewRootImpl = getViewRootImpl();
         if (viewRootImpl != null) {
-            viewRootImpl.setPointerCapture(this);
+            viewRootImpl.requestPointerCapture(this);
         }
     }
 
@@ -21842,7 +21853,7 @@
      * Release the current capture of mouse events.
      *
      * If the view does not have the capture, it will do nothing.
-     * @see #setPointerCapture()
+     * @see #requestPointerCapture()
      * @see #hasPointerCapture()
      */
     public void releasePointerCapture() {
@@ -21856,7 +21867,7 @@
      * Checks the capture status of mouse events.
      *
      * @return true if the view has the capture.
-     * @see #setPointerCapture()
+     * @see #requestPointerCapture()
      * @see #hasPointerCapture()
      */
     public boolean hasPointerCapture() {
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 2f23b61..3ff8d4f 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -1712,9 +1712,11 @@
     }
 
     @Override
-    public PointerIcon getPointerIcon(MotionEvent event, float x, float y) {
+    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
+        final float x = event.getX(pointerIndex);
+        final float y = event.getY(pointerIndex);
         if (isOnScrollbarThumb(x, y) || isDraggingScrollBar()) {
-            return PointerIcon.getSystemIcon(mContext, PointerIcon.STYLE_ARROW);
+            return PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_ARROW);
         }
         // Check what the child under the pointer says about the pointer.
         final int childrenCount = mChildrenCount;
@@ -1728,7 +1730,8 @@
                 final View child = getAndVerifyPreorderedView(preorderedList, children, childIndex);
                 final PointF point = getLocalPoint();
                 if (isTransformedTouchPointInView(x, y, child, point)) {
-                    final PointerIcon pointerIcon = child.getPointerIcon(event, point.x, point.y);
+                    final PointerIcon pointerIcon =
+                            dispatchResolvePointerIcon(event, pointerIndex, child);
                     if (pointerIcon != null) {
                         if (preorderedList != null) preorderedList.clear();
                         return pointerIcon;
@@ -1741,7 +1744,24 @@
 
         // The pointer is not a child or the child has no preferences, returning the default
         // implementation.
-        return super.getPointerIcon(event, x, y);
+        return super.onResolvePointerIcon(event, pointerIndex);
+    }
+
+    private PointerIcon dispatchResolvePointerIcon(MotionEvent event, int pointerIndex,
+            View child) {
+        final PointerIcon pointerIcon;
+        if (!child.hasIdentityMatrix()) {
+            MotionEvent transformedEvent = getTransformedMotionEvent(event, child);
+            pointerIcon = child.onResolvePointerIcon(transformedEvent, pointerIndex);
+            transformedEvent.recycle();
+        } else {
+            final float offsetX = mScrollX - child.mLeft;
+            final float offsetY = mScrollY - child.mTop;
+            event.offsetLocation(offsetX, offsetY);
+            pointerIcon = child.onResolvePointerIcon(event, pointerIndex);
+            event.offsetLocation(-offsetX, -offsetY);
+        }
+        return pointerIcon;
     }
 
     private int getAndVerifyPreorderedIndex(int childrenCount, int i, boolean customOrder) {
@@ -2122,17 +2142,14 @@
      * @return {@code true} if the child handled the event.
      */
     private boolean dispatchTransformedGenericPointerEvent(MotionEvent event, View child) {
-        final float offsetX = mScrollX - child.mLeft;
-        final float offsetY = mScrollY - child.mTop;
-
         boolean handled;
         if (!child.hasIdentityMatrix()) {
-            MotionEvent transformedEvent = MotionEvent.obtain(event);
-            transformedEvent.offsetLocation(offsetX, offsetY);
-            transformedEvent.transform(child.getInverseMatrix());
+            MotionEvent transformedEvent = getTransformedMotionEvent(event, child);
             handled = child.dispatchGenericMotionEvent(transformedEvent);
             transformedEvent.recycle();
         } else {
+            final float offsetX = mScrollX - child.mLeft;
+            final float offsetY = mScrollY - child.mTop;
             event.offsetLocation(offsetX, offsetY);
             handled = child.dispatchGenericMotionEvent(event);
             event.offsetLocation(-offsetX, -offsetY);
@@ -2140,6 +2157,26 @@
         return handled;
     }
 
+    /**
+     * Returns a MotionEvent that's been transformed into the child's local coordinates.
+     *
+     * It's the responsibility of the caller to recycle it once they're finished with it.
+     * @param event The event to transform.
+     * @param child The view whose coordinate space is to be used.
+     * @return A copy of the the given MotionEvent, transformed into the given View's coordinate
+     *         space.
+     */
+    private MotionEvent getTransformedMotionEvent(MotionEvent event, View child) {
+        final float offsetX = mScrollX - child.mLeft;
+        final float offsetY = mScrollY - child.mTop;
+        final MotionEvent transformedEvent = MotionEvent.obtain(event);
+        transformedEvent.offsetLocation(offsetX, offsetY);
+        if (!child.hasIdentityMatrix()) {
+            transformedEvent.transform(child.getInverseMatrix());
+        }
+        return transformedEvent;
+    }
+
     @Override
     public boolean dispatchTouchEvent(MotionEvent ev) {
         if (mInputEventConsistencyVerifier != null) {
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 130b440..1c6600d 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -359,7 +359,7 @@
     private long mFpsPrevTime = -1;
     private int mFpsNumFrames;
 
-    private int mPointerIconShape = PointerIcon.STYLE_NOT_SPECIFIED;
+    private int mPointerIconType = PointerIcon.TYPE_NOT_SPECIFIED;
     private PointerIcon mCustomPointerIcon = null;
 
     /**
@@ -3168,7 +3168,7 @@
         }
     }
 
-    void setPointerCapture(View view) {
+    void requestPointerCapture(View view) {
         if (!mAttachInfo.mHasWindowFocus) {
             Log.w(mTag, "Can't set capture if it's not focused.");
             return;
@@ -3178,6 +3178,7 @@
         }
         mCapturingView = view;
         InputManager.getInstance().setPointerIconDetached(true);
+        return;
     }
 
     void releasePointerCapture(View view) {
@@ -4445,19 +4446,18 @@
         }
 
         private void maybeUpdatePointerIcon(MotionEvent event) {
-            if (event.getPointerCount() == 1
-                    && event.isFromSource(InputDevice.SOURCE_MOUSE)) {
+            if (event.getPointerCount() == 1 && event.isFromSource(InputDevice.SOURCE_MOUSE)) {
                 if (event.getActionMasked() == MotionEvent.ACTION_HOVER_ENTER
                         || event.getActionMasked() == MotionEvent.ACTION_HOVER_EXIT) {
-                    // Other apps or the window manager may change the icon shape outside of
-                    // this app, therefore the icon shape has to be reset on enter/exit event.
-                    mPointerIconShape = PointerIcon.STYLE_NOT_SPECIFIED;
+                    // Other apps or the window manager may change the icon type outside of
+                    // this app, therefore the icon type has to be reset on enter/exit event.
+                    mPointerIconType = PointerIcon.TYPE_NOT_SPECIFIED;
                 }
 
                 if (event.getActionMasked() != MotionEvent.ACTION_HOVER_EXIT) {
                     if (!updatePointerIcon(event) &&
                             event.getActionMasked() == MotionEvent.ACTION_HOVER_MOVE) {
-                        mPointerIconShape = PointerIcon.STYLE_NOT_SPECIFIED;
+                        mPointerIconType = PointerIcon.TYPE_NOT_SPECIFIED;
                     }
                 }
             }
@@ -4484,13 +4484,14 @@
     }
 
     private void resetPointerIcon(MotionEvent event) {
-        mPointerIconShape = PointerIcon.STYLE_NOT_SPECIFIED;
+        mPointerIconType = PointerIcon.TYPE_NOT_SPECIFIED;
         updatePointerIcon(event);
     }
 
     private boolean updatePointerIcon(MotionEvent event) {
-        final float x = event.getX();
-        final float y = event.getY();
+        final int pointerIndex = 0;
+        final float x = event.getX(pointerIndex);
+        final float y = event.getY(pointerIndex);
         if (mView == null) {
             // E.g. click outside a popup to dismiss it
             Slog.d(mTag, "updatePointerIcon called after view was removed");
@@ -4501,19 +4502,19 @@
             Slog.d(mTag, "updatePointerIcon called with position out of bounds");
             return false;
         }
-        final PointerIcon pointerIcon = mView.getPointerIcon(event, x, y);
-        final int pointerShape = (pointerIcon != null) ?
-                pointerIcon.getStyle() : PointerIcon.STYLE_DEFAULT;
+        final PointerIcon pointerIcon = mView.onResolvePointerIcon(event, pointerIndex);
+        final int pointerType = (pointerIcon != null) ?
+                pointerIcon.getType() : PointerIcon.TYPE_DEFAULT;
 
-        if (mPointerIconShape != pointerShape) {
-            mPointerIconShape = pointerShape;
-            if (mPointerIconShape != PointerIcon.STYLE_CUSTOM) {
+        if (mPointerIconType != pointerType) {
+            mPointerIconType = pointerType;
+            if (mPointerIconType != PointerIcon.TYPE_CUSTOM) {
                 mCustomPointerIcon = null;
-                InputManager.getInstance().setPointerIconShape(pointerShape);
+                InputManager.getInstance().setPointerIconType(pointerType);
                 return true;
             }
         }
-        if (mPointerIconShape == PointerIcon.STYLE_CUSTOM &&
+        if (mPointerIconType == PointerIcon.TYPE_CUSTOM &&
                 !pointerIcon.equals(mCustomPointerIcon)) {
             mCustomPointerIcon = pointerIcon;
             InputManager.getInstance().setCustomPointerIcon(mCustomPointerIcon);
diff --git a/core/java/android/view/inputmethod/EditorInfo.java b/core/java/android/view/inputmethod/EditorInfo.java
index 85893b0..7b7ccae 100644
--- a/core/java/android/view/inputmethod/EditorInfo.java
+++ b/core/java/android/view/inputmethod/EditorInfo.java
@@ -18,11 +18,11 @@
 
 import android.annotation.Nullable;
 import android.os.Bundle;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.InputType;
 import android.text.TextUtils;
-import android.util.LocaleList;
 import android.util.Printer;
 
 /**
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index 2813f0c..622567c 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -42,6 +42,7 @@
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.ParcelableParcel;
@@ -70,7 +71,6 @@
 import android.text.style.TextAppearanceSpan;
 import android.text.style.URLSpan;
 import android.util.DisplayMetrics;
-import android.util.LocaleList;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.ActionMode;
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index a0843c7..a3eed70 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -52,6 +52,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.ParcelableParcel;
@@ -107,7 +108,6 @@
 import android.text.style.UpdateAppearance;
 import android.text.util.Linkify;
 import android.util.AttributeSet;
-import android.util.LocaleList;
 import android.util.Log;
 import android.util.TypedValue;
 import android.view.AccessibilityIterators.TextSegmentIterator;
@@ -6005,19 +6005,21 @@
     }
 
     @Override
-    public PointerIcon getPointerIcon(MotionEvent event, float x, float y) {
+    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
         if (mText instanceof Spannable && mLinksClickable) {
+            final float x = event.getX(pointerIndex);
+            final float y = event.getY(pointerIndex);
             final int offset = getOffsetForPosition(x, y);
             final ClickableSpan[] clickables = ((Spannable) mText).getSpans(offset, offset,
                     ClickableSpan.class);
             if (clickables.length > 0) {
-                return PointerIcon.getSystemIcon(mContext, PointerIcon.STYLE_HAND);
+                return PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_HAND);
             }
         }
         if (isTextSelectable() || isTextEditable()) {
-            return PointerIcon.getSystemIcon(mContext, PointerIcon.STYLE_TEXT);
+            return PointerIcon.getSystemIcon(mContext, PointerIcon.TYPE_TEXT);
         }
-        return super.getPointerIcon(event, x, y);
+        return super.onResolvePointerIcon(event, pointerIndex);
     }
 
     @Override
diff --git a/core/java/com/android/internal/app/LocaleHelper.java b/core/java/com/android/internal/app/LocaleHelper.java
index 7e9587a..106999b 100644
--- a/core/java/com/android/internal/app/LocaleHelper.java
+++ b/core/java/com/android/internal/app/LocaleHelper.java
@@ -18,7 +18,7 @@
 
 import android.icu.text.ListFormatter;
 import android.icu.util.ULocale;
-import android.util.LocaleList;
+import android.os.LocaleList;
 
 import java.text.Collator;
 import java.util.Comparator;
diff --git a/core/java/com/android/internal/app/LocalePicker.java b/core/java/com/android/internal/app/LocalePicker.java
index b1b019c..472f583 100644
--- a/core/java/com/android/internal/app/LocalePicker.java
+++ b/core/java/com/android/internal/app/LocalePicker.java
@@ -26,9 +26,9 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.os.Bundle;
+import android.os.LocaleList;
 import android.os.RemoteException;
 import android.provider.Settings;
-import android.util.LocaleList;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
diff --git a/core/java/com/android/internal/app/LocalePickerWithRegion.java b/core/java/com/android/internal/app/LocalePickerWithRegion.java
index ea62899..04929a7 100644
--- a/core/java/com/android/internal/app/LocalePickerWithRegion.java
+++ b/core/java/com/android/internal/app/LocalePickerWithRegion.java
@@ -21,8 +21,8 @@
 import android.app.ListFragment;
 import android.content.Context;
 import android.os.Bundle;
+import android.os.LocaleList;
 import android.text.TextUtils;
-import android.util.LocaleList;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
diff --git a/core/java/com/android/internal/app/procstats/ProcessState.java b/core/java/com/android/internal/app/procstats/ProcessState.java
index 80d6070..8c5df08 100644
--- a/core/java/com/android/internal/app/procstats/ProcessState.java
+++ b/core/java/com/android/internal/app/procstats/ProcessState.java
@@ -277,7 +277,7 @@
         if (!mDead) {
             return;
         }
-        Slog.wtfStack(TAG, "ProcessState dead: name=" + mName
+        Slog.w(TAG, "ProcessState dead: name=" + mName
                 + " pkg=" + mPackage + " uid=" + mUid + " common.name=" + mCommonProcess.mName);
     }
 
diff --git a/core/java/com/android/internal/inputmethod/InputMethodUtils.java b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
index 6dc0c60..a028449 100644
--- a/core/java/com/android/internal/inputmethod/InputMethodUtils.java
+++ b/core/java/com/android/internal/inputmethod/InputMethodUtils.java
@@ -26,13 +26,13 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.os.LocaleList;
 import android.os.RemoteException;
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.text.TextUtils.SimpleStringSplitter;
 import android.util.ArrayMap;
 import android.util.ArraySet;
-import android.util.LocaleList;
 import android.util.Pair;
 import android.util.Printer;
 import android.util.Slog;
diff --git a/core/java/com/android/internal/inputmethod/LocaleUtils.java b/core/java/com/android/internal/inputmethod/LocaleUtils.java
index 2aa660e..b18f83c 100644
--- a/core/java/com/android/internal/inputmethod/LocaleUtils.java
+++ b/core/java/com/android/internal/inputmethod/LocaleUtils.java
@@ -22,7 +22,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.icu.util.ULocale;
-import android.util.LocaleList;
+import android.os.LocaleList;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/core/java/com/android/internal/os/PathClassLoaderFactory.java b/core/java/com/android/internal/os/PathClassLoaderFactory.java
index e5d3694..06a93b2 100644
--- a/core/java/com/android/internal/os/PathClassLoaderFactory.java
+++ b/core/java/com/android/internal/os/PathClassLoaderFactory.java
@@ -16,6 +16,8 @@
 
 package com.android.internal.os;
 
+import android.os.Trace;
+
 import dalvik.system.PathClassLoader;
 
 /**
@@ -40,11 +42,13 @@
                                                     boolean isNamespaceShared) {
         PathClassLoader pathClassloader = new PathClassLoader(dexPath, librarySearchPath, parent);
 
+        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "createClassloaderNamespace");
         String errorMessage = createClassloaderNamespace(pathClassloader,
                                                          targetSdkVersion,
                                                          librarySearchPath,
                                                          libraryPermittedPath,
                                                          isNamespaceShared);
+        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
 
         if (errorMessage != null) {
             throw new UnsatisfiedLinkError("Unable to create namespace for the classloader " +
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index a3e41e4..006d1ec 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -28,6 +28,7 @@
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.Trace;
+import android.security.keystore.AndroidKeyStoreProvider;
 import android.system.ErrnoException;
 import android.system.Os;
 import android.system.OsConstants;
@@ -223,7 +224,7 @@
     }
 
     /**
-     * Warm up the providers that are already registered.
+     * Register AndroidKeyStoreProvider and warm up the providers that are already registered.
      *
      * By doing it here we avoid that each app does it when requesting a service from the
      * provider for the first time.
@@ -231,12 +232,23 @@
     private static void warmUpJcaProviders() {
         long startTime = SystemClock.uptimeMillis();
         Trace.traceBegin(
+                Trace.TRACE_TAG_DALVIK, "Starting installation of AndroidKeyStoreProvider");
+        // AndroidKeyStoreProvider.install() manipulates the list of JCA providers to insert
+        // preferred providers. Note this is not done via security.properties as the JCA providers
+        // are not on the classpath in the case of, for example, raw dalvikvm runtimes.
+        AndroidKeyStoreProvider.install();
+        Log.i(TAG, "Installed AndroidKeyStoreProvider in "
+                + (SystemClock.uptimeMillis() - startTime) + "ms.");
+        Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+
+        startTime = SystemClock.uptimeMillis();
+        Trace.traceBegin(
                 Trace.TRACE_TAG_DALVIK, "Starting warm up of JCA providers");
         for (Provider p : Security.getProviders()) {
             p.warmUpServiceProvision();
         }
         Log.i(TAG, "Warmed up JCA providers in "
-                + (SystemClock.uptimeMillis()-startTime) + "ms.");
+                + (SystemClock.uptimeMillis() - startTime) + "ms.");
         Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
     }
 
diff --git a/core/java/com/android/internal/policy/BackdropFrameRenderer.java b/core/java/com/android/internal/policy/BackdropFrameRenderer.java
index b781fd4..28281b3c 100644
--- a/core/java/com/android/internal/policy/BackdropFrameRenderer.java
+++ b/core/java/com/android/internal/policy/BackdropFrameRenderer.java
@@ -109,9 +109,15 @@
             Drawable captionBackgroundDrawableDrawable, Drawable userCaptionBackgroundDrawable,
             int statusBarColor, int navigationBarColor) {
         mDecorView = decorView;
-        mResizingBackgroundDrawable = resizingBackgroundDrawable;
-        mCaptionBackgroundDrawable = captionBackgroundDrawableDrawable;
-        mUserCaptionBackgroundDrawable = userCaptionBackgroundDrawable;
+        mResizingBackgroundDrawable = resizingBackgroundDrawable != null
+                ? resizingBackgroundDrawable.getConstantState().newDrawable()
+                : null;
+        mCaptionBackgroundDrawable = captionBackgroundDrawableDrawable != null
+                ? captionBackgroundDrawableDrawable.getConstantState().newDrawable()
+                : null;
+        mUserCaptionBackgroundDrawable = userCaptionBackgroundDrawable != null
+                ? userCaptionBackgroundDrawable.getConstantState().newDrawable()
+                : null;
         if (mCaptionBackgroundDrawable == null) {
             mCaptionBackgroundDrawable = mResizingBackgroundDrawable;
         }
diff --git a/core/jni/android_view_PointerIcon.cpp b/core/jni/android_view_PointerIcon.cpp
index 71be52e..6b634df 100644
--- a/core/jni/android_view_PointerIcon.cpp
+++ b/core/jni/android_view_PointerIcon.cpp
@@ -32,7 +32,7 @@
 
 static struct {
     jclass clazz;
-    jfieldID mStyle;
+    jfieldID mType;
     jfieldID mBitmap;
     jfieldID mHotSpotX;
     jfieldID mHotSpotY;
@@ -78,7 +78,7 @@
 
 status_t android_view_PointerIcon_getLoadedIcon(JNIEnv* env, jobject pointerIconObj,
         PointerIcon* outPointerIcon) {
-    outPointerIcon->style = env->GetIntField(pointerIconObj, gPointerIconClassInfo.mStyle);
+    outPointerIcon->style = env->GetIntField(pointerIconObj, gPointerIconClassInfo.mType);
     outPointerIcon->hotSpotX = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotX);
     outPointerIcon->hotSpotY = env->GetFloatField(pointerIconObj, gPointerIconClassInfo.mHotSpotY);
 
@@ -128,8 +128,8 @@
     gPointerIconClassInfo.mBitmap = GetFieldIDOrDie(env, gPointerIconClassInfo.clazz,
             "mBitmap", "Landroid/graphics/Bitmap;");
 
-    gPointerIconClassInfo.mStyle = GetFieldIDOrDie(env, gPointerIconClassInfo.clazz,
-            "mStyle", "I");
+    gPointerIconClassInfo.mType = GetFieldIDOrDie(env, gPointerIconClassInfo.clazz,
+            "mType", "I");
 
     gPointerIconClassInfo.mHotSpotX = GetFieldIDOrDie(env, gPointerIconClassInfo.clazz,
             "mHotSpotX", "F");
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 6af9ef2..d12e34c 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2796,7 +2796,7 @@
             <flag name="end" value="0x20" />
         </attr>
 
-        <attr name="pointerShape">
+        <attr name="pointerIcon">
             <!-- Null icon, pointer becomes invisible. -->
             <enum name="none" value="0" />
             <!-- The default icon of arrow pointer. -->
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 8c5cb47..6c4340a 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -2281,6 +2281,8 @@
          activities launched in the task. That is if the root activity of a task set minimal width,
          then the system will set the same minimal width on all other activities in the task. It
          will also ignore any other minimal width attributes of non-root activities. -->
+        <attr name="minWidth" />
+        <!-- @removed -->
         <attr name="minimalWidth" format="dimension" />
         <!-- Minimal height of the activity.
 
@@ -2288,6 +2290,8 @@
          activities launched in the task. That is if the root activity of a task set minimal height,
          then the system will set the same minimal height on all other activities in the task. It
          will also ignore any other minimal height attributes of non-root activities. -->
+        <attr name="minHeight" />
+        <!-- @removed -->
         <attr name="minimalHeight" format="dimension" />
     </declare-styleable>
 
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index e64d905..ad02d29 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1127,6 +1127,9 @@
          specified -->
     <string name="default_wallpaper_component" translatable="false">@null</string>
 
+    <!-- By default a product has no distinct default lock wallpaper -->
+    <item name="default_lock_wallpaper" type="drawable">@null</item>
+
     <!-- Component name of the built in wallpaper used to display bitmap wallpapers. This must not be null. -->
     <string name="image_wallpaper_component" translatable="false">com.android.systemui/com.android.systemui.ImageWallpaper</string>
 
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index c91e09f..ac48184 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2664,6 +2664,7 @@
     <public type="attr" name="subMenuArrow" />
     <public type="attr" name="defaultWidth" />
     <public type="attr" name="defaultHeight" />
+    <!-- @removed -->
     <public type="attr" name="minimalWidth" />
     <public type="attr" name="resizeableActivity" />
     <public type="attr" name="supportsPictureInPicture" />
@@ -2684,7 +2685,7 @@
     <public type="attr" name="preferenceFragmentStyle" />
     <public type="attr" name="canControlMagnification" />
     <public type="attr" name="languageTag" />
-    <public type="attr" name="pointerShape" />
+    <public type="attr" name="pointerIcon" />
     <public type="attr" name="tickMark" />
     <public type="attr" name="tickMarkTint" />
     <public type="attr" name="tickMarkTintMode" />
@@ -2709,6 +2710,7 @@
     <public type="attr" name="fillType" />
     <public type="attr" name="popupEnterTransition" />
     <public type="attr" name="popupExitTransition" />
+    <!-- @removed -->
     <public type="attr" name="minimalHeight" />
     <public type="attr" name="forceHasOverlappingRendering" />
     <public type="attr" name="contentInsetStartWithNavigation" />
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 9b7fbd8..3f1de6d 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1140,6 +1140,7 @@
   <java-symbol type="array" name="config_colorTransforms" />
 
   <java-symbol type="drawable" name="default_wallpaper" />
+  <java-symbol type="drawable" name="default_lock_wallpaper" />
   <java-symbol type="drawable" name="indicator_input_error" />
   <java-symbol type="drawable" name="popup_bottom_dark" />
   <java-symbol type="drawable" name="popup_bottom_bright" />
diff --git a/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java b/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
index d4bb0f3..39a2907 100644
--- a/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
+++ b/core/tests/coretests/src/android/content/res/ResourcesManagerTest.java
@@ -18,9 +18,9 @@
 import android.annotation.NonNull;
 import android.app.ResourcesManager;
 import android.os.Binder;
+import android.os.LocaleList;
 import android.support.test.filters.SmallTest;
 import android.util.DisplayMetrics;
-import android.util.LocaleList;
 import android.util.TypedValue;
 import android.view.Display;
 import junit.framework.TestCase;
diff --git a/core/tests/coretests/src/android/util/LocaleListTest.java b/core/tests/coretests/src/android/os/LocaleListTest.java
similarity index 98%
rename from core/tests/coretests/src/android/util/LocaleListTest.java
rename to core/tests/coretests/src/android/os/LocaleListTest.java
index de1382d..17ef773 100644
--- a/core/tests/coretests/src/android/util/LocaleListTest.java
+++ b/core/tests/coretests/src/android/os/LocaleListTest.java
@@ -13,10 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.util;
+package android.os;
 
 import android.test.suitebuilder.annotation.SmallTest;
-import android.util.LocaleList;
 
 import java.util.Locale;
 
diff --git a/core/tests/coretests/src/android/print/BasePrintTest.java b/core/tests/coretests/src/android/print/BasePrintTest.java
index d56a405..2c2ee8c 100644
--- a/core/tests/coretests/src/android/print/BasePrintTest.java
+++ b/core/tests/coretests/src/android/print/BasePrintTest.java
@@ -29,6 +29,7 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.os.CancellationSignal;
+import android.os.LocaleList;
 import android.os.ParcelFileDescriptor;
 import android.os.SystemClock;
 import android.print.PrintAttributes;
@@ -43,7 +44,6 @@
 import android.printservice.PrintService;
 import android.test.InstrumentationTestCase;
 import android.util.DisplayMetrics;
-import android.util.LocaleList;
 
 import org.mockito.stubbing.Answer;
 
diff --git a/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodUtilsTest.java b/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodUtilsTest.java
index 6b5e4ad..97ea885 100644
--- a/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodUtilsTest.java
+++ b/core/tests/coretests/src/com/android/internal/inputmethod/InputMethodUtilsTest.java
@@ -22,12 +22,12 @@
 import android.content.pm.ServiceInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.test.InstrumentationTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.ArrayMap;
 import android.util.ArraySet;
-import android.util.LocaleList;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder;
 import android.view.inputmethod.InputMethodSubtype;
diff --git a/core/tests/coretests/src/com/android/internal/inputmethod/LocaleUtilsTest.java b/core/tests/coretests/src/com/android/internal/inputmethod/LocaleUtilsTest.java
index deba40f..cd339fb 100644
--- a/core/tests/coretests/src/com/android/internal/inputmethod/LocaleUtilsTest.java
+++ b/core/tests/coretests/src/com/android/internal/inputmethod/LocaleUtilsTest.java
@@ -16,9 +16,9 @@
 
 package com.android.internal.inputmethod;
 
+import android.os.LocaleList;
 import android.test.InstrumentationTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
-import android.util.LocaleList;
 
 import java.util.ArrayList;
 import java.util.Locale;
diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml
index 4a2f232..4211c6f 100644
--- a/docs/html/_redirects.yaml
+++ b/docs/html/_redirects.yaml
@@ -834,11 +834,11 @@
 - from: /r/studio-ui/avd-manager.html
   to: /studio/run/managing-avds.html
 - from: /r/studio-ui/rundebugconfig.html
-  to: /studio/run/emulator.html
+  to: /studio/run/index.html
 - from: /r/studio-ui/devicechooser.html
   to: /studio/run/emulator.html
 - from: /r/studio-ui/virtualdeviceconfig.html
-  to: /studio/run/emulator.html
+  to: /studio/run/managing-avds.html
 - from: /r/studio-ui/emulator.html
   to: /studio/run/emulator.html
 - from: /r/studio-ui/instant-run.html
@@ -983,6 +983,8 @@
   to: /studio/test/monkeyrunner/index.html
 - from: /tools/help/MonkeyRunner.html
   to: /studio/test/monkeyrunner/MonkeyRunner.html
+- from: /tools/help/monitor.html
+  to: /studio/profile/monitor.html
 - from: /tools/help/proguard.html
   to: /studio/build/shrink-code.html
 - from: /tools/help/sdk-manager.html
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index c61837b..31e37bf 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -247,86 +247,86 @@
   {"api":0},{"api":1},{"api":2},{"api":3},
   {
     "api":4,
-    "link":"<a href='/about/versions/android-1.6.html'>1.6</a>",
+    "link":'<a href="/about/versions/android-1.6.html">1.6</a>',
     "codename":"Donut",
   },
   { "api":5},
   { "api":6},
   {
     "api":7,
-    "link":"<a href='/about/versions/android-2.1.html'>2.1</a>",
+    "link":'<a href="/about/versions/android-2.1.html">2.1</a>',
     "codename":"Eclair",
   },
   {
     "api":8,
-    "link":"<a href='/about/versions/android-2.2.html'>2.2</a>",
+    "link":'<a href="/about/versions/android-2.2.html">2.2</a>',
     "codename":"Froyo"
   },
   {
     "api":9,
-    "link":"<a href='/about/versions/android-2.3.html'>2.3 -<br>2.3.2</a>",
+    "link":'<a href="/about/versions/android-2.3.html">2.3 -<br>2.3.2</a>',
     "codename":"Gingerbread"
   },
   {
     "api":10,
-    "link":"<a href='/about/versions/android-2.3.3.html'>2.3.3 -<br>2.3.7</a>",
+    "link":'<a href="/about/versions/android-2.3.3.html">2.3.3 -<br>2.3.7</a>',
     "codename":"Gingerbread"
   },
   { "api":11},
   {
     "api":12,
-    "link":"<a href='/about/versions/android-3.1.html'>3.1</a>",
+    "link":'<a href="/about/versions/android-3.1.html">3.1</a>',
     "codename":"Honeycomb"
   },
   {
     "api":13,
-    "link":"<a href='/about/versions/android-3.2.html'>3.2</a>",
+    "link":'<a href="/about/versions/android-3.2.html">3.2</a>',
     "codename":"Honeycomb"
   },
   { "api":14},
   {
     "api":15,
-    "link":"<a href='/about/versions/android-4.0.html'>4.0.3 -<br>4.0.4</a>",
+    "link":'<a href="/about/versions/android-4.0.html">4.0.3 -<br>4.0.4</a>',
     "codename":"Ice Cream Sandwich"
   },
   {
     "api":16,
-    "link":"<a href='/about/versions/android-4.1.html'>4.1.x</a>",
+    "link":'<a href="/about/versions/android-4.1.html">4.1.x</a>',
     "codename":"Jelly Bean"
   },
   {
     "api":17,
-    "link":"<a href='/about/versions/android-4.2.html'>4.2.x</a>",
+    "link":'<a href="/about/versions/android-4.2.html">4.2.x</a>',
     "codename":"Jelly Bean"
   },
   {
     "api":18,
-    "link":"<a href='/about/versions/android-4.3.html'>4.3</a>",
+    "link":'<a href="/about/versions/android-4.3.html">4.3</a>',
     "codename":"Jelly Bean"
   },
   {
     "api":19,
-    "link":"<a href='/about/versions/android-4.4.html'>4.4</a>",
+    "link":'<a href="/about/versions/android-4.4.html">4.4</a>',
     "codename":"KitKat"
   },
   {
     "api":20,
-    "link":"<a href='/about/versions/android-4.4.html'>4.4W</a>",
+    "link":'<a href="/about/versions/android-4.4.html">4.4W</a>',
     "codename":"KitKat for Wear"
   },
   {
     "api":21,
-    "link":"<a href='/about/versions/android-5.0.html'>5.0</a>",
+    "link":'<a href="/about/versions/android-5.0.html">5.0</a>',
     "codename":"Lollipop"
   },
   {
     "api":22,
-    "link":"<a href='/about/versions/android-5.1.html'>5.1</a>",
+    "link":'<a href="/about/versions/android-5.1.html">5.1</a>',
     "codename":"Lollipop"
   },
   {
     "api":23,
-    "link":"<a href='/about/versions/marshmallow/index.html'>6.0</a>",
+    "link":'<a href="/about/versions/marshmallow/index.html">6.0</a>',
     "codename":"Marshmallow"
   }
 ];
diff --git a/docs/html/google/play-services/id.jd b/docs/html/google/play-services/id.jd
index f95ebef..2f0664c 100644
--- a/docs/html/google/play-services/id.jd
+++ b/docs/html/google/play-services/id.jd
@@ -178,7 +178,7 @@
 public void getIdThread() {
   Info adInfo = null;
   try {
-    adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext);
+    adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext.getApplicationContext());
   } catch (IOException e) {
     // Unrecoverable error connecting to Google Play services (e.g.,
     // the old version of the service doesn't support getting AdvertisingId).
diff --git a/docs/html/images/topic/instant-apps/3D-Image-viewer.gif b/docs/html/images/topic/instant-apps/3D-Image-viewer.gif
new file mode 100644
index 0000000..b46f2d9
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/3D-Image-viewer.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/BandH-Photo.gif b/docs/html/images/topic/instant-apps/BandH-Photo.gif
new file mode 100644
index 0000000..fa2cdfc
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/BandH-Photo.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/Buzzfeed.gif b/docs/html/images/topic/instant-apps/Buzzfeed.gif
new file mode 100644
index 0000000..af7cc66
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/Buzzfeed.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/Park-and-Pay.gif b/docs/html/images/topic/instant-apps/Park-and-Pay.gif
new file mode 100644
index 0000000..f5cbfb0
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/Park-and-Pay.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/instant-apps-section-2.png b/docs/html/images/topic/instant-apps/instant-apps-section-2.png
new file mode 100644
index 0000000..8060c57
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/instant-apps-section-2.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/instant-apps-section-4.png b/docs/html/images/topic/instant-apps/instant-apps-section-4.png
new file mode 100644
index 0000000..8e0fcf8
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/instant-apps-section-4.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/instant-apps-section-5.png b/docs/html/images/topic/instant-apps/instant-apps-section-5.png
new file mode 100644
index 0000000..e92ec80
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/instant-apps-section-5.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/play-services-features-2x.png b/docs/html/images/topic/instant-apps/play-services-features-2x.png
new file mode 100644
index 0000000..098f91c
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/play-services-features-2x.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-BandH-animated.gif b/docs/html/images/topic/instant-apps/s3-BandH-animated.gif
new file mode 100644
index 0000000..4e44f74
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-BandH-animated.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-BandH-static.png b/docs/html/images/topic/instant-apps/s3-BandH-static.png
new file mode 100644
index 0000000..004afb7
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-BandH-static.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-BuzzFeed-animated.gif b/docs/html/images/topic/instant-apps/s3-BuzzFeed-animated.gif
new file mode 100644
index 0000000..7ed534e
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-BuzzFeed-animated.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-BuzzFeed-static.png b/docs/html/images/topic/instant-apps/s3-BuzzFeed-static.png
new file mode 100644
index 0000000..cdd0dc8
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-BuzzFeed-static.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-ParkandPay-animated.gif b/docs/html/images/topic/instant-apps/s3-ParkandPay-animated.gif
new file mode 100644
index 0000000..4a14dc2
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-ParkandPay-animated.gif
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/s3-ParkandPay-static.png b/docs/html/images/topic/instant-apps/s3-ParkandPay-static.png
new file mode 100644
index 0000000..fa9c2bf
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/s3-ParkandPay-static.png
Binary files differ
diff --git a/docs/html/images/topic/instant-apps/upgrade-your-app-2x.png b/docs/html/images/topic/instant-apps/upgrade-your-app-2x.png
new file mode 100644
index 0000000..60fe373
--- /dev/null
+++ b/docs/html/images/topic/instant-apps/upgrade-your-app-2x.png
Binary files differ
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 74bad7b..4909206d 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -744,6 +744,14 @@
       "https://developers.google.com/app-indexing/"
     ]
   },
+  "distribute/users/knowyouruser": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/optimizing-your-app.html",
+      "http://www.youtube.com/watch?v=RRelFvc6Czo",
+      "distribute/stories/games/rvappstudios-zombie.html"
+    ]
+  },
   "distribute/users/promotewithads": {
     "title": "",
     "resources": [
@@ -1872,7 +1880,7 @@
     "resources": [
       "work/overview.html",
       "work/guide.html",
-      "https://connect.googleforwork.com/community/applicants/android/isv",
+      "https://www.google.com/work/android/developers/applyDevHub/",
       "work/app-restrictions.html",
       "work/cosu.html",
       "work/managed-profiles.html"
diff --git a/docs/html/jd_extras.js b/docs/html/jd_extras.js
index ed8b54f..546fcfe 100644
--- a/docs/html/jd_extras.js
+++ b/docs/html/jd_extras.js
@@ -2251,6 +2251,19 @@
     "lang": "en",
     "group": "",
     "tags": [],
+    "url": "http://www.youtube.com/watch?v=RRelFvc6Czo",
+    "timestamp": null,
+    "image": "https://i1.ytimg.com/vi/RRelFvc6Czo/maxresdefault.jpg",
+    "title": "Android Developer Story: Smule",
+    "summary": "The creators of AutoRap, Magic Piano, and Songify talk about their experiences launching on Android and the explosive global growth they've seen on Google Play.",
+    "keywords": ["success", "users"],
+    "type": "video",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
     "url": "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
     "timestamp": null,
     "image": "images/cards/analytics-mobile_2x.jpg",
@@ -3273,7 +3286,7 @@
     "title":"Join the Android for Work DevHub",
     "titleFriendly":"",
     "summary":"The Android for Work DevHub is a place to help developers keep up with Android in the workplace.",
-    "url":"https://connect.googleforwork.com/community/applicants/android/isv",
+    "url":"https://www.google.com/work/android/developers/applyDevHub/",
     "group":"",
     "keywords": ["work", "enterprise", "isv", "devhub"],
     "tags": [],
diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js
index fca2b17..6485186 100644
--- a/docs/html/jd_extras_en.js
+++ b/docs/html/jd_extras_en.js
@@ -2213,6 +2213,19 @@
     "lang": "en",
     "group": "",
     "tags": [],
+    "url": "http://www.youtube.com/watch?v=RRelFvc6Czo",
+    "timestamp": null,
+    "image": "https://i1.ytimg.com/vi/RRelFvc6Czo/maxresdefault.jpg",
+    "title": "Android Developer Story: Smule",
+    "summary": "The creators of AutoRap, Magic Piano, and Songify talk about their experiences launching on Android and the explosive global growth they've seen on Google Play.",
+    "keywords": ["success", "users"],
+    "type": "video",
+    "titleFriendly": ""
+  },
+  {
+    "lang": "en",
+    "group": "",
+    "tags": [],
     "url": "https://developers.google.com/analytics/solutions/mobile-implementation-guide",
     "timestamp": null,
     "image": "images/cards/analytics-mobile_2x.jpg",
@@ -3292,7 +3305,7 @@
     "title":"Join the Android for Work DevHub",
     "titleFriendly":"",
     "summary":"The Android for Work DevHub is a place to help developers keep up with Android in the workplace.",
-    "url":"https://connect.googleforwork.com/community/applicants/android/isv",
+    "url":"https://www.google.com/work/android/developers/applyDevHub/",
     "group":"",
     "keywords": ["work", "enterprise", "isv", "devhub"],
     "tags": [],
@@ -4405,6 +4418,14 @@
       "https://developers.google.com/app-indexing/"
     ]
   },
+  "distribute/users/knowyouruser": {
+    "title": "",
+    "resources": [
+      "distribute/essentials/optimizing-your-app.html",
+      "http://www.youtube.com/watch?v=RRelFvc6Czo",
+      "distribute/stories/games/rvappstudios-zombie.html"
+    ]
+  },
   "distribute/users/promotewithads": {
     "title": "",
     "resources": [
@@ -5388,7 +5409,7 @@
     "resources": [
       "work/overview.html",
       "work/guide.html",
-      "https://connect.googleforwork.com/community/applicants/android/isv",
+      "https://www.google.com/work/android/developers/applyDevHub/",
       "work/app-restrictions.html",
       "work/cosu.html",
       "work/managed-profiles.html"
diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd
index 1b6da06..c643dc7 100644
--- a/docs/html/preview/api-overview.jd
+++ b/docs/html/preview/api-overview.jd
@@ -9,37 +9,37 @@
 
 <div id="qv-wrapper">
 <div id="qv">
-  <h2>Key developer features</h2>
+  <h2>Key Developer Features</h2>
   <ol>
       <ul style="list-style-type:none;">
-        <li><a href="#multi-window_support">Multi-window support</a></li>
+        <li><a href="#multi-window_support">Multi-window Support</a></li>
         <li><a href="#notification_enhancements">Notifications</a></li>
-        <li><a href="#jit_aot">JIT/AOT compilation</a></li>
-        <li><a href="#quick_path_to_app_install">Quick path to app install</a></li>
-        <li><a href="#doze_on_the_go">Doze on the go</a></li>
-        <li><a href="#background_optimizations">Background optimizations</a></li>
+        <li><a href="#jit_aot">JIT/AOT Compilation</a></li>
+        <li><a href="#quick_path_to_app_install">Quick Path to App Install</a></li>
+        <li><a href="#doze_on_the_go">Doze on the Go</a></li>
+        <li><a href="#background_optimizations">Background Optimizations</a></li>
         <li><a href="#data_saver">Data Saver</a></li>
         <li><a href="#vulkan">Vulkan API</a></li>
         <li><a href="#tile_api">Quick Settings Tile API</a></li>
-        <li><a href="#number-blocking">Number-blocking</a></li>
-        <li><a href="#call_screening">Call screening</a></li>
-        <li><a href="#multi-locale_languages">Locales and languages</a></li>
+        <li><a href="#number-blocking">Number Blocking</a></li>
+        <li><a href="#call_screening">Call Screening</a></li>
+        <li><a href="#multi-locale_languages">Locales and Languages</a></li>
         <li><a href="#emoji">New Emojis</a></li>
         <li><a href="#icu4">ICU4J APIs in Android</a></li>
         <li><a href="#gles_32">OpenGL ES 3.2 API</a></li>
-        <li><a href="#android_tv_recording">Android TV recording</a></li>
+        <li><a href="#android_tv_recording">Android TV Recording</a></li>
         <li><a href="#android_for_work">Android for Work</a></li>
         <li><a href="#accessibility_enhancements">Accessibility</a></li>
         <li><a href="#direct_boot">Direct Boot</a></li>
         <li><a href="#key_attestation">Key Attestation</a></li>
         <li><a href="#network_security_config">Network Security Config</a></li>
         <li><a href="#default_trusted_ca">Default Trusted CA</a></li>
-        <li><a href="#apk_signature_v2">APK signature scheme v2</a></li>
-        <li><a href="#scoped_directory_access">Scoped directory access</a></li>
+        <li><a href="#apk_signature_v2">APK Signature Scheme v2</a></li>
+        <li><a href="#scoped_directory_access">Scoped Directory Access</a></li>
         <li><a href="#keyboard_shortcuts_helper">Keyboard Shortcuts Helper</a></li>
         <li><a href="#sustained_performance_api">Sustained Performance API</a></li>
         <li><a href="#vr">VR Support</a></li>
-        <li><a href="#print_svc">Print service enhancements</a></li>
+        <li><a href="#print_svc">Print Service Enhancements</a></li>
         <li><a href="#virtual_files">Virtual Files</a></li>
         <li><a href="#framemetrics_api">FrameMetricsListener API</a></li>
       </ol>
@@ -61,7 +61,7 @@
   new APIs.
 </p>
 
-<h2 id="multi-window_support">Multi-window support</h2>
+<h2 id="multi-window_support">Multi-window Support</h2>
 
 
 <p>In Android N, we're introducing a new and much-requested multitasking feature
@@ -106,7 +106,7 @@
   developer documentation.
 </p>
 
-<h2 id="notification_enhancements">Notification enhancements</h2>
+<h2 id="notification_enhancements">Notification Enhancements</h2>
 
 <p>In Android N we've redesigned notifications to make them easier and faster to
 use. Some of the changes include:</p>
@@ -172,7 +172,7 @@
 
 
 
-<h2 id="jit_aot">Profile-guided JIT/AOT compilation</h2>
+<h2 id="jit_aot">Profile-guided JIT/AOT Compilation</h2>
 
 <p>In Android N, we've added a Just in Time (JIT) compiler with code profiling to
 ART, which lets it constantly improve the performance of Android apps as they
@@ -194,14 +194,14 @@
 device battery. It does precompilation only when then the device is idle and
 charging, saving time and battery by doing that work in advance.</p>
 
-<h2 id="quick_path_to_app_install">Quick path to app install</h2>
+<h2 id="quick_path_to_app_install">Quick Path to App Install</h2>
 
 <p>One of the most tangible benefits of ART's JIT compiler is the speed of app
 installs and system updates. Even large apps that required several minutes to
 optimize and install in Android 6.0 can now install in just a matter of
 seconds. System updates are also faster, since there's no more optimizing step. </p>
 
-<h2 id="doze_on_the_go">Doze on the go...</h2>
+<h2 id="doze_on_the_go">Doze on the Go...</h2>
 
 <p>Android 6.0 introduced Doze, a system mode that saves battery by deferring
 apps' CPU and network activities when the device is idle, such as when it's
@@ -239,7 +239,7 @@
 href="{@docRoot}training/monitoring-device-state/doze-standby.html#assessing_your_app">adapting
 your app to Doze</a> now.</p>
 
-<h2 id="background_optimizations">Project Svelte: Background optimizations</h2>
+<h2 id="background_optimizations">Project Svelte: Background Optimizations</h2>
 
 <p>Project Svelte is an ongoing effort to minimize RAM use by system and apps
 across the range of Android devices in the ecosystem. In Android N, Project
@@ -410,15 +410,15 @@
 
 
 
-<h2 id="number-blocking">Number-blocking</h2>
+<h2 id="number-blocking">Number Blocking</h2>
 
-<p>Android N now supports number-blocking in the platform and provides a
+<p>Android N now supports number blocking in the platform and provides a
 framework API to let service providers maintain a blocked-number list. The
 default SMS app, the default phone app, and carrier apps can read from and
 write to the blocked-number list. The list is not accessible to other apps.</p>
 
-<p>By making number-blocking a standard feature of the platform, Android provides
-a consistent way for apps to support number-blocking across a wide range of
+<p>By making number blocking a standard feature of the platform, Android provides
+a consistent way for apps to support number blocking across a wide range of
 devices. Among the other benefits that apps can take advantage of are:</p>
 
 <ul>
@@ -439,7 +439,7 @@
   Reference</a>.
 </p>
 
-<h2 id="call_screening">Call screening</h2>
+<h2 id="call_screening">Call Screening</h2>
 
 <p>
   Android N allows the default phone app to screen incoming calls. The phone
@@ -461,7 +461,7 @@
 </p>
 
 
-<h2 id="multi-locale_languages">Multi-locale support, more languages</h2>
+<h2 id="multi-locale_languages">Multi-locale Support, More Languages</h2>
 
 
 <p>Android N now lets users select <strong>multiple locales</strong> in Settings,
@@ -570,7 +570,7 @@
 href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL ES API guide</a>.</p>
 
 
-<h2 id="android_tv_recording">Android TV recording</h2>
+<h2 id="android_tv_recording">Android TV Recording</h2>
 
 <p>Android N adds the ability to record and playback content from Android TV input
 services via new recording APIs.  Building on top of existing time-shifting
@@ -653,7 +653,7 @@
   customizes the flow with a corporate logo.
 </p>
 
-<h2 id="accessibility_enhancements">Accessibility enhancements</h2>
+<h2 id="accessibility_enhancements">Accessibility Enhancements</h2>
 
 <p>Android N now offers Vision Settings directly on the Welcome screen for new
 device setup. This makes it much easier for users to discover and configure
@@ -674,7 +674,7 @@
   in the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.</p>
 
 
-<h2 id="direct_boot">Direct boot</h2>
+<h2 id="direct_boot">Direct Boot</h2>
 
 <p>Direct boot improves device startup times and lets registered
 apps have limited functionality even after an unexpected reboot.
@@ -779,7 +779,7 @@
 <a href="{@docRoot}preview/features/security-config.html">Network Security Config</a> to
 specify how user CAs should be trusted.</p>
 
-<h2 id="apk_signature_v2">APK signature scheme v2</h2>
+<h2 id="apk_signature_v2">APK Signature Scheme v2</h2>
 
 <p>
   Android N introduces APK Signature Scheme v2, a new app-signing scheme that
@@ -830,7 +830,7 @@
   the build file for signing apps</a> using the Android Plugin for Gradle.
 </p>
 
-<h2 id="scoped_directory_access">Scoped directory access</h2>
+<h2 id="scoped_directory_access">Scoped Directory Access</h2>
 
 <p>In Android N, apps can use new APIs to request access to specific <a
 href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">external
@@ -897,11 +897,14 @@
 <h2 id="vr">VR Support</h2>
 
 <p>
-Leveraging the <a href="#sustained_performance_api">Sustained Performance API</a>
-and newly introduced {@code VrListenerService} class, Android N provides support for
-VR apps developed using the <a href="https://developers.google.com/cardboard/overview">Cardboard
-SDK</a>. For more information about the {@code VrListenerService} class, see the relevant section
-of the downloadable <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.
+Android N adds platform support and optimizations for a new VR Mode to let developers
+build high-quality mobile VR experiences for users. There are a number of performance
+enhancements, including access to an exclusive CPU core for VR apps.
+Within your apps, you can take advantage of intelligent head-tracking,
+and stereo notifications that work for VR. Most importantly, Android N provides for
+very low latency graphics. For complete information about building VR apps for Android N,
+see the <a href="https://developers.google.com/vr/android/">Google VR SDK for Android</a>.
+</p>
 
 
 <h2 id="print_svc">Print Service Enhancements</h2>
@@ -951,9 +954,8 @@
 The FrameMetricsListener API allows an app to monitor its UI rendering
 performance. The API provides this capability by exposing a streaming Pub/Sub API to transfer frame
 timing info for the app's current window. The data returned is
-equivalent to that displayed by {@code
-<a href="{@docRoot}tools/help/shell.html#shellcommands">adb shell</a> dumpsys gfxinfo framestats},
-but is not limited to the past 120 frames.
+equivalent to that which <code><a href="{@docRoot}tools/help/shell.html#shellcommands">adb shell</a>
+dumpsys gfxinfo framestats</code> displays, but is not limited to the past 120 frames.
 </p>
 
 <p>
diff --git a/docs/html/preview/behavior-changes.jd b/docs/html/preview/behavior-changes.jd
index 110ad5f..66dce7a 100644
--- a/docs/html/preview/behavior-changes.jd
+++ b/docs/html/preview/behavior-changes.jd
@@ -56,14 +56,13 @@
 </p>
 
 
-<h2 id="perf">Performance Improvements</h2>
+<h2 id="perf">Battery and Memory</h2>
 
 <p>
-  Android N contains system behavior changes aimed at improving the battery
-  life of devices, RAM usage, and app performance. These changes can impact the
-  availability of system resources and system notifications to your app. You
-  should review these changes and evaluate how your app may need to adjust to
-  them.
+Android N includes system behavior changes aimed at improving the battery life
+of devices and reducing RAM usage. These changes can affect your app’s access to
+system resources, along with the way your app interacts with other apps via
+certain implicit intents.
 </p>
 
 <h3 id="doze">Doze</h3>
@@ -139,7 +138,7 @@
 </p>
 
 <p>
-  Similarly, apps can register to receive implicit {@link
+  Similarly, in previous versions of Android, apps could register to receive implicit {@link
   android.hardware.Camera#ACTION_NEW_PICTURE} and {@link
   android.hardware.Camera#ACTION_NEW_VIDEO} broadcasts from other apps, such as
   Camera. When a user takes a picture with the Camera app, these apps wake up
diff --git a/docs/html/preview/download-ota.jd b/docs/html/preview/download-ota.jd
index 7e70f57..2058501 100644
--- a/docs/html/preview/download-ota.jd
+++ b/docs/html/preview/download-ota.jd
@@ -203,72 +203,72 @@
   <tr id="bullhead">
     <td>Nexus 5X <br>"bullhead"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-ota-npc91k-dfcbfda0.zip</a><br>
-      MD5: af537dc0c06e85f32a929c10aaf12e0a<br>
-      SHA-1: 12a32b09223eb8f98bc0f0f05d951789d5fbe12e
+      >bullhead-ota-npd35k-b8cfbd80.zip</a><br>
+      MD5: 15fe2eba9b01737374196bdf0a792fe9<br>
+      SHA-1: 5014b2bba77f9e1a680ac3f90729621c85a14283
     </td>
   </tr>
 
   <tr id="shamu">
     <td>Nexus 6 <br>"shamu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >shamu-ota-npc91k-201dd8d1.zip</a><br>
-      MD5: 016d60b4734151ca70d977c04d737487<br>
-      SHA-1: 09ca7c0712366c53e61abb7a6142ce703e2ac62c
+      >shamu-ota-npd35k-078e6fa5.zip</a><br>
+      MD5: e8b12f7721c53af9a450f7058928a5fc<br>
+      SHA-1: b7a9b756f84a1d2e482ff9c16749d65f6e51425a
     </td>
   </tr>
 
   <tr id="angler">
     <td>Nexus 6P <br>"angler"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >angler-ota-npc91k-7399f083.zip</a><br>
-      MD5: eacc5307ef4f00ba4b61ac9c1620def9<br>
-      SHA-1: 6a9f36cad4bd8fd63e7719c00e0b75bd991614ff
+      >angler-ota-npd35k-88457699.zip</a><br>
+      MD5: 3fac09fef759dde26e57cb80b20b6477<br>
+      SHA-1: 27d6caa786577d8a38b2da5bf94b33b4524a1a1c
     </td>
   </tr>
 
   <tr id="volantis">
     <td>Nexus 9 <br>"volantis"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >volantis-ota-npc91k-42fc9c84.zip</a><br>
-      MD5: e1f3f5504aa3389ef4fbac7ac42a995f<br>
-      SHA-1: 1e49e2867479ad1a1c58f52584c62575bb9c2c3b
+      >volantis-ota-npd35k-51dbae76.zip</a><br>
+      MD5: 58312c4a5971818ef5c77a3f446003da<br>
+      SHA-1: aad9005be33d3e2bab480509a6ab74c3c3b9d921
     </td>
   </tr>
 
   <tr id="volantisg">
     <td>Nexus 9G <br>"volantisg"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-ota-npc91k-4aa98b9f.zip</a><br>
-      MD5: ad2e60aa9b1a063f906eb8904388e5f8<br>
-      SHA-1: 4edfa8ab5d2d02ec46afffce62466aa715420558
+      >volantisg-ota-npd35k-834f047f.zip</a><br>
+      MD5: 92b7d1fa252f7394e70f957c72d4aac8<br>
+      SHA-1: b6c057c84d90893630e303cbb60530e20ddb8361
     </td>
   </tr>
 
   <tr id="fugu">
     <td>Nexus Player <br>"fugu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >fugu-ota-npc91o-b1d73dd5.zip</a><br>
-      MD5: d7fbccde75e0b6d860102320ea76d58f<br>
-      SHA-1: b1d73dd5a6498fb6c66e022bd0a6c8b6a6a2374b
+      >fugu-ota-npd35k-6ac91298.zip</a><br>
+      MD5: 1461622ad53ea842b2722fa7b49b8172<br>
+      SHA-1: 409c061668ab270774877d7f3eae44fa48d2b931
     </td>
   </tr>
 
   <tr id="ryu">
     <td>Pixel C <br>"ryu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >ryu-ota-npc91k-80971fa8.zip</a><br>
-      MD5: 9d66ca3c5673586bb5ade9fdda6fb924<br>
-      SHA-1: 329209b6f1ee08a29e4be32139672a30901a19b7
+      >ryu-ota-npd35k-a0b2347f.zip</a><br>
+      MD5: c60117f3640cc6db12386fd632289c7d<br>
+      SHA-1: 87349c767c69efb4172c90ce1d88cf578c3d28b3
     </td>
   </tr>
 
   <tr id="seed">
     <td>General Mobile 4G (Android One) <br>"seed"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-ota-npc91k-8e8c8777.zip</a><br>
-      MD5: d21d417d7b5525633b5f7bcfa8b23245<br>
-      SHA-1: bfe42c7e291ca667d3f4d7c80825e5cf8830fc9a
+      >seed_l8150-ota-npd35k-09897a1d.zip</a><br>
+      MD5: a55cf94f7cce0393ec6c0b35041766b7<br>
+      SHA-1: 6f33742290eb46f2561891f38ca2e754b4e50c6a
     </td>
   </tr>
 
diff --git a/docs/html/preview/download.jd b/docs/html/preview/download.jd
index b0f5369..b5405c7 100644
--- a/docs/html/preview/download.jd
+++ b/docs/html/preview/download.jd
@@ -302,72 +302,81 @@
   <tr id="bullhead">
     <td>Nexus 5X <br>"bullhead"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >bullhead-npc91k-factory-d09b15b5.tgz</a><br>
-      MD5: f5aa4b0b10213435569ed4833dd973f8<br>
-      SHA-1: d09b15b5f8978e2fee3fbd799554de90b7012d64
+      >bullhead-npd35k-factory-5ba40535.tgz</a><br>
+      MD5: b6c5d79a21815ee21db41822dcf61e9f<br>
+      SHA-1: 5ba4053577007d15c96472206e3a79bc80ab194c
     </td>
   </tr>
 
   <tr id="shamu">
     <td>Nexus 6 <br>"shamu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >shamu-npc91k-factory-7c9936dc.tgz</a><br>
-      MD5: 271b758d01f61cdef71a3e4c14e90e85<br>
-      SHA-1: 7c9936dca492dd9a5b279612962e3439031fcc06
+      >shamu-npd35k-factory-a33bf20c.tgz</a><br>
+      MD5: e1cf9c57cfb11bebe7f1f5bfbf05d7ab<br>
+      SHA-1: a33bf20c719206bcf08d1edd8da6c0ff9d50f69c
     </td>
   </tr>
 
   <tr id="angler">
     <td>Nexus 6P <br>"angler"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >angler-npc91k-factory-dcd13c44.tgz</a><br>
-      MD5: 3f304dc1d5044768af26c8503d3fbf18<br>
-      SHA-1: dcd13c44e7254916fcf7cb7fa31e0dc03737a3f5
+      >angler-npd35k-factory-81c341d5.tgz</a><br>
+      MD5: e93de7949433339856124c3729c15ebb<br>
+      SHA-1: 81c341d57ef2cd139569b055d5d59e9e592a7abd
     </td>
   </tr>
 
   <tr id="volantis">
     <td>Nexus 9 <br>"volantis"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >volantis-npc91k-factory-ed835af7.tgz</a><br>
-      MD5: 466a9873111a320e5a19891de61e5609<br>
-      SHA-1: ed835af7bebf26d4c12b5c30c8b1a337c06c9623
+      >volantis-npd35k-factory-2b50e19d.tgz</a><br>
+      MD5: 565be87ebb2d5937e2abe1a42645864b<br>
+      SHA-1: 2b50e19dae2667b27f911e3c61ed64860caf43e1
     </td>
   </tr>
 
   <tr id="volantisg">
     <td>Nexus 9G <br>"volantisg"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >volantisg-npc91k-factory-6f20b9f6.tgz</a><br>
-      MD5: 419f76cdf886b18d2e7281915b9c77b0<br>
-      SHA-1: 6f20b9f6b0d77dc17793db32cd2da5a0b0aa63c9
+      >volantisg-npd35k-factory-2e89ebe6.tgz</a><br>
+      MD5: a8464e15c6683fe2afa378a63e205fda<br>
+      SHA-1: 2e89ebe67a46b2f3beb050746c13341cd11fa678
     </td>
   </tr>
 
   <tr id="fugu">
     <td>Nexus Player <br>"fugu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >fugu-npc91o-factory-3b8e3f56.tgz</a><br>
-      MD5: b88b70ecbfb80c983c90b97cb243628b<br>
-      SHA-1: 3b8e3f56a4c35b559783c2928e740df2aab8b377
+      >fugu-npd35k-factory-1de74874.tgz</a><br>
+      MD5: c0dbb7db671f61b2785da5001cedefcb<br>
+      SHA-1: 1de74874f8d83e14d642f13b5a2130fc2aa55873
     </td>
   </tr>
 
   <tr id="ryu">
     <td>Pixel C <br>"ryu"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >ryu-npc91k-factory-463030f2.tgz</a><br>
-      MD5: 24e8981a3c95637867eb768c0f84c96c<br>
-      SHA-1: 463030f2ecdcfe9e92ddf9f3a224ac7aa5ed5866
+      >ryu-npd35k-factory-b4eed85d.tgz</a><br>
+      MD5: bdcb6f770e753668b5fadff2a6678e0d<br>
+      SHA-1: b4eed85de0d42c200348a8629084f78e24f72ac2
     </td>
   </tr>
 
   <tr id="seed">
     <td>General Mobile 4G (Android One) <br>"seed"</td>
     <td><a href="#top" onclick="onDownload(this)"
-      >seed_l8150-npc91k-factory-7026d89d.tgz</a><br>
-      MD5: a614984799c887d9b5af2d366fefc8e3<br>
-      SHA-1: 7026d89d79decd8421da8df844a1fcd9e27df163
+      >seed_l8150-npd35k-factory-5ab1212b.tgz</a><br>
+      MD5: 7d34a9774fdd6e025d485ce6cfc23c4c<br>
+      SHA-1: 5ab1212bc9417269d391aacf1e672fff24b4ecc5
+    </td>
+  </tr>
+
+  <tr id="xperia">
+    <td>Sony Xperia Z3 <br> (D6603 and D6653)</td>
+    <td>Download: <a class="external-link"
+      href="http://support.sonymobile.com/xperiaz3/tools/xperia-companion/">Xperia Companion</a><br>
+      For more information, see <a class="external-link"
+      href="https://developer.sony.com/develop/smartphones-and-tablets/android-n-developer-preview/">Try Android N Developer Preview for Xperia Z3</a>.
     </td>
   </tr>
 
diff --git a/docs/html/preview/features/background-optimization.jd b/docs/html/preview/features/background-optimization.jd
index ec02328..3c33b9d 100644
--- a/docs/html/preview/features/background-optimization.jd
+++ b/docs/html/preview/features/background-optimization.jd
@@ -379,7 +379,7 @@
 
   <li style="list-style: none; display: inline">
 <pre class="no-pretty-print">
-{@code $ adb shell cmd appops set RUN_IN_BACKGROUND ignore}
+{@code $ adb shell cmd appops set &lt;package&gt; RUN_IN_BACKGROUND ignore}
 </pre>
   </li>
 
@@ -389,7 +389,7 @@
 
   <li style="list-style: none; display: inline">
 <pre class="no-pretty-print">
-{@code $ adb shell cmd appops set RUN_IN_BACKGROUND allow}
+{@code $ adb shell cmd appops set &lt;package&gt; RUN_IN_BACKGROUND allow}
 </pre>
   </li>
-</ul>
\ No newline at end of file
+</ul>
diff --git a/docs/html/preview/features/multi-window.jd b/docs/html/preview/features/multi-window.jd
index fec0168..a4f389a 100644
--- a/docs/html/preview/features/multi-window.jd
+++ b/docs/html/preview/features/multi-window.jd
@@ -253,7 +253,7 @@
   </dd>
 
   <dt>
-    <code>android:minimalHeight</code>, <code>android:minimalWidth</code>
+    <code>android:minHeight</code>, <code>android:minWidth</code>
   </dt>
 
   <dd>
@@ -275,8 +275,8 @@
     &lt;layout android:defaultHeight="500dp"
           android:defaultWidth="600dp"
           android:gravity="top|end"
-          android:minimalHeight="450dp"
-          android:minimalWidth="300dp" /&gt;
+          android:minHeight="450dp"
+          android:minWidth="300dp" /&gt;
 &lt;/activity&gt;
 </pre>
 
diff --git a/docs/html/preview/overview.jd b/docs/html/preview/overview.jd
index 0369490..1b45c1a 100644
--- a/docs/html/preview/overview.jd
+++ b/docs/html/preview/overview.jd
@@ -153,7 +153,7 @@
 <ul>
   <li><strong><a href="{@docRoot}preview/support.html#dp1">Preview 1</a></strong> (initial release, alpha)</li>
   <li><strong><a href="{@docRoot}preview/support.html#dp2">Preview 2</a></strong> (incremental update, alpha)</li>
-  <li><strong>Preview 3</strong> (incremental update, beta)</li>
+  <li><strong><a href="{@docRoot}preview/support.html#dp3">Preview 3</a></strong> (incremental update, beta)</li>
   <li><strong>Preview 4</strong> (final APIs and official SDK, Play publishing)</li>
   <li><strong>Preview 5</strong> (near-final system images for final testing)</li>
   <li><strong>Final release</strong> to AOSP and ecosystem</li>
diff --git a/docs/html/preview/setup-sdk.jd b/docs/html/preview/setup-sdk.jd
index 60568ac..28fc406 100644
--- a/docs/html/preview/setup-sdk.jd
+++ b/docs/html/preview/setup-sdk.jd
@@ -47,7 +47,7 @@
 Studio 2.1 or higher by clicking <strong>Help > Check for Update</strong>
 (on Mac, <strong>Android Studio > Check for Updates</strong>).</p>
 
-<p>If you don't have it, <a href="{@docRoot}sdk/">download Android Studio
+<p>If you don't have it, <a href="{@docRoot}studio/">download Android Studio
 2.1 here</a>.</p>
 
 
@@ -91,11 +91,11 @@
   </tr>
   <tr>
     <td style="white-space: nowrap">
-    <a href="{@docRoot}shareables/preview/n-preview-2-docs.zip"
-      >n-preview-2-docs.zip</a></td>
+    <a href="{@docRoot}shareables/preview/n-preview-3-docs.zip"
+      >n-preview-3-docs.zip</a></td>
     <td width="100%">
-      MD5: c02732760f468bd97cd94c1b76361229<br>
-      SHA-1: 591eabe168c909799f6d8dcbe7b126c25ea8b04d
+      MD5: 19bcfd057a1f9dd01ffbb3d8ff7b8d81<br>
+      SHA-1: 9224bd4445cd7f653c4c294d362ccb195a2101e7 
     </td>
   </tr>
 <table>
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
index 83ecde2..7c56f97 100644
--- a/docs/html/preview/support.jd
+++ b/docs/html/preview/support.jd
@@ -5,6 +5,34 @@
 
 @jd:body
 
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>In this document</h2>
+
+<ul>
+  <li><a href="#dp3">Developer Preview 3</a>
+    <ul>
+      <li><a href="#general">General advisories</a></li>
+      <li><a href="#new">New in DP3</a></li>
+      <li><a href="#ki">Known issues</a></li>
+    </ul>
+  </li>
+  <li><a href="#dp2">Developer Preview 2</a></li>
+  <li><a href="#dp1">Developer Preview 1</a></li>
+</ul>
+
+<!--
+<h2>See Also</h2>
+<ol>
+  <li></li>
+</ol>
+-->
+
+</div>
+</div>
+
 <p>
   Two primary support channels are available to you when developing and testing
   with the Android N Developer Preview: Please file bugs at <a href=
@@ -23,68 +51,454 @@
   <div class="cols">
     <div class="col-6of12">
       <p>
-        <em>Date: April 2016<br>
-        Builds: TODO<br>
+        <em>Date: May 2016<br>
+        Build: NPD35K<br>
         Emulator support: x86 &amp; ARM (32/64-bit)<br>
-        Google Play services: TODO</em>
+        Google Play services: 8.4</em>
       </p>
     </div>
   </div>
 </div>
 
+<h3 id="general">General advisories</h3>
+
+<p>
+  This Developer Preview release is for <strong>app developers and other early
+  adopters</strong> and is available for daily use, development, or
+  compatibility testing. Please be aware of these general notes about the
+  release:
+</p>
+
+<ul>
+  <li>This release may have various <strong>stability issues</strong> on
+    supported devices. Users may encounter system instability, such as kernel
+    panics and crashes.
+  </li>
+
+  <li>Some apps <strong>may not function as expected</strong> on the new
+  platform version. This includes Google’s apps as well as other apps.
+  </li>
+
+  <li>Developer Preview 3 is <strong>Compatibility Test Suite (CTS)
+  approved</strong> on these devices: Nexus 5X, Nexus 6, Nexus 6P, and Pixel
+  C. Apps that depend on CTS approved builds should
+  work normally on these devices (Android Pay for example).
+  </li>
+
+  <li>Developer Preview 3 is <strong>available on all supported
+  devices:</strong> Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus Player, Pixel
+  C, General Mobile 4G (Android One), as well as Sony Xperia Z3 (D6603 and
+  D6653 models).
+
+  </li>
+</ul>
+
+
 <h3 id="new">New in DP3</h3>
 
+<h4 id="">VR Mode for Android</h4>
 
-<h4 id="api-changes">API changes</h4>
+<p>
+  Android N adds platform support and optimizations for a new VR Mode to let
+  developers build high quality mobile VR experiences for users. There are a
+  number of performance enhancements, including access to an exclusive CPU core
+  for VR apps. Within your apps, you can take advantage of intelligent
+  head-tracking, and stereo notifications that work for VR. Most importantly,
+  Android N provides for very low latency graphics.
+</p>
+
+<p>
+  For more information, see the <a href=
+  "https://developers.google.com/vr/android/">Google VR SDK for Android</a>.
+</p>
+
+<h4 id="">Sustained performance mode</h4>
+
+<p>
+  Android N includes optional support for <a href=
+  "{@docRoot}preview/api-overview.html#sustained_performance_api">sustained
+  performance mode</a>, enabling OEMs to provide hints on device performance
+  capabilities for long running applications. App developers can then use these
+  hints to tune applications for a predictable, consistent level of device
+  performance over long periods of time. App developers can try out this new
+  API in the developer preview on Nexus 6P devices only.
+</p>
+
+<h4>Multiprocess WebView</h4>
+
+<p>
+  Starting with version 51 in Android N, WebView will run web content in a
+  separate sandboxed process when the developer option "Multiprocess WebView"
+  is enabled. The WebView team is looking for feedback on compatibility and
+  runtime performance in N before enabling multiprocess WebView in a future
+  version of Android. In this version, regressions in startup time, total
+  memory usage and software rendering performance are expected.
+</p>
+
+<p>
+  If you find unexpected issues in multiprocess mode we’d like to hear about
+  them. Please get in touch with the WebView team by <a href=
+  "https://bugs.chromium.org/p/chromium/issues/entry?template=Webview%20Bugs">
+  filing a bug</a>.
+</p>
+
+<h4 id="">Keyboard Shortcuts helper</h4>
+
+<p>
+  Android N lets users press <code>Meta+/</code> to trigger a <strong>Keyboard
+  Shortcuts</strong> screen that displays all shortcuts available both from the
+  system and from the app in focus. Developers can add their own shortcuts or
+  trigger the Shortcuts screen from their apps. See <a href=
+  "{@docRoot}preview/api-overview.html#keyboard_shortcuts_helper">Keyboard
+  Shortcuts helper</a> for details.
+</p>
+
+<h4 id="">FrameMetrics API</h4>
+
+<p>
+  DP3 introduces a new <a href=
+  "{@docRoot}preview/api-overview.html#framemetrics_api">FrameMetrics API</a>
+  that allows an app to monitor its UI rendering performance by exposing a
+  streaming pubsub API to transfer frame timing info for the application’s
+  current window. <code>FrameMetricsListener</code> can be used to measure
+  interaction-level UI performance in production with higher granularity and
+  without the need for a USB connection.
+</p>
+
+<h4 id="api-changes">Feature and API changes</h4>
 
 <dl>
-  <dt><a href="{@docRoot}preview/api-overview.html#number-blocking"
-    >Number-blocking</a></dt>
-  <dd>If an unauthorized user attempts to block or unblock a number, the operation
-    now fails with {@link java.lang.SecurityException}. (Previously, the
-    operation threw {@link java.lang.UnsupportedOperationException}.)</dd>
+  <dt>
+    Launcher Shortcuts and the Launcher Shortcuts API
+  </dt>
 
-  <dt><a href="{@docRoot}preview/api-overview.html#tile_api">Quick
-    Settings Tile API</a></dt>
-  <dd>The system now uses the activity's metadata to decide on the tile mode.
+  <dd>
+    We’ve decided to defer this feature to a future release of Android. We plan
+    to remove the Launcher Shortcuts APIs (ShortcutManager and others) from the
+    public Android N API starting in the next developer preview.
+  </dd>
+
+  <dt>
+    WebView Javascript run before page load
+  </dt>
+
+  <dd>
+    Starting with apps targeting Android N, the Javascript context is reset
+    when a new page is loaded. Currently, the context is carried over for the
+    first page loaded in a new {@link android.webkit.WebView} instance.
+    Developers looking to inject Javascript into the {@link
+    android.webkit.WebView} should execute the script after the page has
+    started to load.
+  </dd>
+
+  <dt>
+    WebView Geolocation on insecure origins
+  </dt>
+
+  <dd>
+    Starting with apps targeting Android N, the geolocation API will only be
+    allowed on secure origins (over HTTPS.) This policy is designed to protect
+    users' private information when they're using an insecure connection.
+  </dd>
+
+  <dt>
+    Data Saver
+  </dt>
+
+  <dd>
+    Starting in Developer Preview 3, apps can use use an intent to display a
+    system dialog that lets the user directly add the app to the Data Saver
+    exemption whitelist. See the <a href=
+    "{@docRoot}preview/api-overview.html#data_saver">Data Saver
+    documentation</a> for details.
+  </dd>
+
+  <dt>
+    <a href=
+    "{@docRoot}preview/api-overview.html#number-blocking">Number-blocking</a>
+  </dt>
+
+  <dd>
+    If an unauthorized user attempts to block or unblock a number, the
+    operation now fails with {@link java.lang.SecurityException}. (Previously,
+    the operation threw {@link java.lang.UnsupportedOperationException}.)
+  </dd>
+
+  <dt>
+    <a href="{@docRoot}preview/api-overview.html#tile_api">Quick Settings Tile
+    API</a>
+  </dt>
+
+  <dd>
+    The system now uses the activity's metadata to decide on the tile mode.
     (Previously, tile mode was determined by the return value of
     <code>TileService.onTileAdded()</code>.) For more information, see
-    <code>TileService.META_DATA_ACTIVE_TILE</code> in the downloadable
-    <a href="{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.
+    <code>TileService.META_DATA_ACTIVE_TILE</code> in the downloadable <a href=
+    "{@docRoot}preview/setup-sdk.html#docs-dl">API Reference</a>.
   </dd>
 </dl>
 
-<h4 id="dp2-fixes">Fixes for issues reported by developers</h4>
+<h4 id="dp3-fixes">Fixes for issues reported by developers</h4>
 
 <p>
   A number of issues reported by developers have been fixed, including:
 </p>
 
 <ul>
-  <li>TODO</li>
+  <li>Bluetooth Audio playback interrupted after 1 song (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=206889">206889</a>)
+  </li>
+
+  <li>Pixel C Consistently Crashes (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=206962">206962</a>)
+  </li>
+
+  <li>Clock and Toast notification issues (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=203094">203094</a>)
+  </li>
+
+  <li>Pixel C reboots when connected to MacBook Pro via USB C Cable (bug
+  <a href=
+  "https://code.google.com/p/android/issues/detail?id=205432">205432</a>)
+  </li>
+
+  <li>Calandar offset by one day (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=203002">203002</a>)
+  </li>
+
+  <li>TelephonyManager.getAllCellInfo returning invalid data (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=203022">203022</a>)
+  </li>
+
+  <li>Nexus 6p, Bluetooth keeps disconnecting (bug <a href=
+  "https://code.google.com/p/android/issues/detail?id=208062">208062</a>)
+  </li>
 </ul>
 
-<h3 id="general">General advisories</h3>
-
-<p>
-  This Developer Preview release is for <strong>app developers only</strong>
-  and is designed for use in compatibility testing and early development only.
-  Please be aware of these general notes about the release:
-</p>
-
-<ul>
-
-  <li>TODO</li>
-</ul>
+<p>For the full list of fixed issues, see <a href="https://goo.gl/6uCKtf">the
+issue tracker</a>.</p>
 
 <h3 id="ki">Known Issues</h3>
 
-<p>TODO</p>
+<h4>Accessibility</h4>
 
+<ul>
+  <li>Unable to listen to TTS output when pitch is set near maximum level.
+  </li>
+
+  <li>Accessibility features and settings may be disrupted with the user adds a
+  Work profile, including magnification gesture and setting. Accessibility
+  state is restored when the user next touches the associated settings.
+  </li>
+</ul>
+
+<h4>Camera</h4>
+
+<ul>
+  <li>The Camera app has exhibited instability; it may crash in various
+    circumstances, such as when launched in multi-window mode.
+  </li>
+
+  <li>Pressing the shutter continuously in panorama mode may cause the Camera
+  app to crash.
+  </li>
+</ul>
+
+<h4>Audio</h4>
+<ul>
+  <li>A platform audio player issue prevents some apps from functioning
+  normally. For example, Skype and other apps are affected by this issue.
+  </li>
+</ul>
+
+<h4>Connectivity</h4>
+
+
+<ul>
+  <li>When a Bluetooth Low Energy (BLE) peripheral role device advertises a
+  service and a BLE central role device connects, the peripheral role device
+  disconnects very quickly.
+  </li>
+
+  <li>Wi-Fi connection may be dropped when the screen is off.
+  </li>
+
+  <li>RFCOMM connections are unstable and may result in data corruption and
+  dangling connections.
+  </li>
+
+  <li>The active network state ({@link android.net.NetworkInfo#getState
+  NetworkInfo.getState()} and {@link android.net.NetworkInfo#getDetailedState
+  NetworkInfo.getDetailedState()}) might return incorrect values during some
+  restricted background scenarios.
+  </li>
+</ul>
+
+
+<h4>
+  Launcher
+</h4>
+
+<ul>
+  <li>The default launcher’s All Apps tray may become unresponsive after
+  cycling screen off / screen on. Returning to the homescreen and relaunching
+  the All Apps tray may resolve this issue.
+  </li>
+</ul>
+
+<h4>
+  Keyboard
+</h4>
+
+<ul>
+  <li>When updating a device running Android 6.0 or earlier to the N Developer
+  Preview, Google Keyboard does not preserve preferences data such as recent
+  emoji and sound settings.
+  </li>
+
+  <li>Google Indic Managed Keyboard may be unstable.
+  </li>
+
+  <li>When entering text in a password field, the user can select Russian as
+  the input language but the keyboard remains in English. This prevents the
+  user from entering Russian-language passwords.
+  </li>
+</ul>
+
+<h4>
+  Locale and languages
+</h4>
+
+<ul>
+  <li>When using a right-to-left (RTL) locale, the system may unexpectedly
+  switch to left-to-right (LTR) presentation after restarting the device.
+  </li>
+</ul>
+
+<h4>Media</h4>
+
+<ul>
+  <li>Media playback be be unreliable on Nexus 9 and Nexus Player, including
+  issues playing HD video.
+  </li>
+</ul>
+
+<h4>
+  Multi-window mode
+</h4>
+
+<ul>
+  <li>Device may freeze when changing orientation in multi-window mode.
+  </li>
+
+  <li>Several apps currently have issues with multi-window mode:
+    <ul>
+      <li>The system UI may crash when docking Settings &gt; Display &gt;
+      Screen brightness to multi-window.
+      </li>
+
+      <li>The Camera app may crash when launched in multi-window mode.
+      </li>
+
+      <li>YouTube may crash when launched into multi-window mode. To fix the
+      issue, you can clear the YouTube app’s data at Storage &gt; Apps &gt;
+      YouTube.
+      </li>
+    </ul>
+  </li>
+</ul>
+
+<h4>
+  Google Play services
+</h4>
+
+<ul>
+  <li>Apps using Google Cast through Google Play services may be unstable when
+  the user selects a system locale that uses letters and numbers outside of the
+  ASCII range.
+  </li>
+</ul>
+
+<h4>
+  Android for Work and Google Apps Device Policy
+</h4>
+
+<ul>
+  <li>The Device Policy app may crash when the user unlocks the device with the
+  "device policy status" screen pinned.
+  </li>
+
+  <li>After setting up a work profile with file-based encryption enabled and
+  then turning off Work, users must unlock primary profile screen lock to once
+  again access Work apps.
+  </li>
+
+  <li>Device reboots when removing the security pattern lock and opening work
+  app/personal app in the multi-window.
+  </li>
+
+  <li>Setting DISALLOW_VPN_CONFIG is causing the consent dialog to appear in
+  always-on-vpn set by Device Policy Client.
+  </li>
+
+  <li>Traffic is not locked down until VPN is connected in always-on-vpn mode.
+  </li>
+</ul>
+
+<h4>
+  External storage
+</h4>
+
+<ul>
+  <li>Apps may become unstable when the user moves them from internal storage
+  to adoptable external storage (this can include SD card or devices attached
+  over USB).
+  </li>
+</ul>
+
+<h4>
+  Screen zoom and multiple APKs in Google Play
+</h4>
+
+<ul>
+  <li>On devices running Android N, Google Play services 9.0.83 incorrectly reports
+  the current screen density rather than the stable screen density. When screen
+  zoom is enabled on these devices, this can cause Google Play to select a
+  version of a multi-APK app that’s designed for smaller screens. This issue is
+  fixed in the next version of Google Play services and will be included in a
+  later Developer Preview release.
+  </li>
+
+  <li>On devices running Android N, Google Play services 9.0.83 currently reports
+  Vulkan support but not Vulkan version. This can cause Google Play to select a
+  version of a multi-APK app that’s designed for lower Vulkan support on
+  devices with higher version support. Currently, the Google Play Store does
+  not accept uploads of Apps which use Vulkan version targeting. This support
+  will be added to the Google Play Store in the future and fixed in the next
+  version of Google Play services (to be included in a later Developer Preview
+  release) any N devices using the version of Google Play services 9.0.83 will
+  continue to receive versions of Apps targeting basic Vulkan support.
+  </li>
+</ul>
+
+<h4 id="">Notifications</h4>
+
+<ul>
+  <li>MessagingStyle does not show notifications with "null" (self) sender.
+  </li>
+</ul>
+
+<h4 id="">Developer Tools</h4>
+
+<ul>
+  <li>
+    <code>adb</code> may sometimes disconnect while using JDWP debugging.
+  </li>
+</ul>
+
+<!-- TBA, if any
 <h4>Device-specific issues</h4>
 
-<p>TODO</p>
-
 <dl>
   <dt>
     <strong>Device Name</strong>
@@ -99,6 +513,14 @@
   </dd>
 </dl>
 
+-->
+
+
+
+
+
+
+
 <!-- DP2 Release Notes Archive -->
 
 <h2 id="dp2">Developer Preview 2</h2>
diff --git a/docs/html/topic/instant-apps/_book.yaml b/docs/html/topic/instant-apps/_book.yaml
new file mode 100644
index 0000000..1f918f2
--- /dev/null
+++ b/docs/html/topic/instant-apps/_book.yaml
@@ -0,0 +1,5 @@
+toc:
+- title: Android Instant Apps
+  path: /topic/instant-apps/index.html
+- title: Frequently Asked Questions (FAQs)
+  path: /topic/instant-apps/faqs.html
\ No newline at end of file
diff --git a/docs/html/topic/instant-apps/faqs.jd b/docs/html/topic/instant-apps/faqs.jd
new file mode 100644
index 0000000..0a1f571
--- /dev/null
+++ b/docs/html/topic/instant-apps/faqs.jd
@@ -0,0 +1,69 @@
+page.title=Android Instant Apps: Frequently Asked Questions
+page.tags=Material,design
+footer.hide=true
+forcelocalnav=true
+@jd:body
+
+<p>
+  <strong>What devices are compatible with Android Instant Apps?</strong>
+  <br/>
+  Android Instant Apps is compatible with devices that are running Android 4.1
+  (API level 16) or higher and have Google Play services installed.
+</p>
+
+<p>
+  <strong>Do developers need to build two different Android apps now?</strong>
+  <br/>
+  Developers only need to maintain one project with one source tree.
+  Developers simply configure the project to create two build artifacts: the
+  installable APK and the instant version.
+  Some developers can take less than a day to get up and running,
+  though the effort involved varies depending on how the
+  app is structured.
+</p>
+
+<p>
+  <strong>What Android APIs and functionality can Instant Apps use?</strong>
+  <br/>
+  Android Instant Apps functionality complements an existing Android app,
+  but does not replace it. Android Instant Apps uses the same Android APIs, the
+  same project, the same source code. Android Instant Apps restricts some
+  features that might not match users' expectations of an app
+  that is not installed.
+  For example, an Instant App can't use background services, do background
+  notifications, or access unique device identifiers.
+</p>
+
+<p>
+  <strong>Can users choose to install the app permanently?</strong>
+  <br/>
+  Developers can allow users to download the app from the Google Play
+  Store. After download, the app remains on the phone after the user has left
+  the experience.
+</p>
+
+<p>
+  <strong>How do permissions work in Android Instant Apps?</strong>
+  <br/>
+  Android Instant Apps uses the runtime permissions model introduced in
+  Android 6.0.
+  If an app supports the permission model introduced in Android 6.0
+  (API level 23), it does not require any additional work to become an Instant
+  App that runs on older devices.
+</p>
+
+<p>
+  <strong>How do developers publish these apps?</strong>
+  <br/>
+  Developers publish their Instant Apps through the Google Play Developer
+  Console, similar to their existing Android apps.
+</p>
+
+<p>
+  <strong>How can developers get involved?</strong>
+  <br/>
+  Developers interested in upgrading their Android apps can visit
+  <a class="external-link" href="g.co/InstantApps">g.co/InstantApps</a> to
+  sign up. We will be reaching out to interested
+  developers in the coming months.
+</p>
\ No newline at end of file
diff --git a/docs/html/topic/instant-apps/index.jd b/docs/html/topic/instant-apps/index.jd
new file mode 100644
index 0000000..d8de0b5
--- /dev/null
+++ b/docs/html/topic/instant-apps/index.jd
@@ -0,0 +1,314 @@
+fullpage=true
+page.title=Android Instant Apps
+page.viewport_width=970
+meta.tags="instant apps, getstarted, sdk, appquality, landing"
+section.landing=true
+header.hide=1
+carousel=1
+tabbedList=1
+excludeFromSuggestions=true
+@jd:body
+
+<!-- Hero section -->
+<section class="dac-expand dac-hero dac-section-light">
+<div class="wrap">
+  <div class="cols dac-hero-content">
+
+    <div class="col-1of2 col-push-1of2 dac-hero-figure">
+      <div class="dev-bytes-video">
+        <iframe width="560" height="350" src=
+        "https://www.youtube.com/embed/cosqlfqrpFA" frameborder="0"
+        allowfullscreen=""></iframe>
+      </div>
+    </div>
+
+    <div class="col-1of2 col-pull-1of2" style="margin-bottom:40px">
+      <h1>
+        Android Instant Apps
+      </h1>
+
+      <p class="sub-head">
+        Native Android apps, without the installation
+      </p>
+
+      <p class="dac-hero-description">
+        An evolution in app sharing and discovery, Android Instant Apps enables
+        Android apps to run instantly, without requiring installation. Instant
+        Apps lets you experience what you love about apps&#8212fast and beautiful
+        user interfaces, high performance, and great capabilities&#8212with just a
+        tap.
+      </p>
+
+      <p class="dac-hero-description">
+        Request early access to the Instant Apps documentation today.
+      </p>
+
+      <p style="margin-top:24px">
+        <a class="landing-button green download-bundle-button" href=
+        "https://docs.google.com/a/google.com/forms/d/1S3MzsMVIlchLCqyNLaFbv64llxWaf90QSeYLeswco90/viewform"
+        target="_blank">I'M INTERESTED IN ANDROID INSTANT APPS<br></a>
+      </p>
+    </div>
+
+  </div> <!-- end cols dac-hero-content -->
+</div> <!-- end .wrap -->
+</section>
+
+<!-- Second section -->
+
+<div class="wrap" style="margin-top:60px">
+<div class="cols dac-hero-content">
+  <div class="col-1of2 dac-hero-figure">
+    <img src="/images/topic/instant-apps/instant-apps-section-2.png">
+  </div>
+<div class="col-1of2">
+<div class="dac-hero-tag"></div>
+
+  <h2 id="section-2">Run Android Apps Without Installation</h2>
+  <p class="dac-hero-description">
+    Android Instant Apps lets you experience beautiful and immersive
+    apps, with material design and smooth animations, without installing them
+    on your device.
+  </p>
+
+</div>
+</div>
+</div>
+
+<!-- Third section -->
+
+<div class="wrap" style="margin-top:60px">
+
+  <h2 id="section-3">Access Apps From Anywhere</h2>
+
+  <p>
+    Get people to your flagship Android experience from links that would
+    otherwise open your mobile web page &mdash; like
+    search, social media, messaging, and other deep links &mdash; without them
+    needing to stop and install your app first.
+  </p>
+
+  <div class="cols" style="margin-top:1em;">
+    <div class="col-4of12 gif-container">
+      <img class="partner-gifs"
+        src="/images/topic/instant-apps/s3-BandH-static.png"
+        data-stat="/images/topic/instant-apps/s3-BandH-static.png"
+        data-anim="/images/topic/instant-apps/s3-BandH-animated.gif">
+      <p class="figure-caption">
+        <em>B&amp;H Photo<br/>
+            (via Google Search)</em>
+      </p>
+    </div>
+
+    <div class="col-4of12 gif-container">
+      <img class="partner-gifs"
+        src="/images/topic/instant-apps/s3-BuzzFeed-static.png"
+        data-stat="/images/topic/instant-apps/s3-BuzzFeed-static.png"
+        data-anim="/images/topic/instant-apps/s3-BuzzFeed-animated.gif">
+      <p class="figure-caption">
+        <em>BuzzfeedVideo<br/>
+            (via a shared link)</em>
+      </p>
+    </div>
+
+    <div class="col-4of12 gif-container">
+      <img class="partner-gifs"
+        src="/images/topic/instant-apps/s3-ParkandPay-static.png"
+        data-stat="/images/topic/instant-apps/s3-ParkandPay-static.png"
+        data-anim="/images/topic/instant-apps/s3-ParkandPay-animated.gif">
+      <p class="figure-caption">
+        <em>Park and Pay<br/>
+            (via NFC)</em>
+      </p>
+    </div>
+  </div>
+</div>
+
+<!-- Fourth section -->
+
+<div class="wrap" style="margin-top:60px">
+<div class="cols dac-hero-content">
+  <div class="col-1of2 dac-hero-figure">
+    <img src="/images/topic/instant-apps/instant-apps-section-4.png">
+  </div>
+<div class="col-1of2">
+<div class="dac-hero-tag"></div>
+
+  <h2 id="section-4">Built On Google Play Services</h2>
+  <p class="dac-hero-description">
+    Take advantage of Google Play services features &mdash; like location, identity,
+    payments, and Firebase &mdash; which are built right in for a seamless user
+    experience.
+  </p>
+
+</div>
+</div>
+</div>
+
+<!-- Fifth section -->
+
+<div class="wrap" style="margin-top:60px">
+<div class="cols dac-hero-content">
+  <div class="col-1of2 col-push-1of2 dac-hero-figure">
+    <img src="/images/topic/instant-apps/instant-apps-section-5.png">
+  </div>
+<div class="col-1of2 col-pull-1of2">
+<div class="dac-hero-tag"></div>
+  <h2 id="section-5">Works On Most Android Devices</h2>
+
+  <p class="dac-hero-description">
+
+    Android Instant Apps can work on Android devices running Android 4.1+
+    (API Level 16) or higher with Google Play services.
+  </p>
+
+</div>
+</div>
+</div>
+
+<!-- Sixth section -->
+
+<div class="wrap" style="margin-top:60px">
+<div class="cols dac-hero-content">
+  <div class="col-1of2 dac-hero-figure">
+    <img src="/images/topic/instant-apps/upgrade-your-app-2x.png">
+  </div>
+<div class="col-1of2">
+<div class="dac-hero-tag"></div>
+
+  <h2 id="section-6">Upgrade Your Existing App</h2>
+  <p class="dac-hero-description">
+    Android Instant Apps functionality is an upgrade to your existing Android
+    app, not a new, separate app. It's the same Android APIs, the same
+    project, the same source code.  It can take less than a day to get
+    up and running for some developers, though the effort involved varies,
+    depending on how your app is structured. You modularize your app,
+    and Google Play downloads only the parts that are needed, on the fly.
+  </p>
+
+</div>
+</div>
+</div>
+
+<!-- Seventh section -->
+
+<div class="wrap" style="margin-top:60px" id="section-7">
+  <h2 id="sign-up-docs" style="margin-bottom: 0px;">
+    Sign up for access to Android Instant Apps documentation
+  </h2>
+
+  <p>
+    We’ll let you know if you’re selected for early access
+    to Android Instant
+    Apps.
+  </p>
+
+  <p>
+    <a class="landing-button green download-bundle-button"
+      href="https://docs.google.com/forms/d/1S3MzsMVIlchLCqyNLaFbv64llxWaf90QSeYLeswco90/viewform"
+      target="_blank">
+      I'M INTERESTED IN ANDROID INSTANT APPS<br>
+    </a>
+  </p>
+
+  <p style="margin-top:24px">
+    Check out our <a href="faqs.html">frequently asked questions</a> to find out
+    more about Android Instant Apps.
+  </p>
+</div>
+
+<style>
+
+  /* Sub-heading styling */
+  .sub-head {
+    font-size: 28px;
+    line-height: 125%;
+  }
+
+  /* Background color for hero module. */
+  .dac-section-light {
+    background: #B0BEC5;
+  }
+
+  /* Styling and layout for video. */
+  .dev-bytes-video {
+    margin-top: 30px;
+    position: relative;
+    padding-bottom: 56.25%; /* 16:9 */
+    padding-top: 30px;
+    height: 0;
+  }
+
+  .dev-bytes-video iframe,
+  .dev-bytes-video object,
+  .dev-bytes-video embed {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+  }
+
+  /* Increase top margin for sections */
+  .wrap {
+    margin-top: 1.5em;
+  }
+
+  #section-3, #sign-up-docs {
+    margin-top: 0px;
+    border-top: 0px;
+  }
+
+  /* Align the seventh section in the center. */
+  #section-7 {
+    text-align: center;
+  }
+
+  /* GIF section styling */
+  .figure-caption {
+    text-align: center;
+  }
+
+  .partner-gifs {
+    width: 80%;
+    height: auto;
+  }
+
+  .gif-container {
+     text-align: center;
+  }
+
+</style>
+
+<script>
+
+(function () {
+
+  function onMouseEnter(evt) {
+    if (evt.target.dataset && evt.target.dataset.anim) {
+      swap(evt.target, {
+        newStr: evt.target.dataset.anim
+      });
+    }
+  }
+
+  function onMouseOut(evt) {
+    if (evt.target.dataset && evt.target.dataset.stat) {
+      swap(evt.target, {
+        newStr: evt.target.dataset.stat
+      });
+    }
+  }
+
+  function swap(target, options) {
+    if (options && options.newStr) {
+      $(target).attr("src", options.newStr);
+    }
+  }
+
+  $(".partner-gifs").mouseenter(onMouseEnter);
+  $(".partner-gifs").mouseout(onMouseOut);
+
+})();
+
+</script>
\ No newline at end of file
diff --git a/docs/html/topic/libraries/_book.yaml b/docs/html/topic/libraries/_book.yaml
index ead95e7..34e5e47 100644
--- a/docs/html/topic/libraries/_book.yaml
+++ b/docs/html/topic/libraries/_book.yaml
@@ -6,6 +6,8 @@
     path: /topic/libraries/support-library/features.html
   - title: Setup
     path: /topic/libraries/support-library/setup.html
+  - title: Revision History
+    path: /topic/libraries/support-library/revisions.html
 
 - title: Data Binding Library
   path: /topic/libraries/data-binding/index.html
diff --git a/docs/html/topic/libraries/support-library/index.jd b/docs/html/topic/libraries/support-library/index.jd
index 70c9cff..92002dd 100644
--- a/docs/html/topic/libraries/support-library/index.jd
+++ b/docs/html/topic/libraries/support-library/index.jd
@@ -13,15 +13,17 @@
       <li><a href="#layout-patterns">Support for General Layout Patterns</a></li>
       <li><a href="#form-factors">Support for Different Form Factors</a></li>
       <li><a href="#utils">General Utilities</a></li>
-      <li><a href="#revisions">Support Library Revision History</a></li>
     </ol>
 
     <h2>See also</h2>
     <ol>
-      <li><a href="{@docRoot}tools/support-library/features.html">
+      <li><a href="{@docRoot}topic/libraries/support-library/features.html">
         Support Library Features</a></li>
-      <li><a href="{@docRoot}tools/support-library/setup.html">
-        Support Library Setup </a></li>
+      <li><a href="{@docRoot}topic/libraries/support-library/setup.html">
+        Support Library Setup</a></li>
+      <li><a href="{@docRoot}topic/libraries/support-library/revisions.html">
+        Support Library Revision History</a></li>
+
     </ol>
 
   </div>
@@ -180,2798 +182,3 @@
   permissions model, the methods check whether the appropriate permission was
   granted at install time.
 </p>
-
-<h2 id="revisions">Support Library Revision History</h2>
-
-<p>This section provides details about the Support Library package releases.</p>
-
-<div class="toggle-content opened">
-  <p id="rev23-4-0">
-    <a href="#" onclick="return toggleContent(this)"><img src=
-    "{@docRoot}assets/images/styles/disclosure_up.png" class=
-    "toggle-content-img" alt="">Android Support Library, revision 23.4.0</a>
-    <em>(May 2016)</em>
-  </p>
-
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v4">v4 Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed issue where fragments were added in the wrong order.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=206901">Issue
-          206901</a>)
-          </li>
-
-          <li>Fixed issue where app bar wasn't drawn after being scrolled
-          offscreen. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=178037">Issue
-          178037</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
-        appcompat library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added <!-- TODO: Link to method -->
-             <code><a href=
-            "{@docRoot}reference/android/support/v7/app/AppCompatDelegate.html">
-            AppCompatDelegate</a>.setCompatVectorFromResourcesEnabled()</code>
-            method to re-enable usage of vector drawables in {@link
-            android.graphics.drawable.DrawableContainer} objects on devices
-            running Android 4.4 (API level 19) and lower. See <a href=
-            "https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88#.44uulkfal"
-            class="external-link">AppCompat v23.2 — Age of the vectors</a> for
-            more information.
-          </li>
-
-          <li>Fixed an issue in API 23 with <a href=
-          "{@docRoot}reference/android/support/v7/app/AppCompatDelegate.html#setDefaultNightMode(int)">
-            <code>AppCompatDelegate.setDefaultNightMode()</code></a> not
-            loading correct resources in API level 23. (<a class=
-            "external-link" href=
-            "https://code.google.com/p/android/issues/detail?id=206573">Issue
-            206573</a>)
-          </li>
-
-          <li>Fixed issue that could cause {@link
-          java.lang.NullPointerException}. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=207638">Issue
-          207638</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#design">Design Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed an issue where {@link
-          android.support.design.widget.TextInputLayout} doesn't clear error
-          tint after {@link
-          android.support.design.widget.TextInputLayout#setErrorEnabled
-          setErrorEnabled(false)} on API level 21 - 22 (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202829">Issue
-          202829</a>)
-          </li>
-
-          <li>Fixed an issue where {@link
-          android.support.design.widget.FloatingActionButton} does not return
-          when animations are disabled. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=206416">Issue
-          206416</a>)
-          </li>
-
-          <li>Fixed issue in {@link android.support.design.widget.AppBarLayout}
-          snap functionality when used with <code>{@link
-                    android.support.design.R.id#scroll}|{@link
-                    android.support.design.R.id#enterAlways}|{@link
-                    android.support.design.R.id#enterAlwaysCollapsed}|{@link
-                    android.support.design.R.id#snap}</code> scroll flags.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=207398">Issue
-          207398</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <!-- TODO: Add link -->Vector Drawable library:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a bug where <!-- TODO: Javadoc link -->
-             <code>VectorDrawableCompat</code> does not render correctly in
-            {@link android.widget.TextView} on API level 23. (<a class=
-            "external-link" href=
-            "https://code.google.com/p/android/issues/detail?id=206227">Issue
-            206227</a>)
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<!-- end of collapsible section: 23.4.0 -->
-
-
-<div class="toggle-content closed">
-  <p id="rev23-3-0">
-    <a href="#" onclick="return toggleContent(this)"><img src=
-    "{@docRoot}assets/images/styles/disclosure_up.png" class="toggle-content-img"
-    alt="">Android Support Library, revision 23.3.0</a> <em>(April
-    2016)</em>
-  </p>
-
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v4">v4 Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added <code>AppLaunchChecker</code> to help track how your app
-          has been launched by the user in the past.
-          <code>hasStartedFromLauncher()</code> lets you know if the user has
-          launched your app from the home screen before, or if it has only
-          been started by other means (for example, to view specific web
-          URLs).
-          </li>
-
-          <li>Fixed a memory leak in
-          <code>MediaBrowserServiceCompat.mConnections</code>. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=205220">Issue
-          205220</a>)
-          </li>
-
-          <li>Fixed issue where {@link android.support.v4.view.ViewPager}
-          does not account for page margins when flipping page. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203816">Issue
-          203816</a>)
-          </li>
-          <li>{@link android.support.v4.app.Fragment#onRequestPermissionsResult
-            Fragment.onRequestPermissionsResult()} is now delivered to child
-            fragments.
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
-        appcompat library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed an issue in {@link
-          android.support.v7.widget.AppCompatSpinner} that could cause
-          multiple popups to appear. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=205052">Issue
-          205052</a>)
-          </li>
-
-          <li>Fixed an issue with how borderless buttons were colored.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202967">Issue
-          202967</a>)
-          </li>
-
-          <li>Fixed a compatibility issue between {@link
-          android.support.v7.app.AppCompatDialogFragment } and {@link
-          android.support.v7.app.AlertDialog}. (<a class="external-link"
-            href="https://code.google.com/p/android/issues/detail?id=204805">Issue
-            204805</a>)
-          </li>
-
-          <li>Reverted changes to <code>TintResources</code> that were causing
-            memory and configuration issues.  (<a class="external-link"
-            href="https://code.google.com/p/android/issues/detail?id=205236">Issue
-            205236</a>)</li>
-        </ul>
-      </dd>
-
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7
-        mediarouter library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed {@link android.support.v7.app.MediaRouteControllerDialog}
-          volume slider’s behavior. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202299">Issue
-          202299</a>)
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>
-        Changes for <a href="features.html#v7-preference">v7 Preference</a>
-        library:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed issue where {@link
-          android.support.v7.preference.PreferenceFragmentCompat} would crash
-          if <code>dividerHeight</code> is specified. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=204778">Issue
-          204778</a>)
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7
-        recyclerview library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a bug where {@link
-          android.support.v7.widget.RecyclerView} would not invoke scroll
-          callbacks if the range of visible items shrank. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=200987">Issue
-          200987</a>)
-          </li>
-
-          <li>Fixed a bug where {@link
-          android.support.v7.widget.RecyclerView} would freeze if it was in
-          linear layout, was weighted, and contained images. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203276">Issue
-          203276</a>)
-          </li>
-
-          <li>Fixed a crash in {@link
-          android.support.v7.widget.OrientationHelper#getStartAfterPadding
-          OrientationHelper.getStartAfterPadding()}. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=180521">Issue
-          180521</a>)
-          </li>
-
-          <li>Fixed a crash with usages of
-          <code>android:nestedScrollingEnabled</code>. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=197932">Issue
-          197932</a>)
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#design">Design Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a bug where a hidden bottom sheet would handle touch
-          events. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203654">Issue
-          203654</a>)
-          </li>
-
-          <li>Fixed a layout issue with <code>BottomSheetBehavior</code> when
-          <code>fitsSystemWindows</code> is true. (<a class="external-link"
-          href=
-          "https://code.google.com/p/android/issues/detail?id=203057">Issue
-          203057</a>)
-          </li>
-
-          <li>Fixed an accessibility issue with {@link
-          android.support.design.widget.Snackbar}. (<a class="external-link"
-          href=
-          "https://code.google.com/p/android/issues/detail?id=182145">Issue
-          182145</a>)
-          </li>
-
-          <li>Fixed a crash on {@link android.support.design.widget.Snackbar}
-          swipe. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203924">Issue
-          203924</a>)
-          </li>
-
-          <li>Fixed a bug in {@link
-          android.support.design.widget.AppBarLayout} with
-          <code>enterAlways</code>. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203661">Issue
-          203661</a>)
-          </li>
-
-          <li>Fixed a bug where {@link
-          android.support.design.widget.TextInputLayout} unnecessarily clears
-          {@link android.widget.EditText} object's background color filter.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=203357">Issue
-          203357</a>)
-          </li>
-        </ul>
-      </dd>
-
-    </dl>
-  </div>
-</div>
-<!-- end of collapsible section: 23.3.0 -->
-
-<div class="toggle-content closed">
-  <p id="rev23-2-1">
-    <a href="#" onclick="return toggleContent(this)"><img src=
-    "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img"
-    alt="">Android Support Library, revision 23.2.1</a> <em>(March
-    2016)</em>
-  </p>
-
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v4">v4 Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed an exception in {@link
-          android.support.v4.graphics.drawable.DrawableCompat#wrap
-          DrawableCompat.wrap()} and {@link android.graphics.drawable.LayerDrawable} on
-          API levels 17 to 19. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201817">Issue 201817</a>)
-          </li>
-
-          <li>Fixed an {@code ArrayIndexOutOfBoundsException} in {@link
-          android.support.v4.widget.ViewDragHelper#shouldInterceptTouchEvent
-          ViewDragHelper.shouldInterceptTouchEvent()}. (<a class="external-link"
-            href="https://code.google.com/p/android/issues/detail?id=182262">Issue
-            182262</a>)
-          </li>
-
-          <li>Fixed a bug in {@link android.support.v4.view.ViewPager} related to
-          scroll calculation for size changes.
-          </li>
-
-          <li>Fixed a {@code NullPointerException} when {@code
-          DrawerLayout.removeDrawerListener()} is called without a set {@link
-          android.support.v4.widget.DrawerLayout.DrawerListener
-          DrawerLayout.DrawerListener}. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202478">Issue 202478</a>)
-          </li>
-
-          <li>Fixed a bug where {@link android.support.v4.view.ViewPager} does not set
-          {@link android.view.accessibility.AccessibilityEvent} parameters properly
-          when scrolling.
-          </li>
-
-          <li>Fixed an issue that caused lag during device rotation when using
-          {@link android.support.v4.graphics.drawable.DrawableCompat#wrap
-          Drawable.wrap()}. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201924">Issue 201924</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
-        appcompat library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Reverted dependency on vector assets so that developers using the
-            <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">appcompat
-            library</a> are not forced to use {@link
-            android.graphics.drawable.VectorDrawable} and its associated build flags.
-          </li>
-
-          <li>Fixed a compatibility issue with Night Mode and API level 23.
-            (<a class="external-link" href=
-            "https://code.google.com/p/android/issues/detail?id=201910">Issue
-            201910</a>)
-          </li>
-
-          <li>Fixed a compatibility issue with {@link
-          android.support.v7.widget.SwitchCompat} and API level 7. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201942">Issue 201942</a>)
-          </li>
-
-          <li>Fixed an issue with propagating configuration values in Resources objects
-          <a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201928">Issue 201928</a>
-          </li>
-
-          <li>Fixed a compatibility issue where the {@link
-          android.support.v7.app.NotificationCompat.MediaStyle
-          NotificationCompat.MediaStyle} cancel button becomes invisible on API level
-          21 and below. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202156">Issue 202156</a>)
-          </li>
-
-          <li>Fixed a compatibility crash with {@link
-          android.support.v7.widget.AppCompatSpinner} on API level 21 and below.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202246">Issue 202246</a>)
-          </li>
-
-          <li>Fixed an issue where the {@code app:textAllCaps = "false"} style did not
-          work. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202117">Issue 202117</a>)
-          </li>
-
-          <li>Fixed a crash when restoring {@link android.widget.SearchView}.
-            (<a class="external-link" href=
-            "https://code.google.com/p/android/issues/detail?id=201836">Issue
-            201836</a>)
-          </li>
-
-          <li>Fixed a memory leak that occurs when tinting drawable resources using
-          AppCompat. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202379">Issue 202379</a>)
-          </li>
-
-          <li>Fixed an issue with {@link android.view.KeyEvent} on API level 11 and
-          lower. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202939">Issue 202939</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-cardview">v7 cardview
-        library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added Night Mode support for {@link
-          android.support.v7.widget.CardView}. (<a class="external-link"
-            href="https://code.google.com/p/android/issues/detail?id=194497">Issue
-            194497</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7
-        recyclerview library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed bugs related to various measure-spec methods. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201856">Issue
-          201856</a>)
-          </li>
-
-          <li>Reduced the lockdown period in which {@link
-          android.support.v7.widget.RecyclerView} does not allow adapter
-          changes while calculating a layout or scroll. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202046">Issue
-          202046</a>)
-          </li>
-
-          <li>Fixed a crash when calling {@link
-          android.support.v7.widget.RecyclerView.Adapter#notifyItemChanged
-          notifyItemChanged()} on an item that is out of view. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202136">Issue
-          202136</a>)
-          </li>
-
-          <li>Fixed a crash that occurs when {@link
-          android.support.v7.widget.RecyclerView.LayoutManager
-          RecyclerView.LayoutManager} adds and removes a view in the same
-          measurement pass. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=193958">Issue
-          193958</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7
-        mediarouter library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a crash that occurs when calling {@link
-          android.support.v7.media.MediaRouter#getInstance
-          MediaRouter.getInstance()} on API level 17. (<a class="external-link"
-            href=
-            "https://code.google.com/p/android/issues/detail?id=180654">Issue
-            180654</a>)
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#v17-leanback">v17
-        Leanback Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed an issue with {@code GridLayout.onAddFocusables()} that
-          caused the wrong item to be selected.
-          </li>
-
-          <li>Fixed issue with {@link
-          android.support.v17.leanback.app.GuidedStepFragment} actions
-          disappearing after an action was collapsed.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href=
-        "{@docRoot}tools/support-library/features.html#design">Design Support
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a {@link android.support.design.widget.TabLayout} crash
-          caused by tab-pooling. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201827">Issue
-          201827</a>)
-          </li>
-
-          <li>Fixed a bug in {@link
-          android.support.design.widget.NavigationView} that caused the wrong
-          color to be selected. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201951">Issue
-          201951</a>)
-          </li>
-
-          <li>Fixed a bug where {@link
-          android.support.design.widget.FloatingActionButton#setBackgroundTintList
-          setBackgroundTintList()} was no longer able to change the background
-          color. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201873">Issue
-          201873</a>)
-          </li>
-
-          <li>Fixed an issue where {@link
-          android.support.design.widget.AppBarLayout} did not completely scroll
-          out of view when used with {@code android:fitsSystemWindows = “true”}.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201822">Issue
-          201822</a>)
-          </li>
-
-          <li>Fixed an issue where {@code BottomSheetDialog} did not display
-          short content views correctly. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201793">Issue
-          201793</a>)
-          </li>
-
-          <li>Fixed an issue where {@code BottomSheetDialogFragment} moved
-          sporadically when content inside was changed. (<a class=
-          "external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202125">Issue
-          202125</a>)
-          </li>
-
-          <li>Fixed a crash in TextInputLayout counter <a class="external-link"
-            href=
-            "https://code.google.com/p/android/issues/detail?id=202051">link</a>
-          </li>
-
-          <li>Fixed a crash that occured when {@link
-          android.support.design.widget.TextInputLayout#getCounterMaxLength
-          TextInputLayout.getCounterMaxLength()} restored a saved state.
-          (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=202375">Issue
-          202375</a>)
-          </li>
-
-          <li>Fixed a {@code ClassCastException} that occurred when restoring a
-          {@link android.support.design.widget.CoordinatorLayout} using the
-          saved state of a view that was not a {@link
-          android.support.design.widget.CoordinatorLayout}.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for VectorDrawableCompat:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Fixed a bug where the wrong variable was read for {@code
-          android:tintMode}. (<a class="external-link" href=
-          "https://code.google.com/p/android/issues/detail?id=201907">Issue
-          201907</a>)
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-<!-- end of collapsible section: 23.2.1 -->
-
-<div class="toggle-content closed">
-  <p id="rev23-2-0">
-    <a href="#" onclick="return toggleContent(this)"><img src=
-    "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img"
-    alt="">Android Support Library, revision 23.2.0</a> <em>(February
-    2016)</em>
-  </p>
-
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>
-        Changes for <a href="features.html#v4">v4 Support library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added {@code MediaBrowserCompat} for {@link
-          android.media.browse.MediaBrowser} support, and {@code
-          MediaBrowserServiceCompat} for {@link
-          android.service.media.MediaBrowserService} support. This is useful
-          when connecting a media app’s background service with UI components,
-          and integrating with Android Auto and Android Wear without requiring
-          API level 21 or higher.
-          </li>
-
-          <li>The system now calls {@link
-          android.support.v4.app.FragmentActivity#onActivityResult onActivityResult()} for a
-          nested {@link android.support.v4.app.FragmentActivity}.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href="features.html#v7-appcompat">v7 AppCompat
-        library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added Night Mode functionality to API level 14 and higher. Switch
-          between <a href="{@docRoot}training/material/theme.html">Material
-          Light and Material Dark Themes</a> based on the time of day or
-          app-specific setting.
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>Day and night themes can be found here: {@code
-              &lt;sdk&gt;/extras/android/support/v7/appcompat/res/values/themes_daynight.xml}
-              </li>
-
-              <li>{@code AppCompatDelegate.setDefaultNightMode()}: sets the
-              app’s default mode by passing one of the following constants:
-              </li>
-
-              <li style="list-style: none; display: inline">
-                <ul>
-                  <li>{@code MODE_NIGHT_AUTO}
-                  </li>
-
-                  <li>{@code MODE_NIGHT_NO}
-                  </li>
-
-                  <li>{@code MODE_NIGHT_YES}
-                  </li>
-
-                  <li>{@code MODE_NIGHT_FOLLOW_SYSTEM}
-                  </li>
-                </ul>
-              </li>
-
-              <li>{@code AppCompatDelegate.setLocalNightMode()}: overrides
-              the night mode setting for the local app component.
-              </li>
-
-              <li>{@code AppCompatDelegate.getDefaultNightMode()}: returns
-              the default night mode.
-              </li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href="features.html#v7-mediarouter">v7 mediarouter
-        library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>{@link android.support.v7.app.MediaRouteControllerDialog} now
-          correctly applies custom app theme colors.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href="features.html#design">Design support library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added support for <a href=
-          "https://www.google.com/design/spec/components/bottom-sheets.html">bottom
-          sheets</a>. An interaction plugin, {@code
-          BottomSheetBehavior}, allows a child view of a {@link
-          android.support.design.widget.CoordinatorLayout} to act as
-          a bottom sheet. The base class, {@code BottomSheetCallback}, provides
-          callbacks to monitor bottom sheet events.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for the <a href="features.html#custom-tabs">CustomTabs support
-        library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>
-            <a href=
-            "https://developer.chrome.com/multidevice/android/customtabs">Chrome
-            Custom Tabs</a> now allows apps to include a bottom bar with action
-            buttons in addition to the existing top action button.
-          </li>
-
-          <li>{@code CustomTabsIntent.Builder.addToolBarItem()}: adds an action
-          button to a custom tab. You can use this to add multiple buttons.
-          </li>
-
-          <li>{@code CustomTabsSession.setToolBarItem()}: updates the visuals
-          for toolbar items. This method will only succeed if it is given a
-          valid id and the browser session is in the foreground.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Added VectorDrawable support library:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added Classes:
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>{@code VectorDrawableCompat}
-              </li>
-
-              <li>{@code AnimatedVectorDrawableCompat}
-              </li>
-            </ul>
-          </li>
-
-          <li>Adds support for {@link
-          android.graphics.drawable.VectorDrawable} assets to apps
-          running on API level 7 or higher. {@link
-          android.graphics.drawable.AnimatedVectorDrawable} assets
-          are also supported on API level 11 or higher. Vector assets can be
-          considerably smaller than image assets and should help reduce app
-          size by reducing the amount of assets required to support multiple
-          device screens.
-          </li>
-
-          <li>This library is now a dependency of the <a href=
-          "features.html#v7-appcompat">v7 AppCompat library</a>, allowing
-          developers and <a href="features.html#v7-appcompat">AppCompat </a>
-          to easily use vector drawables. To use {@code
-          VectorDrawableCompat} within an {@link android.widget.ImageButton} or
-          {@link android.widget.ImageView}, use the {@code app:srcCompat} XML
-          attribute or {@code setImageResource()}
-          method.
-          </li>
-
-          <li>To keep referencing attribute IDs on API level 20 or
-          lower, add the following {@code appt} flag to your {@code
-          build,gradle} file:
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>If you are building with Android Plugin for Gradle 1.5.0 or
-              lower, add the following to your {@code build.gradle} file:
-              </li>
-
-              <li style="list-style: none; display: inline">
-                <pre>
-android {
-  defaultConfig {
-    // Stops the Gradle’s automatic rasterization of vectors
-    generatedDensities = []
-  }
-   // Flag that tells aapt to keep the attribute ids
-  aaptOptions {
-    additionalParameters "--no-version-vectors"
-  }
-}
-</pre>
-              </li>
-
-              <li>If you are building with Android Plugin for Gradle 2.0.0 or
-              higher, add the following to your {@code build.gradle} file:
-              </li>
-
-              <li style="list-style: none; display: inline">
-                <pre>
-android {
-  defaultConfig {
-    vectorDrawables.useSupportLibrary = true
-  }
-}
-</pre>
-              </li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-
-      <dt>
-        Changes for <a href="features.html#v17-leanback">v17 Leanback
-        Library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>Added new capabilities to {@link android.support.v17.leanback.app.GuidedStepFragment},
-          which is a component that guides users through a decision or series of decisions:
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>Added button actions to {@link
-              android.support.v17.leanback.widget.GuidedAction}:
-              </li>
-
-                <ul>
-                  <li>{@code GuidedStepFragment.setButtonActions()}: sets a list of
-                  {@link android.support.v17.leanback.widget.GuidedAction} buttons that
-                  the user may select from the Actions view.
-                  </li>
-                </ul>
-              </li>
-
-              <li>Description fields are now editable:
-              </li>
-
-              <li style="list-style: none; display: inline">
-                <ul>
-                  <li>{@code GuidedAction.Builder.descriptionEditable()}: when passing
-                  {@code true}, sets the action’s description to be editable.
-                  </li>
-
-                  <li>{@code GuidedAction.getEditDescription()}: returns the editable
-                  description as a {@code CharSequence}.
-                  </li>
-                </ul>
-              </li>
-
-              <li>Added drop-down lists of sub-actions:
-              </li>
-
-              <li style="list-style: none; display: inline">
-                <ul>
-                  <li>{@code GuidedAction.setSubActions()}: sets a {@link
-                  android.support.v17.leanback.widget.GuidedAction} list as a drop-down
-                  menu of sub-actions.
-                  </li>
-                </ul>
-              </li>
-            </ul>
-
-          <li>Added the {@code GuidedDatePickerAction} widget for {@link
-          android.widget.DatePicker} functionality:
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>The date is selected using year, month, and day columns and has a
-              customizable range.
-              </li>
-
-              <li>{@code GuidedDatePickerAction.Builder}: builder class for the {@code
-              GuidedDatePickerAction} object.
-              </li>
-
-              <li>{@code GuidedDatePickerAction.Builder.datePickerFormat(String
-              datePickerFormat)}: set the desired date format by passing the
-              appropriate three-character {@code String}, e.g. {@code “YMD”} or {@code
-              “MDY”}. Alternatively, use the {@code datePickerFormat} XML attribute.
-              </li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-    </dl>
-
-    <dl>
-      <dt>
-        Changes for <a href="features.html#v7-recyclerview">v7 RecyclerView
-        library</a>:
-      </dt>
-
-      <dd>
-        <ul>
-          <li>{@link android.support.v7.widget.RecyclerView} now has an opt-in
-          feature called <em>AutoMeasure</em> which allows {@link
-          android.support.v7.widget.RecyclerView.LayoutManager} to easily wrap
-          content or handle various measurement specifications provided by the
-          parent of the {@link android.support.v7.widget.RecyclerView}. It
-          supports all existing animation capabilities of the {@link
-          android.support.v7.widget.RecyclerView}.
-          </li>
-
-          <li style="list-style: none; display: inline">
-            <ul>
-              <li>If you have a custom {@link
-              android.support.v7.widget.RecyclerView.LayoutManager},
-              call {@code setAutoMeasureEnabled(true)} to start using the new
-              AutoMeasure API. All built-in {@link
-              android.support.v7.widget.RecyclerView.LayoutManager} objects
-              enable auto-measure by default.
-              </li>
-
-              <li>{@link android.support.v7.widget.RecyclerView.LayoutManager}
-              no longer ignores some {@link
-              android.support.v7.widget.RecyclerView.LayoutParams} settings,
-              such as {@code MATCH_PARENT} in the scroll direction.
-                <p class="note">
-                  <strong>Note:</strong> These lifted restrictions may cause
-                  unexpected behavior in your layouts. Make sure you specify
-                  the correct layout parameters.
-                </p>
-              </li>
-            </ul>
-          </li>
-
-          <li>When updating a {@link
-          android.support.v7.widget.RecyclerView.ViewHolder} with payload
-          information, {@link android.support.v7.widget.DefaultItemAnimator}
-          now disables change animations.
-          </li>
-
-          <li>You can now modify the {@link
-          android.support.v7.widget.helper.ItemTouchHelper} escape velocity to
-          control swipe sensitivity. To make it easier or harder to swipe,
-          override {@code getSwipeEscapeVelocity(float defaultValue)} and modify {@code defaultValue}.
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-<!-- end of collapsible section: 23.2.0 -->
-
-<div class="toggle-content closed">
-  <p id="rev23-1-1"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 23.1.1</a> <em>(November 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt>
-      <dd>
-        <ul>
-          <li>Fixed a crash that occurs when you perform a swipe-to-dismiss action that the
-            {@code ItemTouchHelper} utility class provides, and then add an item.
-            (<a href="http://b.android.com/190500">Issue 190500</a>)</li>
-         </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v7-preference">v7 preference library:</a></dt>
-      <dd>
-        <ul>
-          <li>Fixed an issue with ProGuard usage.
-          (<a href="http://b.android.com/183261">Issue 183261</a>)</li>
-         </ul>
-      </dd>
-
-      <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Fixed a number of internal issues in this library.</li>
-         </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added the <code>getHeaderView</code> method to the <code>NavigationView</code> class.</li>
-          <li>Fixed a transparent background issue for a <code>FloatingActionButton</code> object on
-          devices running Android 4.0 (API level 15) and lower.
-          (<a href="http://b.android.com/183315">Issue 183315</a>)</li>
-         </ul>
-       </dd>
-    </dl>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-
-<div class="toggle-content closed">
-  <p id="rev23-1-0"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 23.1.0</a> <em>(October 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v4">v4 Support library:</a></dt>
-       <dd>
-        <ul>
-           <li>Added <code>OnScrollChangedListener</code> interface support to the
-            <code>NestedScrollView</code> widget. It
-            allows you to receive callbacks when the scroll X or Y positions change.</li>
-          <li>Added a <code>MediaButtonReceiver</code> class to forward received playback controls
-            to a service that’s managing the <code>MediaSessionCompat</code> class. The
-            <code>MediaSessionCompat</code> class has a
-            constructor that can automatically find a media button receiver in the manifest. A
-            media button receiver is a key part to <a href=
-          "http://developer.android.com/training/managing-audio/volume-playback.html#PlaybackControls">handling
-          playback controls</a> from hardware or bluetooth controls.</li>
-        </ul>
-       </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt>
-       <dd>
-        <ul>
-          <li>Added material design <code>Seekbar</code> and <code>ImageButton</code> widgets.</li>
-          <li>Updated the <code>ImageView</code> widget to support the tint feature.</li>
-          <li>Updated the look-and-feel of the <code>SwitchCompat</code> widget.</li>
-         </ul>
-       </dd>
-
-      <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library:</a></dt>
-       <dd>
-        <ul>
-        <li>Added the following features to the <code>MediaRouteChooserDialog</code> class:</li>
-        <ul>
-          <li>Displays a loading page while discovering media route providers.</li>
-          <li>Includes a device type icon for easier device identification.</li>
-          <li>Sorts the routes according to frequency of use in the current app.</li>
-          <li>Supports landscape mode.</li>
-        </ul>
-        </ul>
-        <ul>
-        <li>Added the following features to the <code>MediaRouteControllerDialog</code> class:</li>
-        <ul>
-           <li>Recognizes screen casting and provides a proper description.</li>
-           <li>Supports various album art sizes and aspect ratios, and loads the art asynchronously.</li>
-           <li>Automatically selects the content color based on the primary color of the app.</li>
-           <li>Adjusts the dialog layout based on available screen space on the device.</li>
-           <li>Supports landscape mode.</li>
-        </ul>
-        </ul>
-       </dd>
-
-      <dt>Changes for <a href="features.html#v7-palette">v7 palette library:</a></dt>
-       <dd>
-        <ul>
-          <li>Added the <code>setRegion()</code> method to support extracting color from a specific
-            region of a <code>Bitmap</code> object.</li>
-         </ul>
-       </dd>
-
-      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt>
-       <dd>
-        <ul>
-        <li>Added an improved animation API to the <code>ItemAnimator</code> class for better
-          customizations:</li>
-           <ul>
-           <li>Change animations no longer enforce two copies of the <code>ViewHolder</code> object,
-            which enables item content animations. Also, the <code>ItemAnimator</code> object
-            decides whether it wants to reuse the same <code>ViewHolder</code> object or create a
-            new one.</li>
-           <li>The new information record API gives the <code>ItemAnimator</code> class the flexibility
-            to collect data at the correct point in the layout lifecycle. This information is later
-            passed into the animate callbacks.</li>
-            </ul>
-         </ul>
-          <ul>
-          <li>Provided an easy transition plan for this backward-incompatible API change:</li>
-           <ul>
-           <li>If you’ve previously extended the <code>ItemAnimator</code> class, you can change
-            your base class to <code>SimpleItemAnimator</code> and your code should work as before.
-            The <code>SimpleItemAnimator</code> class provides the old API by wrapping the new API.</li>
-           <li>Some methods were removed from the <code>ItemAnimator</code> class. The following
-            code will no longer compile:</li>
-           <pre>recyclerView.getItemAnimator().setSupportsChangeAnimations(false)</pre>
-           <p>You can replace it with:</p>
-           <pre>
-ItemAnimator animator = recyclerView.getItemAnimator();
-if (animator instanceof SimpleItemAnimator) {
-   ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
-}
-           </pre>
-          </ul>
-         </ul>
-       </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-preference">v7</a>,
-          <a href="features.html#v14-preference">v14</a>, and
-          <a href="features.html#v17-preference">v17</a> Preference Support library:</dt>
-       <dd>
-        <ul>
-          <li>Removed APIs for controlling <code>EditText</code> dialogs.</li>
-         </ul>
-       </dd>
-
-     <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added a version of the <code>GuidedStepFragment</code> class for the Support library
-            (extends <code>android.support.v4.app.Fragment</code>), and improved animations and
-            transitions.</li>
-          <li>Updated the <code>GuidedStepFragment</code> class so it can be placed on top of
-            existing content.</li>
-          <li>Added the ability to annotate different types of search completions to the
-          <code>SearchFragment</code> class.</li>
-          <li>Added staggered slide transition support to the <code>VerticalGridFragment</code>
-            class.</li>
-         </ul>
-       </dd>
-
-
-     <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added <a href=
-  "https://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter">
-          character counting</a> support to the <code>TextInputLayout</code> widget.</li>
-          <li>Added edge snapping support to the <code>AppBarLayout</code> class by adding the
-            <code>SCROLL_FLAG_SNAP</code> constant. When scrolling ends, if the view is only
-            partially visible, the view is snapped and scrolled to its closest edge.</li>
-          <li>Added support for custom views to the <code>NavigationView</code> class by using the
-            <code>app:actionLayout</code> attribute or <code>MenuItemCompat.setActionView()</code>
-            method.</li>
-         </ul>
-       </dd>
-
-
-     <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added the <code>enableUrlBarHiding()</code> method to the <code>CustomTabsIntent</code>
-            class. It lets the client customize whether the URL bar should be hidden automatically
-            on scroll down.</li>
-          <li>Added the <code>setActionButton()</code> method to the <code>CustomTabsSession</code>
-            class. It lets the client
-            change the icon for a custom action button in an already launched custom tab.</li>
-          <li>Added the <code>TAB_SHOWN</code> and <code>TAB_HIDDEN</code> constants as new events
-            for the <code>onNavigationEvent</code> method of the <code>CustomTabsCallback</code>
-            class.</li>
-         </ul>
-       </dd>
-
-    </dl>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-<div class="toggle-content closed">
-  <p id="rev23-0-1"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 23.0.1</a> <em>(September 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v7-preference">v7</a> and
-          <a href="features.html#v14-preference">v14</a> Preference Support library:</dt>
-       <dd>
-        <ul>
-          <li>Added the material design layout and style files.
-          (<a href="http://b.android.com/183376">Issue 183376</a>)</li>
-         </ul>
-       </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt>
-       <dd>
-        <ul>
-          <li>Fixed crash issues for the {@link android.app.Fragment} class by limiting the use of
-              hardware layers to Android 4.1 (API level 16) and higher.
-          (<a href="http://b.android.com/183896">Issue 183896</a>)</li>
-          <li>Fixed an issue where hardware buttons did not work when an activity had set the
-            {@link android.widget.Toolbar} class to act as the
-            {@link android.app.ActionBar} by using the <code>setSupportActionBar()</code> method.
-          (<a href="http://b.android.com/183334">Issue 183334</a>)</li>
-          <li>Updated the {@link android.support.v7.app.AppCompatDialogFragment} class so it
-            no longer throws the {@code Windows feature must be requested before adding content}
-            error.
-          (<a href="http://b.android.com/183186">Issue 183186</a>)</li>
-         </ul>
-       </dd>
-
-
-     <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Fixed the
-            {@link android.support.design.widget.AppBarLayout} class so it now draws correctly after
-            rotation.
-          (<a href="http://b.android.com/183109">Issue 183109</a>)</li>
-          <li>Fixed the
-            {@link android.support.design.widget.TabLayout} class so it now behaves correctly when a
-            user clicks after a swipe.
-          (<a href="http://b.android.com/183123">Issue 183123</a>)</li>
-         </ul>
-       </dd>
-
-
-     <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Lowered the
-          <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>minSdkVersion</code></a>
-              value from 16 to 15 for version support.</li>
-          <li>Added a way to generate a
-            {@link android.support.customtabs.CustomTabsSessionToken} from an intent.</li>
-         </ul>
-       </dd>
-
-    </dl>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-<div class="toggle-content closed">
-  <p id="rev23"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 23</a> <em>(August 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-     <dt>Added new support libraries:</a></dt>
-      <dd>
-        <ul>
-          <li><a href="features.html#custom-tabs">Custom Tabs Support library</a></li>
-          <li><a href="features.html#percent">Percent Support library</a></li>
-          <li><a href="features.html#recommendation">App Recommendation Support library for TV</a></li>
-          <li><a href="features.html#v7-preference">v7 Preference Support library</a></li>
-          <li><a href="features.html#v14-preference">v14 Preference Support library</a></li>
-          <li><a href="features.html#v17-preference">v17 Preference Support library for TV</a></li>
-         </ul>
-       </dd>
-
-    </dl>
-
-    <p>For a complete list of the Support Library changes, see the
-    <a href="{@docRoot}sdk/support_api_diff/23/changes.html">Support
-    Library API Differences Report</a>.  </p>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-
-<div class="toggle-content closed">
-  <p id="rev22-2-1"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 22.2.1</a> <em>(July 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added the {@code hide()} and {@code show()} methods to the
-            {@link android.support.design.widget.FloatingActionButton} class for programmatic
-            triggering of animations.  </li>
-          <li>Added the {@code LENGTH_INDEFINITE} constant to the
-            {@link android.support.design.widget.Snackbar} class for showing a snackbar
-            until it is dismissed or another snackbar is shown. Also, added the
-            {@link android.support.design.widget.Snackbar#setActionTextColor(int)} and
-            {@link android.support.design.widget.Snackbar#setActionTextColor(ColorStateList)}
-            methods.  </li>
-          <li>Added the {@code getSelectedTabPosition()} method to the
-            {@link android.support.design.widget.TabLayout} class for retrieving the currently
-            selected tab. </li>
-          <li>Provided a fully fluent API for the
-            {@link android.support.v7.app.NotificationCompat.MediaStyle} class for method
-            chaining.  </li>
-           <li>Added convenience methods to the
-             {@link android.support.v7.widget.RecyclerView} for batch insertion of items. </li>
-         </ul>
-       </dd>
-    </dl>
-
-    <p>For a complete list of the Support Library changes, see the
-    <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support
-    Library API Differences Report</a>.  </p>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 22.2.0</a> <em>(May 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Added <a href="features.html#design">Design Support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.design.widget.TextInputLayout} for showing
-            {@link android.widget.EditText} hint and error text as floating labels.
-          </li>
-          <li>Added {@link android.support.design.widget.FloatingActionButton} for implementing a
-            primary action on your interface as a
-            floating action button, supporting either default or mini sizes.
-          </li>
-          <li>Added {@link android.support.design.widget.Snackbar} for providing lightweight
-            feedback with an optional action in an animated snackbar.
-          </li>
-          <li>Added {@link android.support.design.widget.TabLayout} for implementing fixed and
-            scrollable
-           <a href="{@docRoot}design/building-blocks/tabs.html">tabs</a> as well as easy
-             integration with
-             {@link android.support.v4.view.ViewPager}.
-          </li>
-          <li>Added {@link android.support.design.widget.NavigationView} for implementing
-            <a href="{@docRoot}design/patterns/navigation-drawer.html">navigation drawer</a>
-             contents, including the ability to inflate menu items via a
-             <a href="{@docRoot}guide/topics/resources/menu-resource.html">Menu Resource</a>.
-          </li>
-          <li>Added {@link android.support.design.widget.CoordinatorLayout}, a general purpose
-            layout, used for building dependencies between
-            sibling views and allowing easy scrolling reactions between components via
-            {@link android.support.design.widget.CoordinatorLayout.Behavior}. Many of the Design
-            Library components rely on being a child of a
-            {@link android.support.design.widget.CoordinatorLayout}.
-          </li>
-          <li>Added {@link android.support.design.widget.AppBarLayout}, a container for a
-            {@link android.widget.Toolbar}
-            and other views (such as {@link android.support.design.widget.TabLayout}) for
-            reacting to scrolling events by scrolling off the screen, becoming visible in reaction
-            to a downward scroll, or collapsing/uncollapsing before scrolling off/onto the screen.
-          </li>
-          <li>Added {@link android.support.design.widget.CollapsingToolbarLayout} for controlling
-            how a {@link android.widget.Toolbar} collapses. A toolbar may collapse by:
-            pinning components to the top of the screen while it collapses, introducing
-            parallax scrolling of components such as an {@link android.widget.ImageView},
-            or adding a content scrim color when the view is partially collapsed.
-          </li>
-       </ul>
-      </dt>
-
-
-
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-         <ul>
-
-          <li>Added the
-{@link android.support.v4.view.accessibility.AccessibilityEventCompat#getContentChangeTypes getContentChangeTypes()}
-            and
-{@link android.support.v4.view.accessibility.AccessibilityEventCompat#setContentChangeTypes setContentChangeTypes()}
-            methods and related change type
-            fields to the
-            {@link android.support.v4.view.accessibility.AccessibilityEventCompat}
-            class for accessibility event handling.
-          </li>
-          <li>Added the
-{@link android.support.v4.media.session.PlaybackStateCompat#getActiveQueueItemId getActiveQueueItemId()},
-{@link android.support.v4.media.session.PlaybackStateCompat#getCustomActions getCustomActions()},
-            and
-            {@link android.support.v4.media.session.PlaybackStateCompat#getExtras getExtras()}
-            methods with related state fields to the
-            {@link android.support.v4.media.session.PlaybackStateCompat} class for
-            getting custom actions from the queue.
-          </li>
-          <li>Added the
-{@link android.support.v4.media.session.PlaybackStateCompat.Builder#addCustomAction addCustomAction()},
-{@link android.support.v4.media.session.PlaybackStateCompat.Builder#setActiveQueueItemId setActiveQueueItemId()},
-            and
-            {@link android.support.v4.media.session.PlaybackStateCompat.Builder#setExtras setExtras()}
-            methods to the
-            {@link android.support.v4.media.session.PlaybackStateCompat.Builder} class for adding
-            custom actions to a playback state.
-          </li>
-          <li>Added the
-{@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#fromCustomAction fromCustomAction()} and
-{@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#getCustomAction getCustomAction()} methods
-            to the
-            {@link android.support.v4.media.session.PlaybackStateCompat.CustomAction} class
-            for getting custom actions from the queue.
-          </li>
-          <li>Added the {@link android.support.v4.view.ViewCompat#isAttachedToWindow isAttachedToWindow()},
-            {@link android.support.v4.view.ViewCompat#offsetLeftAndRight offsetLeftAndRight()}, and
-            {@link android.support.v4.view.ViewCompat#offsetTopAndBottom offsetTopAndBottom()}
-            methods to the {@link android.support.v4.view.ViewCompat} class for working with views.
-          </li>
-          <li>Added the {@link android.support.v4.view.ViewPager#addOnPageChangeListener addOnPageChangeListener()},
-            {@link android.support.v4.view.ViewPager#clearOnPageChangeListeners clearOnPageChangeListeners()}, and
-            {@link android.support.v4.view.ViewPager#removeOnPageChangeListener removeOnPageChangeListener()}
-            methods to the {@link android.support.v4.view.ViewPager} class for responding to page
-            changes.
-            <p>Deprecated the
-            {@link android.support.v4.view.ViewPager#setOnPageChangeListener setOnPageChangeListener()} method.</p>
-          </li>
-          <li>Added the
-{@link android.support.v4.view.ViewParentCompat#notifySubtreeAccessibilityStateChanged notifySubtreeAccessibilityStateChanged()} method to
-            the {@link android.support.v4.view.ViewParentCompat} class for notifying a view parent
-            that the accessibility state of one of its descendants has changed.
-          </li>
-          <li>Added the {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZ translationZ()},
-            {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZBy translationZBy()},
-            {@link android.support.v4.view.ViewPropertyAnimatorCompat#z z()}, and
-            {@link android.support.v4.view.ViewPropertyAnimatorCompat#zBy zBy()}
-            methods to the {@link android.support.v4.view.ViewPropertyAnimatorCompat} class for
-            adding animation.
-          </li>
-       </ul>
-      </dd>
-
-
-
-<dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
-      <dd>
-<ul>
-          <li>Added the
-            {@link android.support.v7.app.AppCompatActivity#onWindowStartingSupportActionMode onWindowStartingSupportActionMode()}
-            method to the
-            {@link android.support.v7.app.AppCompatActivity},
-            {@link android.support.v7.app.AppCompatCallback}, and
-            {@link android.support.v7.app.AppCompatDialog} classes for handling action modes
-            started from the current window.
-          </li>
-
-          <li>Added the
-{@link android.support.v7.app.AppCompatDelegate#isHandleNativeActionModesEnabled isHandleNativeActionModesEnabled()} and
-{@link android.support.v7.app.AppCompatDelegate#setHandleNativeActionModesEnabled setHandleNativeActionModesEnabled()}
-           methods to the
-           {@link android.support.v7.app.AppCompatDelegate} class for handling native action modes.
-          </li>
-       </ul>
-      </dd>
-
-    <p>For a complete list of the Support Library changes, see the
-    <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support
-    Library API Differences Report</a>.  </p>
-
-    </dl>
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 22.1.0</a> <em>(April 2015)</em>
-  </p>
-
-
-
-  <div class="toggle-content-toggleme">
-    <dl>
-
-
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#annotations">annotations library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added the Annotations library to provide support for enhanced code inspections.
-            Annotations are added as metadata tags that you attach to variables, parameters,
-            and return values to inspect method return values, passed parameters, and local
-            variables and fields.
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-        <ul>
-
-          <li>Added the {@link android.support.v4.graphics.ColorUtils ColorUtils} class
-            to provide a set of color-related utility methods.
-          </li>
-          <li>Added the {@link android.support.v4.graphics.drawable.DrawableCompat#unwrap unwrap()} and
-            {@link android.support.v4.graphics.drawable.DrawableCompat#wrap wrap()} methods to the
-            {@link android.support.v4.graphics.drawable.DrawableCompat} class , allowing you to use
-            {@link android.support.v4.graphics.drawable.DrawableCompat#setTint setTint()},
-            {@link android.support.v4.graphics.drawable.DrawableCompat#setTintList setTintList()},
-            and {@link android.support.v4.graphics.drawable.DrawableCompat#setTintMode setTintMode()}
-            on all API level 4 or higher devices.
-          </li>
-          <li>Added the {@link android.support.v4.os.TraceCompat} class to
-            write trace events to the system trace buffer, which can then be collected and
-            visualized using the <a href="{@docRoot}tools/help/systrace.html">Systrace</a> tool.
-          </li>
-          <li>Added the {@link android.support.v4.util.CircularIntArray} class
-            to create circular integer array data structures.
-          </li>
-          <li>Added the {@link android.support.v4.util.CircularArray#clear clear()},
-            {@link android.support.v4.util.CircularArray#removeFromStart removeFromStart()},
-            and {@link android.support.v4.util.CircularArray#removeFromEnd removeFromEnd()}
-            methods to the {@link android.support.v4.util.CircularArray} class. Also, changed the
-            existing methods in this class to be non-final.
-          </li>
-          <li>Added the {@link android.support.v4.view.InputDeviceCompat}
-            as a helper class to access data in the
-            {@link android.support.v4.view.InputDeviceCompat} class.
-          </li>
-          <li>Added the {@link android.support.v4.view.LayoutInflaterCompat}
-            class as a helper class to access data in the
-            {@link android.support.v4.view.LayoutInflaterCompat} class
-            and added the {@link android.support.v4.view.LayoutInflaterFactory} interface.
-          </li>
-          <li>Added classes, methods, and interfaces to support nested scrolling.
-             <ul>
-               <li>Added the {@link android.support.v4.view.NestedScrollingChildHelper}
-               and {@link android.support.v4.view.NestedScrollingParentHelper}
-               helper classes for implementing nested scrolling parent and child views.</li>
-               <li>Added the {@link android.support.v4.view.NestedScrollingChild}
-               interface to be implemented by {@link android.view.View} subclasses.</li>
-               <li>Added the {@link android.support.v4.view.NestedScrollingParent}
-               and {@link android.support.v4.view.ScrollingView} interfaces to support
-               scrolling operations and provide scroll related APIs.</li>
-               <li>Added the
-                {@link android.support.v4.view.ViewGroupCompat#getNestedScrollAxes
-                getNestedScrollAxes()} method to the {@link android.support.v4.view.ViewGroupCompat}
-                class.</li>
-               <li>Added methods to the {@link android.support.v4.view.ViewParentCompat} class to
-                support nested scrolling.
-               </li>
-               <li>Added the {@link android.support.v4.widget.NestedScrollView}
-                 class to support nested scrolling parent and child on both new and old versions of
-                 Android.
-               </li>
-              </ul>
-          </li>
-          <li>Added methods and constants to the {@link android.support.v4.view.MotionEventCompat}
-            class for getting axis values and event source.
-         </li>
-         <li>Updated the {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
-          class to add methods for errors, content invalidation and labels.
-         </li>
-         <li>Added the following interpolation classes for animation:
-           {@link android.support.v4.view.animation.FastOutLinearInInterpolator},
-           {@link android.support.v4.view.animation.FastOutSlowInInterpolator},
-           {@link android.support.v4.view.animation.LinearOutSlowInInterpolator},
-           {@link android.support.v4.view.animation.LinearOutSlowInInterpolator}, and
-           {@link android.support.v4.view.animation.PathInterpolatorCompat}.
-         </li>
-         <li>Added the {@link android.support.v4.widget.Space} class to create gaps between
-           components in general purpose layouts. This class is deprecated in the gridlayout library.
-         </li>
-         <li>Added the {@link android.support.v4.widget.TextViewCompat} class for accessing
-           features in a {@link android.widget.TextView}.
-         </li>
-         <li>Added a displacement parameter to the
-           {@link android.support.v4.widget.EdgeEffectCompat#onPull onPull()} method in the
-           {@link android.support.v4.widget.EdgeEffectCompat} class.
-         </li>
-
-       </ul>
-      </dd>
-
-
-  <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added tint support to appcompat widgets, including
-            {@link android.support.v7.widget.AppCompatAutoCompleteTextView},
-            {@link android.support.v7.widget.AppCompatButton},
-            {@link android.support.v7.widget.AppCompatCheckBox},
-            {@link android.support.v7.widget.AppCompatCheckedTextView},
-            {@link android.support.v7.widget.AppCompatEditText},
-            {@link android.support.v7.widget.AppCompatMultiAutoCompleteTextView},
-            {@link android.support.v7.widget.AppCompatRadioButton},
-            {@link android.support.v7.widget.AppCompatRatingBar},
-            {@link android.support.v7.widget.AppCompatSpinner}, and
-            {@link android.support.v7.widget.AppCompatTextView}.
-          </li>
-          <li>Updated the {@link android.support.v7.app.AppCompatActivity} as the base
-            class for activities that use the support library action bar features. This class
-            replaces the deprecated {@link android.support.v7.app.ActionBarActivity}.
-          </li>
-          <li>Added the
-            {@link android.support.v7.app.AppCompatCallback} interface
-            to be implemented for AppCompat to be able to perform callbacks.
-          </li>
-            <li>Added the
-            {@link android.support.v7.app.AppCompatDelegate} abstract class
-            as a delegate you can use to extend AppCompat's support to any activity.
-          </li>
-          <li>Added the
-            {@link android.support.v7.app.AppCompatDialog} class
-            as the base class for AppCompat themed dialogs.
-          </li>
-          <li>Added the spinner style
-            {@link android.support.v7.app.AlertDialog} and
-            {@link android.support.v7.app.AlertDialog.Builder} classes to provide an AppCompat
-            themed {@link android.app.AlertDialog}.
-          </li>
-          <li>Added the {@link android.support.v7.graphics.Palette.Builder} class
-            for generating {@link android.support.v7.graphics.Palette} instances.
-            <ul>
-              <li>Added the
-                {@link android.support.v7.graphics.Palette#from}
-                method to the {@link android.support.v7.graphics.Palette} class to
-                start generating a Palette with the returned
-                {@link android.support.v7.graphics.Palette.Builder} instance.
-              </li>
-              <li>Deprecated the {@link android.support.v7.graphics.Palette#generate generate()} and
-                {@link android.support.v7.graphics.Palette#generateAsync generateAsync()} methods.
-              </li>
-             </ul>
-           </li>
-
-           <li>Added the
-             {@link android.support.v7.widget.GridLayout.Spec#getAbsoluteAlignment
-             getAbsoluteAlignment()} method to the {@link android.support.v7.widget.GridLayout.Spec}
-             class.
-           </li>
-           <li>Deprecated use of <code>app:theme</code> for styling
-             {@link android.support.v7.widget.Toolbar}. You can now use
-             <code>android:theme</code> for toolbars on all API level 7 and higher devices and
-             <code>android:theme</code> support for all widgets on API level 11 and higher devices.
-           </li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
-      <dd>
-        <ul>
-          <li> Added {@link android.support.v17.leanback.app.GuidedStepFragment},
-            {@link android.support.v17.leanback.widget.GuidanceStylist} and
-            {@link android.support.v17.leanback.widget.GuidedActionsStylist} to support
-            creating multi-step decision flows.
-          </li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt>
-      <dd>
-        <ul>
-           <li>Added {@link android.support.v7.util.SortedList} classes to display items in
-             a list order and provide notification of changes to the list.
-           </li>
-           <li>Added the {@link android.support.v7.widget.util.SortedListAdapterCallback} class
-             that can bind a sorted list to a
-             {@link android.support.v7.widget.RecyclerView.Adapter} class.
-           </li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicHistogram} class for
-            use as a histogram filter.</li>
-          <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicResize} class for
-            performing a resize of a 2D allocation.
-          </li>
-        </ul>
-      </dd>
-
-    </dl>
-
-
-  </div>
-</div> <!-- end of collapsible section -->
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 22</a> <em>(March 2015)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Updated the {@link android.support.v4.content.res.ResourcesCompat#getDrawable
-            getDrawable()} method to return a drawable object for a specified specific resource ID,
-            screen density, and theme.
-          </li>
-          <li>Added the {@link android.support.v4.view.ViewCompat#setImportantForAccessibility
-            setImportantForAccessibility()} method so you can indicate if a view should trigger
-            accessibility events.
-          </li>
-          <li>Added the {@link android.support.v4.widget.DrawerLayout#getStatusBarBackgroundDrawable
-            getStatusBarBackgroundDrawable()} method so you can get the status bar background
-            drawable.
-          </li>
-          <li>Added methods to the
-            {@link android.support.v4.app.NotificationCompat.CarExtender.UnreadConversation}
-            class so Android Auto messaging apps can retrieve additional notification data.
-          </li>
-          <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout#getProgressCircleDiameter
-            getProgressCircleDiameter()} method to return the diameter of a circle layout.
-          </li>
-          <li>Changed the default {@link android.support.v4.widget.DrawerLayout DrawerLayout}
-            status bar color to {@link android.R.attr#colorPrimaryDark}.
-          </li>
-        </ul>
-      </dd>
-
-      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the spinner style
-            {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_Spinner_Underlined}.</li>
-          <li>Added tinted widgets styles with
-            {@link android.support.v7.appcompat.R.style#Widget_AppCompat_AutoCompleteTextView},
-            {@link android.widget.MultiAutoCompleteTextView},
-            {@link android.support.v7.appcompat.R.style#TextAppearance_AppCompat_Button}, and
-            {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_RatingBar}.</li>
-        </ul>
-      </dd>
-
-      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v17.leanback.widget.ListRowPresenter#getRecycledPoolSize
-            getRecycledPoolSize()} and
-            {@link android.support.v17.leanback.widget.ListRowPresenter#setRecycledPoolSize
-            setRecycledPoolSize()} methods to allow customized recycled pool sizes.</li>
-          <li>Added the {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} attribute to the
-            layout width setting to support wrapped content for title icons.</li>
-          <li>Defined {@link android.support.v17.leanback.R.transition} in XML to
-            improve transition updates.  </li>
-          <li>Enabled support for right to left layouts.</li>
-          <li>Added the play and pause media key events support to the
-            {@link android.support.v17.leanback.app.PlaybackOverlayFragment} class.</li>
-          <li>Added enter and return transitions to the
-            {@link android.support.v17.leanback.app.BrowseFragment} class and the
-            {@link android.support.v17.leanback.app.DetailsFragment} class.</li>
-          <li>Added the {@link android.support.v17.leanback.widget.ArrayObjectAdapter#replace
-            replace()} method to replace items in an object’s adapter array. </li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Updated Google Cast icons to use the
-            <a href="{@docRoot}training/material/index.html">material design</a> style.</li>
-          <li>Updated all the icons used in the {@link android.media.MediaRouter} dialogs to use the
-            <a href="{@docRoot}training/material/index.html">material design</a> style.</li>
-        </ul>
-      </dd>
-
-
-      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v7.widget.RecyclerView.ViewHolder#getLayoutPosition
-            getlayoutPosition()}
-            and {@link android.support.v7.widget.RecyclerView.ViewHolder#getAdapterPosition
-            getadapterPosition()} methods to the {@link android.support.v7.widget.RecyclerView}
-            class.</li>
-          <li>Deprecated the <code>classgetChildPosition()</code> and
-            <code>findViewHolderForPosition()</code> methods in the
-            {@link android.support.v7.widget.RecyclerView} class. </li>
-          <li>Deprecated the <code>getPosition()</code> method in the
-            {@link android.support.v7.widget.RecyclerView.ViewHolder} class. </li>
-          <li>Deprecated the <code>getViewPosition()</code> method in the
-            {@link android.support.v7.widget.RecyclerView.LayoutParams} class. </li>
-        </ul>
-      </dd>
-
-  </div>
-</div>
-
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 21.0.3</a> <em>(December 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added several {@link android.support.v4.app.NotificationCompat.WearableExtender}
-          methods to improve the display of barcodes in notifications on wearable devices.
-             <ul>
-             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintScreenTimeout getHintScreenTimeout()}</li>
-             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintScreenTimeout setHintScreenTimeout()}</li>
-             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintAvoidBackgroundClipping getHintAvoidBackgroundClipping()}</li>
-             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintAvoidBackgroundClipping setHintAvoidBackgroundClipping()}</li>
-             </ul>
-          </li>
-        </ul>
-      </dd>
-
-  </div>
-</div>
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 21.0.2</a> <em>(November 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v4.app.NotificationCompat.CarExtender}
-          class to support Android Auto extensions to notifications.</li>
-        </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v7.widget.PopupMenu} constructor to support new popup
-          menus.</li>
-          <li>Added support for a Collapse icon description in the {@link android.support.v7.widget.Toolbar}
-          class.</li>
-          <li>Updated the {@link android.support.v7.widget.SearchView} widget to support displaying
-          the {@link android.support.v7.appcompat.R.attr#commitIcon}. </li>
-          <li>Removed the <code>buttonGravity</code> attribute from the
-          {@link android.support.v7.widget.Toolbar} class. </li>
-        </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v7-cardview">v7 cardview library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v7.widget.CardView#setCardBackgroundColor} API to
-          support changing the background color of the {@link android.support.v7.widget.CardView}.</li>
-          <li>Changed the {@link android.support.v7.widget.CardView} to more accurately report its
-          opacity value as {@link android.graphics.PixelFormat#TRANSLUCENT}.</li>
-        </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview
-        library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_DEFAULT} and
-          {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_PAGING} constants
-          to the {@link android.support.v7.widget.RecyclerView} class
-          to support touch slop configurations for paging.</li>
-        </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added support to generate v4 code fragments. </li>
-          <li>Changed the secondary text color on {@link android.support.v7.widget.CardView}. </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 21.0.1</a> <em>(November 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Added <a href="{@docRoot}tools/support-library/features.html#multidex">
-      multidex support library</a> to support multiple
-      <a href="https://source.android.com/devices/tech/dalvik/">Dalvik</a> Executable (DEX) files
-      for multi-dex file support prior to Android 5.0.
-      </dt>
-    </dl>
-  </div>
-</div>
-
-
-
-
-<div class="toggle-content closed">
-  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 21</a> <em>(October 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
-      <dd>
-        <ul>
-          <li>Added support for {@link android.support.v4.app.Fragment}
-              transitions for devices running Android 5.0 (API level 21).
-              Be aware that transitions have no effect on devices running
-              Android 4.4 and lower.
-          </li>
-          <li>Added {@link android.support.v4.provider.DocumentFile} to ease
-              the transition from {@link java.io.File}
-              while working with document trees. However, this class demands
-              more processing overhead compared to the platform's
-              {@link android.provider.DocumentsContract} API added in
-              Android 4.4 (API level 19). So you should switch to using {@link
-              android.provider.DocumentsContract} when running on Android 4.4
-              and higher.</li>
-        </ul>
-      </dd>
-      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat
-        library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added support for <a href="{@docRoot}design/material/">material
-              design</a> user interfaces.</li>
-          <li>Added {@link android.support.v7.widget.Toolbar}, which generalizes
-              the functionality of {@link android.support.v7.app.ActionBar} for
-              use within app layouts.</li>
-          <li>Updated {@link android.support.v7.app.ActionBarDrawerToggle},
-              which contains the menu-to-arrow animation</li>
-          <li>Updated common user interface widgets to allow tinting via theme
-              attributes when running on pre-Android 5.0 devices</li>
-          <li>Added {@link android.support.v7.widget.SwitchCompat}, a backport
-              of the {@link android.widget.Switch} widget that was added in
-              Android 4.0 (API level 14).</li>
-        </ul>
-      </dd>
-      <dt>New <a href="features.html#v7-cardview">v7 cardview library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v7.widget.CardView} widget, which
-            provides a material design-compatible implementation for displaying
-            data items.</li>
-        </ul>
-      </dd>
-      <dt>New <a href="features.html#v7-recyclerview">v7 recyclerview
-        library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v7.widget.RecyclerView} widget,
-            which provides a flexible list view for providing a limited window
-            into a large data set.</li>
-        </ul>
-      </dd>
-      <dt>New <a href="features.html#v7-palette">v7 palette library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v7.graphics.Palette} class,
-          which lets you extract prominent colors from an image.</li>
-        </ul>
-      </dd>
-      <dt>New <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
-      <dd>
-        <ul>
-          <li>Added support for building TV user interfaces, including
-            {@link android.support.v17.leanback.app.BrowseFragment},
-            {@link android.support.v17.leanback.app.DetailsFragment}, and
-            {@link android.support.v17.leanback.app.PlaybackOverlayFragment}.
-            For more information about using these user interface widgets,
-            see <a href="{@docRoot}training/tv/playback/index.html">Building TV
-            Playback Apps</a>.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 20</a> <em>(July 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added extended notification support for Android Wear in
-            {@link android.support.v4.app.NotificationCompat.WearableExtender}, which allows you
-            to specify wearable-specific features in your notifications.</li>
-          <li>Added {@link android.support.v4.app.NotificationCompat.Action.WearableExtender},
-            which allows actions to be added on wearable notifications.</li>
-          <li>Added {@link android.support.v4.app.NotificationManagerCompat}, which allows you
-            to issue notifications that properly support wearable features.</li>
-          <li>Added {@link android.support.v4.app.RemoteInput}, which allows a handheld device
-            to receive voice input from a notification that appears on a wearable device.</li>
-          <li>Improved the handling of touch feedback in
-            {@link android.support.v4.widget.SwipeRefreshLayout}.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 19.1.0</a> <em>(March 2014)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout} class,
-              which enables users to refresh the contents of a view with a vertical
-              swipe gesture.</li>
-          <li>Fixed accessibility issues with navigation drawers.</li>
-        </ul>
-      </dd>
-
-      <dt>Changes for v7 appcompat library:</dt>
-      <dd>
-        <ul>
-          <li>Fixed background issues with the action bar.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 19.0.1</a> <em>(December 2013)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Improved {@link android.support.v4.print.PrintHelper} by adding asynchronous
-            handling of printing.</li>
-          <li>Fixed the {@link android.support.v4.widget.DrawerLayout} class approximation of
-            the {@link android.view.View#addChildrenForAccessibility addChildrenForAccessibility()}
-            method.</li>
-          <li>Fixed slide drawable mirroring in {@link
-            android.support.v4.app.ActionBarDrawerToggle}.</li>
-          <li>Fixed off-by-one issue when removing an item from a collection iterator.</li>
-        </ul>
-      </dd>
-
-      <dt>Changes for v7 mediarouter library:</dt>
-      <dd>
-        <ul>
-          <li>Improved route identification by using full component name in the {@link
-            android.support.v7.media.MediaRouteProvider.ProviderMetadata}.</li>
-          <li>Updated {@link android.support.v7.app.MediaRouteChooserDialog} to hide disabled
-            routes.</li>
-        </ul>
-      </dd>
-
-      <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a></dt>
-      <dd>
-        <ul>
-          <li>Added error propagation for the RenderScript thunking layer.</li>
-        </ul>
-      </dd>
-
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 19</a> <em>(October 2013)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added support for external Storage APIs with the
-            {@link android.support.v4.content.ContextCompat#getObbDirs getObbDirs()},
-            {@link android.support.v4.content.ContextCompat#getExternalFilesDirs getExternalFilesDirs()},
-            {@link android.support.v4.content.ContextCompat#getExternalCacheDirs getExternalCacheDirs()},
-            and {@link android.support.v4.os.EnvironmentCompat#getStorageState getStorageState()}.
-            These helper methods always return a single file object on devices running Android
-            4.3 (API level 18) and earlier. When running on Android 4.4 (API level 19) and higher,
-            these methods may return more than one file object.</li>
-          <li>Added {@link android.support.v4.print.PrintHelper} class that works with the
-            Print APIs to print images with a minimum of code.</li>
-          <li>Added drag-to-open user interface support for pop-up menus. For more information, see
-            {@link android.support.v4.widget.PopupMenuCompat} and
-            {@link android.support.v4.widget.ListPopupWindowCompat}.</li>
-          <li>Improved accessibility support with the addition of a
-            {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat#findFocus
-            findFocus()} method in
-            {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat} and the
-            {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat#getLiveRegion
-            getLiveRegion()} method in
-            {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}.</li>
-          <li>Added helper class {@link android.support.v4.view.ScaleGestureDetectorCompat} for
-            accessing new scaling gesture methods.</li>
-          <li>Fixed problem with {@link android.support.v4.app.ActionBarDrawerToggle} in
-            right-to-left language displays.</li>
-          <li>Modified {@link android.support.v4.widget.AutoScrollHelper} option to consume
-            touch events or allow them to be passed through to other views.</li>
-        </ul>
-      </dd>
-
-      <dt>Changes for v7 mediarouter library:</dt>
-      <dd>
-        <ul>
-          <li>Added support for media playback queuing, setting HTTP header values and media
-            playback duration.</li>
-          <li>Added explicit start, get, and end session actions for explicitly managing media
-            playback sessions with media router.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 18</a> <em>(July 2013)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-      <ul>
-        <li>User interface
-          <ul>
-            <li>Added {@link android.support.v4.text.BidiFormatter} for handling
-              text strings that combine right to left and left to right-formatted text.</li>
-            <li>Modified {@link android.support.v4.view.ViewPager} to better handle cases where the
-              pager has a measured width of zero in the initial layout processing.</li>
-            <li>Modified {@link android.support.v4.widget.DrawerLayout} and
-              {@link android.support.v4.widget.SlidingPaneLayout} to not throw exceptions for
-              measurement while the project code is being edited.</li>
-          </ul>
-        </li>
-
-        <li>Accessibility
-          <ul>
-            <li>Added {@link android.support.v4.widget.ExploreByTouchHelper} to simplify the
-              implementation of accessibility for custom views.</li>
-            <li>Fixed a problem with {@link android.support.v4.view.ViewPager} incorrectly
-              populating {@link
-              android.support.v4.view.accessibility.AccessibilityEventCompat#TYPE_VIEW_SCROLLED
-              TYPE_VIEW_SCROLLED} accessibility events.</li>
-            <li>Fixed a null pointer exception in {@link android.support.v4.view.ViewPager} when
-              populating an accessibility event.</li>
-            <li>Simplified {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
-              by changing {@link java.lang.CharSequence} inputs to {@link java.lang.String} objects.
-              </li>
-            <li>Deprecated an {@link android.support.v4.view.accessibility.AccessibilityRecordCompat}
-              constructor that used an {@link java.lang.Object} as input.</li>
-          </ul>
-        </li>
-
-        <li>Media
-          <ul>
-            <li>Added {@link android.support.v4.media.TransportMediator} helper class to manage
-              media transport control, such as play, pause, skip and other media actions.</li>
-            <li>Added {@link android.support.v4.hardware.display.DisplayManagerCompat} for managing
-              display output to one or more device displays.</li>
-          </ul>
-        </li>
-
-        <li>Other changes
-        <ul>
-            <li>Added {@link android.support.v4.content.WakefulBroadcastReceiver} helper class for
-              implementing a common pattern of detecting a device wakeup event and passing work off
-              to a {@link android.app.Service} while ensuring that the device does not go back to
-              sleep before the handoff is complete.</li>
-            <li>Added two new APIs,
-              {@link android.support.v4.content.AsyncTaskLoader#commitContentChanged
-              commitContentChanged()} and
-              {@link android.support.v4.content.AsyncTaskLoader#rollbackContentChanged
-              rollbackContentChanged()}, to {@link android.support.v4.content.AsyncTaskLoader} to
-              help deal with background updates for data changes that are subsequently canceled.
-              </li>
-          </ul>
-        </li>
-      </ul>
-      </dd>
-
-      <dt>New v7 appcompat library:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v7.app.ActionBar} to allow implementation of the
-            action bar user interface <a href="{@docRoot}design/patterns/actionbar.html">design
-            pattern</a> back to Android 2.1 (API level 7) and higher. Use of this class requires
-            that you implement your activity by extending the new
-            {@link android.support.v7.app.ActionBarActivity} class.</li>
-        </ul>
-      </dd>
-
-      <dt>New v7 mediarouter library:</dt>
-      <dd>
-        <p>Added a new mediarouter library that provides support for the <a
-        href="https://developers.google.com/cast/">Google Cast developer preview</a>.
-        The v7 mediarouter library APIs provide a means of controlling the routing of
-        media channels and streams from the current device to external screens,
-        speakers, and other destination devices, with compatibility back to Android 2.1
-        (API level 7). See <a
-        href="{@docRoot}tools/support-library/features.html#v7-mediarouter">V7
-        mediarouter library</a> for more information. </p>
-
-        <p class="caution">The v7 mediarouter library APIs introduced in Support
-        Library r18 are subject to change in later revisions of the Support
-        Library. At this time, we recommend using the library only in connection
-        with the <a href="https://developers.google.com/cast/">Google Cast
-        developer preview</a>.</p>
-      </dd>
-
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 13</a> <em>(May 2013)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v4.widget.DrawerLayout} for creating a
-            <a href="{@docRoot}training/implementing-navigation/nav-drawer.html">Navigation
-            Drawer</a> that can be pulled in from the edge of a window.</li>
-          <li>Added {@link android.support.v4.widget.SlidingPaneLayout} widget for creating linked
-            summary and detail views that appropriately adapt to various screen sizes.</li>
-          <li>Added {@link android.support.v4.app.ActionBarDrawerToggle} as a way to tie
-            together the functions of {@link android.support.v4.widget.DrawerLayout} and {@link
-            android.app.ActionBar}.</li>
-          <li>Added {@link android.support.v4.widget.ViewDragHelper} as a new common component
-            for dragging views within a parent view.</li>
-          <li>Added {@link android.support.v4.widget.ScrollerCompat} to provide {@link
-            android.widget.Scroller} and {@link android.widget.OverScroller} compatibility support.
-            </li>
-          <li>Added {@link android.support.v4.content.FileProvider} to allow sharing of private
-            files between applications.</li>
-          <li>Updated {@link android.support.v4.view.ViewPager} to throw an exception if the
-            associated {@link android.support.v4.view.PagerAdapter} class is modified without a
-            call to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged
-            notifyDataSetChanged()}.
-            </li>
-          <li>Fixed an issue with {@link android.support.v4.view.ViewPager} children drawing sort
-            order.</li>
-          <li>Fixed {@link android.support.v4.view.GestureDetectorCompat} to dispatch missing
-            {@link android.view.GestureDetector.SimpleOnGestureListener#onSingleTapConfirmed} calls
-            between tap timeout and long press events.</li>
-        </ul>
-      </dd>
-
-      <dt>New v7 gridlayout library:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v7.widget.GridLayout} to provide support for the
-            {@link android.widget.GridLayout} layout object.</li>
-          <li>Added {@link android.support.v7.widget.Space} which can be used to create blank areas
-            within a {@link android.support.v7.widget.GridLayout} layout object.</li>
-        </ul>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 12</a> <em>(February 2013)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Improved interaction behavior for {@link android.support.v4.view.ViewPager}.</li>
-          <li>Fixed a bug that could cause {@link android.support.v4.view.ViewPager} to select the
-            wrong page.</li>
-          <li>Fixed use of {@link android.support.v4.view.ViewPager#removeView removeView()} method
-            during layout for {@link android.support.v4.view.ViewPager}.</li>
-          <li>Fixed issue with {@link android.support.v4.widget.SearchViewCompat} where using the
-            back button to dismiss does not clear the search text. This fix only applies to
-            host API levels 14 and higher.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 11</a> <em>(November 2012)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>User Interface
-            <ul>
-              <li>Added support for nested {@link android.support.v4.app.Fragment} classes.</li>
-              <li>Added improvements to {@link android.support.v4.app.FragmentManager} debugging.
-                </li>
-              <li>Fixed problem in {@link android.support.v4.app.FragmentTabHost} where fragment
-                and tab interaction could result in a {@link android.widget.ListView} state loss.
-                </li>
-              <li>Fixed issue with user-visible hint in
-                {@link android.support.v4.app.FragmentStatePagerAdapter}.</li>
-              <li>Added {@link android.support.v4.view.ViewPager.PageTransformer PageTransformer}
-                interface to {@link android.support.v4.view.ViewPager} to allow applications to
-                supply a custom transition behavior for scrolling.</li>
-              <li>Added new features and fixes to {@link android.support.v4.app.TaskStackBuilder}
-                from current release.</li>
-              <li>Fixed {@link android.support.v4.view.PagerTitleStrip} to correctly track the
-                {@link android.support.v4.view.PagerAdapter} currently in use.</li>
-              <li>Fixed display flickering, positioning, and text clipping problems with
-                {@link android.support.v4.view.PagerTitleStrip}.</li>
-              <li>Fixed {@link android.support.v4.view.PagerTabStrip} to properly respect padding
-                when drawing an underline.</li>
-            </ul>
-          </li>
-          <li>Accessibility
-            <ul>
-              <li>Added support for new accessibility gesture and touch event types in
-                {@link android.support.v4.view.accessibility.AccessibilityEventCompat}.</li>
-              <li>Added support for new accessibility APIs in
-                {@link android.support.v4.view.ViewCompat}.</li>
-              <li>Added support for {@link android.support.v4.view.ViewCompat#performAccessibilityAction
-                performAccessibilityAction()} method to {@link android.support.v4.view.ViewCompat}.
-                </li>
-            </ul>
-          </li>
-          <li>Added support for gestures with {@link android.support.v4.view.GestureDetectorCompat}.
-            </li>
-          <li>Added support for performing atomic operations on files using a new
-            {@link android.support.v4.util.AtomicFile} class.</li>
-          <li>Added support for the full set of {@code make} methods in
-            {@link android.support.v4.content.IntentCompat}.</li>
-          <li>Added {@link android.support.v4.util.LruCache#trimToSize trimToSize()} method in
-            {@link android.support.v4.util.LruCache} utility class.</li>
-          <li>Updated {@link android.support.v4.net.ConnectivityManagerCompat} to get NetworkInfo
-            from a {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}
-            broadcast.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 10</a> <em>(August 2012)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added support for notification features introduced in Android 4.1 (API level 16) with
-          additions to {@link android.support.v4.app.NotificationCompat}.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 9</a> <em>(June 2012)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-
-          <li>User Interface Support
-            <ul>
-              <li>Added {@link android.support.v4.view.PagerTabStrip} support, providing enhanced
-functionality beyond {@link android.support.v4.view.PagerTitleStrip}.</li>
-              <li>Fixed various bugs for {@link android.support.v4.view.PagerTitleStrip} and
-{@link android.support.v4.view.PagerTabStrip}, including {@link
-android.widget.TextView#setAllCaps setAllCaps} option, title alignment,
-appearance improvements, minimum width constraints and touch navigation issues.</li>
-              <li>Added support for {@link android.support.v4.view.ViewPager} page gutters, which
-helps the {@link android.support.v4.view.ViewPager} class provide paging support for content with
-a large horizontal scroll range, such as a map.</li>
-              <li>Fixed numerous bugs for {@link android.support.v4.view.ViewPager}, including size
-and data set change problems, page positioning, user interaction, scroll tracking and keyboard
-navigation problems.</li>
-              <li>Fixed many bugs for {@link android.support.v4.app.Fragment}, including proper
-handling of {@link android.support.v4.app.Fragment#onActivityResult onActivityResult()} when
-the target fragment no longer exists, dispatching selection events to invisible fragments, improved
-{@link android.support.v4.app.FragmentTransaction#replace FragmentTransaction.replace()} behavior
-and added better state handling for fragments being moved out of view.</li>
-              <li>Added support for the {@link
-android.support.v4.view.ViewCompat postOnAnimation()} method in {@link
-android.support.v4.view.ViewCompat}.</li>
-              <li>Updated {@link android.support.v4.app.NavUtils} to use Android 4.1 (API level 16)
-<em>Up</em> navigation functionality when available.</li>
-            </ul>
-          </li>
-
-          <li>Accessibility
-            <ul>
-              <li>Updated accessibility support classes, including {@link
-android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}, to follow fixes made in Android
-4.1 (API level 16).</li>
-              <li>Added support for accessibility scroll actions in {@link
-android.support.v4.view.ViewPager}.</li>
-            </ul>
-          </li>
-
-          <li>General improvements
-            <ul>
-              <li>Updated {@link android.support.v4.app.TaskStackBuilder} to reflect API changes in
-Android 4.1 (API level 16).</li>
-              <li>Enhanced {@link android.support.v4.app.TaskStackBuilder} to allow it to be used
-from a Service.</li>
-              <li>Added support for {@link android.support.v4.content.IntentCompat EXTRA_HTML_TEXT}
-to {@link android.support.v4.app.ShareCompat}.</li>
-              <li>Updated {@link android.support.v4.app.NotificationCompat.Builder} to support the
-{@link android.support.v4.app.NotificationCompat.Builder#setNumber setNumber()} method.</li>
-              <li>Added support in {@link android.support.v4.net.ConnectivityManagerCompat} for the
-{@link android.support.v4.net.ConnectivityManagerCompat#isActiveNetworkMetered
-isActiveNetworkMetered()} method.</li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 8</a> <em>(April 2012)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Fixed intent flags for {@link android.app.PendingIntent} objects generated
-            by {@link android.support.v4.app.TaskStackBuilder}.</li>
-          <li>Removed unused attributes from the gridlayout library projects to make sure
-            the library can be built with API level 7 and higher.</li>
-          <li>Added {@code .classpath} and {@code .project} files for the gridlayout
-            library project.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 7</a> <em>(March 2012)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added {@link android.support.v4.app.ShareCompat}, which provides helper classes
-for sending and receiving content for social sharing applications, including new metadata for
-attributing shared data to the source app. This class also provides compatible integration with the
-new {@link android.widget.ShareActionProvider} in Android 4.0.</li>
-          <li>Added {@link android.support.v4.app.NavUtils} and {@link
-android.support.v4.app.TaskStackBuilder} to provide support for implementing the
-<a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These
-additions include a way to implement the action bar's <em>Up</em> button across versions.
-For an example implementation of this pattern, see the AppNavigation sample in
-(<code><em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;</em>/AppNavigation</code>).</li>
-          <li>Added {@link android.support.v4.app.NotificationCompat.Builder} to provide a
-compatibility implementation of Android 3.0's {@link android.app.Notification.Builder} helper class
-for creating standardized system notifications.</li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 6</a> <em>(December 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-
-    <p class="note"><strong>Note:</strong> Reference for support library APIs are now available with
-    the framework references, for example: {@link android.support.v4.app}.</p>
-<dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Changes to ViewPager:
-            <ul>
-              <li>Added extra decorative view support for {@link android.support.v4.view.ViewPager}.
-                Decorative views may be supplied as child views of a pager in XML layout.</li>
-              <li>Added {@link android.support.v4.view.PagerAdapter#getPageTitle
-                PagerAdapter.getPageTitle()} to supply title strings for pages, which defaults to no
-                title for each page.</li>
-              <li>Added {@link android.support.v4.view.PagerTitleStrip}, a non-interactive title
-                strip, that can be added as a child of ViewPager. Developers can supply text
-                appearance and color, as well as layout sizing and gravity information.</li>
-              <li>Updated {@link android.support.v4.view.PagerAdapter} methods to take ViewGroup
-                objects, rather than View to avoid class casting in adapter implementations.</li>
-              <li>Updated {@link android.support.v4.view.ViewPager} to use Launcher-style
-                fling behavior.</li>
-              <li>Bug fixes for user interface interaction and test automation.</li>
-            </ul>
-          </li>
-
-          <li>Support for Fragments:
-            <ul>
-              <li>Changed {@code setStartDeferred()} method to {@link
-                android.support.v4.app.Fragment#setUserVisibleHint}.</li>
-              <li>Added deferred start for off-screen pages to improve performance.</li>
-            </ul>
-          </li>
-
-          <li>Support for Accessiblity APIs:
-            <ul>
-              <li>Updated {@link android.support.v4.view.AccessibilityDelegateCompat} methods
-                to return empty lists instead of null.</li>
-              <li>Added new APIs needed by the v4 samples.</li>
-            </ul>
-          </li>
-
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 5</a> <em>(December 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Support for Accessiblity APIs:
-            <ul>
-              <li>Added {@link android.support.v4.view.AccessibilityDelegateCompat}
-              to support {@link android.view.View.AccessibilityDelegate}.</li>
-
-              <li>Added {@link android.support.v4.view.accessibility.AccessibilityEventCompat}
-              to support {@link android.view.accessibility.AccessibilityEvent}.</li>
-
-              <li>Added {@link android.support.v4.view.accessibility.AccessibilityManagerCompat}
-              to support {@link android.view.accessibility.AccessibilityManager}.</li>
-
-              <li>Added {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
-              to support {@link android.view.accessibility.AccessibilityNodeInfo}.</li>
-
-              <li>Added {@link android.support.v4.view.accessibility.AccessibilityRecordCompat}
-              to support {@link android.view.accessibility.AccessibilityRecord}.</li>
-
-              <li>Added {@link
-              android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat}
-              to support {@link android.accessibilityservice.AccessibilityServiceInfo}.</li>
-
-              <li>Added {@link android.support.v4.view.ViewGroupCompat}
-              to support accessibility features in {@link android.view.ViewGroup}.
-              </li>
-
-              <li>Modified {@link android.support.v4.view.ViewCompat}
-              to support accessibility features in {@link android.view.View}.</li>
-            </ul>
-          </li>
-
-          <li>Changes to ViewPager:
-            <ul>
-              <li>Added support for margins between pages.
-              An optional {@link android.graphics.drawable.Drawable} can be provided
-              to fill the margins.</li>
-              <li>Added support for {@link android.widget.EdgeEffect}.</li>
-              <li>Added support for keyboard navigation</li>
-              <li>Added support to control how many pages are kept to either side
-              of the current page.</li>
-              <li>Improved touch physics.</li>
-              <li>Bug fixes for user interface behavior.</li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 4</a> <em>(October 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Added <code>EdgeEffectCompat</code> to
-          support {@link android.widget.EdgeEffect}.</li>
-
-          <li>Added <code>LocalBroadcastManager</code> to allow applications to easily
-            register for and receive intents within a single application without
-            broadcasting them globally.</li>
-
-          <li>Added support in <code>ViewCompat</code> to check for and set overscroll
-          modes for {@link android.view.View}s on Android 2.3 and later.</li>
-          <li>Changes to Fragment APIs:
-            <ul>
-              <li>Added new APIs to control the visibility of new menus.</li>
-              <li>Added custom animation APIs.</li>
-              <li>Added APIs in <code>FragmentActivity</code> to retain custom,
-              non-configuration instance data.</li>
-              <li>Various bug fixes.</li>
-            </ul>
-          </li>
-
-          <li>Fixed a {@link android.content.Loader} bug that caused issues in
-          canceling {@link android.os.AsyncTask}s when running on Froyo and older
-          versions of the platform. The support
-          code now uses its own version of {@link android.os.AsyncTask} to keep the same
-          behavior on all platform versions.</li>
-
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 3</a> <em>(July 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-      <dt>Changes for v4 support library:</dt>
-      <dd>
-        <ul>
-          <li>Adds support for {@link android.app.Fragment.SavedState}</li>
-          <li>Adds {@code MotionEventCompat} to support newer {@link
-android.view.MotionEvent} APIs</li>
-          <li>Adds {@code VelocityTrackerCompat} to support a newer {@link
-android.view.VelocityTracker} APIs</li>
-          <li>Adds {@code ViewConfigurationCompat} to support a newer {@link
-android.view.ViewConfiguration} APIs</li>
-          <li>All new APIs (available only in the support library) that allow you to create UIs
-with horizontal paging, allowing users to swipe left and right between content views. Classes to
-support this include:
-            <ul>
-              <li>{@code ViewPager}: A {@link android.view.ViewGroup} that manages the
-layout for the child views, which the user can swipe between.</li>
-              <li>{@code PagerAdapter}: An adapter that populates the {@code ViewPager} with the
-views that represent each page.</li>
-              <li>{@code FragmentPagerAdapter}: An extension of {@code PagerAdapter} for flipping
-between fragments.</li>
-              <li>{@code FragmentStatePagerAdapter}: An extension of {@code PagerAdapter} for
-flipping between fragments that uses the library's support for {@link
-android.app.Fragment.SavedState}.</li>
-            </ul>
-          </li>
-        </ul>
-      </dd>
-      <dt>New v13 support library:</dt>
-      <dd>
-        <ul>
-          <li>Includes the {@code FragmentPagerAdapter} and {@code FragmentStatePagerAdapter}
-to support the horizontal paging.
-          <p>These are exactly the same as the APIs added to the v4 support library, but rely on
-other platform components in Android 3.2. Use this library instead of v4 if you're developing for
-Android 3.2 and higher (all other APIs in the v4 library are already available with API level
-13).</p>
-          </li>
-        </ul>
-      </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 2</a> <em>(May 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-    <dl>
-    <dt>Changes for v4 library:</dt>
-    <dd>
-      <ul>
-        <li>Support for fragment animations</li>
-        <li>Fix {@link android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()}
-          bug</li>
-      </ul>
-    </dd>
-    </dl>
-  </div>
-</div>
-
-
-<div class="toggle-content closed">
-  <p><a href="#" onclick="return toggleContent(this)">
-    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
-/>Android Support Library, revision 1</a> <em>(March 2011)</em>
-  </p>
-  <div class="toggle-content-toggleme">
-      <p>Initial release with the v4 library.</p>
-  </div>
-</div>
-
diff --git a/docs/html/topic/libraries/support-library/revisions.jd b/docs/html/topic/libraries/support-library/revisions.jd
new file mode 100644
index 0000000..7525760
--- /dev/null
+++ b/docs/html/topic/libraries/support-library/revisions.jd
@@ -0,0 +1,2797 @@
+page.title=Support Library Revision History
+page.metaDescription=This page provides details about the Support Library package releases.
+
+@jd:body
+
+<p>This page provides details about the Support Library package releases.</p>
+
+<div class="toggle-content opened">
+  <p id="rev23-4-0">
+    <a href="#" onclick="return toggleContent(this)"><img src=
+    "{@docRoot}assets/images/styles/disclosure_up.png" class=
+    "toggle-content-img" alt="">Android Support Library, revision 23.4.0</a>
+    <em>(May 2016)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v4">v4 Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed issue where fragments were added in the wrong order.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=206901">Issue
+          206901</a>)
+          </li>
+
+          <li>Fixed issue where app bar wasn't drawn after being scrolled
+          offscreen. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=178037">Issue
+          178037</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
+        appcompat library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added <!-- TODO: Link to method -->
+             <code><a href=
+            "{@docRoot}reference/android/support/v7/app/AppCompatDelegate.html">
+            AppCompatDelegate</a>.setCompatVectorFromResourcesEnabled()</code>
+            method to re-enable usage of vector drawables in {@link
+            android.graphics.drawable.DrawableContainer} objects on devices
+            running Android 4.4 (API level 19) and lower. See <a href=
+            "https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88#.44uulkfal"
+            class="external-link">AppCompat v23.2 — Age of the vectors</a> for
+            more information.
+          </li>
+
+          <li>Fixed an issue in API 23 with <a href=
+          "{@docRoot}reference/android/support/v7/app/AppCompatDelegate.html#setDefaultNightMode(int)">
+            <code>AppCompatDelegate.setDefaultNightMode()</code></a> not
+            loading correct resources in API level 23. (<a class=
+            "external-link" href=
+            "https://code.google.com/p/android/issues/detail?id=206573">Issue
+            206573</a>)
+          </li>
+
+          <li>Fixed issue that could cause {@link
+          java.lang.NullPointerException}. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=207638">Issue
+          207638</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#design">Design Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed an issue where {@link
+          android.support.design.widget.TextInputLayout} doesn't clear error
+          tint after {@link
+          android.support.design.widget.TextInputLayout#setErrorEnabled
+          setErrorEnabled(false)} on API level 21 - 22 (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202829">Issue
+          202829</a>)
+          </li>
+
+          <li>Fixed an issue where {@link
+          android.support.design.widget.FloatingActionButton} does not return
+          when animations are disabled. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=206416">Issue
+          206416</a>)
+          </li>
+
+          <li>Fixed issue in {@link android.support.design.widget.AppBarLayout}
+          snap functionality when used with <code>{@link
+                    android.support.design.R.id#scroll}|{@link
+                    android.support.design.R.id#enterAlways}|{@link
+                    android.support.design.R.id#enterAlwaysCollapsed}|{@link
+                    android.support.design.R.id#snap}</code> scroll flags.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=207398">Issue
+          207398</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <!-- TODO: Add link -->Vector Drawable library:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a bug where <!-- TODO: Javadoc link -->
+             <code>VectorDrawableCompat</code> does not render correctly in
+            {@link android.widget.TextView} on API level 23. (<a class=
+            "external-link" href=
+            "https://code.google.com/p/android/issues/detail?id=206227">Issue
+            206227</a>)
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<!-- end of collapsible section: 23.4.0 -->
+
+
+<div class="toggle-content closed">
+  <p id="rev23-3-0">
+    <a href="#" onclick="return toggleContent(this)"><img src=
+    "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img"
+    alt="">Android Support Library, revision 23.3.0</a> <em>(April
+    2016)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v4">v4 Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added <code>AppLaunchChecker</code> to help track how your app
+          has been launched by the user in the past.
+          <code>hasStartedFromLauncher()</code> lets you know if the user has
+          launched your app from the home screen before, or if it has only
+          been started by other means (for example, to view specific web
+          URLs).
+          </li>
+
+          <li>Fixed a memory leak in
+          <code>MediaBrowserServiceCompat.mConnections</code>. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=205220">Issue
+          205220</a>)
+          </li>
+
+          <li>Fixed issue where {@link android.support.v4.view.ViewPager}
+          does not account for page margins when flipping page. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203816">Issue
+          203816</a>)
+          </li>
+          <li>{@link android.support.v4.app.Fragment#onRequestPermissionsResult
+            Fragment.onRequestPermissionsResult()} is now delivered to child
+            fragments.
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
+        appcompat library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed an issue in {@link
+          android.support.v7.widget.AppCompatSpinner} that could cause
+          multiple popups to appear. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=205052">Issue
+          205052</a>)
+          </li>
+
+          <li>Fixed an issue with how borderless buttons were colored.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202967">Issue
+          202967</a>)
+          </li>
+
+          <li>Fixed a compatibility issue between {@link
+          android.support.v7.app.AppCompatDialogFragment } and {@link
+          android.support.v7.app.AlertDialog}. (<a class="external-link"
+            href="https://code.google.com/p/android/issues/detail?id=204805">Issue
+            204805</a>)
+          </li>
+
+          <li>Reverted changes to <code>TintResources</code> that were causing
+            memory and configuration issues.  (<a class="external-link"
+            href="https://code.google.com/p/android/issues/detail?id=205236">Issue
+            205236</a>)</li>
+        </ul>
+      </dd>
+
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7
+        mediarouter library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed {@link android.support.v7.app.MediaRouteControllerDialog}
+          volume slider’s behavior. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202299">Issue
+          202299</a>)
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>
+        Changes for <a href="features.html#v7-preference">v7 Preference</a>
+        library:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed issue where {@link
+          android.support.v7.preference.PreferenceFragmentCompat} would crash
+          if <code>dividerHeight</code> is specified. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=204778">Issue
+          204778</a>)
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7
+        recyclerview library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a bug where {@link
+          android.support.v7.widget.RecyclerView} would not invoke scroll
+          callbacks if the range of visible items shrank. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=200987">Issue
+          200987</a>)
+          </li>
+
+          <li>Fixed a bug where {@link
+          android.support.v7.widget.RecyclerView} would freeze if it was in
+          linear layout, was weighted, and contained images. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203276">Issue
+          203276</a>)
+          </li>
+
+          <li>Fixed a crash in {@link
+          android.support.v7.widget.OrientationHelper#getStartAfterPadding
+          OrientationHelper.getStartAfterPadding()}. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=180521">Issue
+          180521</a>)
+          </li>
+
+          <li>Fixed a crash with usages of
+          <code>android:nestedScrollingEnabled</code>. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=197932">Issue
+          197932</a>)
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#design">Design Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a bug where a hidden bottom sheet would handle touch
+          events. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203654">Issue
+          203654</a>)
+          </li>
+
+          <li>Fixed a layout issue with <code>BottomSheetBehavior</code> when
+          <code>fitsSystemWindows</code> is true. (<a class="external-link"
+          href=
+          "https://code.google.com/p/android/issues/detail?id=203057">Issue
+          203057</a>)
+          </li>
+
+          <li>Fixed an accessibility issue with {@link
+          android.support.design.widget.Snackbar}. (<a class="external-link"
+          href=
+          "https://code.google.com/p/android/issues/detail?id=182145">Issue
+          182145</a>)
+          </li>
+
+          <li>Fixed a crash on {@link android.support.design.widget.Snackbar}
+          swipe. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203924">Issue
+          203924</a>)
+          </li>
+
+          <li>Fixed a bug in {@link
+          android.support.design.widget.AppBarLayout} with
+          <code>enterAlways</code>. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203661">Issue
+          203661</a>)
+          </li>
+
+          <li>Fixed a bug where {@link
+          android.support.design.widget.TextInputLayout} unnecessarily clears
+          {@link android.widget.EditText} object's background color filter.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=203357">Issue
+          203357</a>)
+          </li>
+        </ul>
+      </dd>
+
+    </dl>
+  </div>
+</div>
+<!-- end of collapsible section: 23.3.0 -->
+
+<div class="toggle-content closed">
+  <p id="rev23-2-1">
+    <a href="#" onclick="return toggleContent(this)"><img src=
+    "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img"
+    alt="">Android Support Library, revision 23.2.1</a> <em>(March
+    2016)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v4">v4 Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed an exception in {@link
+          android.support.v4.graphics.drawable.DrawableCompat#wrap
+          DrawableCompat.wrap()} and {@link android.graphics.drawable.LayerDrawable} on
+          API levels 17 to 19. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201817">Issue 201817</a>)
+          </li>
+
+          <li>Fixed an {@code ArrayIndexOutOfBoundsException} in {@link
+          android.support.v4.widget.ViewDragHelper#shouldInterceptTouchEvent
+          ViewDragHelper.shouldInterceptTouchEvent()}. (<a class="external-link"
+            href="https://code.google.com/p/android/issues/detail?id=182262">Issue
+            182262</a>)
+          </li>
+
+          <li>Fixed a bug in {@link android.support.v4.view.ViewPager} related to
+          scroll calculation for size changes.
+          </li>
+
+          <li>Fixed a {@code NullPointerException} when {@code
+          DrawerLayout.removeDrawerListener()} is called without a set {@link
+          android.support.v4.widget.DrawerLayout.DrawerListener
+          DrawerLayout.DrawerListener}. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202478">Issue 202478</a>)
+          </li>
+
+          <li>Fixed a bug where {@link android.support.v4.view.ViewPager} does not set
+          {@link android.view.accessibility.AccessibilityEvent} parameters properly
+          when scrolling.
+          </li>
+
+          <li>Fixed an issue that caused lag during device rotation when using
+          {@link android.support.v4.graphics.drawable.DrawableCompat#wrap
+          Drawable.wrap()}. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201924">Issue 201924</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-appcompat">v7
+        appcompat library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Reverted dependency on vector assets so that developers using the
+            <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">appcompat
+            library</a> are not forced to use {@link
+            android.graphics.drawable.VectorDrawable} and its associated build flags.
+          </li>
+
+          <li>Fixed a compatibility issue with Night Mode and API level 23.
+            (<a class="external-link" href=
+            "https://code.google.com/p/android/issues/detail?id=201910">Issue
+            201910</a>)
+          </li>
+
+          <li>Fixed a compatibility issue with {@link
+          android.support.v7.widget.SwitchCompat} and API level 7. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201942">Issue 201942</a>)
+          </li>
+
+          <li>Fixed an issue with propagating configuration values in Resources objects
+          <a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201928">Issue 201928</a>
+          </li>
+
+          <li>Fixed a compatibility issue where the {@link
+          android.support.v7.app.NotificationCompat.MediaStyle
+          NotificationCompat.MediaStyle} cancel button becomes invisible on API level
+          21 and below. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202156">Issue 202156</a>)
+          </li>
+
+          <li>Fixed a compatibility crash with {@link
+          android.support.v7.widget.AppCompatSpinner} on API level 21 and below.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202246">Issue 202246</a>)
+          </li>
+
+          <li>Fixed an issue where the {@code app:textAllCaps = "false"} style did not
+          work. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202117">Issue 202117</a>)
+          </li>
+
+          <li>Fixed a crash when restoring {@link android.widget.SearchView}.
+            (<a class="external-link" href=
+            "https://code.google.com/p/android/issues/detail?id=201836">Issue
+            201836</a>)
+          </li>
+
+          <li>Fixed a memory leak that occurs when tinting drawable resources using
+          AppCompat. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202379">Issue 202379</a>)
+          </li>
+
+          <li>Fixed an issue with {@link android.view.KeyEvent} on API level 11 and
+          lower. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202939">Issue 202939</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-cardview">v7 cardview
+        library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added Night Mode support for {@link
+          android.support.v7.widget.CardView}. (<a class="external-link"
+            href="https://code.google.com/p/android/issues/detail?id=194497">Issue
+            194497</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7
+        recyclerview library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed bugs related to various measure-spec methods. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201856">Issue
+          201856</a>)
+          </li>
+
+          <li>Reduced the lockdown period in which {@link
+          android.support.v7.widget.RecyclerView} does not allow adapter
+          changes while calculating a layout or scroll. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202046">Issue
+          202046</a>)
+          </li>
+
+          <li>Fixed a crash when calling {@link
+          android.support.v7.widget.RecyclerView.Adapter#notifyItemChanged
+          notifyItemChanged()} on an item that is out of view. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202136">Issue
+          202136</a>)
+          </li>
+
+          <li>Fixed a crash that occurs when {@link
+          android.support.v7.widget.RecyclerView.LayoutManager
+          RecyclerView.LayoutManager} adds and removes a view in the same
+          measurement pass. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=193958">Issue
+          193958</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7
+        mediarouter library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a crash that occurs when calling {@link
+          android.support.v7.media.MediaRouter#getInstance
+          MediaRouter.getInstance()} on API level 17. (<a class="external-link"
+            href=
+            "https://code.google.com/p/android/issues/detail?id=180654">Issue
+            180654</a>)
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#v17-leanback">v17
+        Leanback Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed an issue with {@code GridLayout.onAddFocusables()} that
+          caused the wrong item to be selected.
+          </li>
+
+          <li>Fixed issue with {@link
+          android.support.v17.leanback.app.GuidedStepFragment} actions
+          disappearing after an action was collapsed.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href=
+        "{@docRoot}tools/support-library/features.html#design">Design Support
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a {@link android.support.design.widget.TabLayout} crash
+          caused by tab-pooling. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201827">Issue
+          201827</a>)
+          </li>
+
+          <li>Fixed a bug in {@link
+          android.support.design.widget.NavigationView} that caused the wrong
+          color to be selected. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201951">Issue
+          201951</a>)
+          </li>
+
+          <li>Fixed a bug where {@link
+          android.support.design.widget.FloatingActionButton#setBackgroundTintList
+          setBackgroundTintList()} was no longer able to change the background
+          color. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201873">Issue
+          201873</a>)
+          </li>
+
+          <li>Fixed an issue where {@link
+          android.support.design.widget.AppBarLayout} did not completely scroll
+          out of view when used with {@code android:fitsSystemWindows = “true”}.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201822">Issue
+          201822</a>)
+          </li>
+
+          <li>Fixed an issue where {@code BottomSheetDialog} did not display
+          short content views correctly. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201793">Issue
+          201793</a>)
+          </li>
+
+          <li>Fixed an issue where {@code BottomSheetDialogFragment} moved
+          sporadically when content inside was changed. (<a class=
+          "external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202125">Issue
+          202125</a>)
+          </li>
+
+          <li>Fixed a crash in TextInputLayout counter <a class="external-link"
+            href=
+            "https://code.google.com/p/android/issues/detail?id=202051">link</a>
+          </li>
+
+          <li>Fixed a crash that occured when {@link
+          android.support.design.widget.TextInputLayout#getCounterMaxLength
+          TextInputLayout.getCounterMaxLength()} restored a saved state.
+          (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=202375">Issue
+          202375</a>)
+          </li>
+
+          <li>Fixed a {@code ClassCastException} that occurred when restoring a
+          {@link android.support.design.widget.CoordinatorLayout} using the
+          saved state of a view that was not a {@link
+          android.support.design.widget.CoordinatorLayout}.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for VectorDrawableCompat:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Fixed a bug where the wrong variable was read for {@code
+          android:tintMode}. (<a class="external-link" href=
+          "https://code.google.com/p/android/issues/detail?id=201907">Issue
+          201907</a>)
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+<!-- end of collapsible section: 23.2.1 -->
+
+<div class="toggle-content closed">
+  <p id="rev23-2-0">
+    <a href="#" onclick="return toggleContent(this)"><img src=
+    "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img"
+    alt="">Android Support Library, revision 23.2.0</a> <em>(February
+    2016)</em>
+  </p>
+
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>
+        Changes for <a href="features.html#v4">v4 Support library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added {@code MediaBrowserCompat} for {@link
+          android.media.browse.MediaBrowser} support, and {@code
+          MediaBrowserServiceCompat} for {@link
+          android.service.media.MediaBrowserService} support. This is useful
+          when connecting a media app’s background service with UI components,
+          and integrating with Android Auto and Android Wear without requiring
+          API level 21 or higher.
+          </li>
+
+          <li>The system now calls {@link
+          android.support.v4.app.FragmentActivity#onActivityResult onActivityResult()} for a
+          nested {@link android.support.v4.app.FragmentActivity}.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href="features.html#v7-appcompat">v7 AppCompat
+        library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added Night Mode functionality to API level 14 and higher. Switch
+          between <a href="{@docRoot}training/material/theme.html">Material
+          Light and Material Dark Themes</a> based on the time of day or
+          app-specific setting.
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>Day and night themes can be found here: {@code
+              &lt;sdk&gt;/extras/android/support/v7/appcompat/res/values/themes_daynight.xml}
+              </li>
+
+              <li>{@code AppCompatDelegate.setDefaultNightMode()}: sets the
+              app’s default mode by passing one of the following constants:
+              </li>
+
+              <li style="list-style: none; display: inline">
+                <ul>
+                  <li>{@code MODE_NIGHT_AUTO}
+                  </li>
+
+                  <li>{@code MODE_NIGHT_NO}
+                  </li>
+
+                  <li>{@code MODE_NIGHT_YES}
+                  </li>
+
+                  <li>{@code MODE_NIGHT_FOLLOW_SYSTEM}
+                  </li>
+                </ul>
+              </li>
+
+              <li>{@code AppCompatDelegate.setLocalNightMode()}: overrides
+              the night mode setting for the local app component.
+              </li>
+
+              <li>{@code AppCompatDelegate.getDefaultNightMode()}: returns
+              the default night mode.
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href="features.html#v7-mediarouter">v7 mediarouter
+        library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>{@link android.support.v7.app.MediaRouteControllerDialog} now
+          correctly applies custom app theme colors.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href="features.html#design">Design support library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added support for <a href=
+          "https://www.google.com/design/spec/components/bottom-sheets.html">bottom
+          sheets</a>. An interaction plugin, {@code
+          BottomSheetBehavior}, allows a child view of a {@link
+          android.support.design.widget.CoordinatorLayout} to act as
+          a bottom sheet. The base class, {@code BottomSheetCallback}, provides
+          callbacks to monitor bottom sheet events.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for the <a href="features.html#custom-tabs">CustomTabs support
+        library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>
+            <a href=
+            "https://developer.chrome.com/multidevice/android/customtabs">Chrome
+            Custom Tabs</a> now allows apps to include a bottom bar with action
+            buttons in addition to the existing top action button.
+          </li>
+
+          <li>{@code CustomTabsIntent.Builder.addToolBarItem()}: adds an action
+          button to a custom tab. You can use this to add multiple buttons.
+          </li>
+
+          <li>{@code CustomTabsSession.setToolBarItem()}: updates the visuals
+          for toolbar items. This method will only succeed if it is given a
+          valid id and the browser session is in the foreground.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Added VectorDrawable support library:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added Classes:
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>{@code VectorDrawableCompat}
+              </li>
+
+              <li>{@code AnimatedVectorDrawableCompat}
+              </li>
+            </ul>
+          </li>
+
+          <li>Adds support for {@link
+          android.graphics.drawable.VectorDrawable} assets to apps
+          running on API level 7 or higher. {@link
+          android.graphics.drawable.AnimatedVectorDrawable} assets
+          are also supported on API level 11 or higher. Vector assets can be
+          considerably smaller than image assets and should help reduce app
+          size by reducing the amount of assets required to support multiple
+          device screens.
+          </li>
+
+          <li>This library is now a dependency of the <a href=
+          "features.html#v7-appcompat">v7 AppCompat library</a>, allowing
+          developers and <a href="features.html#v7-appcompat">AppCompat </a>
+          to easily use vector drawables. To use {@code
+          VectorDrawableCompat} within an {@link android.widget.ImageButton} or
+          {@link android.widget.ImageView}, use the {@code app:srcCompat} XML
+          attribute or {@code setImageResource()}
+          method.
+          </li>
+
+          <li>To keep referencing attribute IDs on API level 20 or
+          lower, add the following {@code appt} flag to your {@code
+          build,gradle} file:
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>If you are building with Android Plugin for Gradle 1.5.0 or
+              lower, add the following to your {@code build.gradle} file:
+              </li>
+
+              <li style="list-style: none; display: inline">
+                <pre>
+android {
+  defaultConfig {
+    // Stops the Gradle’s automatic rasterization of vectors
+    generatedDensities = []
+  }
+   // Flag that tells aapt to keep the attribute ids
+  aaptOptions {
+    additionalParameters "--no-version-vectors"
+  }
+}
+</pre>
+              </li>
+
+              <li>If you are building with Android Plugin for Gradle 2.0.0 or
+              higher, add the following to your {@code build.gradle} file:
+              </li>
+
+              <li style="list-style: none; display: inline">
+                <pre>
+android {
+  defaultConfig {
+    vectorDrawables.useSupportLibrary = true
+  }
+}
+</pre>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+
+      <dt>
+        Changes for <a href="features.html#v17-leanback">v17 Leanback
+        Library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>Added new capabilities to {@link android.support.v17.leanback.app.GuidedStepFragment},
+          which is a component that guides users through a decision or series of decisions:
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>Added button actions to {@link
+              android.support.v17.leanback.widget.GuidedAction}:
+              </li>
+
+                <ul>
+                  <li>{@code GuidedStepFragment.setButtonActions()}: sets a list of
+                  {@link android.support.v17.leanback.widget.GuidedAction} buttons that
+                  the user may select from the Actions view.
+                  </li>
+                </ul>
+              </li>
+
+              <li>Description fields are now editable:
+              </li>
+
+              <li style="list-style: none; display: inline">
+                <ul>
+                  <li>{@code GuidedAction.Builder.descriptionEditable()}: when passing
+                  {@code true}, sets the action’s description to be editable.
+                  </li>
+
+                  <li>{@code GuidedAction.getEditDescription()}: returns the editable
+                  description as a {@code CharSequence}.
+                  </li>
+                </ul>
+              </li>
+
+              <li>Added drop-down lists of sub-actions:
+              </li>
+
+              <li style="list-style: none; display: inline">
+                <ul>
+                  <li>{@code GuidedAction.setSubActions()}: sets a {@link
+                  android.support.v17.leanback.widget.GuidedAction} list as a drop-down
+                  menu of sub-actions.
+                  </li>
+                </ul>
+              </li>
+            </ul>
+
+          <li>Added the {@code GuidedDatePickerAction} widget for {@link
+          android.widget.DatePicker} functionality:
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>The date is selected using year, month, and day columns and has a
+              customizable range.
+              </li>
+
+              <li>{@code GuidedDatePickerAction.Builder}: builder class for the {@code
+              GuidedDatePickerAction} object.
+              </li>
+
+              <li>{@code GuidedDatePickerAction.Builder.datePickerFormat(String
+              datePickerFormat)}: set the desired date format by passing the
+              appropriate three-character {@code String}, e.g. {@code “YMD”} or {@code
+              “MDY”}. Alternatively, use the {@code datePickerFormat} XML attribute.
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+    </dl>
+
+    <dl>
+      <dt>
+        Changes for <a href="features.html#v7-recyclerview">v7 RecyclerView
+        library</a>:
+      </dt>
+
+      <dd>
+        <ul>
+          <li>{@link android.support.v7.widget.RecyclerView} now has an opt-in
+          feature called <em>AutoMeasure</em> which allows {@link
+          android.support.v7.widget.RecyclerView.LayoutManager} to easily wrap
+          content or handle various measurement specifications provided by the
+          parent of the {@link android.support.v7.widget.RecyclerView}. It
+          supports all existing animation capabilities of the {@link
+          android.support.v7.widget.RecyclerView}.
+          </li>
+
+          <li style="list-style: none; display: inline">
+            <ul>
+              <li>If you have a custom {@link
+              android.support.v7.widget.RecyclerView.LayoutManager},
+              call {@code setAutoMeasureEnabled(true)} to start using the new
+              AutoMeasure API. All built-in {@link
+              android.support.v7.widget.RecyclerView.LayoutManager} objects
+              enable auto-measure by default.
+              </li>
+
+              <li>{@link android.support.v7.widget.RecyclerView.LayoutManager}
+              no longer ignores some {@link
+              android.support.v7.widget.RecyclerView.LayoutParams} settings,
+              such as {@code MATCH_PARENT} in the scroll direction.
+                <p class="note">
+                  <strong>Note:</strong> These lifted restrictions may cause
+                  unexpected behavior in your layouts. Make sure you specify
+                  the correct layout parameters.
+                </p>
+              </li>
+            </ul>
+          </li>
+
+          <li>When updating a {@link
+          android.support.v7.widget.RecyclerView.ViewHolder} with payload
+          information, {@link android.support.v7.widget.DefaultItemAnimator}
+          now disables change animations.
+          </li>
+
+          <li>You can now modify the {@link
+          android.support.v7.widget.helper.ItemTouchHelper} escape velocity to
+          control swipe sensitivity. To make it easier or harder to swipe,
+          override {@code getSwipeEscapeVelocity(float defaultValue)} and modify {@code defaultValue}.
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+<!-- end of collapsible section: 23.2.0 -->
+
+<div class="toggle-content closed">
+  <p id="rev23-1-1"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 23.1.1</a> <em>(November 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt>
+      <dd>
+        <ul>
+          <li>Fixed a crash that occurs when you perform a swipe-to-dismiss action that the
+            {@code ItemTouchHelper} utility class provides, and then add an item.
+            (<a href="http://b.android.com/190500">Issue 190500</a>)</li>
+         </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v7-preference">v7 preference library:</a></dt>
+      <dd>
+        <ul>
+          <li>Fixed an issue with ProGuard usage.
+          (<a href="http://b.android.com/183261">Issue 183261</a>)</li>
+         </ul>
+      </dd>
+
+      <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Fixed a number of internal issues in this library.</li>
+         </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added the <code>getHeaderView</code> method to the <code>NavigationView</code> class.</li>
+          <li>Fixed a transparent background issue for a <code>FloatingActionButton</code> object on
+          devices running Android 4.0 (API level 15) and lower.
+          (<a href="http://b.android.com/183315">Issue 183315</a>)</li>
+         </ul>
+       </dd>
+    </dl>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+
+<div class="toggle-content closed">
+  <p id="rev23-1-0"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 23.1.0</a> <em>(October 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v4">v4 Support library:</a></dt>
+       <dd>
+        <ul>
+           <li>Added <code>OnScrollChangedListener</code> interface support to the
+            <code>NestedScrollView</code> widget. It
+            allows you to receive callbacks when the scroll X or Y positions change.</li>
+          <li>Added a <code>MediaButtonReceiver</code> class to forward received playback controls
+            to a service that’s managing the <code>MediaSessionCompat</code> class. The
+            <code>MediaSessionCompat</code> class has a
+            constructor that can automatically find a media button receiver in the manifest. A
+            media button receiver is a key part to <a href=
+          "http://developer.android.com/training/managing-audio/volume-playback.html#PlaybackControls">handling
+          playback controls</a> from hardware or bluetooth controls.</li>
+        </ul>
+       </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt>
+       <dd>
+        <ul>
+          <li>Added material design <code>Seekbar</code> and <code>ImageButton</code> widgets.</li>
+          <li>Updated the <code>ImageView</code> widget to support the tint feature.</li>
+          <li>Updated the look-and-feel of the <code>SwitchCompat</code> widget.</li>
+         </ul>
+       </dd>
+
+      <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library:</a></dt>
+       <dd>
+        <ul>
+        <li>Added the following features to the <code>MediaRouteChooserDialog</code> class:</li>
+        <ul>
+          <li>Displays a loading page while discovering media route providers.</li>
+          <li>Includes a device type icon for easier device identification.</li>
+          <li>Sorts the routes according to frequency of use in the current app.</li>
+          <li>Supports landscape mode.</li>
+        </ul>
+        </ul>
+        <ul>
+        <li>Added the following features to the <code>MediaRouteControllerDialog</code> class:</li>
+        <ul>
+           <li>Recognizes screen casting and provides a proper description.</li>
+           <li>Supports various album art sizes and aspect ratios, and loads the art asynchronously.</li>
+           <li>Automatically selects the content color based on the primary color of the app.</li>
+           <li>Adjusts the dialog layout based on available screen space on the device.</li>
+           <li>Supports landscape mode.</li>
+        </ul>
+        </ul>
+       </dd>
+
+      <dt>Changes for <a href="features.html#v7-palette">v7 palette library:</a></dt>
+       <dd>
+        <ul>
+          <li>Added the <code>setRegion()</code> method to support extracting color from a specific
+            region of a <code>Bitmap</code> object.</li>
+         </ul>
+       </dd>
+
+      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt>
+       <dd>
+        <ul>
+        <li>Added an improved animation API to the <code>ItemAnimator</code> class for better
+          customizations:</li>
+           <ul>
+           <li>Change animations no longer enforce two copies of the <code>ViewHolder</code> object,
+            which enables item content animations. Also, the <code>ItemAnimator</code> object
+            decides whether it wants to reuse the same <code>ViewHolder</code> object or create a
+            new one.</li>
+           <li>The new information record API gives the <code>ItemAnimator</code> class the flexibility
+            to collect data at the correct point in the layout lifecycle. This information is later
+            passed into the animate callbacks.</li>
+            </ul>
+         </ul>
+          <ul>
+          <li>Provided an easy transition plan for this backward-incompatible API change:</li>
+           <ul>
+           <li>If you’ve previously extended the <code>ItemAnimator</code> class, you can change
+            your base class to <code>SimpleItemAnimator</code> and your code should work as before.
+            The <code>SimpleItemAnimator</code> class provides the old API by wrapping the new API.</li>
+           <li>Some methods were removed from the <code>ItemAnimator</code> class. The following
+            code will no longer compile:</li>
+           <pre>recyclerView.getItemAnimator().setSupportsChangeAnimations(false)</pre>
+           <p>You can replace it with:</p>
+           <pre>
+ItemAnimator animator = recyclerView.getItemAnimator();
+if (animator instanceof SimpleItemAnimator) {
+   ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
+}
+           </pre>
+          </ul>
+         </ul>
+       </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-preference">v7</a>,
+          <a href="features.html#v14-preference">v14</a>, and
+          <a href="features.html#v17-preference">v17</a> Preference Support library:</dt>
+       <dd>
+        <ul>
+          <li>Removed APIs for controlling <code>EditText</code> dialogs.</li>
+         </ul>
+       </dd>
+
+     <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added a version of the <code>GuidedStepFragment</code> class for the Support library
+            (extends <code>android.support.v4.app.Fragment</code>), and improved animations and
+            transitions.</li>
+          <li>Updated the <code>GuidedStepFragment</code> class so it can be placed on top of
+            existing content.</li>
+          <li>Added the ability to annotate different types of search completions to the
+          <code>SearchFragment</code> class.</li>
+          <li>Added staggered slide transition support to the <code>VerticalGridFragment</code>
+            class.</li>
+         </ul>
+       </dd>
+
+
+     <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added <a href=
+  "https://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter">
+          character counting</a> support to the <code>TextInputLayout</code> widget.</li>
+          <li>Added edge snapping support to the <code>AppBarLayout</code> class by adding the
+            <code>SCROLL_FLAG_SNAP</code> constant. When scrolling ends, if the view is only
+            partially visible, the view is snapped and scrolled to its closest edge.</li>
+          <li>Added support for custom views to the <code>NavigationView</code> class by using the
+            <code>app:actionLayout</code> attribute or <code>MenuItemCompat.setActionView()</code>
+            method.</li>
+         </ul>
+       </dd>
+
+
+     <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added the <code>enableUrlBarHiding()</code> method to the <code>CustomTabsIntent</code>
+            class. It lets the client customize whether the URL bar should be hidden automatically
+            on scroll down.</li>
+          <li>Added the <code>setActionButton()</code> method to the <code>CustomTabsSession</code>
+            class. It lets the client
+            change the icon for a custom action button in an already launched custom tab.</li>
+          <li>Added the <code>TAB_SHOWN</code> and <code>TAB_HIDDEN</code> constants as new events
+            for the <code>onNavigationEvent</code> method of the <code>CustomTabsCallback</code>
+            class.</li>
+         </ul>
+       </dd>
+
+    </dl>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+<div class="toggle-content closed">
+  <p id="rev23-0-1"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 23.0.1</a> <em>(September 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v7-preference">v7</a> and
+          <a href="features.html#v14-preference">v14</a> Preference Support library:</dt>
+       <dd>
+        <ul>
+          <li>Added the material design layout and style files.
+          (<a href="http://b.android.com/183376">Issue 183376</a>)</li>
+         </ul>
+       </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt>
+       <dd>
+        <ul>
+          <li>Fixed crash issues for the {@link android.app.Fragment} class by limiting the use of
+              hardware layers to Android 4.1 (API level 16) and higher.
+          (<a href="http://b.android.com/183896">Issue 183896</a>)</li>
+          <li>Fixed an issue where hardware buttons did not work when an activity had set the
+            {@link android.widget.Toolbar} class to act as the
+            {@link android.app.ActionBar} by using the <code>setSupportActionBar()</code> method.
+          (<a href="http://b.android.com/183334">Issue 183334</a>)</li>
+          <li>Updated the {@link android.support.v7.app.AppCompatDialogFragment} class so it
+            no longer throws the {@code Windows feature must be requested before adding content}
+            error.
+          (<a href="http://b.android.com/183186">Issue 183186</a>)</li>
+         </ul>
+       </dd>
+
+
+     <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Fixed the
+            {@link android.support.design.widget.AppBarLayout} class so it now draws correctly after
+            rotation.
+          (<a href="http://b.android.com/183109">Issue 183109</a>)</li>
+          <li>Fixed the
+            {@link android.support.design.widget.TabLayout} class so it now behaves correctly when a
+            user clicks after a swipe.
+          (<a href="http://b.android.com/183123">Issue 183123</a>)</li>
+         </ul>
+       </dd>
+
+
+     <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Lowered the
+          <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>minSdkVersion</code></a>
+              value from 16 to 15 for version support.</li>
+          <li>Added a way to generate a
+            {@link android.support.customtabs.CustomTabsSessionToken} from an intent.</li>
+         </ul>
+       </dd>
+
+    </dl>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+<div class="toggle-content closed">
+  <p id="rev23"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 23</a> <em>(August 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+     <dt>Added new support libraries:</a></dt>
+      <dd>
+        <ul>
+          <li><a href="features.html#custom-tabs">Custom Tabs Support library</a></li>
+          <li><a href="features.html#percent">Percent Support library</a></li>
+          <li><a href="features.html#recommendation">App Recommendation Support library for TV</a></li>
+          <li><a href="features.html#v7-preference">v7 Preference Support library</a></li>
+          <li><a href="features.html#v14-preference">v14 Preference Support library</a></li>
+          <li><a href="features.html#v17-preference">v17 Preference Support library for TV</a></li>
+         </ul>
+       </dd>
+
+    </dl>
+
+    <p>For a complete list of the Support Library changes, see the
+    <a href="{@docRoot}sdk/support_api_diff/23/changes.html">Support
+    Library API Differences Report</a>.  </p>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+
+<div class="toggle-content closed">
+  <p id="rev22-2-1"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 22.2.1</a> <em>(July 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#design">Design Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added the {@code hide()} and {@code show()} methods to the
+            {@link android.support.design.widget.FloatingActionButton} class for programmatic
+            triggering of animations.  </li>
+          <li>Added the {@code LENGTH_INDEFINITE} constant to the
+            {@link android.support.design.widget.Snackbar} class for showing a snackbar
+            until it is dismissed or another snackbar is shown. Also, added the
+            {@link android.support.design.widget.Snackbar#setActionTextColor(int)} and
+            {@link android.support.design.widget.Snackbar#setActionTextColor(ColorStateList)}
+            methods.  </li>
+          <li>Added the {@code getSelectedTabPosition()} method to the
+            {@link android.support.design.widget.TabLayout} class for retrieving the currently
+            selected tab. </li>
+          <li>Provided a fully fluent API for the
+            {@link android.support.v7.app.NotificationCompat.MediaStyle} class for method
+            chaining.  </li>
+           <li>Added convenience methods to the
+             {@link android.support.v7.widget.RecyclerView} for batch insertion of items. </li>
+         </ul>
+       </dd>
+    </dl>
+
+    <p>For a complete list of the Support Library changes, see the
+    <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support
+    Library API Differences Report</a>.  </p>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 22.2.0</a> <em>(May 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Added <a href="features.html#design">Design Support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.design.widget.TextInputLayout} for showing
+            {@link android.widget.EditText} hint and error text as floating labels.
+          </li>
+          <li>Added {@link android.support.design.widget.FloatingActionButton} for implementing a
+            primary action on your interface as a
+            floating action button, supporting either default or mini sizes.
+          </li>
+          <li>Added {@link android.support.design.widget.Snackbar} for providing lightweight
+            feedback with an optional action in an animated snackbar.
+          </li>
+          <li>Added {@link android.support.design.widget.TabLayout} for implementing fixed and
+            scrollable
+           <a href="{@docRoot}design/building-blocks/tabs.html">tabs</a> as well as easy
+             integration with
+             {@link android.support.v4.view.ViewPager}.
+          </li>
+          <li>Added {@link android.support.design.widget.NavigationView} for implementing
+            <a href="{@docRoot}design/patterns/navigation-drawer.html">navigation drawer</a>
+             contents, including the ability to inflate menu items via a
+             <a href="{@docRoot}guide/topics/resources/menu-resource.html">Menu Resource</a>.
+          </li>
+          <li>Added {@link android.support.design.widget.CoordinatorLayout}, a general purpose
+            layout, used for building dependencies between
+            sibling views and allowing easy scrolling reactions between components via
+            {@link android.support.design.widget.CoordinatorLayout.Behavior}. Many of the Design
+            Library components rely on being a child of a
+            {@link android.support.design.widget.CoordinatorLayout}.
+          </li>
+          <li>Added {@link android.support.design.widget.AppBarLayout}, a container for a
+            {@link android.widget.Toolbar}
+            and other views (such as {@link android.support.design.widget.TabLayout}) for
+            reacting to scrolling events by scrolling off the screen, becoming visible in reaction
+            to a downward scroll, or collapsing/uncollapsing before scrolling off/onto the screen.
+          </li>
+          <li>Added {@link android.support.design.widget.CollapsingToolbarLayout} for controlling
+            how a {@link android.widget.Toolbar} collapses. A toolbar may collapse by:
+            pinning components to the top of the screen while it collapses, introducing
+            parallax scrolling of components such as an {@link android.widget.ImageView},
+            or adding a content scrim color when the view is partially collapsed.
+          </li>
+       </ul>
+      </dt>
+
+
+
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+         <ul>
+
+          <li>Added the
+{@link android.support.v4.view.accessibility.AccessibilityEventCompat#getContentChangeTypes getContentChangeTypes()}
+            and
+{@link android.support.v4.view.accessibility.AccessibilityEventCompat#setContentChangeTypes setContentChangeTypes()}
+            methods and related change type
+            fields to the
+            {@link android.support.v4.view.accessibility.AccessibilityEventCompat}
+            class for accessibility event handling.
+          </li>
+          <li>Added the
+{@link android.support.v4.media.session.PlaybackStateCompat#getActiveQueueItemId getActiveQueueItemId()},
+{@link android.support.v4.media.session.PlaybackStateCompat#getCustomActions getCustomActions()},
+            and
+            {@link android.support.v4.media.session.PlaybackStateCompat#getExtras getExtras()}
+            methods with related state fields to the
+            {@link android.support.v4.media.session.PlaybackStateCompat} class for
+            getting custom actions from the queue.
+          </li>
+          <li>Added the
+{@link android.support.v4.media.session.PlaybackStateCompat.Builder#addCustomAction addCustomAction()},
+{@link android.support.v4.media.session.PlaybackStateCompat.Builder#setActiveQueueItemId setActiveQueueItemId()},
+            and
+            {@link android.support.v4.media.session.PlaybackStateCompat.Builder#setExtras setExtras()}
+            methods to the
+            {@link android.support.v4.media.session.PlaybackStateCompat.Builder} class for adding
+            custom actions to a playback state.
+          </li>
+          <li>Added the
+{@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#fromCustomAction fromCustomAction()} and
+{@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#getCustomAction getCustomAction()} methods
+            to the
+            {@link android.support.v4.media.session.PlaybackStateCompat.CustomAction} class
+            for getting custom actions from the queue.
+          </li>
+          <li>Added the {@link android.support.v4.view.ViewCompat#isAttachedToWindow isAttachedToWindow()},
+            {@link android.support.v4.view.ViewCompat#offsetLeftAndRight offsetLeftAndRight()}, and
+            {@link android.support.v4.view.ViewCompat#offsetTopAndBottom offsetTopAndBottom()}
+            methods to the {@link android.support.v4.view.ViewCompat} class for working with views.
+          </li>
+          <li>Added the {@link android.support.v4.view.ViewPager#addOnPageChangeListener addOnPageChangeListener()},
+            {@link android.support.v4.view.ViewPager#clearOnPageChangeListeners clearOnPageChangeListeners()}, and
+            {@link android.support.v4.view.ViewPager#removeOnPageChangeListener removeOnPageChangeListener()}
+            methods to the {@link android.support.v4.view.ViewPager} class for responding to page
+            changes.
+            <p>Deprecated the
+            {@link android.support.v4.view.ViewPager#setOnPageChangeListener setOnPageChangeListener()} method.</p>
+          </li>
+          <li>Added the
+{@link android.support.v4.view.ViewParentCompat#notifySubtreeAccessibilityStateChanged notifySubtreeAccessibilityStateChanged()} method to
+            the {@link android.support.v4.view.ViewParentCompat} class for notifying a view parent
+            that the accessibility state of one of its descendants has changed.
+          </li>
+          <li>Added the {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZ translationZ()},
+            {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZBy translationZBy()},
+            {@link android.support.v4.view.ViewPropertyAnimatorCompat#z z()}, and
+            {@link android.support.v4.view.ViewPropertyAnimatorCompat#zBy zBy()}
+            methods to the {@link android.support.v4.view.ViewPropertyAnimatorCompat} class for
+            adding animation.
+          </li>
+       </ul>
+      </dd>
+
+
+
+<dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
+      <dd>
+<ul>
+          <li>Added the
+            {@link android.support.v7.app.AppCompatActivity#onWindowStartingSupportActionMode onWindowStartingSupportActionMode()}
+            method to the
+            {@link android.support.v7.app.AppCompatActivity},
+            {@link android.support.v7.app.AppCompatCallback}, and
+            {@link android.support.v7.app.AppCompatDialog} classes for handling action modes
+            started from the current window.
+          </li>
+
+          <li>Added the
+{@link android.support.v7.app.AppCompatDelegate#isHandleNativeActionModesEnabled isHandleNativeActionModesEnabled()} and
+{@link android.support.v7.app.AppCompatDelegate#setHandleNativeActionModesEnabled setHandleNativeActionModesEnabled()}
+           methods to the
+           {@link android.support.v7.app.AppCompatDelegate} class for handling native action modes.
+          </li>
+       </ul>
+      </dd>
+
+    <p>For a complete list of the Support Library changes, see the
+    <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support
+    Library API Differences Report</a>.  </p>
+
+    </dl>
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 22.1.0</a> <em>(April 2015)</em>
+  </p>
+
+
+
+  <div class="toggle-content-toggleme">
+    <dl>
+
+
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#annotations">annotations library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added the Annotations library to provide support for enhanced code inspections.
+            Annotations are added as metadata tags that you attach to variables, parameters,
+            and return values to inspect method return values, passed parameters, and local
+            variables and fields.
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+        <ul>
+
+          <li>Added the {@link android.support.v4.graphics.ColorUtils ColorUtils} class
+            to provide a set of color-related utility methods.
+          </li>
+          <li>Added the {@link android.support.v4.graphics.drawable.DrawableCompat#unwrap unwrap()} and
+            {@link android.support.v4.graphics.drawable.DrawableCompat#wrap wrap()} methods to the
+            {@link android.support.v4.graphics.drawable.DrawableCompat} class , allowing you to use
+            {@link android.support.v4.graphics.drawable.DrawableCompat#setTint setTint()},
+            {@link android.support.v4.graphics.drawable.DrawableCompat#setTintList setTintList()},
+            and {@link android.support.v4.graphics.drawable.DrawableCompat#setTintMode setTintMode()}
+            on all API level 4 or higher devices.
+          </li>
+          <li>Added the {@link android.support.v4.os.TraceCompat} class to
+            write trace events to the system trace buffer, which can then be collected and
+            visualized using the <a href="{@docRoot}tools/help/systrace.html">Systrace</a> tool.
+          </li>
+          <li>Added the {@link android.support.v4.util.CircularIntArray} class
+            to create circular integer array data structures.
+          </li>
+          <li>Added the {@link android.support.v4.util.CircularArray#clear clear()},
+            {@link android.support.v4.util.CircularArray#removeFromStart removeFromStart()},
+            and {@link android.support.v4.util.CircularArray#removeFromEnd removeFromEnd()}
+            methods to the {@link android.support.v4.util.CircularArray} class. Also, changed the
+            existing methods in this class to be non-final.
+          </li>
+          <li>Added the {@link android.support.v4.view.InputDeviceCompat}
+            as a helper class to access data in the
+            {@link android.support.v4.view.InputDeviceCompat} class.
+          </li>
+          <li>Added the {@link android.support.v4.view.LayoutInflaterCompat}
+            class as a helper class to access data in the
+            {@link android.support.v4.view.LayoutInflaterCompat} class
+            and added the {@link android.support.v4.view.LayoutInflaterFactory} interface.
+          </li>
+          <li>Added classes, methods, and interfaces to support nested scrolling.
+             <ul>
+               <li>Added the {@link android.support.v4.view.NestedScrollingChildHelper}
+               and {@link android.support.v4.view.NestedScrollingParentHelper}
+               helper classes for implementing nested scrolling parent and child views.</li>
+               <li>Added the {@link android.support.v4.view.NestedScrollingChild}
+               interface to be implemented by {@link android.view.View} subclasses.</li>
+               <li>Added the {@link android.support.v4.view.NestedScrollingParent}
+               and {@link android.support.v4.view.ScrollingView} interfaces to support
+               scrolling operations and provide scroll related APIs.</li>
+               <li>Added the
+                {@link android.support.v4.view.ViewGroupCompat#getNestedScrollAxes
+                getNestedScrollAxes()} method to the {@link android.support.v4.view.ViewGroupCompat}
+                class.</li>
+               <li>Added methods to the {@link android.support.v4.view.ViewParentCompat} class to
+                support nested scrolling.
+               </li>
+               <li>Added the {@link android.support.v4.widget.NestedScrollView}
+                 class to support nested scrolling parent and child on both new and old versions of
+                 Android.
+               </li>
+              </ul>
+          </li>
+          <li>Added methods and constants to the {@link android.support.v4.view.MotionEventCompat}
+            class for getting axis values and event source.
+         </li>
+         <li>Updated the {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
+          class to add methods for errors, content invalidation and labels.
+         </li>
+         <li>Added the following interpolation classes for animation:
+           {@link android.support.v4.view.animation.FastOutLinearInInterpolator},
+           {@link android.support.v4.view.animation.FastOutSlowInInterpolator},
+           {@link android.support.v4.view.animation.LinearOutSlowInInterpolator},
+           {@link android.support.v4.view.animation.LinearOutSlowInInterpolator}, and
+           {@link android.support.v4.view.animation.PathInterpolatorCompat}.
+         </li>
+         <li>Added the {@link android.support.v4.widget.Space} class to create gaps between
+           components in general purpose layouts. This class is deprecated in the gridlayout library.
+         </li>
+         <li>Added the {@link android.support.v4.widget.TextViewCompat} class for accessing
+           features in a {@link android.widget.TextView}.
+         </li>
+         <li>Added a displacement parameter to the
+           {@link android.support.v4.widget.EdgeEffectCompat#onPull onPull()} method in the
+           {@link android.support.v4.widget.EdgeEffectCompat} class.
+         </li>
+
+       </ul>
+      </dd>
+
+
+  <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added tint support to appcompat widgets, including
+            {@link android.support.v7.widget.AppCompatAutoCompleteTextView},
+            {@link android.support.v7.widget.AppCompatButton},
+            {@link android.support.v7.widget.AppCompatCheckBox},
+            {@link android.support.v7.widget.AppCompatCheckedTextView},
+            {@link android.support.v7.widget.AppCompatEditText},
+            {@link android.support.v7.widget.AppCompatMultiAutoCompleteTextView},
+            {@link android.support.v7.widget.AppCompatRadioButton},
+            {@link android.support.v7.widget.AppCompatRatingBar},
+            {@link android.support.v7.widget.AppCompatSpinner}, and
+            {@link android.support.v7.widget.AppCompatTextView}.
+          </li>
+          <li>Updated the {@link android.support.v7.app.AppCompatActivity} as the base
+            class for activities that use the support library action bar features. This class
+            replaces the deprecated {@link android.support.v7.app.ActionBarActivity}.
+          </li>
+          <li>Added the
+            {@link android.support.v7.app.AppCompatCallback} interface
+            to be implemented for AppCompat to be able to perform callbacks.
+          </li>
+            <li>Added the
+            {@link android.support.v7.app.AppCompatDelegate} abstract class
+            as a delegate you can use to extend AppCompat's support to any activity.
+          </li>
+          <li>Added the
+            {@link android.support.v7.app.AppCompatDialog} class
+            as the base class for AppCompat themed dialogs.
+          </li>
+          <li>Added the spinner style
+            {@link android.support.v7.app.AlertDialog} and
+            {@link android.support.v7.app.AlertDialog.Builder} classes to provide an AppCompat
+            themed {@link android.app.AlertDialog}.
+          </li>
+          <li>Added the {@link android.support.v7.graphics.Palette.Builder} class
+            for generating {@link android.support.v7.graphics.Palette} instances.
+            <ul>
+              <li>Added the
+                {@link android.support.v7.graphics.Palette#from}
+                method to the {@link android.support.v7.graphics.Palette} class to
+                start generating a Palette with the returned
+                {@link android.support.v7.graphics.Palette.Builder} instance.
+              </li>
+              <li>Deprecated the {@link android.support.v7.graphics.Palette#generate generate()} and
+                {@link android.support.v7.graphics.Palette#generateAsync generateAsync()} methods.
+              </li>
+             </ul>
+           </li>
+
+           <li>Added the
+             {@link android.support.v7.widget.GridLayout.Spec#getAbsoluteAlignment
+             getAbsoluteAlignment()} method to the {@link android.support.v7.widget.GridLayout.Spec}
+             class.
+           </li>
+           <li>Deprecated use of <code>app:theme</code> for styling
+             {@link android.support.v7.widget.Toolbar}. You can now use
+             <code>android:theme</code> for toolbars on all API level 7 and higher devices and
+             <code>android:theme</code> support for all widgets on API level 11 and higher devices.
+           </li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
+      <dd>
+        <ul>
+          <li> Added {@link android.support.v17.leanback.app.GuidedStepFragment},
+            {@link android.support.v17.leanback.widget.GuidanceStylist} and
+            {@link android.support.v17.leanback.widget.GuidedActionsStylist} to support
+            creating multi-step decision flows.
+          </li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt>
+      <dd>
+        <ul>
+           <li>Added {@link android.support.v7.util.SortedList} classes to display items in
+             a list order and provide notification of changes to the list.
+           </li>
+           <li>Added the {@link android.support.v7.widget.util.SortedListAdapterCallback} class
+             that can bind a sorted list to a
+             {@link android.support.v7.widget.RecyclerView.Adapter} class.
+           </li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicHistogram} class for
+            use as a histogram filter.</li>
+          <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicResize} class for
+            performing a resize of a 2D allocation.
+          </li>
+        </ul>
+      </dd>
+
+    </dl>
+
+
+  </div>
+</div> <!-- end of collapsible section -->
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 22</a> <em>(March 2015)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Updated the {@link android.support.v4.content.res.ResourcesCompat#getDrawable
+            getDrawable()} method to return a drawable object for a specified specific resource ID,
+            screen density, and theme.
+          </li>
+          <li>Added the {@link android.support.v4.view.ViewCompat#setImportantForAccessibility
+            setImportantForAccessibility()} method so you can indicate if a view should trigger
+            accessibility events.
+          </li>
+          <li>Added the {@link android.support.v4.widget.DrawerLayout#getStatusBarBackgroundDrawable
+            getStatusBarBackgroundDrawable()} method so you can get the status bar background
+            drawable.
+          </li>
+          <li>Added methods to the
+            {@link android.support.v4.app.NotificationCompat.CarExtender.UnreadConversation}
+            class so Android Auto messaging apps can retrieve additional notification data.
+          </li>
+          <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout#getProgressCircleDiameter
+            getProgressCircleDiameter()} method to return the diameter of a circle layout.
+          </li>
+          <li>Changed the default {@link android.support.v4.widget.DrawerLayout DrawerLayout}
+            status bar color to {@link android.R.attr#colorPrimaryDark}.
+          </li>
+        </ul>
+      </dd>
+
+      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the spinner style
+            {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_Spinner_Underlined}.</li>
+          <li>Added tinted widgets styles with
+            {@link android.support.v7.appcompat.R.style#Widget_AppCompat_AutoCompleteTextView},
+            {@link android.widget.MultiAutoCompleteTextView},
+            {@link android.support.v7.appcompat.R.style#TextAppearance_AppCompat_Button}, and
+            {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_RatingBar}.</li>
+        </ul>
+      </dd>
+
+      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v17.leanback.widget.ListRowPresenter#getRecycledPoolSize
+            getRecycledPoolSize()} and
+            {@link android.support.v17.leanback.widget.ListRowPresenter#setRecycledPoolSize
+            setRecycledPoolSize()} methods to allow customized recycled pool sizes.</li>
+          <li>Added the {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} attribute to the
+            layout width setting to support wrapped content for title icons.</li>
+          <li>Defined {@link android.support.v17.leanback.R.transition} in XML to
+            improve transition updates.  </li>
+          <li>Enabled support for right to left layouts.</li>
+          <li>Added the play and pause media key events support to the
+            {@link android.support.v17.leanback.app.PlaybackOverlayFragment} class.</li>
+          <li>Added enter and return transitions to the
+            {@link android.support.v17.leanback.app.BrowseFragment} class and the
+            {@link android.support.v17.leanback.app.DetailsFragment} class.</li>
+          <li>Added the {@link android.support.v17.leanback.widget.ArrayObjectAdapter#replace
+            replace()} method to replace items in an object’s adapter array. </li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Updated Google Cast icons to use the
+            <a href="{@docRoot}training/material/index.html">material design</a> style.</li>
+          <li>Updated all the icons used in the {@link android.media.MediaRouter} dialogs to use the
+            <a href="{@docRoot}training/material/index.html">material design</a> style.</li>
+        </ul>
+      </dd>
+
+
+      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v7.widget.RecyclerView.ViewHolder#getLayoutPosition
+            getlayoutPosition()}
+            and {@link android.support.v7.widget.RecyclerView.ViewHolder#getAdapterPosition
+            getadapterPosition()} methods to the {@link android.support.v7.widget.RecyclerView}
+            class.</li>
+          <li>Deprecated the <code>classgetChildPosition()</code> and
+            <code>findViewHolderForPosition()</code> methods in the
+            {@link android.support.v7.widget.RecyclerView} class. </li>
+          <li>Deprecated the <code>getPosition()</code> method in the
+            {@link android.support.v7.widget.RecyclerView.ViewHolder} class. </li>
+          <li>Deprecated the <code>getViewPosition()</code> method in the
+            {@link android.support.v7.widget.RecyclerView.LayoutParams} class. </li>
+        </ul>
+      </dd>
+
+  </div>
+</div>
+
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 21.0.3</a> <em>(December 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added several {@link android.support.v4.app.NotificationCompat.WearableExtender}
+          methods to improve the display of barcodes in notifications on wearable devices.
+             <ul>
+             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintScreenTimeout getHintScreenTimeout()}</li>
+             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintScreenTimeout setHintScreenTimeout()}</li>
+             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintAvoidBackgroundClipping getHintAvoidBackgroundClipping()}</li>
+             <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintAvoidBackgroundClipping setHintAvoidBackgroundClipping()}</li>
+             </ul>
+          </li>
+        </ul>
+      </dd>
+
+  </div>
+</div>
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 21.0.2</a> <em>(November 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v4.app.NotificationCompat.CarExtender}
+          class to support Android Auto extensions to notifications.</li>
+        </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v7.widget.PopupMenu} constructor to support new popup
+          menus.</li>
+          <li>Added support for a Collapse icon description in the {@link android.support.v7.widget.Toolbar}
+          class.</li>
+          <li>Updated the {@link android.support.v7.widget.SearchView} widget to support displaying
+          the {@link android.support.v7.appcompat.R.attr#commitIcon}. </li>
+          <li>Removed the <code>buttonGravity</code> attribute from the
+          {@link android.support.v7.widget.Toolbar} class. </li>
+        </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v7-cardview">v7 cardview library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v7.widget.CardView#setCardBackgroundColor} API to
+          support changing the background color of the {@link android.support.v7.widget.CardView}.</li>
+          <li>Changed the {@link android.support.v7.widget.CardView} to more accurately report its
+          opacity value as {@link android.graphics.PixelFormat#TRANSLUCENT}.</li>
+        </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview
+        library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_DEFAULT} and
+          {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_PAGING} constants
+          to the {@link android.support.v7.widget.RecyclerView} class
+          to support touch slop configurations for paging.</li>
+        </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added support to generate v4 code fragments. </li>
+          <li>Changed the secondary text color on {@link android.support.v7.widget.CardView}. </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 21.0.1</a> <em>(November 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Added <a href="{@docRoot}tools/support-library/features.html#multidex">
+      multidex support library</a> to support multiple
+      <a href="https://source.android.com/devices/tech/dalvik/">Dalvik</a> Executable (DEX) files
+      for multi-dex file support prior to Android 5.0.
+      </dt>
+    </dl>
+  </div>
+</div>
+
+
+
+
+<div class="toggle-content closed">
+  <p id="rev21"><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 21</a> <em>(October 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt>
+      <dd>
+        <ul>
+          <li>Added support for {@link android.support.v4.app.Fragment}
+              transitions for devices running Android 5.0 (API level 21).
+              Be aware that transitions have no effect on devices running
+              Android 4.4 and lower.
+          </li>
+          <li>Added {@link android.support.v4.provider.DocumentFile} to ease
+              the transition from {@link java.io.File}
+              while working with document trees. However, this class demands
+              more processing overhead compared to the platform's
+              {@link android.provider.DocumentsContract} API added in
+              Android 4.4 (API level 19). So you should switch to using {@link
+              android.provider.DocumentsContract} when running on Android 4.4
+              and higher.</li>
+        </ul>
+      </dd>
+      <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat
+        library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added support for <a href="{@docRoot}design/material/">material
+              design</a> user interfaces.</li>
+          <li>Added {@link android.support.v7.widget.Toolbar}, which generalizes
+              the functionality of {@link android.support.v7.app.ActionBar} for
+              use within app layouts.</li>
+          <li>Updated {@link android.support.v7.app.ActionBarDrawerToggle},
+              which contains the menu-to-arrow animation</li>
+          <li>Updated common user interface widgets to allow tinting via theme
+              attributes when running on pre-Android 5.0 devices</li>
+          <li>Added {@link android.support.v7.widget.SwitchCompat}, a backport
+              of the {@link android.widget.Switch} widget that was added in
+              Android 4.0 (API level 14).</li>
+        </ul>
+      </dd>
+      <dt>New <a href="features.html#v7-cardview">v7 cardview library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v7.widget.CardView} widget, which
+            provides a material design-compatible implementation for displaying
+            data items.</li>
+        </ul>
+      </dd>
+      <dt>New <a href="features.html#v7-recyclerview">v7 recyclerview
+        library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v7.widget.RecyclerView} widget,
+            which provides a flexible list view for providing a limited window
+            into a large data set.</li>
+        </ul>
+      </dd>
+      <dt>New <a href="features.html#v7-palette">v7 palette library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v7.graphics.Palette} class,
+          which lets you extract prominent colors from an image.</li>
+        </ul>
+      </dd>
+      <dt>New <a href="features.html#v17-leanback">v17 leanback library</a>:</dt>
+      <dd>
+        <ul>
+          <li>Added support for building TV user interfaces, including
+            {@link android.support.v17.leanback.app.BrowseFragment},
+            {@link android.support.v17.leanback.app.DetailsFragment}, and
+            {@link android.support.v17.leanback.app.PlaybackOverlayFragment}.
+            For more information about using these user interface widgets,
+            see <a href="{@docRoot}training/tv/playback/index.html">Building TV
+            Playback Apps</a>.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 20</a> <em>(July 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added extended notification support for Android Wear in
+            {@link android.support.v4.app.NotificationCompat.WearableExtender}, which allows you
+            to specify wearable-specific features in your notifications.</li>
+          <li>Added {@link android.support.v4.app.NotificationCompat.Action.WearableExtender},
+            which allows actions to be added on wearable notifications.</li>
+          <li>Added {@link android.support.v4.app.NotificationManagerCompat}, which allows you
+            to issue notifications that properly support wearable features.</li>
+          <li>Added {@link android.support.v4.app.RemoteInput}, which allows a handheld device
+            to receive voice input from a notification that appears on a wearable device.</li>
+          <li>Improved the handling of touch feedback in
+            {@link android.support.v4.widget.SwipeRefreshLayout}.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 19.1.0</a> <em>(March 2014)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout} class,
+              which enables users to refresh the contents of a view with a vertical
+              swipe gesture.</li>
+          <li>Fixed accessibility issues with navigation drawers.</li>
+        </ul>
+      </dd>
+
+      <dt>Changes for v7 appcompat library:</dt>
+      <dd>
+        <ul>
+          <li>Fixed background issues with the action bar.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 19.0.1</a> <em>(December 2013)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Improved {@link android.support.v4.print.PrintHelper} by adding asynchronous
+            handling of printing.</li>
+          <li>Fixed the {@link android.support.v4.widget.DrawerLayout} class approximation of
+            the {@link android.view.View#addChildrenForAccessibility addChildrenForAccessibility()}
+            method.</li>
+          <li>Fixed slide drawable mirroring in {@link
+            android.support.v4.app.ActionBarDrawerToggle}.</li>
+          <li>Fixed off-by-one issue when removing an item from a collection iterator.</li>
+        </ul>
+      </dd>
+
+      <dt>Changes for v7 mediarouter library:</dt>
+      <dd>
+        <ul>
+          <li>Improved route identification by using full component name in the {@link
+            android.support.v7.media.MediaRouteProvider.ProviderMetadata}.</li>
+          <li>Updated {@link android.support.v7.app.MediaRouteChooserDialog} to hide disabled
+            routes.</li>
+        </ul>
+      </dd>
+
+      <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a></dt>
+      <dd>
+        <ul>
+          <li>Added error propagation for the RenderScript thunking layer.</li>
+        </ul>
+      </dd>
+
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 19</a> <em>(October 2013)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added support for external Storage APIs with the
+            {@link android.support.v4.content.ContextCompat#getObbDirs getObbDirs()},
+            {@link android.support.v4.content.ContextCompat#getExternalFilesDirs getExternalFilesDirs()},
+            {@link android.support.v4.content.ContextCompat#getExternalCacheDirs getExternalCacheDirs()},
+            and {@link android.support.v4.os.EnvironmentCompat#getStorageState getStorageState()}.
+            These helper methods always return a single file object on devices running Android
+            4.3 (API level 18) and earlier. When running on Android 4.4 (API level 19) and higher,
+            these methods may return more than one file object.</li>
+          <li>Added {@link android.support.v4.print.PrintHelper} class that works with the
+            Print APIs to print images with a minimum of code.</li>
+          <li>Added drag-to-open user interface support for pop-up menus. For more information, see
+            {@link android.support.v4.widget.PopupMenuCompat} and
+            {@link android.support.v4.widget.ListPopupWindowCompat}.</li>
+          <li>Improved accessibility support with the addition of a
+            {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat#findFocus
+            findFocus()} method in
+            {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat} and the
+            {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat#getLiveRegion
+            getLiveRegion()} method in
+            {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}.</li>
+          <li>Added helper class {@link android.support.v4.view.ScaleGestureDetectorCompat} for
+            accessing new scaling gesture methods.</li>
+          <li>Fixed problem with {@link android.support.v4.app.ActionBarDrawerToggle} in
+            right-to-left language displays.</li>
+          <li>Modified {@link android.support.v4.widget.AutoScrollHelper} option to consume
+            touch events or allow them to be passed through to other views.</li>
+        </ul>
+      </dd>
+
+      <dt>Changes for v7 mediarouter library:</dt>
+      <dd>
+        <ul>
+          <li>Added support for media playback queuing, setting HTTP header values and media
+            playback duration.</li>
+          <li>Added explicit start, get, and end session actions for explicitly managing media
+            playback sessions with media router.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 18</a> <em>(July 2013)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+      <ul>
+        <li>User interface
+          <ul>
+            <li>Added {@link android.support.v4.text.BidiFormatter} for handling
+              text strings that combine right to left and left to right-formatted text.</li>
+            <li>Modified {@link android.support.v4.view.ViewPager} to better handle cases where the
+              pager has a measured width of zero in the initial layout processing.</li>
+            <li>Modified {@link android.support.v4.widget.DrawerLayout} and
+              {@link android.support.v4.widget.SlidingPaneLayout} to not throw exceptions for
+              measurement while the project code is being edited.</li>
+          </ul>
+        </li>
+
+        <li>Accessibility
+          <ul>
+            <li>Added {@link android.support.v4.widget.ExploreByTouchHelper} to simplify the
+              implementation of accessibility for custom views.</li>
+            <li>Fixed a problem with {@link android.support.v4.view.ViewPager} incorrectly
+              populating {@link
+              android.support.v4.view.accessibility.AccessibilityEventCompat#TYPE_VIEW_SCROLLED
+              TYPE_VIEW_SCROLLED} accessibility events.</li>
+            <li>Fixed a null pointer exception in {@link android.support.v4.view.ViewPager} when
+              populating an accessibility event.</li>
+            <li>Simplified {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
+              by changing {@link java.lang.CharSequence} inputs to {@link java.lang.String} objects.
+              </li>
+            <li>Deprecated an {@link android.support.v4.view.accessibility.AccessibilityRecordCompat}
+              constructor that used an {@link java.lang.Object} as input.</li>
+          </ul>
+        </li>
+
+        <li>Media
+          <ul>
+            <li>Added {@link android.support.v4.media.TransportMediator} helper class to manage
+              media transport control, such as play, pause, skip and other media actions.</li>
+            <li>Added {@link android.support.v4.hardware.display.DisplayManagerCompat} for managing
+              display output to one or more device displays.</li>
+          </ul>
+        </li>
+
+        <li>Other changes
+        <ul>
+            <li>Added {@link android.support.v4.content.WakefulBroadcastReceiver} helper class for
+              implementing a common pattern of detecting a device wakeup event and passing work off
+              to a {@link android.app.Service} while ensuring that the device does not go back to
+              sleep before the handoff is complete.</li>
+            <li>Added two new APIs,
+              {@link android.support.v4.content.AsyncTaskLoader#commitContentChanged
+              commitContentChanged()} and
+              {@link android.support.v4.content.AsyncTaskLoader#rollbackContentChanged
+              rollbackContentChanged()}, to {@link android.support.v4.content.AsyncTaskLoader} to
+              help deal with background updates for data changes that are subsequently canceled.
+              </li>
+          </ul>
+        </li>
+      </ul>
+      </dd>
+
+      <dt>New v7 appcompat library:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v7.app.ActionBar} to allow implementation of the
+            action bar user interface <a href="{@docRoot}design/patterns/actionbar.html">design
+            pattern</a> back to Android 2.1 (API level 7) and higher. Use of this class requires
+            that you implement your activity by extending the new
+            {@link android.support.v7.app.ActionBarActivity} class.</li>
+        </ul>
+      </dd>
+
+      <dt>New v7 mediarouter library:</dt>
+      <dd>
+        <p>Added a new mediarouter library that provides support for the <a
+        href="https://developers.google.com/cast/">Google Cast developer preview</a>.
+        The v7 mediarouter library APIs provide a means of controlling the routing of
+        media channels and streams from the current device to external screens,
+        speakers, and other destination devices, with compatibility back to Android 2.1
+        (API level 7). See <a
+        href="{@docRoot}tools/support-library/features.html#v7-mediarouter">V7
+        mediarouter library</a> for more information. </p>
+
+        <p class="caution">The v7 mediarouter library APIs introduced in Support
+        Library r18 are subject to change in later revisions of the Support
+        Library. At this time, we recommend using the library only in connection
+        with the <a href="https://developers.google.com/cast/">Google Cast
+        developer preview</a>.</p>
+      </dd>
+
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 13</a> <em>(May 2013)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v4.widget.DrawerLayout} for creating a
+            <a href="{@docRoot}training/implementing-navigation/nav-drawer.html">Navigation
+            Drawer</a> that can be pulled in from the edge of a window.</li>
+          <li>Added {@link android.support.v4.widget.SlidingPaneLayout} widget for creating linked
+            summary and detail views that appropriately adapt to various screen sizes.</li>
+          <li>Added {@link android.support.v4.app.ActionBarDrawerToggle} as a way to tie
+            together the functions of {@link android.support.v4.widget.DrawerLayout} and {@link
+            android.app.ActionBar}.</li>
+          <li>Added {@link android.support.v4.widget.ViewDragHelper} as a new common component
+            for dragging views within a parent view.</li>
+          <li>Added {@link android.support.v4.widget.ScrollerCompat} to provide {@link
+            android.widget.Scroller} and {@link android.widget.OverScroller} compatibility support.
+            </li>
+          <li>Added {@link android.support.v4.content.FileProvider} to allow sharing of private
+            files between applications.</li>
+          <li>Updated {@link android.support.v4.view.ViewPager} to throw an exception if the
+            associated {@link android.support.v4.view.PagerAdapter} class is modified without a
+            call to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged
+            notifyDataSetChanged()}.
+            </li>
+          <li>Fixed an issue with {@link android.support.v4.view.ViewPager} children drawing sort
+            order.</li>
+          <li>Fixed {@link android.support.v4.view.GestureDetectorCompat} to dispatch missing
+            {@link android.view.GestureDetector.SimpleOnGestureListener#onSingleTapConfirmed} calls
+            between tap timeout and long press events.</li>
+        </ul>
+      </dd>
+
+      <dt>New v7 gridlayout library:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v7.widget.GridLayout} to provide support for the
+            {@link android.widget.GridLayout} layout object.</li>
+          <li>Added {@link android.support.v7.widget.Space} which can be used to create blank areas
+            within a {@link android.support.v7.widget.GridLayout} layout object.</li>
+        </ul>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 12</a> <em>(February 2013)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Improved interaction behavior for {@link android.support.v4.view.ViewPager}.</li>
+          <li>Fixed a bug that could cause {@link android.support.v4.view.ViewPager} to select the
+            wrong page.</li>
+          <li>Fixed use of {@link android.support.v4.view.ViewPager#removeView removeView()} method
+            during layout for {@link android.support.v4.view.ViewPager}.</li>
+          <li>Fixed issue with {@link android.support.v4.widget.SearchViewCompat} where using the
+            back button to dismiss does not clear the search text. This fix only applies to
+            host API levels 14 and higher.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 11</a> <em>(November 2012)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>User Interface
+            <ul>
+              <li>Added support for nested {@link android.support.v4.app.Fragment} classes.</li>
+              <li>Added improvements to {@link android.support.v4.app.FragmentManager} debugging.
+                </li>
+              <li>Fixed problem in {@link android.support.v4.app.FragmentTabHost} where fragment
+                and tab interaction could result in a {@link android.widget.ListView} state loss.
+                </li>
+              <li>Fixed issue with user-visible hint in
+                {@link android.support.v4.app.FragmentStatePagerAdapter}.</li>
+              <li>Added {@link android.support.v4.view.ViewPager.PageTransformer PageTransformer}
+                interface to {@link android.support.v4.view.ViewPager} to allow applications to
+                supply a custom transition behavior for scrolling.</li>
+              <li>Added new features and fixes to {@link android.support.v4.app.TaskStackBuilder}
+                from current release.</li>
+              <li>Fixed {@link android.support.v4.view.PagerTitleStrip} to correctly track the
+                {@link android.support.v4.view.PagerAdapter} currently in use.</li>
+              <li>Fixed display flickering, positioning, and text clipping problems with
+                {@link android.support.v4.view.PagerTitleStrip}.</li>
+              <li>Fixed {@link android.support.v4.view.PagerTabStrip} to properly respect padding
+                when drawing an underline.</li>
+            </ul>
+          </li>
+          <li>Accessibility
+            <ul>
+              <li>Added support for new accessibility gesture and touch event types in
+                {@link android.support.v4.view.accessibility.AccessibilityEventCompat}.</li>
+              <li>Added support for new accessibility APIs in
+                {@link android.support.v4.view.ViewCompat}.</li>
+              <li>Added support for {@link android.support.v4.view.ViewCompat#performAccessibilityAction
+                performAccessibilityAction()} method to {@link android.support.v4.view.ViewCompat}.
+                </li>
+            </ul>
+          </li>
+          <li>Added support for gestures with {@link android.support.v4.view.GestureDetectorCompat}.
+            </li>
+          <li>Added support for performing atomic operations on files using a new
+            {@link android.support.v4.util.AtomicFile} class.</li>
+          <li>Added support for the full set of {@code make} methods in
+            {@link android.support.v4.content.IntentCompat}.</li>
+          <li>Added {@link android.support.v4.util.LruCache#trimToSize trimToSize()} method in
+            {@link android.support.v4.util.LruCache} utility class.</li>
+          <li>Updated {@link android.support.v4.net.ConnectivityManagerCompat} to get NetworkInfo
+            from a {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}
+            broadcast.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 10</a> <em>(August 2012)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added support for notification features introduced in Android 4.1 (API level 16) with
+          additions to {@link android.support.v4.app.NotificationCompat}.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 9</a> <em>(June 2012)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+
+          <li>User Interface Support
+            <ul>
+              <li>Added {@link android.support.v4.view.PagerTabStrip} support, providing enhanced
+functionality beyond {@link android.support.v4.view.PagerTitleStrip}.</li>
+              <li>Fixed various bugs for {@link android.support.v4.view.PagerTitleStrip} and
+{@link android.support.v4.view.PagerTabStrip}, including {@link
+android.widget.TextView#setAllCaps setAllCaps} option, title alignment,
+appearance improvements, minimum width constraints and touch navigation issues.</li>
+              <li>Added support for {@link android.support.v4.view.ViewPager} page gutters, which
+helps the {@link android.support.v4.view.ViewPager} class provide paging support for content with
+a large horizontal scroll range, such as a map.</li>
+              <li>Fixed numerous bugs for {@link android.support.v4.view.ViewPager}, including size
+and data set change problems, page positioning, user interaction, scroll tracking and keyboard
+navigation problems.</li>
+              <li>Fixed many bugs for {@link android.support.v4.app.Fragment}, including proper
+handling of {@link android.support.v4.app.Fragment#onActivityResult onActivityResult()} when
+the target fragment no longer exists, dispatching selection events to invisible fragments, improved
+{@link android.support.v4.app.FragmentTransaction#replace FragmentTransaction.replace()} behavior
+and added better state handling for fragments being moved out of view.</li>
+              <li>Added support for the {@link
+android.support.v4.view.ViewCompat postOnAnimation()} method in {@link
+android.support.v4.view.ViewCompat}.</li>
+              <li>Updated {@link android.support.v4.app.NavUtils} to use Android 4.1 (API level 16)
+<em>Up</em> navigation functionality when available.</li>
+            </ul>
+          </li>
+
+          <li>Accessibility
+            <ul>
+              <li>Updated accessibility support classes, including {@link
+android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}, to follow fixes made in Android
+4.1 (API level 16).</li>
+              <li>Added support for accessibility scroll actions in {@link
+android.support.v4.view.ViewPager}.</li>
+            </ul>
+          </li>
+
+          <li>General improvements
+            <ul>
+              <li>Updated {@link android.support.v4.app.TaskStackBuilder} to reflect API changes in
+Android 4.1 (API level 16).</li>
+              <li>Enhanced {@link android.support.v4.app.TaskStackBuilder} to allow it to be used
+from a Service.</li>
+              <li>Added support for {@link android.support.v4.content.IntentCompat EXTRA_HTML_TEXT}
+to {@link android.support.v4.app.ShareCompat}.</li>
+              <li>Updated {@link android.support.v4.app.NotificationCompat.Builder} to support the
+{@link android.support.v4.app.NotificationCompat.Builder#setNumber setNumber()} method.</li>
+              <li>Added support in {@link android.support.v4.net.ConnectivityManagerCompat} for the
+{@link android.support.v4.net.ConnectivityManagerCompat#isActiveNetworkMetered
+isActiveNetworkMetered()} method.</li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 8</a> <em>(April 2012)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Fixed intent flags for {@link android.app.PendingIntent} objects generated
+            by {@link android.support.v4.app.TaskStackBuilder}.</li>
+          <li>Removed unused attributes from the gridlayout library projects to make sure
+            the library can be built with API level 7 and higher.</li>
+          <li>Added {@code .classpath} and {@code .project} files for the gridlayout
+            library project.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 7</a> <em>(March 2012)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added {@link android.support.v4.app.ShareCompat}, which provides helper classes
+for sending and receiving content for social sharing applications, including new metadata for
+attributing shared data to the source app. This class also provides compatible integration with the
+new {@link android.widget.ShareActionProvider} in Android 4.0.</li>
+          <li>Added {@link android.support.v4.app.NavUtils} and {@link
+android.support.v4.app.TaskStackBuilder} to provide support for implementing the
+<a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These
+additions include a way to implement the action bar's <em>Up</em> button across versions.
+For an example implementation of this pattern, see the AppNavigation sample in
+({@code <em>&lt;sdk&gt;</em>/samples/<em>&lt;platform&gt;</em>/AppNavigation}).</li>
+          <li>Added {@link android.support.v4.app.NotificationCompat.Builder} to provide a
+compatibility implementation of Android 3.0's {@link android.app.Notification.Builder} helper class
+for creating standardized system notifications.</li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 6</a> <em>(December 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+
+    <p class="note"><strong>Note:</strong> Reference for support library APIs are now available with
+    the framework references, for example: {@link android.support.v4.app}.</p>
+<dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Changes to ViewPager:
+            <ul>
+              <li>Added extra decorative view support for {@link android.support.v4.view.ViewPager}.
+                Decorative views may be supplied as child views of a pager in XML layout.</li>
+              <li>Added {@link android.support.v4.view.PagerAdapter#getPageTitle
+                PagerAdapter.getPageTitle()} to supply title strings for pages, which defaults to no
+                title for each page.</li>
+              <li>Added {@link android.support.v4.view.PagerTitleStrip}, a non-interactive title
+                strip, that can be added as a child of ViewPager. Developers can supply text
+                appearance and color, as well as layout sizing and gravity information.</li>
+              <li>Updated {@link android.support.v4.view.PagerAdapter} methods to take ViewGroup
+                objects, rather than View to avoid class casting in adapter implementations.</li>
+              <li>Updated {@link android.support.v4.view.ViewPager} to use Launcher-style
+                fling behavior.</li>
+              <li>Bug fixes for user interface interaction and test automation.</li>
+            </ul>
+          </li>
+
+          <li>Support for Fragments:
+            <ul>
+              <li>Changed {@code setStartDeferred()} method to {@link
+                android.support.v4.app.Fragment#setUserVisibleHint}.</li>
+              <li>Added deferred start for off-screen pages to improve performance.</li>
+            </ul>
+          </li>
+
+          <li>Support for Accessiblity APIs:
+            <ul>
+              <li>Updated {@link android.support.v4.view.AccessibilityDelegateCompat} methods
+                to return empty lists instead of null.</li>
+              <li>Added new APIs needed by the v4 samples.</li>
+            </ul>
+          </li>
+
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 5</a> <em>(December 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Support for Accessiblity APIs:
+            <ul>
+              <li>Added {@link android.support.v4.view.AccessibilityDelegateCompat}
+              to support {@link android.view.View.AccessibilityDelegate}.</li>
+
+              <li>Added {@link android.support.v4.view.accessibility.AccessibilityEventCompat}
+              to support {@link android.view.accessibility.AccessibilityEvent}.</li>
+
+              <li>Added {@link android.support.v4.view.accessibility.AccessibilityManagerCompat}
+              to support {@link android.view.accessibility.AccessibilityManager}.</li>
+
+              <li>Added {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}
+              to support {@link android.view.accessibility.AccessibilityNodeInfo}.</li>
+
+              <li>Added {@link android.support.v4.view.accessibility.AccessibilityRecordCompat}
+              to support {@link android.view.accessibility.AccessibilityRecord}.</li>
+
+              <li>Added {@link
+              android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat}
+              to support {@link android.accessibilityservice.AccessibilityServiceInfo}.</li>
+
+              <li>Added {@link android.support.v4.view.ViewGroupCompat}
+              to support accessibility features in {@link android.view.ViewGroup}.
+              </li>
+
+              <li>Modified {@link android.support.v4.view.ViewCompat}
+              to support accessibility features in {@link android.view.View}.</li>
+            </ul>
+          </li>
+
+          <li>Changes to ViewPager:
+            <ul>
+              <li>Added support for margins between pages.
+              An optional {@link android.graphics.drawable.Drawable} can be provided
+              to fill the margins.</li>
+              <li>Added support for {@link android.widget.EdgeEffect}.</li>
+              <li>Added support for keyboard navigation</li>
+              <li>Added support to control how many pages are kept to either side
+              of the current page.</li>
+              <li>Improved touch physics.</li>
+              <li>Bug fixes for user interface behavior.</li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 4</a> <em>(October 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Added <code>EdgeEffectCompat</code> to
+          support {@link android.widget.EdgeEffect}.</li>
+
+          <li>Added <code>LocalBroadcastManager</code> to allow applications to easily
+            register for and receive intents within a single application without
+            broadcasting them globally.</li>
+
+          <li>Added support in <code>ViewCompat</code> to check for and set overscroll
+          modes for {@link android.view.View}s on Android 2.3 and later.</li>
+          <li>Changes to Fragment APIs:
+            <ul>
+              <li>Added new APIs to control the visibility of new menus.</li>
+              <li>Added custom animation APIs.</li>
+              <li>Added APIs in <code>FragmentActivity</code> to retain custom,
+              non-configuration instance data.</li>
+              <li>Various bug fixes.</li>
+            </ul>
+          </li>
+
+          <li>Fixed a {@link android.content.Loader} bug that caused issues in
+          canceling {@link android.os.AsyncTask}s when running on Froyo and older
+          versions of the platform. The support
+          code now uses its own version of {@link android.os.AsyncTask} to keep the same
+          behavior on all platform versions.</li>
+
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 3</a> <em>(July 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+      <dt>Changes for v4 support library:</dt>
+      <dd>
+        <ul>
+          <li>Adds support for {@link android.app.Fragment.SavedState}</li>
+          <li>Adds {@code MotionEventCompat} to support newer {@link
+android.view.MotionEvent} APIs</li>
+          <li>Adds {@code VelocityTrackerCompat} to support a newer {@link
+android.view.VelocityTracker} APIs</li>
+          <li>Adds {@code ViewConfigurationCompat} to support a newer {@link
+android.view.ViewConfiguration} APIs</li>
+          <li>All new APIs (available only in the support library) that allow you to create UIs
+with horizontal paging, allowing users to swipe left and right between content views. Classes to
+support this include:
+            <ul>
+              <li>{@code ViewPager}: A {@link android.view.ViewGroup} that manages the
+layout for the child views, which the user can swipe between.</li>
+              <li>{@code PagerAdapter}: An adapter that populates the {@code ViewPager} with the
+views that represent each page.</li>
+              <li>{@code FragmentPagerAdapter}: An extension of {@code PagerAdapter} for flipping
+between fragments.</li>
+              <li>{@code FragmentStatePagerAdapter}: An extension of {@code PagerAdapter} for
+flipping between fragments that uses the library's support for {@link
+android.app.Fragment.SavedState}.</li>
+            </ul>
+          </li>
+        </ul>
+      </dd>
+      <dt>New v13 support library:</dt>
+      <dd>
+        <ul>
+          <li>Includes the {@code FragmentPagerAdapter} and {@code FragmentStatePagerAdapter}
+to support the horizontal paging.
+          <p>These are exactly the same as the APIs added to the v4 support library, but rely on
+other platform components in Android 3.2. Use this library instead of v4 if you're developing for
+Android 3.2 and higher (all other APIs in the v4 library are already available with API level
+13).</p>
+          </li>
+        </ul>
+      </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 2</a> <em>(May 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+    <dl>
+    <dt>Changes for v4 library:</dt>
+    <dd>
+      <ul>
+        <li>Support for fragment animations</li>
+        <li>Fix {@link android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()}
+          bug</li>
+      </ul>
+    </dd>
+    </dl>
+  </div>
+</div>
+
+
+<div class="toggle-content closed">
+  <p><a href="#" onclick="return toggleContent(this)">
+    <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 1</a> <em>(March 2011)</em>
+  </p>
+  <div class="toggle-content-toggleme">
+      <p>Initial release with the v4 library.</p>
+  </div>
+</div>
+
diff --git a/docs/html/wear/index.jd b/docs/html/wear/index.jd
index 62c0253..f5e9e87 100644
--- a/docs/html/wear/index.jd
+++ b/docs/html/wear/index.jd
@@ -68,14 +68,43 @@
         </div>
       </div> <!-- end .wrap -->
       <div class="landing-scroll-down-affordance">
-        <a class="landing-down-arrow" href="#extending-android-to-wearables">
+        <a class="landing-down-arrow" href="#next-section">
           <img src="{@docRoot}wear/images/carrot.png" alt="Scroll down to read more">
         </a>
       </div>
     </div> <!-- end .landing-section .landing-hero -->
 
 
-    <div class="landing-rest-of-page">
+    <div class="landing-rest-of-page" id="next-section">
+
+
+      <section class="dac-expand dac-hero dac-light" style="background-color:#FFFFFF">
+        <div class="wrap" style="max-width:1100px;margin-top:0">
+          <div class="cols dac-hero-content" style="padding-bottom:1em;">
+
+            <div class="col-7of16 col-push-9of16" style="padding-left:2em">
+              <h1 class="dac-hero-title">Android Wear 2.0 Developer Preview</h1>
+              <p class="dac-hero-description">
+                Get ready for the next version of Android Wear!
+                Support stand-alone Wear devices and apps.
+                Create enhanced user interaction and glanceable experiences.
+                Test your apps on Wear devices.
+              </p>
+
+              <a class="dac-hero-cta" href="{@docRoot}wear/preview/index.html">
+                <span class="dac-sprite dac-auto-chevron"></span>
+                Get started
+              </a>
+            </div>
+            <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
+              <img class="dac-hero-image" src="{@docRoot}wear/preview/images/hero-1x.png"
+                   srcset="{@docRoot}wear/preview/images/hero-1x.png 1x,
+                   {@docRoot}wear/preview/images/hero-2x.png 2x">
+            </div>
+          </div>
+        </div>
+      </section>
+
       <div class="landing-section" id="extending-android-to-wearables">
         <div class="wrap">
           <div class="landing-section-header">
diff --git a/docs/html/wear/preview/api-overview.jd b/docs/html/wear/preview/api-overview.jd
index bf18c16..384cb0a 100644
--- a/docs/html/wear/preview/api-overview.jd
+++ b/docs/html/wear/preview/api-overview.jd
@@ -12,28 +12,32 @@
   <h2>Key developer features</h2>
   <ol>
       <ul style="list-style-type:none;">
-        <li><a href="#stand-alone">Stand Alone Devices</a>
+        <li><a href="#ui">User Interface Improvements</a>
+          <ol>
+            <li><a href="#complications">Complications</a></li>
+            <li><a href="#drawers">Navigation and Action Drawers</a></li>
+          </ol>
+        </li>
+
+        <li><a href="#notify">Notifications and Input</a>
+          <ol>
+            <li><a href="#expanded">Expanded Notification</a></li>
+            <li><a href="#messaging">Messaging Style Notification</a></li>
+            <li><a href="#smart-replies">Smart Reply</a></li>
+            <li><a href="#content-action">Notification Content Action</a>
+            <li><a href="#remote-input">Remote Input</a></li>
+            <li><a href="#bridging">Bridging Mode</a></li>
+            <li><a href="#imf">Input Method Framework</a></li>
+          </ol>
+        </li>
+
+        <li><a href="#stand-alone">Standalone Devices</a>
           <ol>
             <li><a href="#wear-apk">Wear-Specific APKs</a></li>
             <li><a href="#network">Network Access</a></li>
             <li><a href="#auth">Authentication</a></li>
           </ol>
         </li>
-        <li><a href="#notify">Notifications and Interactions</a>
-          <ol>
-            <li><a href="#appoid">Appoids with Chat Templates</a></li>
-            <li><a href="#smart-replies">Smart Replies</a></li>
-            <li><a href="#remote-input">Remote Input</a></li>
-            <li><a href="#imf">Input Method Framework</a></li>
-          </ol>
-        </li>
-        <li><a href="#ui">User Interface Improvements</a>
-          <ol>
-            <li><a href="#complicatiosn">Complications</a></li>
-            <li><a href="#drawers">Navigation and Action Drawers</a></li>
-            <li><a href="#button-loc">Button Locations</a></li>
-          </ol>
-        </li>
       </ol>
 </div>
 </div>
@@ -47,78 +51,283 @@
 </p>
 
 
-<h2 id="stand-alone">Stand Alone Devices</h2>
+<h2 id="ui">User Interface Improvements</h2>
 
-<p>Description of developer theme</p>
-
-<h3 id="wear-apk">Wear-Specific APKs</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
-
-<h3 id="network">Network Access</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
-
-<h3 id="auth">Authentication</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
+<p>The preview introduces powerful additions to the user interface, opening up
+exciting possibilities to developers.
+A complication is any feature in a watch face that displays more than hours and
+minutes. With the Complications API,
+ watch faces can display extra information and separate apps can expose complication
+  data.
+The navigation and action drawers provide users with new ways to interact with apps.
+</p>
 
 
+<h3 id="complications">Complications</h3>
+<img src="{@docRoot}wear/preview/images/complications-main-image.png"
+  height="320" style="float:right;margin:10px 0 0 40px" />
 
-<h2 id="notify">Notifications and Interactions</h2>
+<p>
+  A <a href=
+  "https://en.wikipedia.org/wiki/Complication_(horology)">complication</a> is a
+  feature of a watch face that displays more than hours and minutes, such as a
+  battery indicator or a step counter. The Complications API helps watch face
+  developers create these features visual features and data connections they
+  require.
+</p>
 
-<p>Description of developer theme</p>
+<p>
+  Watch faces that use this API can display extra information without needing
+  code for getting the underlying data. Data providers can supply data to any
+  watch face using the API.
+</p>
 
-<h3 id="appoid">Appoids with Chat Templates</h3>
+<p>For examples of how to use this feature,
+see <a href="{@docRoot}wear/preview/features/complications.html">
+ Watch Face Complications</a>.
+</p>
 
-<p>Description of feature</p>
 
-<p>Sample implementation of feature</p>
+<h3 id="drawers">Navigation and Action drawers</h3>
 
-<h3 id="smart-replies">Smart Replies</h3>
+<p>Wear 2.0 introduces two new widgets, navigation drawer and action drawer. These
+ widgets give your users new ways to interact with your app. The navigation drawer
+  appears at the top of the screen and allows users to navigate between app views.
+   The  action drawer appears at the bottom of the screen and allows users to choose
+    from a list of actions associated with the current usage context.  These drawers
+     are accessible to users when they edge swipe from the top or bottom of the
+     screen; they peek when users scroll in an opposite direction.
+</p>
 
-<p>Description of feature</p>
+<div class="cols">
+  <div class="col-2of6">
+    <img src="{@docRoot}wear/preview/images/nav_drawer.gif"
+      height="240" alt="" style="padding:.5em">
+  </div>
+  <div class="col-2of6">
+    <img src="{@docRoot}wear/preview/images/action_drawer.gif"
+      height="240" alt="" style="padding:.5em;">
+  </div>
+</div>
 
-<p>Sample implementation of feature</p>
+<p>
+  To learn how to add these widgets to your app, see
+  <a href="{@docRoot}wear/preview/features/ui-nav-actions.html">
+  Wear Navigation and Actions</a>.
+</p>
+
+
+<h2 id="notify">Notifications and Input</h2>
+
+<p>In Wear 2.0, we’ve redesigned the key experiences on the watch to be even more
+ intuitive and provide users new ways to respond to messages. Some of the highlights
+  are below; for a complete list of changes, see
+  <a href="{@docRoot}wear/preview/features/notifications.html">Notification Changes in Wear 2.0</a>.
+
+
+<img src="{@docRoot}wear/preview/images/expanded_diagram.png" height="340"
+  style="float:left;margin:10px 20px 0 0" />
+<h3 id="expanded">Expanded notifications</h3>
+
+<p>
+  When a user taps on a notification that is bridged from the phone to the
+  watch or that lacks a
+  <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">
+  {@code contentIntent}</a>, the user will be taken to the expanded view of
+  that notification. When you <a href=
+  "{@docRoot}training/wearables/notifications/pages.html">specify additional
+  content pages</a> and actions for a notification, those are available to the
+  user within the expanded notification. Each expanded notification follows
+  <a href="https://google.com/design/spec-wear">Material Design for Android
+  Wear</a>, so the user gets an app-like experience.
+</p>
+
+
+<h3 id="messaging">Messaging Style notification</h3>
+<p> If you have a chat messaging app, your notifications should use
+{@code Notification.MessagingStyle}, which is new in Android 6.0. Wear 2.0 uses
+the chat messages included in a
+<a href="{docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a>
+ notification
+(see {@code addMessage()}) to provide a rich chat app-like experience in the
+expanded notification.
+</p>
+
+
+<h3 id="smart-replies">Smart Reply</h3>
+
+<p>Android Wear 2.0 introduces support for Smart Reply in
+<a href="{@docRoot}wear/preview/features/notifications.html#messaging">{@code MessagingStyle}</a>
+ notifications. Smart Reply provides the user with contextually relevant,
+ touchable choices in the expanded notification and in
+ <a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>.
+</p>
+
+<p>By enabling Smart Reply for your {@code MessagingStyle} notifications, you provide
+users a fast (single tap), discreet (no speaking aloud), and reliable way to respond
+ to chat messages they receive.
+ </p>
+
+
+<img src="{@docRoot}wear/preview/images/remoteinput.png" height="350"
+  style="float:right;margin:10px 0 0 40px" />
 
 <h3 id="remote-input">Remote Input</h3>
 
-<p>Description of feature</p>
+<p>Wear 2.0 users can choose between various input options from
+<a href="{@docRoot}reference/android/app/RemoteInput.html">Remote Input</a>.
+ These options include:
+</p>
+<ul>
+<li>Dictation</li>
+<li>Emoji</li>
+<li>Canned responses</li>
+<li>Smart Reply</i>
+<li>Default IME </i>
+</ul>
 
-<p>Sample implementation of feature</p>
+<p>
+For messaging notifications with Smart Reply, the system-generated Smart Reply
+ appears within <a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>
+  above the developer-provided list of canned responses.
+  You can also use the
+  <a href="{@docRoot}reference/android/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">setChoices()</a>
+   method in the {@code RemoteInput} API to enable users to select from a list
+   of canned responses.
+</p>
+
+<h3 id="bridging"> Bridging Mode </h3>
+<p>By default, notifications are
+<a href="{@docRoot}training/wearables/notifications/index.html">
+bridged</a> (shared) from an app on a companion phone
+to the watch. Since a phone app and a standalone watch app may be sources of the
+ same notifications, the Android Wear 2.0 Preview includes a Bridging mode feature.
+  Developers can begin planning to change the behavior of notifications with the
+  following:
+</p>
+
+<ul>
+<li>Specifying in the standalone app's Android manifest file that notifications from
+ the corresponding phone app should not be bridged to the watch. </li>
+<li>Setting a dismissal ID so notification dismissals (by users) are synced across
+devices.</li>
+</ul>
+
+<p>For an example of how to use this feature, see <a href="{@docRoot}wear/preview/features/bridger.html">
+Bridging Mode for Notifications</a>.</p>
 
 <h3 id="imf">Input Method Framework</h3>
 
-<p>Description of feature</p>
+<p>Wear 2.0 extends the Android input method framework (IMF) to Android Wear.
+This allows users to enter text on Wear using the system default IME or third party
+ IMEs.  The Wear IME lets the user enter text via gesture typing as well as tapping
+  individual keys. The IMF APIs used for Wear devices are the same as other form
+  factors, though usage is slightly different due to limited screen real estate.
+</p>
 
-<p>Sample implementation of feature</p>
+<p>Wear provides user settings on the watch that let the user:</p>
+<ul>
+<li>Enable multiple IMEs from the list of installed IMEs.</li>
+<li>Set a single default IME from the list of enabled IMEs.</li>
+<li>Change languages for various IMEs.</li>
+</ul>
+
+<p>To learn how to create an IME for Wear, see <a href="{@docRoot}wear/preview/features/ime.html">
+Input Method Framework</a>.
+</p>
+
+
+<h2 id="stand-alone">Standalone Devices</h2>
+
+<p>Standalone watches will enable Android Wear apps to work independently of phone
+ apps. This means your app can continue to offer full functionality even if the
+ paired phone is far away or turned off. </p>
+
+<h3 id="wear-apk">Wear-Specific APKs</h3>
+
+<p>For delivery to a watch, an Android Wear app is currently embedded in its corresponding
+phone app. This delivery method can result in an increased download size for users,
+ regardless of whether they have an Android Wear device.
+</p>
+
+<p>With standalone devices, the
+<a href ="{@docRoot}google/play/publishing/multiple-apks.html">Multi-APK</a>
+ delivery method will be used. Developers will have the ability to release Android
+  Wear apps independently of the corresponding phone apps. Please stay tuned for
+   more information about this change.
+</p>
+
+<h3 id="network">Network Access</h3>
+
+<p>Since Android Wear apps will work independently of phone apps, Android Wear's
+ network access will no longer require the
+ <a href="{@docRoot}training/wearables/data-layer/index.html">
+ Wearable Data Layer API</a>. Android Wear apps will have the ability to make
+ their own network requests. Additionally, they will be able to directly use
+ Google Cloud Messaging.
+</p>
+
+<p>No APIs for network access or GCM are specific to Android Wear; refer to the
+existing documentation about
+<a href="{@docRoot}training/basics/network-ops/connecting.html">
+Connecting to the Network</a> and
+<a href="https://developers.google.com/cloud-messaging/">Cloud Messaging</a>.
+</p>
+
+<p>We recommend using the following libraries:</p>
+<ul>
+<li><a href="{@docRoot}reference/android/app/job/JobScheduler.html">
+JobScheduler</a> for asynchronous jobs, including polling at regular intervals
+</li>
+<li>Multi-networking APIs if you need to connect to specific network types; see
+the <a href="{@docRoot}about/versions/android-5.0.html#Wireless">
+Multiple Network Connections</a>
+</li>
+</ul>
+
+<p>You will still be able to use the
+<a href="{@docRoot}training/wearables/data-layer/index.html">
+ Wearable Data Layer API</a> to communicate with a phone app.
+ However, use of this API to connect to a network will be discouraged.
+ </p>
+
+
+<h3 id="auth">Authentication</h3>
+
+<p>Since Android Wear apps will work independently of phone apps, Android Wear's
+ authentication capabilities will be more powerful; apps will have new ways to
+ authenticate.</p>
+
+ <h4> Authentication tokens can be passed over the Wearable Data Layer </h4>
+
+<p>For Android-paired watches (only), the phone will securely transfer authentication
+ data to a watch app via the
+ <a href="{@docRoot}training/wearables/data-layer/index.html">
+ Wearable Data Layer API</a>. The data can be transferred as
+ Messages or Data Items. </p>
+
+<p>If your watch app needs to determine if your phone app is installed, you can
+advertise a capability on the phone app and retrieve the capability on the watch.
+ For more information, see following sections of
+ <a href="{@docRoot}training/wearables/data-layer/messages.html">
+ Sending and Receiving Messages</a>:
+ <ul>
+ <li>Advertise Capabilities</li>
+ <li>Retrieve the Nodes with the Required Capabilities</li>
+ </ul>
+<h4>Users can enter a username and password on a watch</h4>
+
+<p>Google Keyboard will be standard on Android Wear, allowing for direct text entry.
+ This feature will work as expected with standard
+ <a href="{@docRoot}reference/android/widget/EditText.html">
+  EditText widgets</a>. For passwords, the {@code textPassword} attribute will be
+   used.
+
+<h4>Utilizing Account Manager</h4>
+Android Wear will include the <a href="{@docRoot}reference/android/accounts/AccountManager.html">
+AccountManager</a>, which will be accessible for syncing and storing account
+ data, as it is on an Android phone.
+</p>
 
 
 
-<h2 id="ui">User Interface Improvements</h2>
-
-<p>Description of developer theme</p>
-
-<h3 id="complicatiosn">Complications</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
-
-<h3 id="drawers">Navigation and Action Drawers</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
-
-<h3 id="button-loc">Button Locations</h3>
-
-<p>Description of feature</p>
-
-<p>Sample implementation of feature</p>
diff --git a/docs/html/wear/preview/downloads.jd b/docs/html/wear/preview/downloads.jd
index eea4f11..b119d57 100644
--- a/docs/html/wear/preview/downloads.jd
+++ b/docs/html/wear/preview/downloads.jd
@@ -1,9 +1,10 @@
 page.title=Download and Test with a Device
 meta.keywords="wear-preview"
 page.tags="wear-preview"
-page.image=images/cards/card-n-sdk_2x.png
+page.image=images/cards/card-n-downloads_2x.png
 
 @jd:body
+
 <div style="position:relative; min-height:600px">
 
   <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
@@ -192,17 +193,17 @@
     </ul>
 
     <p>
-      If you want an environment for basic <strong>compatibility
-      testing</strong> of your app, you can use your current APK and a
+      If you want an environment for basic compatibility
+      testing of your app, you can use your current APK and a
       supported watch or an emulator. As described below, you don't necessarily
       need to update your full development environment to do basic testing.
     </p>
 
     <p>
-      However, if you want to <strong>modify</strong> your app to target
+      However, if you want to modify your app to target
       Android Wear 2.0 or use new APIs, you need to update your development
       environment. See <a href="{@docRoot}wear/preview/start.html">Get Started
-      with the Android Wear 2.0 Preview</a>.
+      with the Preview</a>.
     </p>
 
     <h2 id="set_up_a_watch">
@@ -211,7 +212,7 @@
 
     <p>
       You can download a system image and manually flash it to a matching
-      watch. See the table below to download the system image for your test
+      watch. See the table below to download the image for your test
       watch.
     </p>
 
@@ -221,9 +222,9 @@
       testing.
     </p>
 
-    <p>
-      Installing a system image on a watch <strong>removes all data from the
-      watch</strong>, so you should back up your data first.
+    <p class="warning">
+      <strong>Warning:</strong> Installing a system image on a watch removes all data from the
+      watch, so you should back up your data first.
     </p>
 
     <h3 id="preview_system_images">
@@ -240,78 +241,79 @@
       Preview image for LGE Watch Urbane 2nd Edition
     </h4>
 
-    <p>
-      <strong>Please note the following:</strong>
-      Flashing your device will
+    <p class="caution">
+      <strong>Caution:</strong> Flashing your device will
       require unlocking the bootloader which may
       void the device's warranty--proceed at your own risk.
      </p>
 
     <table>
       <tr>
-        <th scope="col">
+        <th style="width:300px">
           Type of LGE Watch Urbane 2nd Edition image
         </th>
-        <th scope="col">
+        <th>
           Download/Checksums
         </th>
       </tr>
-      <tr id="download-3-placeholder">
+
+      <tr id="nemo-preview">
         <td>
           Preview image for testing
         </td>
-        <td><a href="#top" onclick="onDownload(this)">download-3-placeholder.tgz</a><br>
-          MD5: [string]<br>
-          SHA-1: [string]
+        <td><a href="#top" onclick="onDownload(this)">nemo-nvd36i-factory-9cdd2ac0.tgz</a><br>
+          MD5: b33ba8e59780fbe5c83d8936b108640f<br>
+          SHA-1: 9cdd2ac01f2976cafe5a21958298dac159b7a325
         </td>
       </tr>
-      <tr id="download-4-placeholder">
+
+      <tr id="nemo-non-preview">
         <td>
           Non-preview image (for after testing)
         </td>
-        <td><a href="#top" onclick="onDownload(this)">download-4-placeholder.tgz</a><br>
-          MD5: [string]<br>
-          SHA-1: [string]
+        <td><a href="#top" onclick="onDownload(this)">nemo-mnc40x-factory-fa528bec.tgz</a><br>
+          MD5: 0b8ba3653d5a93cb854f4d7409d7b6c9<br>
+          SHA-1: fa528bec8aba3bf6c7d901ba63cd6ea0a08dbeb0
         </td>
       </tr>
+
     </table>
 
     <h4 id="preview_image_for_huawei_watch">
       Preview image for Huawei Watch
     </h4>
 
-    <p>
-      <strong>Please note the following:</strong>
-      Flashing your device will require unlocking
+    <p class="caution">
+      <strong>Caution:</strong> Flashing your device will require unlocking
       the bootloader which
       shall void the device's warranty--proceed at your own risk.
     </p>
 
     <table>
       <tr>
-        <th scope="col">
+        <th style="width:300px">
           Type of Huawei Watch image
         </th>
-        <th scope="col">
+        <th>
           Download/Checksums
         </th>
       </tr>
-      <tr id="download-1-placeholder">
+      <tr id="sturgeon-preview">
         <td>
           Preview image for testing
         </td>
-        <td><a href="#top" onclick="onDownload(this)">download-1-placeholder.tgz</a><br>
-          MD5: [string]<br>
-          SHA-1: [string]
+        <td><a href="#top" onclick="onDownload(this)">sturgeon-nvd36i-factory-2cbe5080.tgz</a><br>
+          MD5: ccc972cdc33cba778a2f624066ef5713<br>
+          SHA-1: 2cbe5080ded060ce43ba65ff27e2290b28981634
         </td>
       </tr>
-      <tr id="download-2-placeholder">
+      <tr id="sturgeon-non-preview">
         <td>
           Non-preview image (for after testing)
         </td>
-        <td><a href="#top" onclick="onDownload(this)">download-2-placeholder.tgz</a><br>
-          MD5: [string]<br>
-          SHA-1: [string]
+        <td><a href="#top" onclick="onDownload(this)">sturgeon-mec23l-factory-48003078.tgz</a><br>
+          MD5: 417b5cbddb29a2262bce133e283d2732<br>
+          SHA-1: 4800307843580f818557dd7c43d8ba2161e289b2
         </td>
       </tr>
     </table>
@@ -323,18 +325,24 @@
     <p>
       The steps for flashing an image to a watch are similar to the <a href=
       "https://developers.google.com/android/nexus/images">steps provided for
-      flashing to a phone</a>. After you <strong>back up your watch
-      data</strong>, use steps in this section to flash the image to the
-      <strong>specific watch</strong> that matches the image (e.g., you must
+      flashing to a phone</a>. After you back up your watch
+      data, use steps in this section to flash the image to the
+      specific watch that matches the image (e.g., you must
       use an LGE Watch Urbane 2nd Edition for the corresponding image).
     </p>
 
+    <p class="warning">
+      <strong>Warning:</strong> Installing a system image on a watch removes all data from the
+      watch, so you should back up your data first.
+    </p>
+
     <h4 id="set_up_the_watch_to_be_flashed">
       Set up the watch to be flashed
     </h4>
 
     <p>
-      On the watch, enable the Developer Options menu and ADB debugging as
+      From the phone, unpair ("Forget") the watch.
+      Then on the watch, enable the Developer Options menu and ADB debugging as
       follows:
     </p>
 
@@ -386,8 +394,8 @@
     </p>
 
     <ol>
-      <li>Download and unzip the appropriate system image from the "Preview
-      system image" column in the <a href="#preview_system_images">table
+      <li>Download and unzip the appropriate system image from a "Preview
+      image for testing" row in a <a href="#preview_system_images">table
       above</a>.
       </li>
 
@@ -404,9 +412,9 @@
       <code>adb reboot bootloader</code>
       </li>
 
-      <li>If necessary, use <strong>one</strong> of following two commands to
-      unlock the device's bootloader. This step <strong>erases all data on the
-      device</strong>: <code>fastboot flashing unlock</code> or, for some
+      <li>If necessary, use one of following two commands to
+      unlock the device's bootloader. This step erases all data on the
+      device: <code>fastboot flashing unlock</code> or, for some
       devices, <code>fastboot oem unlock</code>
       </li>
 
@@ -420,8 +428,43 @@
       </li>
     </ol>
 
+
+    <h4 id="set_up_watch">
+      Set up the watch and begin testing
+    </h4>
+
+      <p>
+        After the <code>flash-all</code> script finishes, your watch reboots
+        and soon will be ready for testing with the preview image.
+      </p>
+
+    <ol>
+      <li>Attach the watch charger to the watch and plug the USB cord
+      into your computer, if it is not already plugged in.
+      </li>
+
+      <li>Use the following <a href="{@docRoot}tools/help/adb.html">adb
+      command</a> to confirm that the watch is available:
+      <code>adb devices</code>
+      </li>
+
+      <li>Use the following adb command to start the device in fastboot mode:
+      <code>adb reboot bootloader</code>
+      </li>
+
+      <li>Use the following command to
+      lock the device's bootloader: <code>fastboot flashing lock</code> or, for some
+      devices, <code>fastboot oem lock</code>
+      </li>
+
+      <li>On the watch, continue the boot by touching <strong>'0'</strong>.
+      </li>
+
+    </ol>
+
+
     <p>
-      After the script finishes, your watch reboots. Pair the watch with a
+      Pair the watch with a
       phone or tablet. The preview now is available for testing on the watch.
       Before installing an app, enable the Developer Options menu, and ADB
       debugging, on the watch as follows:
@@ -477,20 +520,21 @@
 
     <p>
       When testing is completed, follow the steps for <a href=
-      "#uninstall_the_preview_from_a_watch">uninstalling the preview</a>.
+      "#remove_the_preview_from_a_watch">removing the preview</a>.
     </p>
 
-    <h3 id="uninstall_the_preview_from_a_watch">
-      Uninstall the preview from a watch
+    <h3 id="remove_the_preview_from_a_watch">
+      Remove the preview from a watch
     </h3>
 
     <p>
-      When testing with the preview is done, restore the watch as follows:
+      When testing with the preview is done, unpair ("Forget") the watch from the phone and
+      restore the watch as follows:
     </p>
 
     <ol>
-      <li>Download and unzip the appropriate system image from the "Non-preview
-      system image" column in the <a href="#preview_system_images">table
+      <li>Download and unzip the appropriate system image from a "Non-preview
+      image" row in a <a href="#preview_system_images">table
       above</a>.
       </li>
 
@@ -523,8 +567,10 @@
       <li>Click <strong>Create Virtual Device</strong>.
       </li>
 
-      <li>In the <strong>Category</strong> pane, select Wear, choose a name
-      (such as Android Wear Round), and click <strong>Next</strong>.
+      <li>In the <strong>Category</strong> pane, select Wear, choose a hardware profile,
+       and click <strong>Next</strong>. The Android Wear 2.0 Developer Preview
+       is only optimized for round devices currently, so we recommend not
+       using the square or chin profiles for now.
       </li>
 
       <li>Select an <strong>N</strong> image to download. The images may be on
@@ -554,7 +600,7 @@
 
 
 <script>
-  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/wear/preview/";
+  var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/wear-preview/";
   function onDownload(link) {
 
     $("#downloadForRealz").html("Download " + $(link).text());
diff --git a/docs/html/wear/preview/features/bridger.jd b/docs/html/wear/preview/features/bridger.jd
index 4f0d76b..b7be093 100644
--- a/docs/html/wear/preview/features/bridger.jd
+++ b/docs/html/wear/preview/features/bridger.jd
@@ -1,7 +1,7 @@
 page.title=Bridging Mode for Notifications
 meta.keywords="wear-preview"
 page.tags="wear-preview"
-page.image=images/cards/card-n-sdk_2x.png
+
 @jd:body
 
     <div id="qv-wrapper">
@@ -25,22 +25,21 @@
     <p>
       By default, notifications <a href=
       "{@docRoot}training/wearables/notifications/index.html">are bridged
-      (shared)</a> from an app on a companion phone to the watch. Standalone
-      Android Wear apps are planned for Android Wear 2.0. Therefore, a phone
-      app and a standalone watch app may be sources of the same notifications.
-      The Android Wear 2.0 Preview includes a Bridging mode feature to handle
-      this problem of duplicate notifications.
+      (shared)</a> from an app on a companion phone to the watch. If you build
+      a standalone watch app and have a companion phone app, they may duplicate
+      notifications. The Android Wear 2.0 Preview includes a Bridging mode
+      feature to handle this problem of repeated notifications.
     </p>
 
     <p>
-      With the Android Wear 2.0 Preview, developers can plan to change the
+      With the Android Wear 2.0 Preview, developers can change the
       behavior of notifications with the following:
     </p>
 
     <ul>
       <li>Specifying in the standalone app's Android manifest file that
-      notifications from the corresponding phone app should <strong>not be
-      bridged</strong> to the watch
+      notifications from the corresponding phone app should not be
+      bridged to the watch
       </li>
 
       <li>Setting a dismissal ID so notification dismissals are synced across
@@ -53,14 +52,15 @@
     </h2>
 
     <p>
-      To prevent bridging of notifications from a phone app, you can use a
+      To prevent bridging of notifications from a phone app, you can use an
       entry in the manifest file of the watch app (e.g. the standalone watch
       app), as follows:
     </p>
 
     <pre>
 com.google.android.wearable.notificationBridgeMode
-</pre>
+    </pre>
+
     <p>
       Setting that entry to <code>NO_BRIDGING</code> will prevent bridging:
     </p>
@@ -96,7 +96,7 @@
     </p>
 
     <p>
-      Thus, if bridging should be prevented <strong>when</strong> the watch app
+      Thus, if bridging should be prevented when the watch app
       is installed, use the <a href=
       "#preventing_bridging_with_the_bridging_mode_feature">Bridging mode
       feature</a>.
@@ -118,7 +118,7 @@
     <pre>
 public WearableExtender setDismissalId(String dismissalId)
 public String getDismissalId()
-</pre>
+    </pre>
     <p>
       To enable a dismissal to be synced, use the <code>setDismissalId()</code>
       method. For each notification, pass a globally unique ID, as a string,
@@ -140,7 +140,7 @@
 &lt;set other fields&gt;
 .extend(wearableExtender)
 .build();
-</pre>
+    </pre>
     <p>
       Dismissal IDs work if a watch is paired to an Android phone, but not if a
       watch is paired to an iPhone.
diff --git a/docs/html/wear/preview/features/complications.jd b/docs/html/wear/preview/features/complications.jd
index 155f733..a0157de 100644
--- a/docs/html/wear/preview/features/complications.jd
+++ b/docs/html/wear/preview/features/complications.jd
@@ -1,46 +1,52 @@
 page.title=Watch Face Complications
 meta.keywords="wear-preview"
 page.tags="wear-preview"
-page.image=images/cards/card-n-sdk_2x.png
-
+page.image=/wear/preview/images/complications-main-image.png
 @jd:body
 
     <div id="qv-wrapper">
       <div id="qv">
-        <ol>
+    <h2>In this document</h2>
+      <ol>
           <li>
-            <a href=
-            "#adding_complications_to_a_watch_face">Adding Complications to a Watch Face</a>
+            <a href="#adding_complications_to_a_watch_face">Adding
+            Complications to a Watch Face</a>
           </li>
           <li>
-            <a href=
-            "#exposing_data_to_complications">Exposing Data to Complications</a>
+            <a href="#exposing_data_to_complications">Exposing Data to
+            Complications</a>
           </li>
           <li>
-            <a href=
-            "#using_complication_types">Using Complication Types</a>
+            <a href="#using_complication_types">Using Complication Types</a>
           </li>
           <li>
-            <a href=
-            "#using_fields_for_complication_data">Using Fields for Complication Data</a>
+            <a href="#using_fields_for_complication_data">Using Fields for
+            Complication Data</a>
           </li>
           <li>
-            <a href=
-            "#api_additions">API Additions</a>
+            <a href="#api_additions">API Additions</a>
           </li>
-        </ol>
+      </ol>
+    <h2>See Also</h2>
+      <ol>
+        <li><a class="external-link"
+          href="https://github.com/googlesamples/android-WatchFace">Watch
+          Face sample app with complications</a></li>
+      </ol>
       </div>
     </div>
 
     <p>
-      A complication is a feature of a watch face <a href=
-      "https://en.wikipedia.org/wiki/Complication_(horology)">beyond hours and
-      minutes</a>. For example, a battery indicator is a complication.
+      A complication is any feature in a watch face that displays <a href=
+      "https://en.wikipedia.org/wiki/Complication_(horology)">more than hours and
+      minutes</a>. For example, a battery indicator is a complication. The
+      Complications API is for both watch faces and data provider apps.
     </p>
 
-    <p>
-      The Complications API is for both watch faces and data provider apps.
-    </p>
+    <div class="col-4of10">
+      <img src="../images/complications-main-image.png" alt="Complications"
+      id="img-split-screen">
+    </div>
 
     <p>
       Watch faces can display extra information without needing code for
@@ -50,6 +56,36 @@
     </p>
 
     <p>
+      Along with reviewing this page, download the Android Wear 2.0 Preview
+      Reference (see the Complications API <a href=
+      "#api_additions">additions</a>) and review the Javadoc for complications.
+    </p>
+
+    <p>
+      Apps that provide data to watch faces for complications are called
+      "complication data providers." These apps are not responsible for controlling
+      how their data is rendered on the watch face.
+      This allows a watch face to integrate the data naturally with the
+      watch face design.
+      The consuming watch faces are responsible for drawing
+      the complications.
+    </p>
+
+    <p>
+      Watch faces can receive complication data of
+      <a href="#using_complication_types">various types</a> (e.g. small text
+      data or icon data) and then display it.
+    </p>
+
+    <p>
+      As indicated in the diagram below, Android Wear mediates the flow of data
+      from providers to watch faces.
+    </p>
+
+    <img src="../images/complications-data-flow.png" width="" alt=
+    "Complications data flow" title="Complications data flow">
+
+    <p>
       For creating or modifying watch faces, see <a href=
       "#adding_complications_to_a_watch_face">Adding complications to a watch
       face</a>.
@@ -60,33 +96,6 @@
       "#exposing_data_to_complications">Exposing data to complications</a>.
     </p>
 
-    <p>
-      Along with reviewing this page, download the Android Wear 2.0 Preview
-      Reference and review the <a href="#api_additions">API additions</a> in
-      the Javadoc for complications.
-    </p>
-
-    <p>
-      Apps that provide data to watch faces for complications are called
-      "complication data providers." These apps lack control over how their
-      data is rendered. The consuming watch faces are responsible for drawing
-      the complications.
-    </p>
-
-    <p>
-      As indicated in the diagram below, Android Wear mediates the flow of data
-      from providers to watch faces.
-    </p>
-
-    <img src="../images/complications-data-flow.png" width="" alt="Complications data flow" title=
-    "Complications data flow">
-
-    <p>
-      Through this process, watch faces can receive complication data of
-      <a href="#using_complication_types">various types</a> (e.g. small text
-      data or icon data) and then display it.
-    </p>
-
     <h2 id="adding_complications_to_a_watch_face">
       Adding Complications to a Watch Face
     </h2>
@@ -205,15 +214,17 @@
     <p>
       The service's manifest entry should also include an
       <code>android:icon</code> attribute. The provided icon should be a
-      single-color white icon. This icon should represent the provider and will
-      be shown in the provider chooser.
+      single-color white icon. Vector drawables are recommended for the icons.
+      An icon should represent the provider and will be shown in the provider
+      chooser.
     </p>
 
     <p>
       Include metadata to specify the supported types, update period, and
       configuration action, if required; for details, download the Android Wear
       2.0 Preview Reference and see the keys listed for the
-      <code>ComplicationProviderService</code> class (in the Javadoc).
+      <code>ComplicationProviderService</code> class (in the Javadoc; see
+      <a href="#api_additions">API Additions</a>).
     </p>
 
     <h3 id="update_period">
@@ -266,11 +277,7 @@
     <p>
       Then create the configuration activity with an intent filter for that
       action. The configuration activity must reside in the same package as the
-      provider.
-    </p>
-
-    <p>
-      The configuration activity must return <code>RESULT_OK</code> or
+      provider. The configuration activity must return <code>RESULT_OK</code> or
       <code>RESULT_CANCELED</code>, to tell the system whether the provider
       should be set.
     </p>
@@ -281,14 +288,15 @@
     </p>
 
     <p>
-      For details, download the Android Wear 2.0 Preview Reference, containing
-      the Javadoc, and see the following in the
-      <code>ComplicationProviderService</code> class:
+      For details, download the Android Wear 2.0 Preview Reference (see
+      <a href="#api_additions">API Additions</a>), containing the Javadoc, and
+      see the following in the <code>ComplicationProviderService</code> class:
     </p>
 
     <pre>
 METADATA_KEY_PROVIDER_CONFIG_ACTION
-</pre>
+    </pre>
+
     <h2 id="using_complication_types">
       Using Complication Types
     </h2>
@@ -340,6 +348,16 @@
       gauges can be shown without including text.
     </p>
 
+    <h3 id="examples_of_complication_types">
+      Examples of Complication Types
+    </h3>
+
+    <p>
+      The following shows examples of complication types:
+    </p>
+    <img src="../images/complication-type-exs.png" width="" alt=
+    "Complication types" title="Complications types - examples">
+
 
     <h3 id="types_and_fields">
       Types and fields
@@ -352,16 +370,16 @@
 
     <table>
       <tr>
-        <th scope="col">
+        <th>
           Type
         </th>
-        <th scope="col">
+        <th>
           Required fields
         </th>
-        <th scope="col">
+        <th>
           Optional fields
         </th>
-        <th scope="col">
+        <th>
           Notes
         </th>
       </tr>
@@ -374,7 +392,8 @@
           Short text
         </td>
         <td>
-          IconShort title
+          Icon<br>
+          Short title
         </td>
         <td>
           Exactly one of Icon/Short title is expected to be shown if either or
@@ -384,37 +403,6 @@
 
       <tr>
         <td>
-          LONG_TEXT
-        </td>
-        <td>
-          Long text
-        </td>
-        <td>
-          Long titleIcon*Small image
-        </td>
-        <td>
-          Title is expected to be shown if provided.
-        </td>
-      </tr>
-
-      <tr>
-        <td>
-          RANGED_VALUE
-        </td>
-        <td>
-          ValueMin valueMax value
-        </td>
-        <td>
-          IconShort textShort title
-        </td>
-        <td>
-          Optional fields are not guaranteed to be displayed. Uses include for
-          numerical data within bounds, such as for a percentage.
-        </td>
-      </tr>
-
-      <tr>
-        <td>
           ICON
         </td>
         <td>
@@ -430,6 +418,42 @@
 
       <tr>
         <td>
+          RANGED_VALUE
+        </td>
+        <td>
+          Value<br>
+          Min value<br>
+          Max value
+        </td>
+        <td>
+          Icon<br>
+          Short text<br>
+          Short title
+        </td>
+        <td>
+          Optional fields are not guaranteed to be displayed.
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          LONG_TEXT
+        </td>
+        <td>
+          Long text
+        </td>
+        <td>
+          Long title<br>
+          Icon<br>
+          Small image
+        </td>
+        <td>
+          Title is expected to be shown if provided.
+        </td>
+      </tr>
+
+      <tr>
+        <td>
           SMALL_IMAGE
         </td>
         <td>
@@ -467,16 +491,16 @@
 
     <table>
       <tr>
-        <th scope="col">
+        <th>
           Type
         </th>
-        <th scope="col">
+        <th>
           Required fields
         </th>
-        <th scope="col">
+        <th>
           Optional fields
         </th>
-        <th scope="col">
+        <th>
           Notes
         </th>
       </tr>
@@ -514,16 +538,6 @@
       </tr>
     </table>
 
-    <h3 id="examples_of_complication_types">
-      Examples of Complication Types
-    </h3>
-    <p>
-      The following shows examples of complication types:
-    </p>
-
-    <img src="../images/complication-type-exs.png" width=""
-    alt="Complication types" title="Complications types - examples">
-
     <h2 id="using_fields_for_complication_data">
       Using Fields for Complication Data
     </h2>
@@ -543,10 +557,10 @@
 
     <table>
       <tr>
-        <th scope="col">
+        <th>
           Field
         </th>
-        <th scope="col">
+        <th>
           Description
         </th>
       </tr>
@@ -563,11 +577,21 @@
 
       <tr>
         <td>
+          Icon
+        </td>
+        <td>
+          A single-color image representing the data or the source of the data.
+          Must be tintable. Vector drawables are recommended for this field.
+        </td>
+      </tr>
+
+      <tr>
+        <td>
           Short title
         </td>
         <td>
-          Descriptive field for small complications.Should not exceed 7
-          characters.May only be meaningful in combination with <em>Short
+          Descriptive field for small complications. Should not exceed 7
+          characters. May only be meaningful in combination with <em>Short
           text</em>.
         </td>
       </tr>
@@ -586,7 +610,7 @@
           Long title
         </td>
         <td>
-          Descriptive field for large, text-based complications.May only be
+          Descriptive field for large, text-based complications. May only be
           meaningful in combination with <em>Long text</em>.
         </td>
       </tr>
@@ -596,7 +620,7 @@
           Value
         </td>
         <td>
-          A numerical (float) representation of the data.Expected to be
+          A numerical (float) representation of the data. Expected to be
           depicted relative to the bounds the <em>Min value</em> and <em>Max
           value</em> fields (but not required to be between those bounds).
         </td>
@@ -608,7 +632,7 @@
         </td>
         <td>
           The lower bound for the range within which <em>Value</em> should be
-          depicted.Only meaningful in combination with <em>Value</em> and
+          depicted. Only meaningful in combination with <em>Value</em> and
           <em>Max value</em>.
         </td>
       </tr>
@@ -619,28 +643,18 @@
         </td>
         <td>
           The upper bound for the range within which <em>value</em> should be
-          depicted.Only meaningful in combination with <em>Value</em> and
+          depicted. Only meaningful in combination with <em>Value</em> and
           <em>Min value</em>.
         </td>
       </tr>
 
       <tr>
         <td>
-          Icon
-        </td>
-        <td>
-          A single-color image representing the data or the source of the
-          data.Must be tintable.
-        </td>
-      </tr>
-
-      <tr>
-        <td>
           Small image
         </td>
         <td>
-          A small image to represent the data or the source of the data.May be
-          full color.Not expected to fill the entire watch face.
+          A small image to represent the data or the source of the data. May be
+          full color. Not expected to fill the entire watch face.
         </td>
       </tr>
 
@@ -649,7 +663,7 @@
           Large image
         </td>
         <td>
-          An image with sufficient resolution to fill the watch face.May be
+          An image with sufficient resolution to fill the watch face. May be
           full color.
         </td>
       </tr>
@@ -681,8 +695,10 @@
     </h2>
 
     <p>
-      The Complications API includes the following new classes in the Wearable
-      Support Library:
+      The Complications API includes new classes in the Wearable Support
+      Library. For more information, download the <a href=
+      "{@docRoot}wear/preview/start.html#get_the_preview_reference_documentation">
+      Android Wear 2.0 Preview Reference</a>.
     </p>
 
     <ul>
diff --git a/docs/html/wear/preview/features/ime.jd b/docs/html/wear/preview/features/ime.jd
index 4ee507c..1301be9 100644
--- a/docs/html/wear/preview/features/ime.jd
+++ b/docs/html/wear/preview/features/ime.jd
@@ -13,7 +13,6 @@
       <li><a href="#creating">Creating an Input Method for Wear</a></li>
       <li><a href="#invoking">Invoking IME</a></li>
       <li><a href="#considerations">General IME Considerations</a></li>
-      <li><a href="#test">Testing your IME</a></li>
     </ol>
 
 </div>
@@ -28,32 +27,40 @@
 
 <p>Wear 2.0 comes with the system default Input Method Editor (IME) 
 and opens up the IMF APIs for third-party developers to create custom input 
-methods for Wear.
-</p>
+methods for Wear.</p>
 
+<p><img src="{@docRoot}wear/preview/images/new_input_methods.png"></p>
+<p><b>Figure 1</b>. Sample input methods </p>
 
 <h2 id="creating">Creating an Input Method for Wear</h2>
+<p>The Android platform provides a standard framework for creating IMEs. To create
+ a Wear-specific IME, you need to optimize your IME for limited screen size.
+  </p>
 
-<p>To create an input method for Wear, 
-see <a href="http://developer.android.com/guide/topics/text/creating-input-method.html">Creating an Input Method</a>.
+<p>This document provides guidance that can help you create a Wear-specific IME.
+Before you continue with this guide, it's important that you read the
+documentation for
+<a href="{@docRoot}guide/topics/text/creating-input-method.html">Creating an Input Method</a>
+ on handsets.
 </p>
 
-<h2 id="invoking">Invoking IME</h2>
+
+<h2 id="invoking">Invoking an Input Method</h2>
 If you are developing an IME for Wear, remember that the 
 feature is supported only on Android 6.0 (API level 23) and higher versions of 
 the platform. 
 To ensure that your IME can only be installed on Wearables that support input 
-methods beyond voice, add the following to your application's manifest:
+methods beyond voice, add the following to your app's manifest:
 <pre>
 &lt;uses-sdk android:minSdkVersion="23" />
 </pre>
-This indicates that your application requires Android 6.0 or higher. 
-For more information, see <a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Levels</a>
- and the documentation for the <a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk></a> 
+This indicates that your app requires Android 6.0 or higher. 
+For more information, see <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Levels</a>
+ and the documentation for the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk></a> 
 element.
 <p>
-To control how your application is filtered from devices that do not support Wear
-IMEs (for example, on Phone), add the following to your application's manifest:
+To control how your app is filtered from devices that do not support Wear
+IMEs (for example, on Phone), add the following to your app's manifest:
 </p>
 <pre>
 &lt;uses-feature android:required="true" android:name="android.hardware.type.watch" />
@@ -64,9 +71,9 @@
  can invoke your IME from:</p>
 <ul>
 <li>A notification or an app using the 
-<a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.html">RemoteInput</a></code> API.</li>
+<a href="{@docRoot}reference/android/support/v4/app/RemoteInput.html">RemoteInput</a></code> API.</li>
 <li>Wear apps with an 
-<a href="http://developer.android.com/reference/android/widget/EditText.html">EditText</a>
+<a href="{@docRoot}reference/android/widget/EditText.html">EditText</a>
  field. Touching a text field places the cursor in the field and automatically 
  displays the IME on focus.</li>
 </ul>
@@ -74,41 +81,39 @@
 
 <h2 id="considerations">General IME Considerations</h2>
 
-<p>Here are some things to consider when implementing IME for wear:</p>
+<p>Here are some things to consider when implementing IME for Wear:</p>
 
 <ul>
 <li><strong>Set Default Action</strong>
 <p>
 <a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.html">{@code RemoteInput}</a> 
 and Wear apps expect only single-line text entry. The ENTER key should always trigger
- a call to <a href="http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html#sendDefaultEditorAction(boolean)">sendDefaultEditorAction</a>,
+ a call to <a href="{@docRoot}reference/android/inputmethodservice/InputMethodService.html#sendDefaultEditorAction(boolean)">sendDefaultEditorAction</a>,
   which causes the app to dismiss the keyboard and continue on to the next step 
   or action.</p>
 </li>
 
-<li><Strong>Use full screen mode IME</strong>
+<li><Strong>Use full-screen-mode IME</strong>
 <p>
-Most on-screen input methods will consume most of the screen, leaving very little
- of the app visible; hence, we discourage Android Wear apps from presenting a 
- visible {@code EditTextView}. Instead, a full-screen IME uses 
- <a href="http://developer.android.com/reference/android/inputmethodservice/ExtractEditText.html">ExtractEditText</a>
-  to render its own view of the attached editor, also providing control over the
-   styling of this view. You can ignore all editor-related events that the IME 
-   doesn't generate.
-For more details on full-screen mode, see 
-<a href="http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html">InputMethodService</a>.
+Input methods on Wear consume most of the screen, leaving very little of the
+ app visible; using full-screen mode ensures an optimal user experience regardless
+  of the app UI.  In full-screen mode, an 
+  <a href="{@docRoot}reference/android/view/inputmethod/ExtractedText.html">{@code ExtractEditText}</a> provides a mirrored
+   view of the text field being edited and can be styled to blend with the rest of
+    the input method UI. For more details on full-screen mode, see 
+    <a href="{@docRoot}reference/android/inputmethodservice/InputMethodService.html">InputMethodService</a>.
 </p>
 </li>
 
-<li><strong>Handle inputType flags</strong>
+<li><strong>Handle InputType flags</strong>
 <p>
-For privacy reasons, at a minimum you should handle the {@code inputType} 
+For privacy reasons, at a minimum you should handle the {@code InputType} 
 flag {@code TYPE_TEXT_VARIATION_PASSWORD} in your IME. When your IME is in 
 password mode, make sure that your keyboard is optimized for single key press 
 (auto spelling correction, auto completion and gesture input are disabled). 
 Most importantly, keyboard in password mode should support ASCII symbols 
 regardless of the input language.  For more details, see 
-<a href="http://developer.android.com/training/keyboard-input/style.html">Specifying The Input Method Type</a>.
+<a href="{@docRoot}training/keyboard-input/style.html">Specifying The Input Method Type</a>.
 </p>
 </li>
 
@@ -116,21 +121,13 @@
 <p>
 Android allows users to easily switch between all IMEs supported by the platform.
  In your IME implementation, set the boolean 
- <a href="http://developer.android.com/guide/topics/text/creating-input-method.html#Switching">supportsSwitchingToNextInputMethod = true</a>
- to enable your IME to support switching mechanism 
+ <a href="{@docRoot}guide/topics/text/creating-input-method.html#Switching">supportsSwitchingToNextInputMethod = true</a>
+ to enable your IME to support the switching mechanism 
  (so that apps can switch to the next platform-supported IME).
 </p>
 </li>
 </ul>
 
 
-<h2 id="test">Test your IME</h2>
-
-<p>To test your IME, install the 
-<a href="https://drive.google.com/a/google.com/file/d/0ByOeMdiY1arvWUk5QXU1V0E3cFU/view?usp=sharing">Input Box</a>
- app which has a simple <i><code>EditText</i></code> field. 
- When responding to messages from chat apps, you can also use the IME on the 
- watch.</p>
-
 
 
diff --git a/docs/html/wear/preview/features/notifications.jd b/docs/html/wear/preview/features/notifications.jd
index 21a77c2..0962eb4 100644
--- a/docs/html/wear/preview/features/notifications.jd
+++ b/docs/html/wear/preview/features/notifications.jd
@@ -1,7 +1,231 @@
-page.title=Expanded Notifications
+page.title=Notification Changes in Android Wear 2.0
 meta.tags="wear", "wear-preview", "notifications"
 page.tags="wear"
+page.image=/wear/preview/images/expanded_diagram.png
+
 
 @jd:body
 
-<p>stub</p>
\ No newline at end of file
+<div id="qv-wrapper">
+  <div id="qv">
+    <!-- table of contents -->
+    <h2>This document includes</h2>
+    <ol>
+      <li><a href="#visual">Visual Updates</a></li>
+      <li><a href="#expanded">Expanded Notifications</a></li>
+      <li><a href="#messaging">MessagingStyle</a></li>
+    </ol>
+  </div>
+</div>
+
+<p>Android Wear 2.0 updates the visual style and interaction paradigm of notifications
+  as well as introduces expanded notifications, which provide substantial additional
+  content and actions in an app-like experience.
+</p>
+
+<p>The visual and interaction changes make it much easier for users to read and
+  interact with notifications from your app. Expanded notifications enable
+  you to deliver Wear users an app-like experience even if you haven't built an
+  Android Wear app.
+</p>
+
+<p class="note">
+  <strong>Note:</strong> When developing for Wear 2.0, ensure that
+  you have the latest version of the Android Wear app on your phone.
+</p>
+
+<h2 id="visual">Visual Updates</h2>
+<p>Notifications receive important visual updates in Wear 2.0, with
+<a href="http://www.google.com/design/spec-wear">
+material design</a> visual changes.
+</p>
+
+<p><img src="{@docRoot}wear/preview/images/comparison_diagram.png" /> </p>
+<p><b>Figure 1.</b> Comparison of the same notification in Android Wear 1.x and 2.0.</p> 
+
+<p>Some of the visual updates include:</p>
+<ul>
+<li><strong>Updated touch targets of a notification</strong>:
+  If no <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>
+  is set or if the notification is
+  <a href="{@docRoot}design/wear/structure.html#Bridged">bridged</a>
+  from a paired phone, then tapping the notification opens an <a href="{@docRoot}wear/preview/features/notifications.html#expanded">expanded notification</a>.
+  If the notification is generated locally by a Wear app and if a
+  <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>
+  is set, tapping the notification fires the
+  <a href="{@docRoot}reference/android/app/Notification.html#contentIntent">{@code contentIntent}</a>.
+  </li>
+
+<li><strong>Dark background color</strong>:
+  If you have notifications that are bridged to wearables, you need to be careful
+   with regards to using color for the notifications. Since a bridged
+  notification needs to support both light (Wear 1.x) and dark (Wear 2.0)
+  backgrounds, it is unlikely that any colors will work well on both.
+  <a href="{@docRoot}reference/android/app/Notification.WearableExtender.html#setDisplayIntent(android.app.PendingIntent)">{@code DisplayIntent}</a>
+   notifications render with both light and dark backgrounds
+  as well, and need to be checked for the same reason.
+  We recommended that you don't set color for bridged notifications.
+
+  When Wear apps post local notifications, you can work around this by checking
+  <a href="{@docRoot}training/basics/supporting-devices/platforms.html#version-codes">the API level of the device</a> they're running on and using an appropriate color
+  for Wear 1.x and a different color for Wear 2.0.
+</li>
+
+<li><strong>Updated horizontal swipe gesture on a notification</strong>:
+  To dismiss a notification in Wear 2.0, the user swipes horizontally in either
+  direction. So if your notification instructs the user to swipe left or right, 
+  you must update the text of your notification.
+</li>
+</ul>
+<h2 id="expanded">Expanded Notifications</h2>
+<p>Android Wear 2.0 introduces <i>expanded notifications</i>, which provide
+  substantial additional content and actions for each notification.
+</p>
+<p>When you <a href="{@docRoot}training/wearables/notifications/pages.html">specify additional content pages</a>
+ and actions for a notification, those are available to the user within the 
+ expanded notification. Each expanded notification follows 
+ <a href="http://www.google.com/design/spec-wear">Material Design for Android Wear</a>,
+  so the user gets an app-like experience.
+</p>
+<p><img src="{@docRoot}wear/preview/images/expanded_diagram.png" /> </p>
+<p><b>Figure 2</b>. An expanded notification with content and actions.</p>
+<p>If the first action in the expanded notification has a
+<a href=" {@docRoot}reference/android/support/v4/app/RemoteInput.html">{@code RemoteInput}</a>
+  (e.g., a Reply action), then the choices you set with <a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a>
+  appear within the expanded notification below the first action.
+</p>
+
+<p>The user can view the expanded notification by tapping on a notification when
+  either of the following is true:
+</p>
+<ul>
+  <li>The notification is generated by an app on the paired phone and
+    bridged to Wear.
+  </li>
+  <li>The notification does not have a 
+  <a href="http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">{@code contentIntent}</a>.
+  </li>
+</ul>
+<h3>Best practices for expanded notifications</h3>
+<p>To decide when to use expanded notifications, follow these guidelines:</p>
+<ul>
+  <li>All notifications bridged from the paired phone to the Wear device will
+  use expanded notifications.
+  </li>
+  <li>If a notification is generated by an app running locally on Wear 2.0,
+    you should <a href="{@docRoot}training/notify-user/build-notification.html#action">
+    make the touch target of your notification </a> launch
+    <a href="{@docRoot}training/notify-user/build-notification.html#action"> an Activity</a>
+    within your app by calling <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.Builder.html#setContentIntent(android.app.PendingIntent)">{@code setContentIntent()}</a>.
+    We recommend that you do not use expanded notifications for notifications generated
+    by an app running locally on Wear 2.0.
+  </li>
+</ul>
+
+<h3>Adding expanded notifications</h3>
+<p>
+ Expanded Notifications allow you to include additional content and actions
+   for a notification. You choose the level of detail that your app's notifications
+    will provide; however be judicious with the amount of detail you include in a 
+    notification. 
+</p>
+<h4>Adding additional content</h4>
+To show additional content in your expanded notification, see <a href="{@docRoot}training/wearables/notifications/pages.html">Adding Pages to a Notification</a>.</p>
+<p>Additional content pages are stacked vertically in the expanded notification
+ and appear in the order they were added.
+  These additional content pages can optionally use a style such as <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.BigTextStyle.html">{@code BigTextStyle}</a> or <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.BigPictureStyle.html">{@code BigPictureStyle}</a>.
+</p>
+<h4>Primary action</h4>
+The expanded notification will contain one primary action, which is the first
+action in the notification unless a different action is specified using
+<a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#setContentAction(int)">{@code setContentAction()}</a>.
+</p>
+<h4>Additional actions</h4>
+<p>
+  To specify additional actions, use
+  <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#addAction(android.support.v4.app.NotificationCompat.Action)">{@code addAction()}</a>
+   or <a href="{@docRoot}reference/android/support/v4/app/NotificationCompat.WearableExtender.html#addActions(java.util.List<android.support.v4.app.NotificationCompat.Action>)">{@code addActions()}</a>.
+    The action drawer of the expanded notification contains all available actions.
+</p>
+<h2 id="messaging">MessagingStyle</h2>
+
+<p>If you have a chat messaging app, your notifications should use
+<a href="{@docRoot}preview/features/notification-updates.html#style">{@code Notification.MessagingStyle}</a>,
+ which is new in Android 6.0. Wear 2.0 uses the chat messages included
+  in a <a href="{@docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a> notification 
+  (see <a href="{@docRoot}preview/features/notification-updates.html#style">{@code addMessage()}</a>) to provide
+  a rich chat app-like experience in the expanded notification.
+</p>
+<p class="note">Note: <a href="{@docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a> 
+expanded notifications require that you have at least version 1.5.0.2861804 of the
+  <a href="https://play.google.com/store/apps/details?id=com.google.android.wearable.app">Android Wear app</a>
+  on your paired Android phone. That version will be available within the next
+  few weeks in the Play Store.
+</p>
+<h3 id="smart-reply">Smart Reply</h3>
+<p>Wear 2.0 also introduces <i>Smart Reply</i> for <a href="{@docRoot}preview/features/notification-updates.html#style">{@code MessagingStyle}</a> notifications.
+  Smart Reply provides the user with contextually relevant, touchable choices in
+  the expanded notification and in {@code RemoteInput}. These augment the fixed
+  list of choices that the developer provides in 
+   <a href="http://developer.android.com/reference/android/support/v4/app/RemoteInput.html">{@code RemoteInput}</a>
+    using the 
+    <a href="{@docRoot}reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a> method.
+</p>
+<p>By enabling Smart Reply for your MessagingStyle notifications,
+  you provide users with a fast (single tap), discreet (no speaking aloud), and
+  reliable way to respond to chat messages.
+</p>
+<p><img src="{@docRoot}wear/preview/images/messaging_style.png" /></p>
+<p><b>Figure 3</b>. The expanded notification includes contextually relevant
+  Smart Reply responses below the primary action.
+</p>
+
+<p>Responses generated by Smart Reply are shown in addition to those set using the
+  <a href="{@docRoot}reference/android/support/v4/app/RemoteInput.Builder.html#setChoices(java.lang.CharSequence[])">{@code setChoices()}</a> method.
+</p>
+<p>To enable Smart Reply for your notification action, you need to do the
+following:
+</p>
+<ol>
+  <li>Use <a href="{@docRoot}preview/features/notification-updates.html#style">{@code Notification.MessagingStyle}</a>.
+  </li>
+  <li>Call the method 
+  <a href="{@docRoot}wear/preview/start.html#get_the_preview_reference_documentation">{@code setAllowGeneratedReplies()}</a>
+   for the notification action.</li>
+  <li>Ensure that the notification action has a
+    <a href="{@docRoot}reference/android/app/RemoteInput.html">{@code RemoteInput}</a>
+     (where the responses will reside).
+  </li>
+</ol>
+<p>The following example shows how to create a MessagingStyle notification with
+Smart Reply responses.</p>
+<pre>
+// Create an intent for the reply action
+Intent replyIntent = new Intent(this, ReplyActivity.class);
+PendingIntent replyPendingIntent =
+ PendingIntent.getActivity(this, 0, replyIntent,
+  PendingIntent.FLAG_UPDATE_CURRENT);
+
+// Create the reply action and add the remote input
+NotificationCompat.Action action =
+ new NotificationCompat.Action.Builder(R.drawable.ic_reply_icon,
+  getString(R.string.label), replyPendingIntent)
+ .addRemoteInput(remoteInput)
+
+// 1) allow generated replies
+.setAllowGeneratedReplies(true)
+ .build();
+
+Notification noti = new NotificationCompat.Builder()
+ .setContentTitle(messages.length + " new messages with " + sender.toString())
+ .setContentText(subject)
+ .setSmallIcon(R.drawable.new_message)
+ .setLargeIcon(aBitmap)
+ // 2) set the style to MessagingStyle
+ .setStyle(new NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name)).addMessage(messages[0].getText(), messages[0].getTime(), messages[0].getSender())
+  .addMessage(messages[1].getText(), messages[1].getTime(), messages[1].getSender()))
+
+
+// 3) add an action with RemoteInput
+.extend(new WearableExtender().addAction(action)).build();
+</pre>
diff --git a/docs/html/wear/preview/features/ui-nav-actions.jd b/docs/html/wear/preview/features/ui-nav-actions.jd
index 587f88f..800fc8e 100644
--- a/docs/html/wear/preview/features/ui-nav-actions.jd
+++ b/docs/html/wear/preview/features/ui-nav-actions.jd
@@ -1,6 +1,7 @@
 page.title=Wear Navigation and Actions
 meta.tags="wear", "wear-preview", "navigation", "action"
 page.tags="wear"
+page.image=/wear/preview/images/card_drawer.png
 
 @jd:body
 
@@ -18,23 +19,27 @@
 
    <h2>You should also read</h2>
    <ul>
-   <li><a href="https://spec.googleplex.com/wear/components/navigation-drawer.html">
+   <li><a href="http://www.google.com/design/wear-spec/components/navigation-drawer.html">
    Navigation Drawer Design</a> </li>
    <li>
-   <a href="https://spec.googleplex.com/wear/components/action-drawer.html">
+   <a href="http://www.google.com/design/wear-spec/components/action-drawer.html">
    Action Drawer Design</a>
    </ul>
 
-  <h2>Samples</h2>
+  <h2>See Also</h2>
   <ol>
-
+  <li>
+  <a href="https://github.com/googlesamples/android-WearDrawers">Sample app with
+  navigation and action drawers</a>
+  </li>
   </ol>
 
 </div>
 </div>
-<p>Wear 2.0 adds interactive navigation and action drawers that users can pull
-from the top or bottom edge of the window, respectively. The navigation drawer
-appears at the top of the screen and lets users jump to different views within
+<p>As part of the <a href="http://www.google.com/design/spec-wear">Material Design</a>
+ for Android Wear, Wear 2.0 adds interactive navigation and action drawers. 
+ The navigation drawer appears at the top of the screen and lets users jump to 
+ different views within
 the app, similar to the navigation drawer on a phone. The action drawer appears
 at the bottom of the screen and provides context-specific actions for the user,
 similar to the action bar on a phone. These drawers are accessible when the user
diff --git a/docs/html/wear/preview/images/card_drawer.png b/docs/html/wear/preview/images/card_drawer.png
new file mode 100644
index 0000000..3614f95
--- /dev/null
+++ b/docs/html/wear/preview/images/card_drawer.png
Binary files differ
diff --git a/docs/html/wear/preview/images/comparison_diagram.png b/docs/html/wear/preview/images/comparison_diagram.png
new file mode 100644
index 0000000..7dbf65f2
--- /dev/null
+++ b/docs/html/wear/preview/images/comparison_diagram.png
Binary files differ
diff --git a/docs/html/wear/preview/images/complication-type-exs.png b/docs/html/wear/preview/images/complication-type-exs.png
index d6fe890..6e2287c 100644
--- a/docs/html/wear/preview/images/complication-type-exs.png
+++ b/docs/html/wear/preview/images/complication-type-exs.png
Binary files differ
diff --git a/docs/html/wear/preview/images/complications-data-flow.png b/docs/html/wear/preview/images/complications-data-flow.png
index 7fa43f2..2415535 100644
--- a/docs/html/wear/preview/images/complications-data-flow.png
+++ b/docs/html/wear/preview/images/complications-data-flow.png
Binary files differ
diff --git a/docs/html/wear/preview/images/complications-main-image.png b/docs/html/wear/preview/images/complications-main-image.png
new file mode 100644
index 0000000..dd37b25
--- /dev/null
+++ b/docs/html/wear/preview/images/complications-main-image.png
Binary files differ
diff --git a/docs/html/wear/preview/images/expanded_diagram.png b/docs/html/wear/preview/images/expanded_diagram.png
new file mode 100644
index 0000000..03bca9a
--- /dev/null
+++ b/docs/html/wear/preview/images/expanded_diagram.png
Binary files differ
diff --git a/docs/html/wear/preview/images/hero-1x.png b/docs/html/wear/preview/images/hero-1x.png
index 5dcc847..1d0cb6f 100644
--- a/docs/html/wear/preview/images/hero-1x.png
+++ b/docs/html/wear/preview/images/hero-1x.png
Binary files differ
diff --git a/docs/html/wear/preview/images/hero-2x.png b/docs/html/wear/preview/images/hero-2x.png
index 19a60cd..9f4eb66 100644
--- a/docs/html/wear/preview/images/hero-2x.png
+++ b/docs/html/wear/preview/images/hero-2x.png
Binary files differ
diff --git a/docs/html/wear/preview/images/messaging_style.png b/docs/html/wear/preview/images/messaging_style.png
new file mode 100644
index 0000000..966e524
--- /dev/null
+++ b/docs/html/wear/preview/images/messaging_style.png
Binary files differ
diff --git a/docs/html/wear/preview/images/messaging_style_diagram.png b/docs/html/wear/preview/images/messaging_style_diagram.png
new file mode 100644
index 0000000..3b21c7973
--- /dev/null
+++ b/docs/html/wear/preview/images/messaging_style_diagram.png
Binary files differ
diff --git a/docs/html/wear/preview/images/new_input_methods.png b/docs/html/wear/preview/images/new_input_methods.png
new file mode 100644
index 0000000..c035996
--- /dev/null
+++ b/docs/html/wear/preview/images/new_input_methods.png
Binary files differ
diff --git a/docs/html/wear/preview/images/remoteinput.png b/docs/html/wear/preview/images/remoteinput.png
new file mode 100644
index 0000000..9d80498
--- /dev/null
+++ b/docs/html/wear/preview/images/remoteinput.png
Binary files differ
diff --git a/docs/html/wear/preview/index.jd b/docs/html/wear/preview/index.jd
index 3024654..4b3c1f2 100644
--- a/docs/html/wear/preview/index.jd
+++ b/docs/html/wear/preview/index.jd
@@ -25,14 +25,19 @@
         <h1 class="dac-hero-title">Android Wear 2.0 Developer Preview</h1>
         <p class="dac-hero-description">
           Get ready for the next version of Android Wear!
-          Support stand-alone Wear devices and apps.
-          Create enhanced user interaction and glanceable experiences.
-          Test your apps on Wear devices.
+          Support <strong>stand-alone</strong> Wear devices and apps.
+          Create <strong>enhanced user interaction</strong> and
+          <strong>glanceable experiences</strong>.
+          Test your apps on <strong>Wear devices</strong>.
         </p>
 
         <a class="dac-hero-cta" href="{@docRoot}wear/preview/program.html">
           <span class="dac-sprite dac-auto-chevron"></span>
-          Learn more
+          Learn about the Preview
+        </a>
+        <a class="dac-hero-cta" href="https://www.google.com/design/spec-wear">
+          <span class="dac-sprite dac-auto-chevron"></span>
+          Material Design for Wear
         </a>
       </div>
       <div class="col-9of16 col-pull-7of16 dac-hero-figure" style="margin-top:1.5em;padding-right:1.5em;">
@@ -57,7 +62,7 @@
     </a>
     <ul class="dac-actions">
       <li class="dac-action">
-        <a class="dac-action-link" href="{@docRoot}wear/preview/bug">
+        <a class="dac-action-link" href="http://g.co/wearpreviewbug">
           <i class="dac-action-sprite dac-sprite dac-auto-chevron-large"></i>
           Report an issue
         </a>
diff --git a/docs/html/wear/preview/program.jd b/docs/html/wear/preview/program.jd
index 802e8a8..a130663 100644
--- a/docs/html/wear/preview/program.jd
+++ b/docs/html/wear/preview/program.jd
@@ -25,7 +25,7 @@
             </h5>
 
             <p>
-              Run and test your apps on a range of devices or on an emulator.
+              Run and test your apps on supported Wear devices or the emulator.
             </p>
           </div>
 
@@ -35,7 +35,7 @@
             </h5>
 
             <p>
-              We’ll provide monthly updates during the preview, so you'll be
+              We'll provide frequent updates during the preview, so you'll be
               testing against the latest platform changes.
             </p>
           </div>
@@ -71,8 +71,10 @@
             </h5>
 
             <p>
-              Report issues and give us feedback using our issue tracker.
-              Connect with other developers in the Wear Developer Community.
+              Report issues and give us feedback using our
+              <a href="https://g.co/wearpreviewbug">issue tracker</a>.
+              Connect with other developers in
+              the <a href="https://g.co/androidweardev">Wear Developer Community</a>.
             </p>
           </div>
 
@@ -124,11 +126,12 @@
 
     <p>
       The first three milestones provide an early test and development
-      environment to helps you identify compatibility issues in your current
+      environment to help you identify compatibility issues in your current
       apps and plan migration or feature work needed to target the new
       platform. This is the priority period in which to give us your feedback
       on features and APIs and file compatibility issues — for all of these,
-      please use the issue tracker. You can expect some API changes across
+      please use the <a href="https://g.co/wearpreviewbug">issue tracker</a>.
+      You can expect some API changes across
       these updates.
     </p>
 
@@ -144,8 +147,6 @@
     <p>
       As you test and develop on Android Wear 2.0, we strongly recommend
       keeping your development environment up-to-date as updates are released.
-      Updated preview images will be available that you can download and flash
-      manually.
     </p>
 
     <p>
@@ -195,18 +196,25 @@
     </h3>
 
     <p>
-      You can download these hardware system images for Nexus devices from the
-      Downloads page:
+      You can download these hardware system images at <a href=
+      "{@docRoot}wear/preview/downloads.html">Download and Test with a
+      Device</a>:
     </p>
 
     <ul>
-      <li>LG Watch Urbane 2nd Edition “nemo”
+      <li>LGE Watch Urbane 2nd Edition
       </li>
 
-      <li>Huawei Watch “sturgeon”
+      <li>Huawei Watch
       </li>
     </ul>
 
+    <p>
+     Please keep in mind that the Developer Preview system images
+     are for app developers only, and for compatibility testing and
+     early development only, and are not ready for day-to-day use.
+    </p>
+
     <h3 id="documentation_and_sample_code">
       Documentation and sample code
     </h3>
@@ -216,17 +224,22 @@
     </p>
 
     <ul>
-      <li>[comment placeholder] Get Started has step-by-step instructions for
+      <li><a href=
+      "{@docRoot}wear/preview/start.html">Get Started</a>
+      has step-by-step instructions for
       setting up the SDK.
       </li>
 
-      <li>Documentation of new APIs, including an API Overview, downloadable
-      API Reference, and developer guides on key features such as
-      complications, design patterns for Wear, and building standalone Android
-      Wear apps.
+      <li>Documentation of new APIs, including an
+      <a href="{@docRoot}wear/preview/api-overview.html">API Overview</a>,
+      downloadable
+      <a href="{@docRoot}wear/preview/start.html#get_the_preview_reference_documentation">API Reference</a>,
+      and developer guides on key features such as
+      <a href="{@docRoot}wear/preview/features/complications.html">complications</a>
+      and design patterns for Wear.
       </li>
 
-      <li>Sample code that demonstrates how to implement [comment placeholder]
+      <li>Sample code that demonstrates how to implement
       complications and other new features.
       </li>
     </ul>
@@ -241,7 +254,8 @@
     </p>
 
     <ul>
-      <li>Wear Developer Preview Issue Tracker is your primary feedback
+      <li>Wear Developer Preview
+      <a href="https://g.co/wearpreviewbug">Issue Tracker</a> is your primary feedback
       channel. You can report bugs, performance issues, and general feedback
       through the issue tracker. You can also check for known issues and find
       workaround steps.
diff --git a/docs/html/wear/preview/start.jd b/docs/html/wear/preview/start.jd
index 04b9fe6..65d4b56 100644
--- a/docs/html/wear/preview/start.jd
+++ b/docs/html/wear/preview/start.jd
@@ -1,4 +1,4 @@
-page.title=Get Started with the Android Wear 2.0 Developer Preview
+page.title=Get Started with the Preview
 meta.keywords="wear-preview"
 page.tags="wear-preview"
 page.image=images/cards/card-n-sdk_2x.png
@@ -28,8 +28,8 @@
     </div>
 
     <p>
-      If you want an environment for basic <strong>compatibility
-      testing</strong> of your app, you can use your current APK and a
+      If you want an environment for basic compatibility
+      testing of your app, you can use your current APK and a
       supported watch or an emulator. You don't necessarily need to update your
       full development environment to do basic testing. To simply test your
       app's compatibility with a preview system image, see <a href=
@@ -97,19 +97,20 @@
 
     <table>
       <tr>
-        <th scope="col">
+        <th style="width:300px">
           Reference documentation
         </th>
-        <th scope="col">
-          Notes
+        <th>
+          Checksums
         </th>
       </tr>
 
       <tr>
         <td>
-          [zip file name]
+          <a href="http://storage.googleapis.com/androiddevelopers/shareables/wear-preview/wearable-support-preview-1-docs.zip">wearable-support-preview-1-docs.zip</a>
         </td>
-        <td>
+        <td>MD5: 02f9dc7714c00076b323c9081655c3b2<br>
+            SHA-1: 075f3821ee9b66a919a0e8086f79c12bc9576fb2
         </td>
       </tr>
     </table>
@@ -137,8 +138,8 @@
       </li>
 
       <li>If prompted by the Android SDK Manager for the SDK version to use for
-      the project, select <strong>Use</strong> <strong>Android Studio's
-      SDK</strong>. &lt;//li&gt;
+      the project, select <strong>Use Android Studio's
+      SDK</strong>.
       </li>
 
       <li>If prompted to update the Gradle plugin, update the version of the
@@ -151,12 +152,10 @@
       'com.google.android.support:wearable:1.4.0'</code>) by changing it to the
       following, which requires that your the Google Repository <a href=
       "#install_android_studio_and_the_latest_packages">is the latest
-      version</a>::
-
-        <pre>
-        compile 'com.google.android.support:wearable:2.0.0-alpha1'
-
-</pre>
+      version</a>:
+      <pre>
+compile 'com.google.android.support:wearable:2.0.0-alpha1'
+      </pre>
       </li>
 
       <li>See the following page for setting up a watch or emulator with a
@@ -195,11 +194,9 @@
       <code>dependencies</code> section, update the existing reference to the
       Wearable Support Library (perhaps <code>compile
       'com.google.android.support:wearable:1.4.0'</code>) to:
-
-        <pre>
-      compile 'com.google.android.support:wearable:2.0.0-alpha1'
-
-</pre>
+      <pre>
+compile 'com.google.android.support:wearable:2.0.0-alpha1'
+      </pre>
       </li>
 
       <li>See the following page for setting up a watch or emulator with a
diff --git a/docs/html/wear/preview/support.jd b/docs/html/wear/preview/support.jd
new file mode 100644
index 0000000..d03edf3
--- /dev/null
+++ b/docs/html/wear/preview/support.jd
@@ -0,0 +1,139 @@
+page.title=Support and Release Notes
+meta.keywords="preview", "wear"
+page.tags="preview", "developer preview"
+
+@jd:body
+
+<p>
+  If you experience problems when developing and testing with the
+  Wear 2.0 Developer Preview, please file bugs at
+  <a href="https://g.co/wearpreviewbug">https://g.co/wearpreviewbug</a>.
+</p>
+
+<p>
+  To discuss issues or ideas with other developers working with Android Wear,
+  join the <a href="https://plus.google.com/communities/113381227473021565406">
+  Wear Developer Google+ community</a>.
+</p>
+
+<h2 id="dp">Developer Preview 1</h2>
+
+<div class="wrap">
+  <div class="cols">
+    <div class="col-6of12">
+      <p><em>Date: May 2016<br />
+      Builds: Wearable Support 2.0.0-alpha1, NVD36I <br />
+      Emulator support: x86 & ARM (32-bit)<br/>
+      </em></p>
+    </div>
+  </div>
+</div>
+
+
+<h3 id="general_advisories">General advisories</h3>
+
+<p>
+  This Developer Preview release is for app developers only and is designed for
+  use in compatibility testing and early development only.
+</p>
+
+<h4 id="deprecations">Deprecations</h4>
+
+
+<p>The following fields are deprecated in the Preview:</p>
+
+<ul>
+  <li>The <code>Notification.WearableExtender#setCustomSizePreset(int)</code>
+  method no longer accepts <code>SIZE_FULL_SCREEN</code> and this value is now
+  undefined.
+  </li>
+
+  <li>The <code>Notification.WearableExtender#setContentIcon(int)</code> method
+  is deprecated.
+  </li>
+</ul>
+
+<h3 id="known_issues">Known Issues</h3>
+
+
+<h4 id="notifications">Notifications</h4>
+
+
+<ul>
+  <li>This preview release does not include support for notification groups,
+  but will be supported in a future release.
+  </li>
+  <li>Tapping on next and previous controls in a notification while playing
+  music does not work.
+  </li>
+  <li>Bottom drawer actions user interface overlaps with media card
+  notifications.
+  </li>
+  <li>The system does not generate Smart Reply responses even if
+  <code>setAllowGeneratedReplies(true)</code> is set.
+  </li>
+</ul>
+
+
+<h4 id="complications">Complications</h4>
+
+<ul>
+  <li>Battery information is not synchronized between watch face and drop down
+  quick menu.
+  </li>
+  <li>Play music crashes when tapping on music complication in watch face.
+  </li>
+</ul>
+
+
+<h4 id="system_user_interface">System User Interface</h4>
+
+<ul>
+  <li>Pressing the hardware button in ambient mode triggers active mode with
+  the app launcher instead of active mode only.
+  </li>
+  <li>Double pressing the power hardware button while on the launcher causes
+  the watch screen to turn black.
+  </li>
+  <li>Dismissing multiple notifications can cause app to force close.
+  </li>
+  <li>Turning screen lock to off (Enable and disable) functionality is not
+  reliable.
+  </li>
+  <li>Airplane mode does not work from quick settings.
+  </li>
+  <li>Tapping Google keyboard English (United States) displays a <em>Settings
+  under construction</em> message.
+  </li>
+  <li>First calendar event notification must be dismissed in order to show the
+  rest of the event card.
+  </li>
+  <li>Unable to turn off the Wifi on wearable.
+  </li>
+  <li>Voice transcription may not work reliably at this time.
+  </li>
+</ul>
+
+
+<h4 id="companion_app">Companion App</h4>
+
+<ul>
+  <li>'More actions' via Companion app shows a blank screen on phone running
+  nyc-release and watch running feldspar-release.
+  </li>
+  <li>Select watch face on companion wear app will not change watch face on
+  wearable.
+  </li>
+</ul>
+
+
+<h4 id="devices">Devices</h4>
+
+<ul>
+  <li>On the Huawei Watch, selecting the language, followed by multiple
+  acknowledgement dialogues results in a black screen.
+  </li>
+  <li>On the LG Watch Urbane LTE, when answering call from the watch, the watch
+  does not provide audio from the caller.
+  </li>
+</ul>
diff --git a/docs/html/work/guide.jd b/docs/html/work/guide.jd
index 66ffb99..a93bfa5 100644
--- a/docs/html/work/guide.jd
+++ b/docs/html/work/guide.jd
@@ -523,7 +523,7 @@
 </p>
 
 <p>
-  <a href="https://connect.googleforwork.com/community/applicants/android/isv">
+  <a href="https://www.google.com/work/android/developers/applyDevHub/">
     <span class="dac-sprite dac-auto-chevron"></span>
     Learn about the Android for Work DevHub.
   </a>
diff --git a/docs/html/work/overview.jd b/docs/html/work/overview.jd
index 2b1f08b..56d8c20 100644
--- a/docs/html/work/overview.jd
+++ b/docs/html/work/overview.jd
@@ -40,7 +40,7 @@
 <p>
   Additionally, Android for Work offers a partner program for
   developers through the
-  <a href="https://connect.googleforwork.com/community/applicants/android/isv"
+  <a href="https://www.google.com/work/android/developers/applyDevHub/"
   >Android for Work DevHub</a>, which provides exclusive access to beta
   features and developer events, along with access to a community of
   Android developers making enterprise apps.
@@ -72,7 +72,7 @@
 <h2 id="community-overview">What Does the Android for Work DevHub Offer?</h2>
 
 <p>
-  The <a href="https://connect.googleforwork.com/community/applicants/android/isv"
+  The <a href="https://www.google.com/work/android/developers/applyDevHub/"
   >Android for Work DevHub</a> offers these incentives:
 </p>
 
@@ -103,7 +103,7 @@
 
 <p>
   Apply to join the
-  <a href="https://connect.googleforwork.com/community/applicants/android/isv"
+  <a href="https://www.google.com/work/android/developers/applyDevHub/"
   >Android for Work DevHub</a>.
 </p>
 
diff --git a/docs/image_sources/topic/instant-apps/Play-Services.png b/docs/image_sources/topic/instant-apps/Play-Services.png
new file mode 100644
index 0000000..4b65c99
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/Play-Services.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/image03.png b/docs/image_sources/topic/instant-apps/image03.png
new file mode 100644
index 0000000..becc7ff
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/image03.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/instant-apps-section-2 b/docs/image_sources/topic/instant-apps/instant-apps-section-2
new file mode 100644
index 0000000..6857e1f
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/instant-apps-section-2
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/instant-apps-section-4 b/docs/image_sources/topic/instant-apps/instant-apps-section-4
new file mode 100644
index 0000000..c9436f1
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/instant-apps-section-4
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/instant-apps-section-5 b/docs/image_sources/topic/instant-apps/instant-apps-section-5
new file mode 100644
index 0000000..b33544c
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/instant-apps-section-5
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/play-services-features-2x.png b/docs/image_sources/topic/instant-apps/play-services-features-2x.png
new file mode 100644
index 0000000..098f91c
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/play-services-features-2x.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-BandH-animated.gif b/docs/image_sources/topic/instant-apps/s3-BandH-animated.gif
new file mode 100644
index 0000000..4e44f74
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-BandH-animated.gif
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-BandH-static.png b/docs/image_sources/topic/instant-apps/s3-BandH-static.png
new file mode 100644
index 0000000..004afb7
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-BandH-static.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-BuzzFeed-animated.gif b/docs/image_sources/topic/instant-apps/s3-BuzzFeed-animated.gif
new file mode 100644
index 0000000..7ed534e
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-BuzzFeed-animated.gif
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-BuzzFeed-static.png b/docs/image_sources/topic/instant-apps/s3-BuzzFeed-static.png
new file mode 100644
index 0000000..cdd0dc8
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-BuzzFeed-static.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-ParkandPay-animated.gif b/docs/image_sources/topic/instant-apps/s3-ParkandPay-animated.gif
new file mode 100644
index 0000000..4a14dc2
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-ParkandPay-animated.gif
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/s3-ParkandPay-static.png b/docs/image_sources/topic/instant-apps/s3-ParkandPay-static.png
new file mode 100644
index 0000000..fa9c2bf
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/s3-ParkandPay-static.png
Binary files differ
diff --git a/docs/image_sources/topic/instant-apps/upgrade-your-app-2x.png b/docs/image_sources/topic/instant-apps/upgrade-your-app-2x.png
new file mode 100644
index 0000000..fbf6a01
--- /dev/null
+++ b/docs/image_sources/topic/instant-apps/upgrade-your-app-2x.png
Binary files differ
diff --git "a/docs/image_sources/topic/instant-apps/works-on-all-2x \0501\051.png" "b/docs/image_sources/topic/instant-apps/works-on-all-2x \0501\051.png"
new file mode 100644
index 0000000..5a44032
--- /dev/null
+++ "b/docs/image_sources/topic/instant-apps/works-on-all-2x \0501\051.png"
Binary files differ
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java
index daa1d7c..054e29f 100644
--- a/graphics/java/android/graphics/Paint.java
+++ b/graphics/java/android/graphics/Paint.java
@@ -19,11 +19,11 @@
 import android.annotation.ColorInt;
 import android.annotation.NonNull;
 import android.annotation.Size;
+import android.os.LocaleList;
 import android.text.GraphicsOperations;
 import android.text.SpannableString;
 import android.text.SpannedString;
 import android.text.TextUtils;
-import android.util.LocaleList;
 
 import com.android.internal.annotations.GuardedBy;
 
diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp
index 212c6a0..61f78cc 100644
--- a/libs/input/PointerController.cpp
+++ b/libs/input/PointerController.cpp
@@ -84,7 +84,7 @@
     mLocked.pointerAlpha = 0.0f; // pointer is initially faded
     mLocked.pointerSprite = mSpriteController->createSprite();
     mLocked.pointerIconChanged = false;
-    mLocked.requestedPointerShape = mPolicy->getDefaultPointerIconId();
+    mLocked.requestedPointerType= mPolicy->getDefaultPointerIconId();
 
     mLocked.animationFrameIndex = 0;
     mLocked.lastFrameUpdatedTime = 0;
@@ -459,10 +459,10 @@
     updatePointerLocked();
 }
 
-void PointerController::updatePointerShape(int32_t iconId) {
+void PointerController::updatePointerIcon(int32_t iconId) {
     AutoMutex _l(mLock);
-    if (mLocked.requestedPointerShape != iconId) {
-        mLocked.requestedPointerShape = iconId;
+    if (mLocked.requestedPointerType != iconId) {
+        mLocked.requestedPointerType = iconId;
         mLocked.presentationChanged = true;
         updatePointerLocked();
     }
@@ -473,7 +473,7 @@
 
     const int32_t iconId = mPolicy->getCustomPointerIconId();
     mLocked.additionalMouseResources[iconId] = icon;
-    mLocked.requestedPointerShape = iconId;
+    mLocked.requestedPointerType = iconId;
     mLocked.presentationChanged = true;
 
     updatePointerLocked();
@@ -574,7 +574,7 @@
 
 bool PointerController::doBitmapAnimationLocked(nsecs_t timestamp) {
     std::map<int32_t, PointerAnimation>::const_iterator iter = mLocked.animationResources.find(
-            mLocked.requestedPointerShape);
+            mLocked.requestedPointerType);
     if (iter == mLocked.animationResources.end()) {
         return false;
     }
@@ -636,14 +636,14 @@
 
     if (mLocked.pointerIconChanged || mLocked.presentationChanged) {
         if (mLocked.presentation == PRESENTATION_POINTER) {
-            if (mLocked.requestedPointerShape == mPolicy->getDefaultPointerIconId()) {
+            if (mLocked.requestedPointerType== mPolicy->getDefaultPointerIconId()) {
                 mLocked.pointerSprite->setIcon(mLocked.pointerIcon);
             } else {
                 std::map<int32_t, SpriteIcon>::const_iterator iter =
-                    mLocked.additionalMouseResources.find(mLocked.requestedPointerShape);
+                    mLocked.additionalMouseResources.find(mLocked.requestedPointerType);
                 if (iter != mLocked.additionalMouseResources.end()) {
                     std::map<int32_t, PointerAnimation>::const_iterator anim_iter =
-                            mLocked.animationResources.find(mLocked.requestedPointerShape);
+                            mLocked.animationResources.find(mLocked.requestedPointerType);
                     if (anim_iter != mLocked.animationResources.end()) {
                         mLocked.animationFrameIndex = 0;
                         mLocked.lastFrameUpdatedTime = systemTime(SYSTEM_TIME_MONOTONIC);
@@ -651,7 +651,7 @@
                     }
                     mLocked.pointerSprite->setIcon(iter->second);
                 } else {
-                    ALOGW("Can't find the resource for icon id %d", mLocked.requestedPointerShape);
+                    ALOGW("Can't find the resource for icon id %d", mLocked.requestedPointerType);
                     mLocked.pointerSprite->setIcon(mLocked.pointerIcon);
                 }
             }
diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h
index c1381f3..b47139a 100644
--- a/libs/input/PointerController.h
+++ b/libs/input/PointerController.h
@@ -105,7 +105,7 @@
             const uint32_t* spotIdToIndex, BitSet32 spotIdBits);
     virtual void clearSpots();
 
-    void updatePointerShape(int32_t iconId);
+    void updatePointerIcon(int32_t iconId);
     void setCustomPointerIcon(const SpriteIcon& icon);
     void setDisplayViewport(int32_t width, int32_t height, int32_t orientation);
     void setInactivityTimeout(InactivityTimeout inactivityTimeout);
@@ -180,7 +180,7 @@
         std::map<int32_t, SpriteIcon> additionalMouseResources;
         std::map<int32_t, PointerAnimation> animationResources;
 
-        int32_t requestedPointerShape;
+        int32_t requestedPointerType;
 
         int32_t buttonState;
 
diff --git a/media/jni/android_media_MediaSync.cpp b/media/jni/android_media_MediaSync.cpp
index 893c414..6de5ea9 100644
--- a/media/jni/android_media_MediaSync.cpp
+++ b/media/jni/android_media_MediaSync.cpp
@@ -159,7 +159,7 @@
             if (err > 0) {
                 break;
             }
-            AString msgWithErrorCode(msg);
+            AString msgWithErrorCode(msg == NULL ? "" : msg);
             msgWithErrorCode.append(" error:");
             msgWithErrorCode.append(err);
             jniThrowException(env, "java/lang/IllegalStateException", msgWithErrorCode.c_str());
diff --git a/packages/DocumentsUI/res/values-be-rBY/strings.xml b/packages/DocumentsUI/res/values-be-rBY/strings.xml
index 1a0f254..a7038aa 100644
--- a/packages/DocumentsUI/res/values-be-rBY/strings.xml
+++ b/packages/DocumentsUI/res/values-be-rBY/strings.xml
@@ -53,7 +53,7 @@
     <string name="save_error" msgid="6167009778003223664">"Не атрымалася захаваць дакумент"</string>
     <string name="create_error" msgid="3735649141335444215">"Не атрымалася стварыць папку"</string>
     <string name="query_error" msgid="5999895349602476581">"Зараз немагчыма загрузіць змесціва"</string>
-    <string name="root_recent" msgid="4470053704320518133">"Апошнія"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Нядаўнія"</string>
     <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> свабодна"</string>
     <string name="root_type_service" msgid="2178854894416775409">"Службы захоўвання"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"Ярлыкі"</string>
@@ -129,7 +129,7 @@
     <string name="open_external_dialog_root_request" msgid="8899108702926347720">"Даць <xliff:g id="APPNAME"><b>^1</b></xliff:g> доступ да вашых даных, у тым ліку фатаграфій і відэа, на <xliff:g id="STORAGE"><i>^2</i></xliff:g>?"</string>
     <string name="never_ask_again" msgid="4295278542972859268">"Больш не пытацца"</string>
     <string name="allow" msgid="7225948811296386551">"Дазволіць"</string>
-    <string name="deny" msgid="2081879885755434506">"Забараніць"</string>
+    <string name="deny" msgid="2081879885755434506">"Адмовіць"</string>
     <plurals name="elements_selected" formatted="false" msgid="1376955402452875047">
       <item quantity="one">Выбраны <xliff:g id="COUNT_1">%1$d</xliff:g></item>
       <item quantity="few">Выбраны <xliff:g id="COUNT_1">%1$d</xliff:g></item>
diff --git a/packages/DocumentsUI/res/values-el/strings.xml b/packages/DocumentsUI/res/values-el/strings.xml
index ddb3eb8..461b191 100644
--- a/packages/DocumentsUI/res/values-el/strings.xml
+++ b/packages/DocumentsUI/res/values-el/strings.xml
@@ -63,7 +63,7 @@
     <string name="no_results" msgid="6622510343880730446">"Χωρίς αντιστοιχίσεις στο %1$s"</string>
     <string name="toast_no_application" msgid="4632640357724698144">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string>
-    <string name="share_via" msgid="8966594246261344259">"Κοινή χρήση μέσω"</string>
+    <string name="share_via" msgid="8966594246261344259">"Κοινοποίηση μέσω"</string>
     <string name="copy_notification_title" msgid="6374299806748219777">"Αντιγραφή αρχείων"</string>
     <string name="move_notification_title" msgid="6193835179777284805">"Μετακίνηση αρχείων"</string>
     <string name="delete_notification_title" msgid="3329403967712437496">"Διαγραφή αρχείων"</string>
diff --git a/packages/DocumentsUI/res/values-es/strings.xml b/packages/DocumentsUI/res/values-es/strings.xml
index 22b3527..1efe13f 100644
--- a/packages/DocumentsUI/res/values-es/strings.xml
+++ b/packages/DocumentsUI/res/values-es/strings.xml
@@ -43,7 +43,7 @@
     <string name="button_select" msgid="527196987259139214">"Seleccionar"</string>
     <string name="button_copy" msgid="8706475544635021302">"Copiar"</string>
     <string name="button_move" msgid="2202666023104202232">"Mover"</string>
-    <string name="button_dismiss" msgid="3714065566893946085">"Ignorar"</string>
+    <string name="button_dismiss" msgid="3714065566893946085">"Descartar"</string>
     <string name="button_retry" msgid="4392027584153752797">"Reintentar"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
     <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
diff --git a/packages/DocumentsUI/res/values-et-rEE/strings.xml b/packages/DocumentsUI/res/values-et-rEE/strings.xml
index c40cd55..ad1937f 100644
--- a/packages/DocumentsUI/res/values-et-rEE/strings.xml
+++ b/packages/DocumentsUI/res/values-et-rEE/strings.xml
@@ -18,12 +18,12 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="2783841764617238354">"Dokumendid"</string>
     <string name="downloads_label" msgid="959113951084633612">"Allalaadimised"</string>
-    <string name="title_open" msgid="4353228937663917801">"Ava:"</string>
+    <string name="title_open" msgid="4353228937663917801">"Ava asukohast:"</string>
     <string name="title_save" msgid="2433679664882857999">"Salvesta:"</string>
     <string name="menu_create_dir" msgid="2547620241173881754">"Uus kaust"</string>
     <string name="menu_grid" msgid="6878021334497835259">"Ruudustikkuva"</string>
     <string name="menu_list" msgid="7279285939892417279">"Loendikuva"</string>
-    <string name="menu_sort" msgid="7677740407158414452">"Sortimisalus:"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortimisalus"</string>
     <string name="menu_search" msgid="3816712084502856974">"Otsing"</string>
     <string name="menu_settings" msgid="8239065133341597825">"Salvestusruumi seaded"</string>
     <string name="menu_open" msgid="432922957274920903">"Ava"</string>
@@ -31,8 +31,8 @@
     <string name="menu_share" msgid="3075149983979628146">"Jaga"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Kustuta"</string>
     <string name="menu_select_all" msgid="8323579667348729928">"Vali kõik"</string>
-    <string name="menu_copy" msgid="3612326052677229148">"Kopeeri asukohta ..."</string>
-    <string name="menu_move" msgid="1828090633118079817">"Teisaldamine kohta ..."</string>
+    <string name="menu_copy" msgid="3612326052677229148">"Kopeeri asukohta..."</string>
+    <string name="menu_move" msgid="1828090633118079817">"Teisalda asukohta..."</string>
     <string name="menu_new_window" msgid="1226032889278727538">"Uus aken"</string>
     <string name="menu_copy_to_clipboard" msgid="489311381979634291">"Kopeeri"</string>
     <string name="menu_paste_from_clipboard" msgid="2071583031180257091">"Kleebi"</string>
diff --git a/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
index 916eed5..b91b148 100644
--- a/packages/DocumentsUI/res/values-fr-rCA/strings.xml
+++ b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
@@ -31,7 +31,7 @@
     <string name="menu_share" msgid="3075149983979628146">"Partager"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string>
     <string name="menu_select_all" msgid="8323579667348729928">"Tout sélectionner"</string>
-    <string name="menu_copy" msgid="3612326052677229148">"Copier vers..."</string>
+    <string name="menu_copy" msgid="3612326052677229148">"Copier dans..."</string>
     <string name="menu_move" msgid="1828090633118079817">"Déplacer dans…"</string>
     <string name="menu_new_window" msgid="1226032889278727538">"Nouvelle fenêtre"</string>
     <string name="menu_copy_to_clipboard" msgid="489311381979634291">"Copier"</string>
diff --git a/packages/DocumentsUI/res/values-hu/strings.xml b/packages/DocumentsUI/res/values-hu/strings.xml
index d975ed5..aa9d799 100644
--- a/packages/DocumentsUI/res/values-hu/strings.xml
+++ b/packages/DocumentsUI/res/values-hu/strings.xml
@@ -23,7 +23,7 @@
     <string name="menu_create_dir" msgid="2547620241173881754">"Új mappa"</string>
     <string name="menu_grid" msgid="6878021334497835259">"Rács"</string>
     <string name="menu_list" msgid="7279285939892417279">"Lista"</string>
-    <string name="menu_sort" msgid="7677740407158414452">"Rendezés"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Rendezés alapja"</string>
     <string name="menu_search" msgid="3816712084502856974">"Keresés"</string>
     <string name="menu_settings" msgid="8239065133341597825">"Tárolóhely beállításai"</string>
     <string name="menu_open" msgid="432922957274920903">"Megnyitás"</string>
diff --git a/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
index e206598..2afb205 100644
--- a/packages/DocumentsUI/res/values-hy-rAM/strings.xml
+++ b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
@@ -32,7 +32,7 @@
     <string name="menu_delete" msgid="8138799623850614177">"Ջնջել"</string>
     <string name="menu_select_all" msgid="8323579667348729928">"Ընտրել բոլորը"</string>
     <string name="menu_copy" msgid="3612326052677229148">"Պատճենել…"</string>
-    <string name="menu_move" msgid="1828090633118079817">"Տեղափոխում դեպի…"</string>
+    <string name="menu_move" msgid="1828090633118079817">"Տեղափոխել…"</string>
     <string name="menu_new_window" msgid="1226032889278727538">"Նոր պատուհան"</string>
     <string name="menu_copy_to_clipboard" msgid="489311381979634291">"Պատճենել"</string>
     <string name="menu_paste_from_clipboard" msgid="2071583031180257091">"Տեղադրել"</string>
@@ -59,7 +59,7 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Դյուրանցումներ"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Սարքեր"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Հավելյալ ծրագրեր"</string>
-    <string name="empty" msgid="7858882803708117596">"Տարրեր չկան"</string>
+    <string name="empty" msgid="7858882803708117596">"Ոչինչ չկա"</string>
     <string name="no_results" msgid="6622510343880730446">"%1$s-ում համընկնումներ չկան"</string>
     <string name="toast_no_application" msgid="4632640357724698144">"Հնարավոր չէ բացել ֆայլը"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Անհնար է ջնջել որոշ փաստաթղթեր"</string>
diff --git a/packages/DocumentsUI/res/values-lo-rLA/strings.xml b/packages/DocumentsUI/res/values-lo-rLA/strings.xml
index be9b18d..6c2bfd6 100644
--- a/packages/DocumentsUI/res/values-lo-rLA/strings.xml
+++ b/packages/DocumentsUI/res/values-lo-rLA/strings.xml
@@ -31,7 +31,7 @@
     <string name="menu_share" msgid="3075149983979628146">"ແບ່ງປັນ"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ລຶບ"</string>
     <string name="menu_select_all" msgid="8323579667348729928">"ເລືອກທັງຫມົດ"</string>
-    <string name="menu_copy" msgid="3612326052677229148">"ອັດ​ສຳ​ເນົາ​ໃສ່…"</string>
+    <string name="menu_copy" msgid="3612326052677229148">"ສຳເນົາໄປໃສ່..."</string>
     <string name="menu_move" msgid="1828090633118079817">"ຍ້າຍໄປໃສ່..."</string>
     <string name="menu_new_window" msgid="1226032889278727538">"ໜ້າຈໍໃໝ່"</string>
     <string name="menu_copy_to_clipboard" msgid="489311381979634291">"ສຳເນົາ"</string>
@@ -53,7 +53,7 @@
     <string name="save_error" msgid="6167009778003223664">"ການບັນທຶກເອກະສານລົ້ມເຫລວ"</string>
     <string name="create_error" msgid="3735649141335444215">"ການ​ສ້າງ​ໂຟນ​ເດີລົ້ມເຫຼວ"</string>
     <string name="query_error" msgid="5999895349602476581">"ບໍ່ສາມາດໂຫຼດເນື້ອຫາໄດ້ໃນຂະນະນີ້"</string>
-    <string name="root_recent" msgid="4470053704320518133">"ຫາກໍໃຊ້"</string>
+    <string name="root_recent" msgid="4470053704320518133">"ຫຼ້າສຸດ"</string>
     <string name="root_available_bytes" msgid="8568452858617033281">"ຟຣີ <xliff:g id="SIZE">%1$s</xliff:g>"</string>
     <string name="root_type_service" msgid="2178854894416775409">"ບໍລິການບ່ອນຈັດເກັບຂໍ້ມູນ"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"ທາງລັດ"</string>
diff --git a/packages/DocumentsUI/res/values-pa-rIN/strings.xml b/packages/DocumentsUI/res/values-pa-rIN/strings.xml
index 1b1f3c1..71f5f59 100644
--- a/packages/DocumentsUI/res/values-pa-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-pa-rIN/strings.xml
@@ -80,7 +80,7 @@
       <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ਫ਼ਾਈਲਾਂ ਮਿਟਾ ਰਿਹਾ ਹੈ।</item>
       <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ਫ਼ਾਈਲਾਂ ਮਿਟਾ ਰਿਹਾ ਹੈ।</item>
     </plurals>
-    <string name="undo" msgid="7905788502491742328">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
+    <string name="undo" msgid="7905788502491742328">"ਅਣਕੀਤਾ ਕਰੋ"</string>
     <string name="copy_preparing" msgid="3896202461003039386">"ਕਾਪੀ ਲਈ ਤਿਆਰ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="move_preparing" msgid="2772219441375531410">"ਮੂਵ ਲਈ ਤਿਆਰ ਕਰ ਰਿਹਾ ਹੈ..."</string>
     <string name="delete_preparing" msgid="5655813182533491992">"ਮਿਟਾਉਣ ਦੀ ਤਿਆਰੀ ਹੋ ਰਹੀ ਹੈ…"</string>
diff --git a/packages/DocumentsUI/res/values-ro/strings.xml b/packages/DocumentsUI/res/values-ro/strings.xml
index 78c7988..1f519f5 100644
--- a/packages/DocumentsUI/res/values-ro/strings.xml
+++ b/packages/DocumentsUI/res/values-ro/strings.xml
@@ -38,8 +38,8 @@
     <string name="menu_paste_from_clipboard" msgid="2071583031180257091">"Inserați"</string>
     <string name="menu_advanced_show" msgid="4693652895715631401">"Afișați stocarea internă"</string>
     <string name="menu_advanced_hide" msgid="4218809952721972589">"Ascundeți stocarea internă"</string>
-    <string name="menu_file_size_show" msgid="3240323619260823076">"Afișați mărime fișiere"</string>
-    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ascundeți mărime fișiere"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Afișați dimensiunea"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ascundeți dimensiunea"</string>
     <string name="button_select" msgid="527196987259139214">"Selectați"</string>
     <string name="button_copy" msgid="8706475544635021302">"Copiați"</string>
     <string name="button_move" msgid="2202666023104202232">"Mutați"</string>
@@ -59,7 +59,7 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Comenzi rapide"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispozitive"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Alte aplicații"</string>
-    <string name="empty" msgid="7858882803708117596">"Nu există elemente"</string>
+    <string name="empty" msgid="7858882803708117596">"Niciun element"</string>
     <string name="no_results" msgid="6622510343880730446">"Niciun rezultat în %1$s"</string>
     <string name="toast_no_application" msgid="4632640357724698144">"Fișierul nu poate fi deschis"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Unele documente nu au putut fi șterse"</string>
diff --git a/packages/DocumentsUI/res/values-sw/strings.xml b/packages/DocumentsUI/res/values-sw/strings.xml
index a164026..46a0277 100644
--- a/packages/DocumentsUI/res/values-sw/strings.xml
+++ b/packages/DocumentsUI/res/values-sw/strings.xml
@@ -53,13 +53,13 @@
     <string name="save_error" msgid="6167009778003223664">"Imeshindwa kuhifadhi hati"</string>
     <string name="create_error" msgid="3735649141335444215">"Ilishindwa kuunda folda"</string>
     <string name="query_error" msgid="5999895349602476581">"Haiwezi kupakia maudhui kwa sasa"</string>
-    <string name="root_recent" msgid="4470053704320518133">"Hivi karibuni"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Za hivi karibuni"</string>
     <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> bila malipo"</string>
     <string name="root_type_service" msgid="2178854894416775409">"Huduma za hifadhi"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"Njia za mkato"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Vifaa"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Programu zaidi"</string>
-    <string name="empty" msgid="7858882803708117596">"Hakuna vipengee"</string>
+    <string name="empty" msgid="7858882803708117596">"Hakuna chochote"</string>
     <string name="no_results" msgid="6622510343880730446">"Hakuna zinazolingana katika %1$s"</string>
     <string name="toast_no_application" msgid="4632640357724698144">"Haiwezi kufungua faili"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Imeshindwa kufuta baadhi ya hati"</string>
diff --git a/packages/DocumentsUI/res/values-tl/strings.xml b/packages/DocumentsUI/res/values-tl/strings.xml
index d2d85ad..adf1b72 100644
--- a/packages/DocumentsUI/res/values-tl/strings.xml
+++ b/packages/DocumentsUI/res/values-tl/strings.xml
@@ -29,7 +29,7 @@
     <string name="menu_open" msgid="432922957274920903">"Buksan"</string>
     <string name="menu_save" msgid="2394743337684426338">"I-save"</string>
     <string name="menu_share" msgid="3075149983979628146">"Ibahagi"</string>
-    <string name="menu_delete" msgid="8138799623850614177">"Tanggalin"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"I-delete"</string>
     <string name="menu_select_all" msgid="8323579667348729928">"Piliin lahat"</string>
     <string name="menu_copy" msgid="3612326052677229148">"Kopyahin sa..."</string>
     <string name="menu_move" msgid="1828090633118079817">"Ilipat sa…"</string>
diff --git a/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
index 6ee919e..16afeb4 100644
--- a/packages/DocumentsUI/res/values-zh-rTW/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="2783841764617238354">"文件"</string>
-    <string name="downloads_label" msgid="959113951084633612">"下載內容"</string>
+    <string name="downloads_label" msgid="959113951084633612">"下載"</string>
     <string name="title_open" msgid="4353228937663917801">"開啟檔案"</string>
     <string name="title_save" msgid="2433679664882857999">"儲存至"</string>
     <string name="menu_create_dir" msgid="2547620241173881754">"新增資料夾"</string>
@@ -33,7 +33,7 @@
     <string name="menu_select_all" msgid="8323579667348729928">"全選"</string>
     <string name="menu_copy" msgid="3612326052677229148">"複製到…"</string>
     <string name="menu_move" msgid="1828090633118079817">"移至…"</string>
-    <string name="menu_new_window" msgid="1226032889278727538">"新視窗"</string>
+    <string name="menu_new_window" msgid="1226032889278727538">"新增視窗"</string>
     <string name="menu_copy_to_clipboard" msgid="489311381979634291">"複製"</string>
     <string name="menu_paste_from_clipboard" msgid="2071583031180257091">"貼上"</string>
     <string name="menu_advanced_show" msgid="4693652895715631401">"顯示內部儲存空間"</string>
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
index 64b443b..60eaad2 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
@@ -69,7 +69,7 @@
     public void reset() {
         // start fresh
         mDismissing = false;
-        resetPasswordText(false /* animate */);
+        resetPasswordText(false /* animate */, false /* announce */);
         // if the user is currently locked out, enforce it.
         long deadline = mLockPatternUtils.getLockoutAttemptDeadline(
                 KeyguardUpdateMonitor.getCurrentUser());
@@ -169,10 +169,10 @@
                 mSecurityMessageDisplay.setMessage(getWrongPasswordStringId(), true);
             }
         }
-        resetPasswordText(true /* animate */);
+        resetPasswordText(true /* animate */, !matched /* announce deletion if no match */);
     }
 
-    protected abstract void resetPasswordText(boolean animate);
+    protected abstract void resetPasswordText(boolean animate, boolean announce);
     protected abstract String getPasswordText();
     protected abstract void setPasswordEntryEnabled(boolean enabled);
     protected abstract void setPasswordEntryInputEnabled(boolean enabled);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
index 4abb795..7ea767c 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
@@ -60,6 +60,7 @@
                 R.dimen.disappear_y_translation);
     }
 
+    @Override
     protected void resetState() {
         super.resetState();
         mSecurityMessageDisplay.setMessage(R.string.kg_pin_instructions, false);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
index 189f5b7..b75f529 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
@@ -72,6 +72,7 @@
                 context, android.R.interpolator.fast_out_linear_in);
     }
 
+    @Override
     protected void resetState() {
         mSecurityMessageDisplay.setMessage(R.string.kg_password_instructions, false);
         final boolean wasDisabled = mPasswordEntry.isEnabled();
@@ -159,6 +160,7 @@
 
         // Poke the wakelock any time the text is selected or modified
         mPasswordEntry.setOnClickListener(new OnClickListener() {
+            @Override
             public void onClick(View v) {
                 mCallback.userActivity();
             }
@@ -175,6 +177,7 @@
             switchImeButton.setVisibility(View.VISIBLE);
             imeOrDeleteButtonVisible = true;
             switchImeButton.setOnClickListener(new OnClickListener() {
+                @Override
                 public void onClick(View v) {
                     mCallback.userActivity(); // Leave the screen on a bit longer
                     // Do not show auxiliary subtypes in password lock screen.
@@ -202,7 +205,7 @@
     }
 
     @Override
-    protected void resetPasswordText(boolean animate) {
+    protected void resetPasswordText(boolean animate, boolean announce) {
         mPasswordEntry.setText("");
     }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
index f14290a..c8719f3 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java
@@ -159,8 +159,8 @@
     }
 
     @Override
-    protected void resetPasswordText(boolean animate) {
-        mPasswordEntry.reset(animate);
+    protected void resetPasswordText(boolean animate, boolean announce) {
+        mPasswordEntry.reset(animate, announce);
     }
 
     @Override
@@ -214,7 +214,7 @@
             public boolean onLongClick(View v) {
                 // check for time-based lockouts
                 if (mPasswordEntry.isEnabled()) {
-                    resetPasswordText(true /* animate */);
+                    resetPasswordText(true /* animate */, true /* announce */);
                 }
                 doHapticKeyClick();
                 return true;
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
index 2033159..cfaf7b6 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
@@ -71,6 +71,7 @@
         super(context, attrs);
     }
 
+    @Override
     public void resetState() {
         super.resetState();
         if (DEBUG) Log.v(TAG, "Resetting state");
@@ -199,6 +200,7 @@
                     Log.v(TAG, "supplyPinReportResult returned: " + result[0] + " " + result[1]);
                 }
                 post(new Runnable() {
+                    @Override
                     public void run() {
                         onSimCheckResponse(result[0], result[1]);
                     }
@@ -206,6 +208,7 @@
             } catch (RemoteException e) {
                 Log.e(TAG, "RemoteException for supplyPinReportResult:", e);
                 post(new Runnable() {
+                    @Override
                     public void run() {
                         onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
                     }
@@ -250,7 +253,7 @@
         if (entry.length() < 4) {
             // otherwise, display a message to the user, and don't submit.
             mSecurityMessageDisplay.setMessage(R.string.kg_invalid_sim_pin_hint, true);
-            resetPasswordText(true);
+            resetPasswordText(true /* animate */, true /* announce */);
             mCallback.userActivity();
             return;
         }
@@ -259,13 +262,16 @@
 
         if (mCheckSimPinThread == null) {
             mCheckSimPinThread = new CheckSimPin(mPasswordEntry.getText(), mSubId) {
+                @Override
                 void onSimCheckResponse(final int result, final int attemptsRemaining) {
                     post(new Runnable() {
+                        @Override
                         public void run() {
                             if (mSimUnlockProgressDialog != null) {
                                 mSimUnlockProgressDialog.hide();
                             }
-                            resetPasswordText(true /* animate */);
+                            resetPasswordText(true /* animate */,
+                                    result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */);
                             if (result == PhoneConstants.PIN_RESULT_SUCCESS) {
                                 KeyguardUpdateMonitor.getInstance(getContext())
                                         .reportSimUnlocked(mSubId);
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
index af88239..59c01cf 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
@@ -106,7 +106,7 @@
                     msg = R.string.kg_invalid_confirm_pin_hint;
                 }
             }
-            resetPasswordText(true);
+            resetPasswordText(true /* animate */, true /* announce */);
             if (msg != 0) {
                 mSecurityMessageDisplay.setMessage(msg, true);
             }
@@ -163,6 +163,7 @@
         return displayMessage;
     }
 
+    @Override
     public void resetState() {
         super.resetState();
         mStateMachine.reset();
@@ -242,6 +243,7 @@
                     Log.v(TAG, "supplyPukReportResult returned: " + result[0] + " " + result[1]);
                 }
                 post(new Runnable() {
+                    @Override
                     public void run() {
                         onSimLockChangedResponse(result[0], result[1]);
                     }
@@ -249,6 +251,7 @@
             } catch (RemoteException e) {
                 Log.e(TAG, "RemoteException for supplyPukReportResult:", e);
                 post(new Runnable() {
+                    @Override
                     public void run() {
                         onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
                     }
@@ -316,13 +319,16 @@
 
         if (mCheckSimPukThread == null) {
             mCheckSimPukThread = new CheckSimPuk(mPukText, mPinText, mSubId) {
+                @Override
                 void onSimLockChangedResponse(final int result, final int attemptsRemaining) {
                     post(new Runnable() {
+                        @Override
                         public void run() {
                             if (mSimUnlockProgressDialog != null) {
                                 mSimUnlockProgressDialog.hide();
                             }
-                            resetPasswordText(true /* animate */);
+                            resetPasswordText(true /* animate */,
+                                    result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */);
                             if (result == PhoneConstants.PIN_RESULT_SUCCESS) {
                                 KeyguardUpdateMonitor.getInstance(getContext())
                                         .reportSimUnlocked(mSubId);
diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
index 7dba545..48737f9 100644
--- a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
+++ b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
@@ -268,7 +268,7 @@
         return charState;
     }
 
-    public void reset(boolean animated) {
+    public void reset(boolean animated, boolean announce) {
         String textbefore = mText;
         mText = "";
         int length = mTextChars.size();
@@ -297,7 +297,9 @@
         if (!animated) {
             mTextChars.clear();
         }
-        sendAccessibilityEventTypeViewTextChanged(textbefore, 0, textbefore.length(), 0);
+        if (announce) {
+            sendAccessibilityEventTypeViewTextChanged(textbefore, 0, textbefore.length(), 0);
+        }
     }
 
     void sendAccessibilityEventTypeViewTextChanged(String beforeText, int fromIndex,
diff --git a/packages/PrintSpooler/res/values-af/strings.xml b/packages/PrintSpooler/res/values-af/strings.xml
index fa5ec3f..b9fd6aa 100644
--- a/packages/PrintSpooler/res/values-af/strings.xml
+++ b/packages/PrintSpooler/res/values-af/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Meer inligting oor hierdie drukker"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Kon nie lêer skep nie"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Sommige drukdienste is gedeaktiveer"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Soek tans vir drukkers"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Geen drukdienste is geaktiveer nie"</string>
diff --git a/packages/PrintSpooler/res/values-am/strings.xml b/packages/PrintSpooler/res/values-am/strings.xml
index 5ada8d3..1eb427b 100644
--- a/packages/PrintSpooler/res/values-am/strings.xml
+++ b/packages/PrintSpooler/res/values-am/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ተጨማሪ የዚህ አታሚ መረጃ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ፋይል መፍጠር አልተቻለም"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"አንዳንድ የህትመት አገልግሎቶች ተሰናክለዋል"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"አታሚዎችን በመፈለግ ላይ"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ምንም የህትመት አገልግሎቶች አልነቁም"</string>
diff --git a/packages/PrintSpooler/res/values-ar/strings.xml b/packages/PrintSpooler/res/values-ar/strings.xml
index b9d1902..d23e1bc 100644
--- a/packages/PrintSpooler/res/values-ar/strings.xml
+++ b/packages/PrintSpooler/res/values-ar/strings.xml
@@ -65,6 +65,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"مزيد من المعلومات حول هذه الطابعة"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"تعذَّر إنشاء الملف"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"بعض خدمات الطباعة معطَّلة"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"البحث عن طابعات"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"لم يتم تمكين أي خدمات طباعة"</string>
diff --git a/packages/PrintSpooler/res/values-az-rAZ/strings.xml b/packages/PrintSpooler/res/values-az-rAZ/strings.xml
index 4404aad..1f5da5f 100644
--- a/packages/PrintSpooler/res/values-az-rAZ/strings.xml
+++ b/packages/PrintSpooler/res/values-az-rAZ/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Bu printer haqqında daha ətraflı məlumat"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Fayl yaradıla bilmədi"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Bəzi çap xidmətləri deaktiv edilib."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Printer axtarılır"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Heç bir çap xidməti aktiv edilməyib"</string>
diff --git a/packages/PrintSpooler/res/values-b+sr+Latn/strings.xml b/packages/PrintSpooler/res/values-b+sr+Latn/strings.xml
index 50ce1f9..c2b84d0 100644
--- a/packages/PrintSpooler/res/values-b+sr+Latn/strings.xml
+++ b/packages/PrintSpooler/res/values-b+sr+Latn/strings.xml
@@ -62,6 +62,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Još informacija o ovom štampaču"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Pravljenje datoteke nije uspelo"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Neke usluge štampanja su onemogućene"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Pretraga štampača"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nijedna usluga štampanja nije omogućena"</string>
diff --git a/packages/PrintSpooler/res/values-be-rBY/strings.xml b/packages/PrintSpooler/res/values-be-rBY/strings.xml
index c264f92..9cbb911 100644
--- a/packages/PrintSpooler/res/values-be-rBY/strings.xml
+++ b/packages/PrintSpooler/res/values-be-rBY/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Больш падрабязная інфармацыя пра гэты прынтар"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Не атрымалася стварыць файл"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Некаторыя службы друку адключаны"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Пошук прынтараў"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Службы друку не ўключаны"</string>
diff --git a/packages/PrintSpooler/res/values-bg/strings.xml b/packages/PrintSpooler/res/values-bg/strings.xml
index 3dd6ec5..dc32b0f 100644
--- a/packages/PrintSpooler/res/values-bg/strings.xml
+++ b/packages/PrintSpooler/res/values-bg/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Още информация за този принтер"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Файлът не можа да бъде създаден"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Някои услуги за отпечатване са деактивирани"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Търсене на принтери"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Няма активирани услуги за отпечатване"</string>
diff --git a/packages/PrintSpooler/res/values-bn-rBD/strings.xml b/packages/PrintSpooler/res/values-bn-rBD/strings.xml
index 3789f21..c074791 100644
--- a/packages/PrintSpooler/res/values-bn-rBD/strings.xml
+++ b/packages/PrintSpooler/res/values-bn-rBD/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"এই মুদ্রকটির বিষয়ে আরো তথ্য"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ফাইল তৈরি করা গেল না"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"কিছু মুদ্রণ পরিষেবা অক্ষম করা আছে"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"মুদ্রকগুলি অনুসন্ধান করা হচ্ছে"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"প্রিন্ট পরিষেবা সক্ষম নেই"</string>
diff --git a/packages/PrintSpooler/res/values-bs-rBA/strings.xml b/packages/PrintSpooler/res/values-bs-rBA/strings.xml
index c3c9bb33..cc04d66 100644
--- a/packages/PrintSpooler/res/values-bs-rBA/strings.xml
+++ b/packages/PrintSpooler/res/values-bs-rBA/strings.xml
@@ -62,6 +62,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Više informacija o ovom štampaču"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Nije uspjelo kreiranje fajla"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Neke usluge za štampanje su isključene"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Traženje štampača"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Usluga za štampanje nije uključena"</string>
diff --git a/packages/PrintSpooler/res/values-ca/strings.xml b/packages/PrintSpooler/res/values-ca/strings.xml
index f65a63c..f0404ab 100644
--- a/packages/PrintSpooler/res/values-ca/strings.xml
+++ b/packages/PrintSpooler/res/values-ca/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Més informació sobre aquesta impressora"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Alguns serveis d\'impressió estan desactivats"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Cerca d\'impressores"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No hi ha cap servei d\'impressió activat"</string>
diff --git a/packages/PrintSpooler/res/values-cs/strings.xml b/packages/PrintSpooler/res/values-cs/strings.xml
index 9bfa271..5c0a1ef 100644
--- a/packages/PrintSpooler/res/values-cs/strings.xml
+++ b/packages/PrintSpooler/res/values-cs/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Další informace o této tiskárně"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Soubor nelze vytvořit"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Některé tiskové služby nejsou aktivovány"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Vyhledávání tiskáren"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nejsou aktivovány žádné tiskové služby"</string>
diff --git a/packages/PrintSpooler/res/values-da/strings.xml b/packages/PrintSpooler/res/values-da/strings.xml
index 75a0b56..0d1e2cd 100644
--- a/packages/PrintSpooler/res/values-da/strings.xml
+++ b/packages/PrintSpooler/res/values-da/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Flere oplysninger om denne printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Filen kunne ikke oprettes"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Nogle udskrivningstjenester er deaktiveret"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Søger efter printere"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ingen udskrivningstjenester er aktiveret"</string>
diff --git a/packages/PrintSpooler/res/values-de/strings.xml b/packages/PrintSpooler/res/values-de/strings.xml
index 8c6181d..7ac57db 100644
--- a/packages/PrintSpooler/res/values-de/strings.xml
+++ b/packages/PrintSpooler/res/values-de/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Weitere Informationen über diesen Drucker"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Datei konnte nicht erstellt werden"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Einige Druckdienste sind deaktiviert"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Suche nach Druckern"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Keine Druckdienste aktiviert"</string>
diff --git a/packages/PrintSpooler/res/values-el/strings.xml b/packages/PrintSpooler/res/values-el/strings.xml
index 31d3f83..929c082 100644
--- a/packages/PrintSpooler/res/values-el/strings.xml
+++ b/packages/PrintSpooler/res/values-el/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Περισσότερες πληροφορίες σχετικά με αυτόν τον εκτυπωτή"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Δεν ήταν δυνατή η δημιουργία του αρχείου"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Ορισμένες υπηρ. εκτύπωσης είναι απενεργοποιημένες"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Αναζήτηση για εκτυπωτές"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Δεν έχουν ενεργοποιηθεί υπηρεσίες εκτύπωσης"</string>
diff --git a/packages/PrintSpooler/res/values-en-rAU/strings.xml b/packages/PrintSpooler/res/values-en-rAU/strings.xml
index 5e32ae4..c9c33a8 100644
--- a/packages/PrintSpooler/res/values-en-rAU/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rAU/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"More information about this printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Could not create file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Some print services are disabled"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No print services enabled"</string>
diff --git a/packages/PrintSpooler/res/values-en-rGB/strings.xml b/packages/PrintSpooler/res/values-en-rGB/strings.xml
index 5e32ae4..c9c33a8 100644
--- a/packages/PrintSpooler/res/values-en-rGB/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rGB/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"More information about this printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Could not create file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Some print services are disabled"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No print services enabled"</string>
diff --git a/packages/PrintSpooler/res/values-en-rIN/strings.xml b/packages/PrintSpooler/res/values-en-rIN/strings.xml
index 5e32ae4..c9c33a8 100644
--- a/packages/PrintSpooler/res/values-en-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-en-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"More information about this printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Could not create file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Some print services are disabled"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Searching for printers"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No print services enabled"</string>
diff --git a/packages/PrintSpooler/res/values-es-rUS/strings.xml b/packages/PrintSpooler/res/values-es-rUS/strings.xml
index a6a9f07..e2d261c 100644
--- a/packages/PrintSpooler/res/values-es-rUS/strings.xml
+++ b/packages/PrintSpooler/res/values-es-rUS/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Más información sobre esta impresora"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"No se pudo crear el archivo"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Hay servicios de impresión inhabilitados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Buscando impresoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No hay servicios de impresión habilitados"</string>
diff --git a/packages/PrintSpooler/res/values-es/strings.xml b/packages/PrintSpooler/res/values-es/strings.xml
index 4f6731d..9d7badb 100644
--- a/packages/PrintSpooler/res/values-es/strings.xml
+++ b/packages/PrintSpooler/res/values-es/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Más información sobre esta impresora"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"No se ha podido crear el archivo"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Algunos servicios de impresión están inhabilitados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Buscando impresoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"No hay servicios de impresión habilitados"</string>
diff --git a/packages/PrintSpooler/res/values-et-rEE/strings.xml b/packages/PrintSpooler/res/values-et-rEE/strings.xml
index 3d0516c..569ef31 100644
--- a/packages/PrintSpooler/res/values-et-rEE/strings.xml
+++ b/packages/PrintSpooler/res/values-et-rEE/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Lisateave selle printeri kohta"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Faili ei õnnestunud luua"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Mõned printimisteenused on keelatud"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Printerite otsimine"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ühtegi printimisteenust pole lubatud"</string>
diff --git a/packages/PrintSpooler/res/values-eu-rES/strings.xml b/packages/PrintSpooler/res/values-eu-rES/strings.xml
index c56692f..5c3d379 100644
--- a/packages/PrintSpooler/res/values-eu-rES/strings.xml
+++ b/packages/PrintSpooler/res/values-eu-rES/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Informazio gehiago inprimagailuari buruz"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Desgaituta daude inprimatzeko zerbitzu batzuk"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Inprimagailuak bilatzen"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ez dago gaituta inprimatzeko zerbitzurik"</string>
diff --git a/packages/PrintSpooler/res/values-fa/strings.xml b/packages/PrintSpooler/res/values-fa/strings.xml
index 9d9c08a9..0606452 100644
--- a/packages/PrintSpooler/res/values-fa/strings.xml
+++ b/packages/PrintSpooler/res/values-fa/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"اطلاعات بیشتر درباره چاپگر"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"بعضی از خدمات چاپ غیرفعال هستند"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"درحال جستجوی چاپگرها"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"هیچ خدمات چاپی فعال نیست"</string>
diff --git a/packages/PrintSpooler/res/values-fi/strings.xml b/packages/PrintSpooler/res/values-fi/strings.xml
index 3d6897d..8c62d5c 100644
--- a/packages/PrintSpooler/res/values-fi/strings.xml
+++ b/packages/PrintSpooler/res/values-fi/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Lisätietoja tästä tulostimesta"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Tiedoston luominen epäonnistui."</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Osa tulostuspalveluista on poistettu käytöstä."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Etsitään tulostimia"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ei käytössä olevia tulostuspalveluita"</string>
diff --git a/packages/PrintSpooler/res/values-fr-rCA/strings.xml b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
index 6c9539a..7efd751 100644
--- a/packages/PrintSpooler/res/values-fr-rCA/strings.xml
+++ b/packages/PrintSpooler/res/values-fr-rCA/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Plus d\'information sur cette imprimante"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Certains services d\'impression sont désactivés"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Recherche d\'imprimantes en cours..."</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Aucun service d\'impression activé"</string>
diff --git a/packages/PrintSpooler/res/values-fr/strings.xml b/packages/PrintSpooler/res/values-fr/strings.xml
index 64add68..efd7c5a 100644
--- a/packages/PrintSpooler/res/values-fr/strings.xml
+++ b/packages/PrintSpooler/res/values-fr/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Plus d\'informations sur cette imprimante"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Certains services d\'impression sont désactivés."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Recherche d\'imprimantes en cours"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Aucun service d\'impression activé"</string>
diff --git a/packages/PrintSpooler/res/values-gl-rES/strings.xml b/packages/PrintSpooler/res/values-gl-rES/strings.xml
index 099159d..bb4e052 100644
--- a/packages/PrintSpooler/res/values-gl-rES/strings.xml
+++ b/packages/PrintSpooler/res/values-gl-rES/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Máis información sobre esta impresora"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Non se puido crear o arquivo"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Algúns servizos de impresión están desactivados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Busca de impresoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Non hai servizos de impresión activados"</string>
diff --git a/packages/PrintSpooler/res/values-gu-rIN/strings.xml b/packages/PrintSpooler/res/values-gu-rIN/strings.xml
index b42fdab..8178571 100644
--- a/packages/PrintSpooler/res/values-gu-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-gu-rIN/strings.xml
@@ -33,8 +33,8 @@
     <string name="pages_range_example" msgid="8558694453556945172">"દા.ત. 1—5,8,11—13"</string>
     <string name="print_preview" msgid="8010217796057763343">"પ્રિન્ટ પૂર્વાવલોકન"</string>
     <string name="install_for_print_preview" msgid="6366303997385509332">"પૂર્વાવલોકન માટે PDF દર્શક ઇન્સ્ટોલ કરો"</string>
-    <string name="printing_app_crashed" msgid="854477616686566398">"પ્રિન્ટીંગ એપ્લિકેશન ક્રેશ થઈ"</string>
-    <string name="generating_print_job" msgid="3119608742651698916">"પ્રિન્ટ જોબ બનાવી રહ્યું છે"</string>
+    <string name="printing_app_crashed" msgid="854477616686566398">"પ્રિન્ટીંગ ઍપ્લિકેશન ક્રેશ થઈ"</string>
+    <string name="generating_print_job" msgid="3119608742651698916">"છાપ કાર્ય બનાવી રહ્યું છે"</string>
     <string name="save_as_pdf" msgid="5718454119847596853">"PDF તરીકે સાચવો"</string>
     <string name="all_printers" msgid="5018829726861876202">"બધા પ્રિન્ટર્સ…"</string>
     <string name="print_dialog" msgid="32628687461331979">"પ્રિન્ટ સંવાદ"</string>
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"આ પ્રિન્ટર વિશે વધુ માહિતી"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ફાઇલ બનાવી શક્યાં નથી"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"કેટલીક છાપવાની સેવાઓ અક્ષમ કરેલ છે"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"પ્રિન્ટર્સ માટે શોધી રહ્યું છે"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"કોઈ છાપ સેવાઓ સક્ષમ કરેલ નથી"</string>
diff --git a/packages/PrintSpooler/res/values-hi/strings.xml b/packages/PrintSpooler/res/values-hi/strings.xml
index 507754a0..8095f0f 100644
--- a/packages/PrintSpooler/res/values-hi/strings.xml
+++ b/packages/PrintSpooler/res/values-hi/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"इस प्रिंटर के बारे में अधिक जानकारी"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"फ़ाइल नहीं बनाई जा सकी"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"कुछ प्रिंट सेवाएं अक्षम हैं"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"प्रिंटर खोज रहा है"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"कोई भी प्रिंट सेवा सक्षम नहीं है"</string>
diff --git a/packages/PrintSpooler/res/values-hr/strings.xml b/packages/PrintSpooler/res/values-hr/strings.xml
index 92c97ea..ea8be70 100644
--- a/packages/PrintSpooler/res/values-hr/strings.xml
+++ b/packages/PrintSpooler/res/values-hr/strings.xml
@@ -62,6 +62,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Više informacija o ovom pisaču"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Izrada datoteke nije uspjela"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Neke su usluge ispisa onemogućene"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Traženje pisača"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nije omogućena nijedna usluga ispisa"</string>
diff --git a/packages/PrintSpooler/res/values-hu/strings.xml b/packages/PrintSpooler/res/values-hu/strings.xml
index a2e53db..6e2a620 100644
--- a/packages/PrintSpooler/res/values-hu/strings.xml
+++ b/packages/PrintSpooler/res/values-hu/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"További információ erről a nyomtatóról"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Nem sikerült létrehozni a fájlt"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Egyes nyomtatási szolgáltatások le vannak tiltva"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Nyomtatók keresése"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nincs engedélyezett nyomtatási szolgáltatás"</string>
diff --git a/packages/PrintSpooler/res/values-hy-rAM/strings.xml b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
index e26c244..65a34d2 100644
--- a/packages/PrintSpooler/res/values-hy-rAM/strings.xml
+++ b/packages/PrintSpooler/res/values-hy-rAM/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Հավելյալ տեղեկություններ այս տպիչի մասին"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Չհաջողվեց ստեղծել ֆայլ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Տպելու որոշ ծառայությունները կասեցված են"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Տպիչների որոնում"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ակտիվացված տպման ծառայություններ չկան"</string>
diff --git a/packages/PrintSpooler/res/values-in/strings.xml b/packages/PrintSpooler/res/values-in/strings.xml
index 4ec0644..e9b49bb 100644
--- a/packages/PrintSpooler/res/values-in/strings.xml
+++ b/packages/PrintSpooler/res/values-in/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Informasi selengkapnya tentang printer ini"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Tidak dapat membuat file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Beberapa layanan cetak dinonaktifkan"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari printer"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Tidak ada layanan cetak yang aktif"</string>
diff --git a/packages/PrintSpooler/res/values-is-rIS/strings.xml b/packages/PrintSpooler/res/values-is-rIS/strings.xml
index e05f07f..0ec97e1 100644
--- a/packages/PrintSpooler/res/values-is-rIS/strings.xml
+++ b/packages/PrintSpooler/res/values-is-rIS/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Frekari upplýsingar um þennan prentara"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Ekki tókst að búa til skrá"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Hluti prentþjónustunnar er óvirkur"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Leitar að prentara"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Engin prentþjónusta er virk"</string>
diff --git a/packages/PrintSpooler/res/values-it/strings.xml b/packages/PrintSpooler/res/values-it/strings.xml
index 39a0a61..c9e893e 100644
--- a/packages/PrintSpooler/res/values-it/strings.xml
+++ b/packages/PrintSpooler/res/values-it/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Ulteriori informazioni su questa stampante"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Impossibile creare il file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Alcuni servizi di stampa sono disattivati"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Ricerca di stampanti"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Non è stato attivato alcun servizio di stampa"</string>
diff --git a/packages/PrintSpooler/res/values-iw/strings.xml b/packages/PrintSpooler/res/values-iw/strings.xml
index 9aa4104..dcc3f6b 100644
--- a/packages/PrintSpooler/res/values-iw/strings.xml
+++ b/packages/PrintSpooler/res/values-iw/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"מידע נוסף על מדפסת זו"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"לא ניתן היה ליצור קובץ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"שירותי הדפסה מסוימים מושבתים"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"מחפש מדפסות"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"לא הופעלו שירותי הדפסה"</string>
diff --git a/packages/PrintSpooler/res/values-ja/strings.xml b/packages/PrintSpooler/res/values-ja/strings.xml
index f97efc1..6d03880 100644
--- a/packages/PrintSpooler/res/values-ja/strings.xml
+++ b/packages/PrintSpooler/res/values-ja/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"このプリンタの詳細"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ファイルを作成できませんでした"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"一部の印刷サービスは無効になっています"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"プリンタの検索中"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"使用できる印刷サービスがありません"</string>
diff --git a/packages/PrintSpooler/res/values-ka-rGE/strings.xml b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
index 9cb8b39..0991a29 100644
--- a/packages/PrintSpooler/res/values-ka-rGE/strings.xml
+++ b/packages/PrintSpooler/res/values-ka-rGE/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> — <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"დამატებითი ინფორმაცია ამ პრინტერის შესახებ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ფაილი ვერ შეიქმნა"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"ბეჭდვის ზოგიერთი სერვისი გათიშულია"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"მიმდინარეობს პრინტერების ძიება"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ბეჭდვის სერვისები გააქტიურებული არ არის"</string>
diff --git a/packages/PrintSpooler/res/values-kk-rKZ/strings.xml b/packages/PrintSpooler/res/values-kk-rKZ/strings.xml
index 37b2cd3a..505e07d 100644
--- a/packages/PrintSpooler/res/values-kk-rKZ/strings.xml
+++ b/packages/PrintSpooler/res/values-kk-rKZ/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Осы принтер туралы қосымша ақпарат"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Файл жасалмады"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Кейбір басып шығару қызметтері өшірілген."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Принтерлерді іздеу"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Басып шығару қызметтері қосылмаған"</string>
diff --git a/packages/PrintSpooler/res/values-km-rKH/strings.xml b/packages/PrintSpooler/res/values-km-rKH/strings.xml
index 12d296d..5f65c7b 100644
--- a/packages/PrintSpooler/res/values-km-rKH/strings.xml
+++ b/packages/PrintSpooler/res/values-km-rKH/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ព័ត៌មានបន្ថែមអំពីម៉ាស៊ីបោះពុម្ពនេះ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"មិនអាចបង្កើតឯកសារបានទេ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"សេវាកម្មបោះពុម្ពមួយចំនួនត្រូវបានបិទដំណើរការ"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"ស្វែងរក​ម៉ាស៊ីន​បោះពុម្ព"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"គ្មានការបើកដំណើរការសេវាបោះពុម្ពទេ"</string>
diff --git a/packages/PrintSpooler/res/values-kn-rIN/strings.xml b/packages/PrintSpooler/res/values-kn-rIN/strings.xml
index 8b1acdd..f4b9d61 100644
--- a/packages/PrintSpooler/res/values-kn-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-kn-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ಈ ಪ್ರಿಂಟರ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಮಾಹಿತಿ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ಫೈಲ್‌ ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"ಕೆಲವು ಮುದ್ರಣ ಸೇವೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"ಪ್ರಿಂಟರ್‌‌ಗಳಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ಯಾವುದೇ ಮುದ್ರಣ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿಲ್ಲ"</string>
diff --git a/packages/PrintSpooler/res/values-ko/strings.xml b/packages/PrintSpooler/res/values-ko/strings.xml
index e6ca240..abd6959 100644
--- a/packages/PrintSpooler/res/values-ko/strings.xml
+++ b/packages/PrintSpooler/res/values-ko/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"이 프린터에 대한 정보 더보기"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"파일을 만들 수 없습니다."</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"프린트 서비스 일부가 사용 중지되었습니다."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"프린터 검색 중"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"사용 가능한 프린트 서비스 없음"</string>
diff --git a/packages/PrintSpooler/res/values-ky-rKG/strings.xml b/packages/PrintSpooler/res/values-ky-rKG/strings.xml
index ae0b05e..3886c9f 100644
--- a/packages/PrintSpooler/res/values-ky-rKG/strings.xml
+++ b/packages/PrintSpooler/res/values-ky-rKG/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Бул принтер жөнүндө көбүрөөк маалымат"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Файл түзүлбөй койду"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Басып чыгаруу кызматтарынын айрымы өчүрүлгөн"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Принтерлер изделүүдө"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Принтер-кызматтары иштетилген эмес"</string>
diff --git a/packages/PrintSpooler/res/values-lo-rLA/strings.xml b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
index 2392e4a..e424af9 100644
--- a/packages/PrintSpooler/res/values-lo-rLA/strings.xml
+++ b/packages/PrintSpooler/res/values-lo-rLA/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບເຄື່ອງພິມນີ້"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ບໍ່ສາມາດສ້າງໄຟລ໌ໄດ້"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"ບາງການບໍລິການພິມຖືກປິດການນຳໃຊ້"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"ກຳລັງຊອກຫາເຄື່ອງພິມ"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ບໍ່​ມີ​ການ​ບໍ​ລິ​ການ​ພິມ​ເປີດ​ໃຊ້​ງານ​ໄວ້"</string>
diff --git a/packages/PrintSpooler/res/values-lt/strings.xml b/packages/PrintSpooler/res/values-lt/strings.xml
index 65ccc2b..25a36a4 100644
--- a/packages/PrintSpooler/res/values-lt/strings.xml
+++ b/packages/PrintSpooler/res/values-lt/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"„<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g>“ – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Daugiau informacijos apie šį spausdintuvą"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Nepavyko sukurti failo"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Kai kurios spausdinimo paslaugos išjungtos"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Ieškoma spausdintuvų"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Neįgalinta jokių spausdinimo paslaugų"</string>
diff --git a/packages/PrintSpooler/res/values-lv/strings.xml b/packages/PrintSpooler/res/values-lv/strings.xml
index 1bcfe78..e0a076e 100644
--- a/packages/PrintSpooler/res/values-lv/strings.xml
+++ b/packages/PrintSpooler/res/values-lv/strings.xml
@@ -62,6 +62,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> — <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Plašāka informācija par šo printeri"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Daži drukas pakalpojumi ir atspējoti."</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Printeru meklēšana"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nav iespējots neviens drukas pakalpojums"</string>
diff --git a/packages/PrintSpooler/res/values-mk-rMK/strings.xml b/packages/PrintSpooler/res/values-mk-rMK/strings.xml
index d29566bc..624b81b 100644
--- a/packages/PrintSpooler/res/values-mk-rMK/strings.xml
+++ b/packages/PrintSpooler/res/values-mk-rMK/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Повеќе информации за овој печатач"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Не можеше да се создаде датотека"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Некои услуги за печатење се оневозможени"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Пребарување печатачи"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Нема овозможени услуги за печатење"</string>
diff --git a/packages/PrintSpooler/res/values-ml-rIN/strings.xml b/packages/PrintSpooler/res/values-ml-rIN/strings.xml
index 16d654c..a213fa6 100644
--- a/packages/PrintSpooler/res/values-ml-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-ml-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ഈ പ്രിന്ററിനെ കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ഫയൽ സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"ചില പ്രിന്റ് സേവനങ്ങൾ പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"പ്രിന്ററുകൾക്കായി തിരയുന്നു"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"പ്രിന്റ് സേവനങ്ങളൊന്നും പ്രവർത്തനക്ഷമാക്കിയിട്ടില്ല"</string>
diff --git a/packages/PrintSpooler/res/values-mn-rMN/strings.xml b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
index ded0665..ab5c30d 100644
--- a/packages/PrintSpooler/res/values-mn-rMN/strings.xml
+++ b/packages/PrintSpooler/res/values-mn-rMN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Энэ хэвлэгчийн талаарх дэлгэрэнгүй мэдээлэл"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Файл үүсгэж чадсангүй"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Зарим хэвлэх үйлчилгээг идэвхгүй болгосон байна"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Принтер хайж байна"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Хэвлэх үйлчилгээг идэвхжүүлээгүй"</string>
diff --git a/packages/PrintSpooler/res/values-mr-rIN/strings.xml b/packages/PrintSpooler/res/values-mr-rIN/strings.xml
index 5436635..53d0d41 100644
--- a/packages/PrintSpooler/res/values-mr-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-mr-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"या प्रिंटर विषयी अधिक माहिती"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"फाईल तयार करणेे शक्य झाले नाही"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"काही मुद्रण सेवा अक्षम केल्या आहेत"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"प्रिंटर शोधत आहे"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"कोणत्याही मुद्रण सेवा सक्षम केलेल्या नाहीत"</string>
diff --git a/packages/PrintSpooler/res/values-ms-rMY/strings.xml b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
index 8af5232..5c43b4f 100644
--- a/packages/PrintSpooler/res/values-ms-rMY/strings.xml
+++ b/packages/PrintSpooler/res/values-ms-rMY/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Maklumat lanjut tentang pencetak ini"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Tidak dapat membuat fail"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Sesetengah perkhidmatan cetak dilumpuhkan"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari pencetak"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Perkhidmatan cetak tidak didayakan"</string>
diff --git a/packages/PrintSpooler/res/values-my-rMM/strings.xml b/packages/PrintSpooler/res/values-my-rMM/strings.xml
index 9b5f46a..1f07007 100644
--- a/packages/PrintSpooler/res/values-my-rMM/strings.xml
+++ b/packages/PrintSpooler/res/values-my-rMM/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ဤပရင်တာ အကြောင်း ပိုမိုလေ့လာပါ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ဖိုင်ဖန်တီး၍မရပါ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"အချို့ပုံနှိပ်ဝန်ဆောင်မှုများကို ပိတ်ထားပါသည်"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"စာထုတ်စက်များကို ရှာနေပါသည်"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ပုံနှိပ်ထုတ်ယူရေး ဝန်ဆောင်မှုများ ဖွင့်မထားပါ"</string>
@@ -80,7 +81,7 @@
     <string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> ကို ပယ်ဖျက်နေပါသည်"</string>
     <string name="failed_notification_title_template" msgid="2256217208186530973">"စာထုတ်စက်မှ အမှား <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
     <string name="blocked_notification_title_template" msgid="1175435827331588646">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>ကိုစာထုတ်စက်ကငြင်းလိုက်သည်"</string>
-    <string name="cancel" msgid="4373674107267141885">"ပယ်ဖျက်"</string>
+    <string name="cancel" msgid="4373674107267141885">"ဖျက်သိမ်းရန်"</string>
     <string name="restart" msgid="2472034227037808749">"အစက ပြန်စရန်"</string>
     <string name="no_connection_to_printer" msgid="2159246915977282728">"စာထုတ်စက်နဲ့ ဆက်သွယ်ထားမှု မရှိပါ"</string>
     <string name="reason_unknown" msgid="5507940196503246139">"အကြောင်းအရာ မသိရှိ"</string>
diff --git a/packages/PrintSpooler/res/values-nb/strings.xml b/packages/PrintSpooler/res/values-nb/strings.xml
index 82282ba..720e0ca 100644
--- a/packages/PrintSpooler/res/values-nb/strings.xml
+++ b/packages/PrintSpooler/res/values-nb/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mer informasjon om denne printeren"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Kunne ikke opprette fil"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Noen utskriftstjenester er slått av"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Søker etter skrivere"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ingen utskriftstjenester er slått på"</string>
diff --git a/packages/PrintSpooler/res/values-ne-rNP/strings.xml b/packages/PrintSpooler/res/values-ne-rNP/strings.xml
index 4cf2f51..c30e367 100644
--- a/packages/PrintSpooler/res/values-ne-rNP/strings.xml
+++ b/packages/PrintSpooler/res/values-ne-rNP/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"यस प्रिन्टरको बारेमा थप जानकारी"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"फाइल सिर्जना गर्न सकिएन"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"केही मुद्रण सम्बन्धी सेवाहरूलाई असक्षम गरिएको छ"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"प्रिन्टरहरू खोज्दै"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"कुनै पनि मुद्रण सेवाहरू सक्रिय छैनन्"</string>
diff --git a/packages/PrintSpooler/res/values-nl/strings.xml b/packages/PrintSpooler/res/values-nl/strings.xml
index 83b9a22..7e1f37e 100644
--- a/packages/PrintSpooler/res/values-nl/strings.xml
+++ b/packages/PrintSpooler/res/values-nl/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Meer informatie over deze printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Kan bestand niet maken"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Sommige afdrukservices zijn uitgeschakeld"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Printers zoeken"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Geen afdrukservices ingeschakeld"</string>
diff --git a/packages/PrintSpooler/res/values-pa-rIN/strings.xml b/packages/PrintSpooler/res/values-pa-rIN/strings.xml
index 5f3366f..8a5fc97 100644
--- a/packages/PrintSpooler/res/values-pa-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-pa-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ਇਸ ਪ੍ਰਿੰਟਰ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ਫ਼ਾਈਲ ਨੂੰ ਬਣਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"ਕੁਝ ਪ੍ਰਿੰਟ ਸੇਵਾਵਾਂ ਅਯੋਗ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"ਪ੍ਰਿੰਟਰ ਖੋਜ ਰਿਹਾ ਹੈ"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ਪ੍ਰਿੰਟ ਸੇਵਾਵਾਂ ਯੋਗ ਨਹੀਂ ਬਣਾਈਆਂ ਗਈਆਂ"</string>
diff --git a/packages/PrintSpooler/res/values-pl/strings.xml b/packages/PrintSpooler/res/values-pl/strings.xml
index e7fb7b6..401cbfb 100644
--- a/packages/PrintSpooler/res/values-pl/strings.xml
+++ b/packages/PrintSpooler/res/values-pl/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Więcej informacji o tej drukarce"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Nie udało się utworzyć pliku"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Niektóre usługi drukowania są wyłączone"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Szukanie drukarek"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Brak włączonych usług drukowania"</string>
diff --git a/packages/PrintSpooler/res/values-pt-rBR/strings.xml b/packages/PrintSpooler/res/values-pt-rBR/strings.xml
index dd8cdb2..7efe64f 100644
--- a/packages/PrintSpooler/res/values-pt-rBR/strings.xml
+++ b/packages/PrintSpooler/res/values-pt-rBR/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mais informações sobre essa impressora"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Alguns serviços de impressão estão desativados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Procurando impressoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nenhum serviço de impressão ativado"</string>
diff --git a/packages/PrintSpooler/res/values-pt-rPT/strings.xml b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
index c1fe7bf..09904c0 100644
--- a/packages/PrintSpooler/res/values-pt-rPT/strings.xml
+++ b/packages/PrintSpooler/res/values-pt-rPT/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mais informações acerca desta impressora"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Não foi possível criar o ficheiro"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Alguns serviços de impressão estão desativados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"A procurar impressoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nenhum serviço de impressão ativado"</string>
diff --git a/packages/PrintSpooler/res/values-pt/strings.xml b/packages/PrintSpooler/res/values-pt/strings.xml
index dd8cdb2..7efe64f 100644
--- a/packages/PrintSpooler/res/values-pt/strings.xml
+++ b/packages/PrintSpooler/res/values-pt/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mais informações sobre essa impressora"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Alguns serviços de impressão estão desativados"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Procurando impressoras"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nenhum serviço de impressão ativado"</string>
diff --git a/packages/PrintSpooler/res/values-ro/strings.xml b/packages/PrintSpooler/res/values-ro/strings.xml
index b326e09..3202bca 100644
--- a/packages/PrintSpooler/res/values-ro/strings.xml
+++ b/packages/PrintSpooler/res/values-ro/strings.xml
@@ -62,6 +62,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mai multe informații despre această imprimantă"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Unele servicii de printare sunt dezactivate"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Se caută imprimante"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Niciun serviciu de printare activat"</string>
diff --git a/packages/PrintSpooler/res/values-ru/strings.xml b/packages/PrintSpooler/res/values-ru/strings.xml
index 5acadbc..7bcec0d 100644
--- a/packages/PrintSpooler/res/values-ru/strings.xml
+++ b/packages/PrintSpooler/res/values-ru/strings.xml
@@ -63,6 +63,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Подробные сведения о принтере"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Некоторые службы печати отключены"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Поиск принтеров…"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Службы печати недоступны"</string>
diff --git a/packages/PrintSpooler/res/values-si-rLK/strings.xml b/packages/PrintSpooler/res/values-si-rLK/strings.xml
index db4c5fd..c3597a7 100644
--- a/packages/PrintSpooler/res/values-si-rLK/strings.xml
+++ b/packages/PrintSpooler/res/values-si-rLK/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"මෙම මුද්‍රණ යන්ත්‍රය ගැන තවත් තොරතුරු"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ගොනුව සෑදීමට නොහැකි විය"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"සමහර මුද්‍රණ සේවා අබලයි"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"මුද්‍රණ යන්ත්‍ර සොයමින්"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"මුද්‍රණ සේවා සබල නැත"</string>
diff --git a/packages/PrintSpooler/res/values-sk/strings.xml b/packages/PrintSpooler/res/values-sk/strings.xml
index 63ee5e2..6234f8c 100644
--- a/packages/PrintSpooler/res/values-sk/strings.xml
+++ b/packages/PrintSpooler/res/values-sk/strings.xml
@@ -63,6 +63,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Ďalšie informácie o tejto tlačiarni"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Niektoré tlačové služby sú zakázané"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Vyhľadávanie tlačiarní"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Žiadne tlačové služby nie sú aktivované"</string>
diff --git a/packages/PrintSpooler/res/values-sl/strings.xml b/packages/PrintSpooler/res/values-sl/strings.xml
index f7616db..b751fbb 100644
--- a/packages/PrintSpooler/res/values-sl/strings.xml
+++ b/packages/PrintSpooler/res/values-sl/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Več informacij o tem tiskalniku"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Datoteke ni bilo mogoče ustvariti"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Nekatere tiskalne storitve so onemogočene"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Iskanje tiskalnikov"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ni omogočenih tiskalnih storitev"</string>
diff --git a/packages/PrintSpooler/res/values-sq-rAL/strings.xml b/packages/PrintSpooler/res/values-sq-rAL/strings.xml
index f4d2817..9765e11 100644
--- a/packages/PrintSpooler/res/values-sq-rAL/strings.xml
+++ b/packages/PrintSpooler/res/values-sq-rAL/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Më shumë informacione mbi këtë printer"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Skedari nuk mund të krijohej"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Disa shërbime printimi janë çaktivizuar"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Po kërkon për printerë"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Nuk ka shërbime printimi të aktivizuara"</string>
diff --git a/packages/PrintSpooler/res/values-sr/strings.xml b/packages/PrintSpooler/res/values-sr/strings.xml
index b285044..3b66b38 100644
--- a/packages/PrintSpooler/res/values-sr/strings.xml
+++ b/packages/PrintSpooler/res/values-sr/strings.xml
@@ -62,6 +62,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Још информација о овом штампачу"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Прављење датотеке није успело"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Неке услуге штампања су онемогућене"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Претрага штампача"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Ниједна услуга штампања није омогућена"</string>
diff --git a/packages/PrintSpooler/res/values-sv/strings.xml b/packages/PrintSpooler/res/values-sv/strings.xml
index 4a72800..eebc9b9 100644
--- a/packages/PrintSpooler/res/values-sv/strings.xml
+++ b/packages/PrintSpooler/res/values-sv/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Mer information om den här skrivaren"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Det gick inte att skapa filen"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Några utskriftstjänster har inaktiverats"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Söker efter skrivare"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Inga utskriftstjänster har aktiverats"</string>
diff --git a/packages/PrintSpooler/res/values-sw/strings.xml b/packages/PrintSpooler/res/values-sw/strings.xml
index 34b935d..1944a4b 100644
--- a/packages/PrintSpooler/res/values-sw/strings.xml
+++ b/packages/PrintSpooler/res/values-sw/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Maelezo zaidi kuhusu printa hii"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Imeshindwa kuunda faili"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Baadhi ya huduma za uchapishaji haziruhusiwi"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Inatafuta printa"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Huduma za kuchapisha hazijawashwa"</string>
diff --git a/packages/PrintSpooler/res/values-ta-rIN/strings.xml b/packages/PrintSpooler/res/values-ta-rIN/strings.xml
index 22f41bf..65198e8 100644
--- a/packages/PrintSpooler/res/values-ta-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-ta-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"இந்தப் பிரிண்டர் பற்றிய கூடுதல் தகவல்"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"கோப்பை உருவாக்க முடியவில்லை"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"சில அச்சுப் பொறிகள் முடக்கப்பட்டன"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"அச்சுப்பொறிகளைத் தேடுகிறது"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"அச்சுப் பொறிகள் இல்லை"</string>
diff --git a/packages/PrintSpooler/res/values-te-rIN/strings.xml b/packages/PrintSpooler/res/values-te-rIN/strings.xml
index 1211cfd..ddc48fc 100644
--- a/packages/PrintSpooler/res/values-te-rIN/strings.xml
+++ b/packages/PrintSpooler/res/values-te-rIN/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ఈ ప్రింటర్ గురించి మరింత సమాచారం"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ఫైల్‌ను సృష్టించలేకపోయాము"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"కొన్ని ముద్రణ సేవలు నిలిపివేయబడ్డాయి"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"ప్రింటర్‌ల కోసం శోధిస్తోంది"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ముద్రణ సేవలు ఏవీ ప్రారంభించలేదు"</string>
diff --git a/packages/PrintSpooler/res/values-th/strings.xml b/packages/PrintSpooler/res/values-th/strings.xml
index 7f99288..3faa96f 100644
--- a/packages/PrintSpooler/res/values-th/strings.xml
+++ b/packages/PrintSpooler/res/values-th/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"ข้อมูลเพิ่มเติมเกี่ยวกับเครื่องพิมพ์นี้"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"ไม่สามารถสร้างไฟล์ได้"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"บริการพิมพ์บางอย่างปิดใช้อยู่"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"กำลังค้นหาเครื่องพิมพ์"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"ไม่ได้เปิดใช้บริการพิมพ์"</string>
diff --git a/packages/PrintSpooler/res/values-tl/strings.xml b/packages/PrintSpooler/res/values-tl/strings.xml
index 7b50815..3f8cae1 100644
--- a/packages/PrintSpooler/res/values-tl/strings.xml
+++ b/packages/PrintSpooler/res/values-tl/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Higit pang impormasyon tungkol sa printer na ito"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Hindi makagawa ng file"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Naka-disable ang ilang serbisyo sa pag-print"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Naghahanap ng mga printer"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Walang mga naka-enable na serbisyo sa pag-print"</string>
diff --git a/packages/PrintSpooler/res/values-tr/strings.xml b/packages/PrintSpooler/res/values-tr/strings.xml
index 1ca722b..df8cd29 100644
--- a/packages/PrintSpooler/res/values-tr/strings.xml
+++ b/packages/PrintSpooler/res/values-tr/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Bu yazıcıyla ilgili daha fazla bilgi"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Bazı yazdırma hizmetleri devre dışı bırakıldı"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Yazıcılar aranıyor"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Etkin yazıcı hizmeti yok"</string>
diff --git a/packages/PrintSpooler/res/values-uk/strings.xml b/packages/PrintSpooler/res/values-uk/strings.xml
index 8004639..14cc794 100644
--- a/packages/PrintSpooler/res/values-uk/strings.xml
+++ b/packages/PrintSpooler/res/values-uk/strings.xml
@@ -63,6 +63,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Докладніше про цей принтер"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Не вдалося створити файл"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Деякі служби друку вимкнено"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Пошук принтерів"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Немає служб друку"</string>
diff --git a/packages/PrintSpooler/res/values-ur-rPK/strings.xml b/packages/PrintSpooler/res/values-ur-rPK/strings.xml
index 19e759cb..e612ee8 100644
--- a/packages/PrintSpooler/res/values-ur-rPK/strings.xml
+++ b/packages/PrintSpooler/res/values-ur-rPK/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"اس پرنٹر کے بارے میں مزید معلومات"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"پرنٹ کی کچھ سروسز غیر فعال ہیں"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"پرنٹرز تلاش کر رہا ہے"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"کوئی پرنٹ سروس فعال نہیں"</string>
diff --git a/packages/PrintSpooler/res/values-uz-rUZ/strings.xml b/packages/PrintSpooler/res/values-uz-rUZ/strings.xml
index cf87a74..8ae65f2 100644
--- a/packages/PrintSpooler/res/values-uz-rUZ/strings.xml
+++ b/packages/PrintSpooler/res/values-uz-rUZ/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> – <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Printer haqida batafsil ma’lumot"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Faylni yaratib bo‘lmadi"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Ayrim chop etish xizmatlari o‘chirib qo‘yilgan"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Printerlar qidirilmoqda"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Hech qaysi chop etish xizmati yoqilmagan"</string>
diff --git a/packages/PrintSpooler/res/values-vi/strings.xml b/packages/PrintSpooler/res/values-vi/strings.xml
index 2c1fa27..5baaa3b5 100644
--- a/packages/PrintSpooler/res/values-vi/strings.xml
+++ b/packages/PrintSpooler/res/values-vi/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Thông tin khác về máy in này"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Không thể tạo tệp"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Một số dịch vụ in đã bị tắt"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Đang tìm kiếm máy in"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Chưa kích hoạt dịch vụ in nào"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rCN/strings.xml b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
index b350051..ca4868b 100644
--- a/packages/PrintSpooler/res/values-zh-rCN/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rCN/strings.xml
@@ -61,6 +61,8 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"关于此打印机的更多信息"</string>
+    <!-- no translation found for could_not_create_file (3425025039427448443) -->
+    <skip />
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"部分打印服务已停用"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"正在搜索打印机"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"未启用任何打印服务"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rHK/strings.xml b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
index 192b41b..672ec2e 100644
--- a/packages/PrintSpooler/res/values-zh-rHK/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rHK/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"此打印機詳情"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"無法建立檔案"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"部分列印服務已停用"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"正在搜尋打印機"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"沒有已啟用的列印服務"</string>
diff --git a/packages/PrintSpooler/res/values-zh-rTW/strings.xml b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
index 4aa5681..8341036 100644
--- a/packages/PrintSpooler/res/values-zh-rTW/strings.xml
+++ b/packages/PrintSpooler/res/values-zh-rTW/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"查看這台印表機的詳細資訊"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"無法建立檔案"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"已停用部分列印服務"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"正在搜尋印表機"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"未啟用任何列印服務"</string>
diff --git a/packages/PrintSpooler/res/values-zu/strings.xml b/packages/PrintSpooler/res/values-zu/strings.xml
index 121022b..b14c9be 100644
--- a/packages/PrintSpooler/res/values-zu/strings.xml
+++ b/packages/PrintSpooler/res/values-zu/strings.xml
@@ -61,6 +61,7 @@
     </plurals>
     <string name="printer_extended_description_template" msgid="1366699227703381874">"<xliff:g id="PRINT_SERVICE_LABEL">%1$s</xliff:g> - <xliff:g id="PRINTER_DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="printer_info_desc" msgid="7181988788991581654">"Olunye ulwazi mayelana nale phrinta"</string>
+    <string name="could_not_create_file" msgid="3425025039427448443">"Ayikwazanga ukufala ifayela"</string>
     <string name="print_services_disabled_toast" msgid="9089060734685174685">"Amanye amasevisi okuphrinta akhutshaziwe"</string>
     <string name="print_searching_for_printers" msgid="6550424555079932867">"Isesha amaphrinta"</string>
     <string name="print_no_print_services" msgid="8561247706423327966">"Amasevisi ephrinta akavuliwe."</string>
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index 241581d..be3df54 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -718,6 +718,9 @@
                     SelectPrinterActivity.INTENT_EXTRA_PRINTER);
             if (printerInfo != null) {
                 mCurrentPrinter = printerInfo;
+                mPrintJob.setPrinterId(printerInfo.getId());
+                mPrintJob.setPrinterName(printerInfo.getName());
+
                 mDestinationSpinnerAdapter.ensurePrinterInVisibleAdapterPosition(printerInfo);
             }
         }
@@ -1964,7 +1967,7 @@
     }
 
     public void onPrinterAvailable(PrinterInfo printer) {
-        if (mCurrentPrinter.equals(printer)) {
+        if (mCurrentPrinter != null && mCurrentPrinter.equals(printer)) {
             setState(STATE_CONFIGURING);
             if (canUpdateDocument()) {
                 updateDocument(false);
@@ -2459,12 +2462,15 @@
                 PrinterHolder printerHolder = mPrinterHolders.get(i);
                 PrinterId oldPrinterId = printerHolder.printer.getId();
                 PrinterInfo updatedPrinter = newPrintersMap.remove(oldPrinterId);
+
                 if (updatedPrinter != null) {
                     printerHolder.printer = updatedPrinter;
                     printerHolder.removed = false;
+                    onPrinterAvailable(printerHolder.printer);
                     newPrinterHolders.add(printerHolder);
                 } else if (mCurrentPrinter != null && mCurrentPrinter.getId().equals(oldPrinterId)){
                     printerHolder.removed = true;
+                    onPrinterUnavailable(printerHolder.printer);
                     newPrinterHolders.add(printerHolder);
                 }
             }
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java
index fcc9f6a..7704fa6 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/SelectPrinterActivity.java
@@ -319,7 +319,7 @@
         }
         TextView titleView = (TextView) findViewById(R.id.title);
         View progressBar = findViewById(R.id.progress_bar);
-        if (mEnabledPrintServices.size() > 0) {
+        if (mEnabledPrintServices.size() == 0) {
             titleView.setText(R.string.print_no_print_services);
             progressBar.setVisibility(View.GONE);
         } else if (adapter.getUnfilteredCount() <= 0) {
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 43216af..fe726264 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktief. Tik om te wissel."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Lopende dienste"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Sien en beheer dienste wat tans loop"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Aktiveer multiproses-WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Laat loop WebView-leweraars in \'n geïsoleerde proses."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiproses-Webaansig"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Laat Webaansig-leweraars afsonderlik loop"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Stel WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Hierdie keuse is nie meer geldig nie. Probeer weer."</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 2acad89..843db18 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -23,7 +23,7 @@
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"ለአውታረመረቦች መቃኘት አይቻልም"</string>
     <string name="wifi_security_none" msgid="7985461072596594400">"የለም"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"ተቀምጧል"</string>
-    <string name="wifi_disabled_generic" msgid="4259794910584943386">"ተሰነክሏል"</string>
+    <string name="wifi_disabled_generic" msgid="4259794910584943386">"ተሰናክሏል"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"የአይ.ፒ. ውቅረት መሰናከል"</string>
     <string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"የWiFi ግንኙነት መሰናከል"</string>
     <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"የማረጋገጫ ችግር"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ገቢር። ለመቀያየር ነካ ያድርጉ።"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"አሂድ አገልግሎቶች"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"በአሁኑጊዜ እየሄዱ ያሉ አገልግሎቶችን ተቆጣጠር እና እይ"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"ባለብዙ-ሂደት WebViewን አንቃ"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"የWebView ምስል ሰሪዎችን በተገለለ ሂደት ውስጥ አሂድ።"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"ባለብዙ-ሂደት ድር እይታ"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"የድር እይታ ምስል ሰሪዎችን በተናጥል አሂድ"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"የWebView ትግበራ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"የWebView ትግበራን ያዘጋጁ"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ይህ ምርጫ ከአሁን በኋላ የሚሰራ አይደለም። እንደገና ይሞክሩ።"</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index a3e5b1c..27050d1 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"نشط، انقر للتبديل."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"الخدمات قيد التشغيل"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"عرض الخدمات قيد التشغيل في الوقت الحالي والتحكم فيها"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"تمكين عرض ويب متعدد العمليات"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"تشغيل أجهزة عرض الويب في عملية منفصلة."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"‏WebView متعدد العمليات"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"‏تشغيل أجهزة عرض WebView بشكل منفصل"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"‏تطبيق WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"‏تعيين تطبيق WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"لم يعد هذا الاختيار صالحًا. أعد المحاولة."</string>
diff --git a/packages/SettingsLib/res/values-az-rAZ/strings.xml b/packages/SettingsLib/res/values-az-rAZ/strings.xml
index 214d33a..8558611 100644
--- a/packages/SettingsLib/res/values-az-rAZ/strings.xml
+++ b/packages/SettingsLib/res/values-az-rAZ/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivdir. Keçid etmək üçün basın."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"İşləyən xidmətlər"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Hazırda prosesdə olan xidmətləri görüntüləyin və onlara nəzarət edin"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Çox prosesli WebView\'nu aktiv edin"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView rendererləri təcrid olunmuş prosesdə işlədin."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Çox prosesli WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView rendererləri ayrıca işə salın"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView icrası"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView icrasını ayarlayın"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Bu seçim artıq etibarlı deyil. Yenidən cəhd edin."</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index a9bc326..2239dee 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivna. Dodirnite da biste je deaktivirali."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Pokrenute usluge"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Prikaz i kontrola trenutno pokrenutih usluga"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Omogući višeprocesni WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Pokrećite WebView prikazivače u okviru izolovanog procesa."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Višeprocesni WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Pokrećite WebView prikazivače zasebno"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Primena WebView-a"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Podesite primenu WebView-a"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ovaj izbor više nije važeći. Pokušajte ponovo."</string>
diff --git a/packages/SettingsLib/res/values-be-rBY/strings.xml b/packages/SettingsLib/res/values-be-rBY/strings.xml
index 23ec3ca..7e13220 100644
--- a/packages/SettingsLib/res/values-be-rBY/strings.xml
+++ b/packages/SettingsLib/res/values-be-rBY/strings.xml
@@ -23,7 +23,7 @@
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Не атрымлiваецца выканаць сканаванне для сетак"</string>
     <string name="wifi_security_none" msgid="7985461072596594400">"Няма"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Захавана"</string>
-    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Адключаная"</string>
+    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Адключана"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Збой канфігурацыі IP"</string>
     <string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"Збой падлучэння Wi-Fi"</string>
     <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Праблема аўтэнтыфікацыі"</string>
@@ -71,7 +71,7 @@
     <string name="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"Выкарыстоўваць для ўводу"</string>
     <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"Падлучыць"</string>
     <string name="bluetooth_pairing_accept_all_caps" msgid="6061699265220789149">"СПАЛУЧЫЦЬ"</string>
-    <string name="bluetooth_pairing_decline" msgid="4185420413578948140">"Адмена"</string>
+    <string name="bluetooth_pairing_decline" msgid="4185420413578948140">"Скасаваць"</string>
     <string name="bluetooth_pairing_will_share_phonebook" msgid="4982239145676394429">"Спалучэнне дае доступ да вашых кантактаў і гісторыі выклікаў пры падлучэнні."</string>
     <string name="bluetooth_pairing_error_message" msgid="3748157733635947087">"Не атрымалася падключыцца да прылады <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_pairing_pin_error_message" msgid="8337234855188925274">"Не атрымалася спалучыцца з прыладай <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, таму што PIN-код або пароль няправiльныя."</string>
@@ -98,7 +98,7 @@
     <string name="launch_defaults_some" msgid="313159469856372621">"Некат. параметры па змаўч. усталяваныя"</string>
     <string name="launch_defaults_none" msgid="4241129108140034876">"Параметры па змаўчанні не ўсталяваныя"</string>
     <string name="tts_settings" msgid="8186971894801348327">"Налады Text-to-speech"</string>
-    <string name="tts_settings_title" msgid="1237820681016639683">"Выводзіць праз Text-to-speech"</string>
+    <string name="tts_settings_title" msgid="1237820681016639683">"Сінтэз маўлення"</string>
     <string name="tts_default_rate_title" msgid="6030550998379310088">"Хуткасць гаворкі"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Хуткасць, з якой кажуць тэкст"</string>
     <string name="tts_default_pitch_title" msgid="6135942113172488671">"Тон"</string>
@@ -139,7 +139,7 @@
     <string name="choose_profile" msgid="8229363046053568878">"Выбраць профіль"</string>
     <string name="category_personal" msgid="1299663247844969448">"Асабісты"</string>
     <string name="category_work" msgid="8699184680584175622">"Рабочы"</string>
-    <string name="development_settings_title" msgid="215179176067683667">"Опцыі распрацоўшчыка"</string>
+    <string name="development_settings_title" msgid="215179176067683667">"Параметры распрацоўшчыка"</string>
     <string name="development_settings_enable" msgid="542530994778109538">"Уключыць параметры распрацоўшчыка"</string>
     <string name="development_settings_summary" msgid="1815795401632854041">"Налада параметраў для распрацоўкі прыкладанняў"</string>
     <string name="development_settings_not_available" msgid="4308569041701535607">"Параметры распрацоўшчыка недаступныя для гэтага карыстальніка"</string>
@@ -226,7 +226,7 @@
     <string name="enable_opengl_traces_title" msgid="6790444011053219871">"Уключэнне слядоў OpenGL"</string>
     <string name="usb_audio_disable_routing" msgid="8114498436003102671">"Адключыць аўдыёмаршрутызацыю USB"</string>
     <string name="usb_audio_disable_routing_summary" msgid="980282760277312264">"Адкл. аўт. перанакір. на перыфер. USB-прыл. аўдыё"</string>
-    <string name="debug_layout" msgid="5981361776594526155">"Паказаць межы размяшчэння"</string>
+    <string name="debug_layout" msgid="5981361776594526155">"Паказаць межы макета"</string>
     <string name="debug_layout_summary" msgid="2001775315258637682">"Паказаць межы кліпу, палі і г. д."</string>
     <string name="force_rtl_layout_all_locales" msgid="2259906643093138978">"Прымусовая раскладка справа налева"</string>
     <string name="force_rtl_layout_all_locales_summary" msgid="9192797796616132534">"Прымусовая раскладка экрана справа налева для ўсіх рэгіянальных налад"</string>
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"Прымусовае выкананне 4x MSAA"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"Уключыць 4x MSAA у прыкладаннях з OpenGL ES 2.0"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"Адладка аперацый непрамавугольнага кліпа"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"Апрацоўка профілю GPU"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"Профіль рэндэрінгу GPU"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"Маштаб анімацыі акна"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"Маштаб перадачы анімацыі"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"Шкала працягласці анiматара"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Актыўная. Краніце, каб пераключыць."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Запушчаныя службы"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Прагляд запушчаных службаў i кіраванне iмi"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Уключыць шматпрацэсны WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Запусціць апрацоўшчыкі WebView у ізаляваным працэсе."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Шматпрацэсны WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Запусціць апрацоўшчыкі WebView асобна"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Рэалізацыя WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Наладзіць рэалізацыю WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Гэты варыянт больш не даступны. Паспрабуйце яшчэ раз."</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index 768a34b..b410590 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Активно. Докоснете, за да превключите."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Изпълнявани услуги:"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Преглед и контрол върху изпълняващите се понастоящем услуги"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Многопроц. режим на WebView: Акт."</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Програми за визуализация на WebView: Изпъл. в изолиран процес."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Многопроцесен режим на WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Отделно изпълняване на програмите за визуализация на WebView"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Внедряване на WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Задаване на внедряването на WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Този избор вече не е валиден. Опитайте отново."</string>
diff --git a/packages/SettingsLib/res/values-bn-rBD/strings.xml b/packages/SettingsLib/res/values-bn-rBD/strings.xml
index fe7cb8b..2019097 100644
--- a/packages/SettingsLib/res/values-bn-rBD/strings.xml
+++ b/packages/SettingsLib/res/values-bn-rBD/strings.xml
@@ -30,7 +30,7 @@
     <string name="wifi_not_in_range" msgid="1136191511238508967">"পরিসরের মধ্যে নয়"</string>
     <string name="wifi_no_internet" msgid="9151470775868728896">"কোনো ইন্টারনেট অ্যাক্সেস শনাক্ত হয়নি, স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ স্থাপন করবে না৷"</string>
     <string name="saved_network" msgid="4352716707126620811">"<xliff:g id="NAME">%1$s</xliff:g> দ্বারা সংরক্ষিত"</string>
-    <string name="connected_via_wfa" msgid="3805736726317410714">"Wi‑Fi সহায়ক-এর মাধ্যমে সংযুক্ত হয়েছে"</string>
+    <string name="connected_via_wfa" msgid="3805736726317410714">"ওয়াই-ফাই সহায়ক-এর মাধ্যমে সংযুক্ত হয়েছে"</string>
     <string name="connected_via_passpoint" msgid="2826205693803088747">"%1$s মাধ্যমে সংযুক্ত হয়েছে"</string>
     <string name="available_via_passpoint" msgid="1617440946846329613">"%1$s এর মাধ্যমে উপলব্ধ"</string>
     <string name="wifi_connected_no_internet" msgid="3149853966840874992">"সংযুক্ত, ইন্টারনেট নেই"</string>
@@ -88,7 +88,7 @@
     <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"সরানো অ্যাপ্লিকেশানগুলি এবং ব্যবহারকারীগণ"</string>
     <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB টেদারিং"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"পোর্টেবল হটস্পট"</string>
-    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth টেদারিং"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"ব্লুটুথ টেদারিং"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"টেদারিং"</string>
     <string name="tether_settings_title_all" msgid="8356136101061143841">"টেদারিং ও পোর্টেবল হটস্পট"</string>
     <string name="managed_user_title" msgid="8109605045406748842">"সমস্ত কাজের অ্যাপ্লিকেশান"</string>
@@ -153,7 +153,7 @@
     <string name="bugreport_in_power_summary" msgid="1778455732762984579">"একটি ত্রুটি প্রতিবেদন গ্রহণের জন্য পাওয়ার মেনুতে একটি বোতাম দেখান"</string>
     <string name="keep_screen_on" msgid="1146389631208760344">"জাগিয়ে রাখুন"</string>
     <string name="keep_screen_on_summary" msgid="2173114350754293009">"চার্জ হওয়ার স্ক্রীন কখনই নিদ্রা মোডে যাবে না"</string>
-    <string name="bt_hci_snoop_log" msgid="3340699311158865670">"Bluetooth HCI স্নুপ লগ সক্ষম করুন"</string>
+    <string name="bt_hci_snoop_log" msgid="3340699311158865670">"ব্লুটুথ HCI স্নুপ লগ সক্ষম করুন"</string>
     <string name="bt_hci_snoop_log_summary" msgid="730247028210113851">"একটি ফাইলে সব bluetooth HCI প্যাকেট ক্যাপচার করুন"</string>
     <string name="oem_unlock_enable" msgid="6040763321967327691">"OEM আনলক করা হচ্ছে"</string>
     <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"বুট-লোডার আনলক করার অনুমতি দিন"</string>
@@ -164,15 +164,15 @@
     <string name="mock_location_app_set" msgid="8966420655295102685">"অনুরূপ অবস্থান অ্যাপ্লিকেশান: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="debug_networking_category" msgid="7044075693643009662">"নেটওয়ার্কিং"</string>
     <string name="wifi_display_certification" msgid="8611569543791307533">"ওয়্যারলেস ডিসপ্লে সার্টিফিকেশন"</string>
-    <string name="wifi_verbose_logging" msgid="4203729756047242344">"Wi‑Fi ভারবোস লগিং সক্ষম করুন"</string>
-    <string name="wifi_aggressive_handover" msgid="9194078645887480917">"Wi‑Fi থেকে সেলুলারে তৎপর পরিবর্তন"</string>
+    <string name="wifi_verbose_logging" msgid="4203729756047242344">"ওয়াই-ফাই ভারবোস লগিং সক্ষম করুন"</string>
+    <string name="wifi_aggressive_handover" msgid="9194078645887480917">"ওয়াই-ফাই থেকে সেলুলারে তৎপর পরিবর্তন"</string>
     <string name="wifi_allow_scan_with_traffic" msgid="3601853081178265786">"সর্বদা Wifi রোম স্ক্যানকে অনুমতি দিন"</string>
     <string name="mobile_data_always_on" msgid="7745605759775320362">"সেলুলার ডেটা সর্বদাই সক্রিয় থাকে"</string>
     <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"চূড়ান্ত ভলিউম অক্ষম করুন"</string>
     <string name="wifi_display_certification_summary" msgid="1155182309166746973">"ওয়্যারলেস প্রদর্শন সার্টিফিকেশন জন্য বিকল্পগুলি দেখান"</string>
-    <string name="wifi_verbose_logging_summary" msgid="6615071616111731958">"Wi‑Fi লগিং স্তর বাড়ান, Wi‑Fi চয়নকারীতে SSID RSSI অনুযায়ী দেখান"</string>
-    <string name="wifi_aggressive_handover_summary" msgid="6328455667642570371">"সক্ষম করা থাকলে, নিম্নমানের Wi‑Fi সিগন্যালের ক্ষেত্রে, সেলুলার-এ ডেটা সংযোগ প্রদান করতে Wi‑Fi আরো বেশি শক্তিশালীভাবে কাজ করবে"</string>
-    <string name="wifi_allow_scan_with_traffic_summary" msgid="2575101424972686310">"ইন্টারফেসে উপস্থিত ডেটা ট্রাফিকের পরিমাণের উপরে ভিত্তি করে Wi‑Fi রোম স্ক্যানকে অনুমোদিত/অননুমোদিত করুন"</string>
+    <string name="wifi_verbose_logging_summary" msgid="6615071616111731958">"ওয়াই-ফাই লগিং স্তর বাড়ান, ওয়াই-ফাই চয়নকারীতে SSID RSSI অনুযায়ী দেখান"</string>
+    <string name="wifi_aggressive_handover_summary" msgid="6328455667642570371">"সক্ষম করা থাকলে, নিম্নমানের ওয়াই-ফাই সিগন্যালের ক্ষেত্রে, সেলুলার-এ ডেটা সংযোগ প্রদান করতে ওয়াই-ফাই আরো বেশি শক্তিশালীভাবে কাজ করবে"</string>
+    <string name="wifi_allow_scan_with_traffic_summary" msgid="2575101424972686310">"ইন্টারফেসে উপস্থিত ডেটা ট্রাফিকের পরিমাণের উপরে ভিত্তি করে ওয়াই-ফাই রোম স্ক্যানকে অনুমোদিত/অননুমোদিত করুন"</string>
     <string name="select_logd_size_title" msgid="7433137108348553508">"লগার বাফারের আকারগুলি"</string>
     <string name="select_logd_size_dialog_title" msgid="1206769310236476760">"লগ বাফার প্রতি অপেক্ষাকৃত বড় আকারগুলির নির্বাচন করুন"</string>
     <string name="select_usb_configuration_title" msgid="2649938511506971843">"USB কনফিগারেশন নির্বাচন করুন"</string>
@@ -181,7 +181,7 @@
     <string name="allow_mock_location_summary" msgid="317615105156345626">"মক অবস্থানগুলি মঞ্জুর করুন"</string>
     <string name="debug_view_attributes" msgid="6485448367803310384">"অ্যাট্রিবিউট পরিদর্শন দেখা সক্ষম করুন"</string>
     <string name="legacy_dhcp_client_summary" msgid="163383566317652040">"নতুন Android DHCP ক্লায়েন্টের পরিবর্তে Lollipop এর থেকে DHCP ক্লায়েন্ট ব্যবহার করুন৷"</string>
-    <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Wi‑Fi সক্রিয় থাকার সময়েও (দ্রুত নেটওয়ার্কে পাল্টানোর জন্য) সর্বদা মোবাইল ডেটা সক্রিয় রাখুন।"</string>
+    <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ওয়াই-ফাই সক্রিয় থাকার সময়েও (দ্রুত নেটওয়ার্কে পাল্টানোর জন্য) সর্বদা মোবাইল ডেটা সক্রিয় রাখুন।"</string>
     <string name="adb_warning_title" msgid="6234463310896563253">"USB ডিবাগিং মঞ্জুর করবেন?"</string>
     <string name="adb_warning_message" msgid="7316799925425402244">"USB ডিবাগিং কেবলমাত্র বিকাশ করার উদ্দেশ্যে। আপনার কম্পিউটার এবং আপনার ডিভাইসের মধ্যে ডেটা অনুলিপি করতে এটি ব্যবহার করুন, বিজ্ঞপ্তি ছাড়া আপনার ডিভাইসে অ্যাপ্লিকেশানগুলি ইনস্টল করুন এবং ডেটা লগ পড়ুন।"</string>
     <string name="adb_keys_warning_message" msgid="5659849457135841625">"আপনি আগে যে সব কম্পিউটার USB ডিবাগিং এর অ্যাক্সেসের অনুমতি দিয়েছিলেন তা প্রত্যাহার করবেন?"</string>
@@ -189,7 +189,7 @@
     <string name="dev_settings_warning_message" msgid="2298337781139097964">"এইসব সেটিংস কেবলমাত্র উন্নত করার উদ্দেশ্য। সেগুলি কারণে আপনার ডিভাইস ভেঙ্গে এবং অ্যাপ্লিকেশানগুলি ভালো ভাবে কাজ করা নাও কারতে পারে।"</string>
     <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"USB এর অ্যাপ্লিকেশানগুলি যাচাই করুন"</string>
     <string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"ক্ষতিকারক ক্রিয়াকলাপ করছে কিনা তার জন্য ADB/ADT মারফত ইনস্টল করা অ্যাপ্লিকেশানগুলি চেক করুন।"</string>
-    <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"অপ্রত্যাশিত উচ্চ ভলিউম বা নিয়ন্ত্রণের অভাবের মত দূরবর্তী ডিভাইসের ভলিউম সমস্যাগুলির ক্ষেত্রে, Bluetooth চুড়ান্ত ভলিউম বৈশিষ্ট্য অক্ষম করে৷"</string>
+    <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"অপ্রত্যাশিত উচ্চ ভলিউম বা নিয়ন্ত্রণের অভাবের মত দূরবর্তী ডিভাইসের ভলিউম সমস্যাগুলির ক্ষেত্রে, ব্লুটুথ চুড়ান্ত ভলিউম বৈশিষ্ট্য অক্ষম করে৷"</string>
     <string name="enable_terminal_title" msgid="95572094356054120">"স্থানীয় টার্মিনাল"</string>
     <string name="enable_terminal_summary" msgid="67667852659359206">"স্থানীয় শেল অ্যাক্সেসের প্রস্তাব করে এমন টার্মিনাল অ্যাপ্লিকেশন সক্ষম করুন"</string>
     <string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP পরীক্ষণ"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"সক্রিয় রয়েছে৷ টগল করতে আলতো চাপুন৷"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"এখন চলছে যে পরিষেবাগুলি"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"বর্তমান চলমান পরিষেবাগুলি দেখুন এবং নিয়ন্ত্রণ করুন"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"বহু-প্রক্রিয়া ওয়েবভিউ সক্ষম করুন"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"একটি বিচ্ছিন্ন প্রক্রিয়ায় ওয়েবভিউ রেন্ডারারগুলি চালান৷"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"বহু-প্রক্রিয়া ওয়েবভিউ"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"ওয়েবভিউ রেন্ডারারগুলি আলাদাভাবে চালান"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"ওয়েবভিউ প্রয়োগ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"ওয়েবভিউ প্রয়োগ সেট করুন"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"এই পছন্দটি আর বৈধ নেই৷ আবার চেষ্টা করুন৷"</string>
@@ -290,9 +290,9 @@
     <string name="picture_color_mode_desc" msgid="1141891467675548590">"sRGB ব্যবহার করুন"</string>
     <string name="daltonizer_mode_disabled" msgid="7482661936053801862">"অক্ষম হয়েছে"</string>
     <string name="daltonizer_mode_monochromacy" msgid="8485709880666106721">"মোনোক্রোমেসি"</string>
-    <string name="daltonizer_mode_deuteranomaly" msgid="5475532989673586329">"দেউতেরানমালি (লাল-সবুজ)"</string>
-    <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"প্রতানোমালি (লাল-সবুজ)"</string>
-    <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"ত্রিতানোমালি (নীল-হলুদ)"</string>
+    <string name="daltonizer_mode_deuteranomaly" msgid="5475532989673586329">"বর্ণান্ধতা (লাল-সবুজ)"</string>
+    <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"প্রোটানোম্যালি (লাল-সবুজ)"</string>
+    <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"ট্রিট্যানোম্যালি (নীল-হলুদ)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"রঙ সংশোধন"</string>
     <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"এই বৈশিষ্ট্যটি পরীক্ষামূলক এবং এটি কার্য-সম্পাদনা প্রভাবিত করতে পারে।"</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> এর দ্বারা ওভাররাইড করা হয়েছে"</string>
diff --git a/packages/SettingsLib/res/values-bs-rBA/strings.xml b/packages/SettingsLib/res/values-bs-rBA/strings.xml
index 4152470..995d8562 100644
--- a/packages/SettingsLib/res/values-bs-rBA/strings.xml
+++ b/packages/SettingsLib/res/values-bs-rBA/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivno. Dodirnite za promjenu opcije."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Pokrenute usluge"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Prikažite trenutno pokrenute usluge i upravljajte njima"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Omogućiti višeprocesni WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Pokrenite WebView operatera u izolovanom procesu."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Višeprocesni WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Pokreni odvojeno WebView rendere"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Postavljanje WebViewa"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Podesi WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ovaj izbor više ne vrijedi. Pokušajte ponovo."</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 0b93b1e..ef52df5 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -86,11 +86,11 @@
     <string name="process_kernel_label" msgid="3916858646836739323">"Android OS"</string>
     <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"Aplicacions eliminades"</string>
     <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"Aplicacions i usuaris eliminats"</string>
-    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Ancoratge d\'USB"</string>
-    <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Zona Wi-Fi portàtil"</string>
-    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Ancoratge de Bluetooth"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Ancoratge a xarxa"</string>
-    <string name="tether_settings_title_all" msgid="8356136101061143841">"Ancoratge a la xarxa i zona Wi-Fi"</string>
+    <string name="tether_settings_title_usb" msgid="6688416425801386511">"Compartició de xarxa per USB"</string>
+    <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Punt d\'accés Wi-Fi"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Compartició de xarxa per Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Compartició de xarxa"</string>
+    <string name="tether_settings_title_all" msgid="8356136101061143841">"Compartició de xarxa i punt d\'accés Wi-Fi"</string>
     <string name="managed_user_title" msgid="8109605045406748842">"Totes les aplic. de feina"</string>
     <string name="user_guest" msgid="8475274842845401871">"Convidat"</string>
     <string name="unknown" msgid="1592123443519355854">"Desconegut"</string>
@@ -144,7 +144,7 @@
     <string name="development_settings_summary" msgid="1815795401632854041">"Defineix les opcions per al desenvolupament d\'aplicacions"</string>
     <string name="development_settings_not_available" msgid="4308569041701535607">"Les opcions per a desenvolupadors no estan disponibles per a aquest usuari."</string>
     <string name="vpn_settings_not_available" msgid="956841430176985598">"La configuració de la VPN no està disponible per a aquest usuari."</string>
-    <string name="tethering_settings_not_available" msgid="6765770438438291012">"La configuració d\'ancoratge no està disponible per a aquest usuari."</string>
+    <string name="tethering_settings_not_available" msgid="6765770438438291012">"La configuració de compartició de xarxa no està disponible per a aquest usuari."</string>
     <string name="apn_settings_not_available" msgid="7873729032165324000">"La configuració del nom del punt d\'accés no està disponible per a aquest usuari."</string>
     <string name="enable_adb" msgid="7982306934419797485">"Depuració USB"</string>
     <string name="enable_adb_summary" msgid="4881186971746056635">"Activa el mode de depuració quan el dispositiu estigui connectat per USB"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aplicació activa. Toca per desactivar-la."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Serveis en execució"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualitza i controla els serveis en execució"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Activa WebView amb multiprocés"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Executa els renderitzadors de WebView en un procés aïllat."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView amb multiprocés"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Executa els renderitzadors de WebView per separat"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementació de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Configura la implementació de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Aquesta opció ja no és vàlida. Torna-ho a provar."</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 53ad9d1..bb0b608 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivní. Klepnutím možnost přepnete."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Spuštěné služby"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Umožňuje zobrazit a ovládat aktuálně spuštěné služby"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Povolit WebView ve více procesech"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Spouštět moduly vykreslení WebView jako samostatné procesy."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView ve více procesech"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Spouštět moduly vykreslení WebView samostatně"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementace WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Nastavte implementaci WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Tato volba již není platná. Zkuste to znovu."</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index c267702..df024c3 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"Tving 4x MSAA"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"Aktivér 4x MSAA i apps med OpenGL ES 2.0"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"Fejlfind på ikke-rektangulære klippehandlinger"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"GPU-profilgengivelse"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"GPU-gengivelse for profil"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"Animationsskala for vindue"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"Overgangsanimationsskala"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"Animatorvarighedsskala"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiv. Tryk for at skifte."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Kørende tjenester"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Vis og kontrollér kørende tjenester"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Aktivér WebView i flere processer"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Kør WebView-gengivelse i en isoleret proces."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Webvisning i flere processer"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Kør gengivelser af webvisning separat"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Konfigurer WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Dette valg er ikke længere gyldigt. Prøv igen."</string>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 113900a..16b6ace 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiv. Zum Wechseln tippen."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Aktive Dienste"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Momentan ausgeführte Dienste anzeigen und steuern"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"WebView-Simultanverarbeitung aktivieren"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView-Renderer isoliert ausführen."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView-Simultanverarbeitung"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView-Renderer getrennt ausführen"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-Implementierung"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView-Implementierung festlegen"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Diese Auswahl ist nicht mehr gültig. Versuche es erneut."</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 640e319..7827ab9 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Ενεργό. Πατήστε για εναλλαγή."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Υπηρεσίες που εκτελούνται"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Προβολή και έλεγχος των εφαρμογών που εκτελούνται αυτή τη στιγμή"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Ενεργοποίηση WebView πολλαπλών διεργασιών"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Εκτέλεση λειτ.απόδοσης WebView σε μια απομονωμένη διεργασία."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView πολλαπλών διεργασιών"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Εκτέλεση λειτουργικών απόδοσης WebView ξεχωριστά"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Υλοποίηση WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Ορισμός υλοποίησης WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Αυτή η επιλογή δεν είναι πια έγκυρη. Δοκιμάστε ξανά."</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index 75e8ee1..ec3d04b 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Active. Tap to toggle."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Running services"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"View and control currently running services"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Enable multi-process WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Run WebView renderers in an isolated process."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Run WebView renderers separately"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"This choice is no longer valid. Try again."</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index 75e8ee1..ec3d04b 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Active. Tap to toggle."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Running services"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"View and control currently running services"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Enable multi-process WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Run WebView renderers in an isolated process."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Run WebView renderers separately"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"This choice is no longer valid. Try again."</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index 75e8ee1..ec3d04b 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Active. Tap to toggle."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Running services"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"View and control currently running services"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Enable multi-process WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Run WebView renderers in an isolated process."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Run WebView renderers separately"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"This choice is no longer valid. Try again."</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 0b98e74..2facecb 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Activa. Presiona para activar o desactivar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"En ejecución"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver y controlar servicios actuales en ejecución"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Habilitar multiproceso WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Ejecutar procesadores de WebView en un proceso aislado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiproceso WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Ejecutar procesadores WebView por separado"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Configurar la implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opción ya no es válida. Vuelve a intentarlo."</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 7012f4a..163e846 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Activa. Toca para alternar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Servicios en ejecución"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver y controlar los servicios en ejecución"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Habilitar WebView multiproceso"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Ejecuta procesadores de WebView en un proceso aislado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiproceso"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Ejecuta procesadores de WebView de forma independiente"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Establecer implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opción ya no está disponible. Vuelve a intentarlo."</string>
@@ -332,5 +332,5 @@
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"Más grande"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Lo más grande posible"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"Personalizado (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
-    <string name="help_feedback_label" msgid="6815040660801785649">"Ayuda y opiniones"</string>
+    <string name="help_feedback_label" msgid="6815040660801785649">"Ayuda y sugerencias"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-et-rEE/strings.xml b/packages/SettingsLib/res/values-et-rEE/strings.xml
index 810ce76..756e4ad 100644
--- a/packages/SettingsLib/res/values-et-rEE/strings.xml
+++ b/packages/SettingsLib/res/values-et-rEE/strings.xml
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"Jõusta 4x MSAA"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"Luba 4x MSAA OpenGL ES 2.0 rakendustes"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"Silu klipi mittetäisnurksed toimingud"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"Profiili GPU renderdamine"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"GPU renderduse profiil"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"Akna animatsiooni skaala"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"Ülemineku animats. skaala"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"Animaatori kestuse skaala"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiivne. Puudutage vahetamiseks."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Käitatud teenused"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Praegu käitatud teenuste vaatamine ja juhtimine"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Luba mitme protsessiga WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView\' renderdajad käitatakse eraldi protsessis."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Mitme protsessiga WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Käita WebView\' renderdajaid eraldi"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView\' rakendamine"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView\' rakendamise seadistamine"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"See valik ei kehti enam. Proovige uuesti."</string>
@@ -293,7 +293,7 @@
     <string name="daltonizer_mode_deuteranomaly" msgid="5475532989673586329">"Deuteranomaalia (punane-roheline)"</string>
     <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Protanomaalia (punane-roheline)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Tritanomaalia (sinine-kollane)"</string>
-    <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Värviparandus"</string>
+    <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Värvide korrigeerimine"</string>
     <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"See funktsioon on katseline ja võib mõjutada toimivust."</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"Alistas <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="4400068916452346544">"Umbes <xliff:g id="TIME">%1$s</xliff:g> on jäänud"</string>
@@ -327,7 +327,7 @@
     <string name="charge_length_format" msgid="8978516217024434156">"<xliff:g id="ID_1">%1$s</xliff:g> tagasi"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"<xliff:g id="ID_1">%1$s</xliff:g> on jäänud"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"Väike"</string>
-    <string name="screen_zoom_summary_default" msgid="2247006805614056507">"Vaikimisi"</string>
+    <string name="screen_zoom_summary_default" msgid="2247006805614056507">"Vaikeseade"</string>
     <string name="screen_zoom_summary_large" msgid="4835294730065424084">"Suur"</string>
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"Suurem"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Suurim"</string>
diff --git a/packages/SettingsLib/res/values-eu-rES/strings.xml b/packages/SettingsLib/res/values-eu-rES/strings.xml
index cc16647..ca76b55 100644
--- a/packages/SettingsLib/res/values-eu-rES/strings.xml
+++ b/packages/SettingsLib/res/values-eu-rES/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktibo. Aldatzeko, sakatu hau."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Abian diren zerbitzuak"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ikusi eta kontrolatu unean abian diren zerbitzuak"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Gaitu prozesu anitzeko WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Exekutatu WebView errendatzaileak prozesu isolatu batean."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Prozesu anitzeko WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Exekutatu WebView errendatzaileak modu bereizian"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView implementation"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Set WebView implementation"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Jada ez dago erabilgarri aukera hori. Saiatu berriro."</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index bfbb746..ac48830 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"فعال. برای تغییر حالت ضربه بزنید."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"سرویس‌های در حال اجرا"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"مشاهده و کنترل سرویس‌های در حال اجرای فعلی"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"فعال کردن وب‌نمای چندپردازشی"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"اجرای تولیدکننده تصویر وب‌نما در یک پردازش مجزا."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"وب‌نمای چندپردازشی"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"اجرای تولیدکننده تصویر وب‌نما"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"اجرای وب‌نما"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"تنظیم اجرای وب‌نما"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"این انتخاب دیگر معتبر نیست. دوباره امتحان کنید."</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index fcb1c68..1f2579b 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Käytössä. Poista käytöstä koskettamalla."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Käynnissä olevat palvelut"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Tarkastele ja hallitse käynnissä olevia palveluita"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"WebView\'n usean prosessin tila"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Suorita WebView\'n hahmontajat erillisinä prosesseina."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView\'n usean prosessin tila"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Suorita WebView\'n hahmontajat erillisinä prosesseina"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-käyttöönotto"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Määritä WebView-käyttöönotto"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Tämä valinta ei ole enää saatavilla. Yritä uudestaan."</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index 91d0cb6..2ada136 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Application active. Touchez ici pour la désactiver."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Services en cours d\'exécution"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Afficher et contrôler les services en cours d\'exécution"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Activer WebView multiprocessus"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Exécuter moteurs de rendu WebView dans un processus isolé."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiprocessus"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Exécuter les moteurs de rendu WebView séparément"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Mise en œuvre WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Définir la mise en œuvre WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ce choix n\'est plus valide. Réessayez."</string>
@@ -294,7 +294,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Protanomalie (rouge/vert)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Tritanomalie (bleu/jaune)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Correction des couleurs"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Cette fonctionnalité est expérimentale et peut toucher les performances."</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Cette fonctionnalité est expérimentale et peut affecter les performances."</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"Remplacé par <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="4400068916452346544">"Il reste environ <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="power_remaining_duration_only_short" msgid="5329694252258605547">"Temps restant : <xliff:g id="TIME">%1$s</xliff:g>"</string>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index b2bf773..1355e77 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Application active. Appuyez ici pour la désactiver."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Services en cours d\'exécution"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Afficher et contrôler les services en cours d\'exécution"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Activer WebView multiprocessus"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Exécuter moteurs de rendu WebView dans un processus isolé."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiprocessus"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Exécuter les moteurs de rendu WebView séparément"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Mise en œuvre WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Définir la mise en œuvre WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ce choix n\'est plus valide. Réessayez."</string>
diff --git a/packages/SettingsLib/res/values-gl-rES/strings.xml b/packages/SettingsLib/res/values-gl-rES/strings.xml
index 13edd04..ce52a70 100644
--- a/packages/SettingsLib/res/values-gl-rES/strings.xml
+++ b/packages/SettingsLib/res/values-gl-rES/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aplicación activa. Toca para alternar a configuración."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Servizos en execución"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver e controlar servizos actualmente en execución"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Activar WebView multiproceso"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Executa os procesadores de WebView nun proceso illado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiproceso"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Executa os procesadores de WebView por separado"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementación de WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Definir implementación de WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opción xa non é válida. Téntao de novo."</string>
diff --git a/packages/SettingsLib/res/values-gu-rIN/strings.xml b/packages/SettingsLib/res/values-gu-rIN/strings.xml
index ac41ccb..c3737b5 100644
--- a/packages/SettingsLib/res/values-gu-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-gu-rIN/strings.xml
@@ -141,7 +141,7 @@
     <string name="category_work" msgid="8699184680584175622">"કાર્યાલય"</string>
     <string name="development_settings_title" msgid="215179176067683667">"વિકાસકર્તાનાં વિકલ્પો"</string>
     <string name="development_settings_enable" msgid="542530994778109538">"વિકાસકર્તાનાં વિકલ્પો સક્ષમ કરો"</string>
-    <string name="development_settings_summary" msgid="1815795401632854041">"એપ્લિકેશન વિકાસ માટે વિકલ્પો સેટ કરો"</string>
+    <string name="development_settings_summary" msgid="1815795401632854041">"ઍપ્લિકેશન વિકાસ માટે વિકલ્પો સેટ કરો"</string>
     <string name="development_settings_not_available" msgid="4308569041701535607">"આ વપરાશકર્તા માટે વિકાસકર્તા વિકલ્પો ઉપલબ્ધ નથી"</string>
     <string name="vpn_settings_not_available" msgid="956841430176985598">"આ વપરાશકર્તા માટે VPN સેટિંગ્સ ઉપલબ્ધ નથી"</string>
     <string name="tethering_settings_not_available" msgid="6765770438438291012">"આ વપરાશકર્તા માટે ટિથરિંગ સેટિંગ્સ ઉપલબ્ધ નથી"</string>
@@ -159,9 +159,9 @@
     <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"બુટલોડર અનલૉક કરવાની મંજૂરી આપો"</string>
     <string name="confirm_enable_oem_unlock_title" msgid="4802157344812385674">"OEM ને અનલૉક કરવાની મંજૂરી આપીએ?"</string>
     <string name="confirm_enable_oem_unlock_text" msgid="5517144575601647022">"ચેતવણી: જ્યારે આ સેટિંગ ચાલુ હોય ત્યારે આ ઉપકરણ પર ઉપકરણ સંરક્ષણ સુવિધાઓ કાર્ય કરશે નહીં."</string>
-    <string name="mock_location_app" msgid="7966220972812881854">"મોક સ્થાન એપ્લિકેશન પસંદ કરો"</string>
-    <string name="mock_location_app_not_set" msgid="809543285495344223">"કોઈ મોક સ્થાન એપ્લિકેશન સેટ કરાયેલ નથી"</string>
-    <string name="mock_location_app_set" msgid="8966420655295102685">"મોક સ્થાન એપ્લિકેશન: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="mock_location_app" msgid="7966220972812881854">"મોક સ્થાન ઍપ્લિકેશન પસંદ કરો"</string>
+    <string name="mock_location_app_not_set" msgid="809543285495344223">"કોઈ મોક સ્થાન ઍપ્લિકેશન સેટ કરાયેલ નથી"</string>
+    <string name="mock_location_app_set" msgid="8966420655295102685">"મોક સ્થાન ઍપ્લિકેશન: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="debug_networking_category" msgid="7044075693643009662">"નેટવર્કિંગ"</string>
     <string name="wifi_display_certification" msgid="8611569543791307533">"બિનતારી પ્રદર્શન પ્રમાણન"</string>
     <string name="wifi_verbose_logging" msgid="4203729756047242344">"Wi-Fi વર્બોઝ લૉગિંગ સક્ષમ કરો"</string>
@@ -195,10 +195,10 @@
     <string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP તપાસણી"</string>
     <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"HDCP તપાસણીની વર્તણૂક બદલો"</string>
     <string name="debug_debugging_category" msgid="6781250159513471316">"ડીબગિંગ"</string>
-    <string name="debug_app" msgid="8349591734751384446">"ડીબગ એપ્લિકેશન પસંદ કરો"</string>
-    <string name="debug_app_not_set" msgid="718752499586403499">"કોઇ ડીબગ એપ્લિકેશન સેટ કરેલી નથી"</string>
+    <string name="debug_app" msgid="8349591734751384446">"ડીબગ ઍપ્લિકેશન પસંદ કરો"</string>
+    <string name="debug_app_not_set" msgid="718752499586403499">"કોઇ ડીબગ ઍપ્લિકેશન સેટ કરેલી નથી"</string>
     <string name="debug_app_set" msgid="2063077997870280017">"એપ્લિકેશનને ડીબગ કરી રહ્યું છે: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="select_application" msgid="5156029161289091703">"એપ્લિકેશન પસંદ કરો"</string>
+    <string name="select_application" msgid="5156029161289091703">"ઍપ્લિકેશન પસંદ કરો"</string>
     <string name="no_application" msgid="2813387563129153880">"કંઈ નહીં"</string>
     <string name="wait_for_debugger" msgid="1202370874528893091">"ડીબગર માટે રાહ જુઓ"</string>
     <string name="wait_for_debugger_summary" msgid="1766918303462746804">"ડીબગ કરેલ એપ્લિકેશનો ક્રિયાન્વિત થતા પહેલાં ડીબગર જોડાઈ તેની રાહ જુએ છે"</string>
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"4x MSAA ને ફરજ પાડો"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"OpenGL ES 2.0 એપ્લિકેશન્સમાં 4x MSAA સક્ષમ કરો"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"બિન-લંબચોરસ ક્લિપ કામગીરી ડીબગ કરો"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"પ્રોફાઇલ GPU પ્રદર્શિત થાય છે"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"પ્રોફાઇલ GPU રેન્ડરિંગ"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"વિંડો એનિમેશન સ્કેલ"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"સંક્રમણ એનિમેશન સ્કેલ"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"એનિમેટર અવધિ સ્કેલ"</string>
@@ -247,7 +247,7 @@
     <string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"જેવો વપરાશકર્તા તેને છોડે, તરત જ દરેક પ્રવૃત્તિ નષ્ટ કરો"</string>
     <string name="app_process_limit_title" msgid="4280600650253107163">"પૃષ્ઠભૂમિ પ્રક્રિયા સીમા"</string>
     <string name="show_all_anrs" msgid="28462979638729082">"બધા ANR બતાવો"</string>
-    <string name="show_all_anrs_summary" msgid="641908614413544127">"પૃષ્ઠભૂમિ એપ્લિકેશનો માટે એપ્લિકેશન પ્રતિસાદ આપતી નથી સંવાદ બતાવો"</string>
+    <string name="show_all_anrs_summary" msgid="641908614413544127">"પૃષ્ઠભૂમિ ઍપ્લિકેશનો માટે ઍપ્લિકેશન પ્રતિસાદ આપતી નથી સંવાદ બતાવો"</string>
     <string name="force_allow_on_external" msgid="3215759785081916381">"બાહ્ય પર એપ્લિકેશનોને મંજૂરી આપવાની ફરજ પાડો"</string>
     <string name="force_allow_on_external_summary" msgid="3640752408258034689">"મેનિફેસ્ટ મૂલ્યોને ધ્યાનમાં લીધા સિવાય, કોઈપણ ઍપ્લિકેશનને બાહ્ય સ્ટોરેજ પર લખાવા માટે લાયક બનાવે છે"</string>
     <string name="force_resizable_activities" msgid="8615764378147824985">"પ્રવૃત્તિઓને ફરીથી કદ યોગ્ય થવા માટે ફરજ પાડો"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"સક્રિય. ટોગલ કરવા માટે ટૅપ કરો."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"ચાલુ સેવાઓ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"હાલમાં ચાલતી સેવાઓ જુઓ અને નિયંત્રિત કરો"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"મલ્ટિપ્રોસેસ WebView સક્ષમ કરો"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"પૃથક પ્રક્રિયામાં WebView રેંડરર્સ ચલાવો."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"મલ્ટિપ્રોસેસ WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView રેંડરર્સ અલગથી ચલાવો"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView અમલીકરણ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView અમલીકરણ સેટ કરો"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"આ વિકલ્પ હવે માન્ય નથી. ફરી પ્રયાસ કરો."</string>
@@ -292,7 +292,7 @@
     <string name="daltonizer_mode_monochromacy" msgid="8485709880666106721">"મોનોક્રોમેસી"</string>
     <string name="daltonizer_mode_deuteranomaly" msgid="5475532989673586329">"ડીયુટેરેનોમલી (લાલ-લીલો)"</string>
     <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"પ્રોટેનોમલી (લાલ-લીલો)"</string>
-    <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"ટ્રિટાનોમેલી(વાદળી-પીળો)"</string>
+    <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"ટ્રાઇટેનોમલી(વાદળી-પીળો)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"રંગ સુધારણા"</string>
     <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"આ સુવિધા પ્રાયોગિક છે અને કામગીરી પર અસર કરી શકે છે."</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"<xliff:g id="TITLE">%1$s</xliff:g> દ્વારા ઓવરરાઇડ થયું"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 0241c00..0ed67ee 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"सक्रिय. टॉगल करने पर टैप करें."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"चल रही सेवाएं"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"वर्तमान में चल रही सेवाओं को देखें और नियंत्रित करें"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"मल्टीप्रोसेस WebView सक्षम करें"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"किसी अलग प्रक्रिया में WebView रेंडरर चलाएं."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"मल्टीप्रोसेस WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView रेंडरर अलग-अलग चलाएं"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView कार्यान्वयन"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView कार्यान्वयन सेट करें"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"यह चयन अब मान्य नहीं है. पुनः प्रयास करें."</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index e030ff5..6c87e80 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -146,9 +146,9 @@
     <string name="vpn_settings_not_available" msgid="956841430176985598">"Postavke VPN-a nisu dostupne ovom korisniku"</string>
     <string name="tethering_settings_not_available" msgid="6765770438438291012">"Postavke dijeljenja veze nisu dostupne ovom korisniku"</string>
     <string name="apn_settings_not_available" msgid="7873729032165324000">"Postavke pristupne točke nisu dostupne ovom korisniku"</string>
-    <string name="enable_adb" msgid="7982306934419797485">"Uklanjanje pogrešaka putem USB-a"</string>
-    <string name="enable_adb_summary" msgid="4881186971746056635">"Uklanjanje pogrešaka s priključenim USB-om"</string>
-    <string name="clear_adb_keys" msgid="4038889221503122743">"Opoziv autorizacija za uklanjanje pogrešaka putem USB-a"</string>
+    <string name="enable_adb" msgid="7982306934419797485">"Otklanjanje pogrešaka putem USB-a"</string>
+    <string name="enable_adb_summary" msgid="4881186971746056635">"Otklanjanje pogrešaka s priključenim USB-om"</string>
+    <string name="clear_adb_keys" msgid="4038889221503122743">"Opoziv autorizacija za otklanjanje pogrešaka putem USB-a"</string>
     <string name="bugreport_in_power" msgid="7923901846375587241">"Prečac izvješća o pogreškama"</string>
     <string name="bugreport_in_power_summary" msgid="1778455732762984579">"Prikaži gumb u izborniku napajanja za izradu izvješća o programskim pogreškama"</string>
     <string name="keep_screen_on" msgid="1146389631208760344">"Ne pokreći mirovanje"</string>
@@ -182,8 +182,8 @@
     <string name="debug_view_attributes" msgid="6485448367803310384">"Omogući pregled atributa prikaza"</string>
     <string name="legacy_dhcp_client_summary" msgid="163383566317652040">"Upotrebljavajte DHCP klijent iz Lollipopa umjesto novog Android DHCP klijenta."</string>
     <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"Neka mobilni podaci uvijek budu aktivni, čak i kada je Wi‑Fi aktivan (za brzo prebacivanje s jedne na drugu mrežu)."</string>
-    <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti uklanjanje pogrešaka putem USB-a?"</string>
-    <string name="adb_warning_message" msgid="7316799925425402244">"Uklanjanje pogrešaka putem USB-a namijenjeno je samo u razvojne svrhe. Može se upotrijebiti za kopiranje podataka s računala na uređaj i obrnuto, instalaciju aplikacija na uređaju bez obavijesti i za čitanje dnevničkih zapisa."</string>
+    <string name="adb_warning_title" msgid="6234463310896563253">"Omogućiti otklanjanje pogrešaka putem USB-a?"</string>
+    <string name="adb_warning_message" msgid="7316799925425402244">"Otklanjanje pogrešaka putem USB-a namijenjeno je samo u razvojne svrhe. Može se upotrijebiti za kopiranje podataka s računala na uređaj i obrnuto, instalaciju aplikacija na uređaju bez obavijesti i za čitanje dnevničkih zapisa."</string>
     <string name="adb_keys_warning_message" msgid="5659849457135841625">"Želite li opozvati pristup uklanjanju pogrešaka putem USB-a sa svih računala koja ste prethodno autorizirali?"</string>
     <string name="dev_settings_warning_title" msgid="7244607768088540165">"Dopustiti postavke razvojnih programera?"</string>
     <string name="dev_settings_warning_message" msgid="2298337781139097964">"Ove su postavke namijenjene samo razvojnim programerima. One mogu uzrokovati kvar ili neželjeno ponašanje vašeg uređaja i aplikacija na njemu."</string>
@@ -194,14 +194,14 @@
     <string name="enable_terminal_summary" msgid="67667852659359206">"Omogući aplikaciju terminala koja nudi pristup lokalnoj ovojnici"</string>
     <string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP provjera"</string>
     <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"Postav. ponaš. HDCP prov."</string>
-    <string name="debug_debugging_category" msgid="6781250159513471316">"Uklanjanje pogrešaka"</string>
-    <string name="debug_app" msgid="8349591734751384446">"Aplikacija za uklanjanje pogrešaka"</string>
-    <string name="debug_app_not_set" msgid="718752499586403499">"Nema aplikacije za uklanjanje pogrešaka"</string>
-    <string name="debug_app_set" msgid="2063077997870280017">"Aplikacija za uklanjanje pogrešaka: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="debug_debugging_category" msgid="6781250159513471316">"Otklanjanje pogrešaka"</string>
+    <string name="debug_app" msgid="8349591734751384446">"Aplikacija za otklanjanje pogrešaka"</string>
+    <string name="debug_app_not_set" msgid="718752499586403499">"Nema aplikacije za otklanjanje pogrešaka"</string>
+    <string name="debug_app_set" msgid="2063077997870280017">"Aplikacija za otklanjanje pogrešaka: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="select_application" msgid="5156029161289091703">"Odaberite aplikaciju"</string>
     <string name="no_application" msgid="2813387563129153880">"Ništa"</string>
-    <string name="wait_for_debugger" msgid="1202370874528893091">"Čeka se program za uklanjanje pogrešaka"</string>
-    <string name="wait_for_debugger_summary" msgid="1766918303462746804">"Aplikacija čeka priključivanje programa za uklanjanje pogrešaka"</string>
+    <string name="wait_for_debugger" msgid="1202370874528893091">"Čeka se program za otklanjanje pogrešaka"</string>
+    <string name="wait_for_debugger_summary" msgid="1766918303462746804">"Aplikacija čeka priključivanje programa za otklanjanje pogrešaka"</string>
     <string name="debug_input_category" msgid="1811069939601180246">"Ulaz"</string>
     <string name="debug_drawing_category" msgid="6755716469267367852">"Crtež"</string>
     <string name="debug_hw_drawing_category" msgid="6220174216912308658">"Hardverski ubrzano renderiranje"</string>
@@ -226,7 +226,7 @@
     <string name="enable_opengl_traces_title" msgid="6790444011053219871">"Omogući OpenGL praćenja"</string>
     <string name="usb_audio_disable_routing" msgid="8114498436003102671">"Onemogući USB audiousmj."</string>
     <string name="usb_audio_disable_routing_summary" msgid="980282760277312264">"Onemogući aut. usmjeravanje na USB audioperiferiju"</string>
-    <string name="debug_layout" msgid="5981361776594526155">"Prikaži granice izgleda"</string>
+    <string name="debug_layout" msgid="5981361776594526155">"Prikaži okvir prikaza"</string>
     <string name="debug_layout_summary" msgid="2001775315258637682">"Prikazuju se obrubi, margine itd. isječaka."</string>
     <string name="force_rtl_layout_all_locales" msgid="2259906643093138978">"Nametni zdesna ulijevo"</string>
     <string name="force_rtl_layout_all_locales_summary" msgid="9192797796616132534">"Nametni smjer zdesna ulijevo za sve zemlje/jezike"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivno. Dodirnite da biste to promijenili."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Pokrenute usluge"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Pogledajte i nadzirite pokrenute procese"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Omogući višeprocesni WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Pokreni ispunjivače WebViewa u izoliranim procesima."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Višeprocesni web-prikaz"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Ispunjivače web-prikaza pokreni zasebno"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementacija WebViewa"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Postavi implementaciju WebViewa"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Taj izbor više nije važeći. Pokušajte ponovo."</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 7bf9ba5..5b8525c 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Bekapcsolva. Koppintson ide a váltáshoz."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Futó szolgáltatások"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"A jelenleg futó szolgáltatások megtekintése és vezérlése"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Többfolyamatos WebView indítása"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView-megjelenítők futtatása külön folyamatként."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Többfolyamatos WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView-megjelenítők futtatása külön"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-megvalósítás"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView-megvalósítás beállítása"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ez a választás már nem érvényes. Próbálkozzon újra."</string>
diff --git a/packages/SettingsLib/res/values-hy-rAM/strings.xml b/packages/SettingsLib/res/values-hy-rAM/strings.xml
index 9bf3f89..8db93c6 100644
--- a/packages/SettingsLib/res/values-hy-rAM/strings.xml
+++ b/packages/SettingsLib/res/values-hy-rAM/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Ակտիվ է: Հպեք՝ փոխելու համար:"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Աշխատեցվող ծառայություններ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Դիտել և վերահսկել ընթացիկ աշխատեցվող ծառայությունները"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Միացնել բազմագործընթաց WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Գործարկել WebView-ի մշակիչները առանձնացված գործընթացում:"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Բազմագործընթաց WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Գործարկել WebView-ի մշակիչներն առանձին"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-ի իրականացում"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Ընտրեք WebView-ի իրականացումը"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Այս ընտրանքն այլևս վավեր չէ: Փորձեք նորից:"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index bb77625..1083a8f 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktif. Ketuk untuk beralih."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Layanan yang sedang berjalan"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Melihat dan mengontrol layanan yang sedang berjalan"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Aktifkan WebView multiproses"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Jalankan perender WebView dalam proses yang terisolasi."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView Multiproses"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Jalankan perender WebView secara terpisah"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Penerapan WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Setel penerapan WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Pilihan ini tidak valid lagi. Coba lagi."</string>
diff --git a/packages/SettingsLib/res/values-is-rIS/strings.xml b/packages/SettingsLib/res/values-is-rIS/strings.xml
index dfc7f18..3558270 100644
--- a/packages/SettingsLib/res/values-is-rIS/strings.xml
+++ b/packages/SettingsLib/res/values-is-rIS/strings.xml
@@ -226,7 +226,7 @@
     <string name="enable_opengl_traces_title" msgid="6790444011053219871">"Kveikja á OpenGL-rakningu"</string>
     <string name="usb_audio_disable_routing" msgid="8114498436003102671">"Slökkva á USB-hljóðbeiningu"</string>
     <string name="usb_audio_disable_routing_summary" msgid="980282760277312264">"Slökkva á sjálfvirkri beiningu til USB-hljóðtækja"</string>
-    <string name="debug_layout" msgid="5981361776594526155">"Sýna mörk í uppsetningu"</string>
+    <string name="debug_layout" msgid="5981361776594526155">"Sýna uppsetningarmörk"</string>
     <string name="debug_layout_summary" msgid="2001775315258637682">"Sýna skurðlínur, spássíur o.s.frv."</string>
     <string name="force_rtl_layout_all_locales" msgid="2259906643093138978">"Þvinga umbrot frá hægri til vinstri"</string>
     <string name="force_rtl_layout_all_locales_summary" msgid="9192797796616132534">"Þvinga umbrot skjás frá hægri til vinstri fyrir alla tungumálskóða"</string>
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"Þvinga 4x MSAA"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"Virkja 4x MSAA í OpenGL ES 2.0 forritum"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"Villuleita klippt svæði sem ekki eru rétthyrnd"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"Greina teiknun skjákorts"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"Greina skjákortsteiknun"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"Kvarði gluggahreyfinga"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"Lengd hreyfiumbreytinga"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"Tímalengd hreyfiáhrifa"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Virkt. Ýttu til að breyta."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Þjónustur í gangi"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Skoða og stjórna þjónustum í gangi"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Virkja WebView í fjölvinnslu"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Keyra WebView teiknun í lokuðu ferli."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView í fjölvinnslu"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Keyra WebView teiknun í aðskildu lagi"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Innleiðing WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Stilla innleiðingu WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Þetta val er ekki lengur gilt. Reyndu aftur."</string>
@@ -323,7 +323,7 @@
     <string name="disabled_by_admin_summary_text" msgid="6750513964908334617">"Stjórnað af kerfisstjóra"</string>
     <string name="enabled_by_admin" msgid="2386503803463071894">"Virkjað af stjórnanda"</string>
     <string name="disabled_by_admin" msgid="3669999613095206948">"Stjórnandi gerði óvirkt"</string>
-    <string name="home" msgid="3256884684164448244">"Aðalsíða stillinga"</string>
+    <string name="home" msgid="3256884684164448244">"Stillingar"</string>
     <string name="charge_length_format" msgid="8978516217024434156">"Fyrir <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"<xliff:g id="ID_1">%1$s</xliff:g> eftir"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"Lítið"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index bce3e00..4c99887 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Attiva. Tocca per attivare/disattivare."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Servizi in esecuzione"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualizza e controlla i servizi attualmente in esecuzione"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Attiva WebView multiprocesso"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Esegui renderer WebView in un processo isolato."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiprocesso"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Esegui renderer WebView separatamente"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementazione di WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Imposta l\'implementazione di WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"La selezione non è più valida. Riprova."</string>
@@ -327,7 +327,7 @@
     <string name="charge_length_format" msgid="8978516217024434156">"<xliff:g id="ID_1">%1$s</xliff:g> fa"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"<xliff:g id="ID_1">%1$s</xliff:g> rimanenti"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"Piccolo"</string>
-    <string name="screen_zoom_summary_default" msgid="2247006805614056507">"Predefinito"</string>
+    <string name="screen_zoom_summary_default" msgid="2247006805614056507">"Predefinite"</string>
     <string name="screen_zoom_summary_large" msgid="4835294730065424084">"Grande"</string>
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"Più grande"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"Massimo"</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index 031718b..7574322 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"אפליקציה פעילה. הקש כדי להחליף מצב."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"שירותים פועלים"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"הצג ושלוט בשירותים הפועלים כעת"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"הפעל תצוגת אתר לריבוי עיבודים"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"הרץ מעבדי תצוגת אתר בהליך מבודד"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"‏הרץ כלי WebView לעיבוד/יצירת תמונה ממוחשבת בנפרד"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"‏יישום WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"‏הגדרת יישום WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"אפשרות זו כבר אינה תקפה. נסה שוב."</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index 808cd34..b25ad19 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"有効です。タップすると切り替わります。"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"実行中のサービス"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"現在実行中のサービスを表示して制御する"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"複数プロセス WebView を有効化"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"別個のプロセスで WebView レンダラを実行します。"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"マルチプロセス WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView レンダラを別個に実行"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView の実装"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView の実装の設定"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"この選択は無効になりました。もう一度お試しください。"</string>
diff --git a/packages/SettingsLib/res/values-ka-rGE/strings.xml b/packages/SettingsLib/res/values-ka-rGE/strings.xml
index de88b0d..1edca1b 100644
--- a/packages/SettingsLib/res/values-ka-rGE/strings.xml
+++ b/packages/SettingsLib/res/values-ka-rGE/strings.xml
@@ -182,7 +182,7 @@
     <string name="debug_view_attributes" msgid="6485448367803310384">"ნახვის ატრიბუტის ინსპექტირების ჩართვა"</string>
     <string name="legacy_dhcp_client_summary" msgid="163383566317652040">"ახალი Android DHCP კლიენტის ნაცვლად, Lollipop-ის DHCP კლიენტის გამოყენება."</string>
     <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"მობილური მოწყობილობის მონაცემები ყოველთვის აქტიური დარჩეს, მაშინაც კი, როდესაც Wi-Fi აქტიურია (ქსელის სწრაფი გადართვისთვის)."</string>
-    <string name="adb_warning_title" msgid="6234463310896563253">"ჩავრთო USB გამართვა?"</string>
+    <string name="adb_warning_title" msgid="6234463310896563253">"ჩაირთოს USB გამართვა?"</string>
     <string name="adb_warning_message" msgid="7316799925425402244">"USB გამართვა განკუთვნილია მხოლოდ დეველოპერული მიზნებისთვის. გამოიყენეთ კომპიუტერსა და თქვენ მოწყობილობას შორის მონაცემების გადასატანად, თქვენ მოწყობილობაზე აპების შეტყობინების გარეშე დასაყენებლად და ჟურნალის მონაცემების წასაკითხად."</string>
     <string name="adb_keys_warning_message" msgid="5659849457135841625">"გავაუქმოთ ყველა იმ კომპიუტერიდან USB გამართვაზე წვდომა, რომლებიდანაც აქამდე განახორციელეთ შესვლა?"</string>
     <string name="dev_settings_warning_title" msgid="7244607768088540165">"გსურთ, დეველოპმენტის პარამეტრების ნების დართვა?"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"აქტიური. შეეხეთ გადასართავად."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"მიმდინარე სერვისები"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ამჟამად მოქმედი სერვისების ნახვა და მართვა"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"მრავალპროც. WebView-ს ჩართვა"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView ვიზუალიზატორების იზოლირებულ პროცესში გაშვება."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"მრავალპროცესიანი WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView ვიზუალიზატორების განცალკევებულად გაშვება"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView რეალიზაცია"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView რეალიზაციის დაყენება"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"თქვენი არჩევანი აღარ მოქმედებს. ცადეთ ხელახლა."</string>
@@ -313,7 +313,7 @@
     <string name="battery_info_status_charging" msgid="1705179948350365604">"იტენება"</string>
     <string name="battery_info_status_charging_ac" msgid="2909861890674399949">"დატენვა ელკვებაზე"</string>
     <string name="battery_info_status_charging_ac_short" msgid="7431401092096415502">"იტენება"</string>
-    <string name="battery_info_status_charging_usb" msgid="2207489369680923929">"დატენვა USB-ზე"</string>
+    <string name="battery_info_status_charging_usb" msgid="2207489369680923929">"იტენება USB-ზე"</string>
     <string name="battery_info_status_charging_usb_short" msgid="6733371990319101366">"იტენება"</string>
     <string name="battery_info_status_charging_wireless" msgid="3574032603735446573">"დატენვა უსადენოდ"</string>
     <string name="battery_info_status_charging_wireless_short" msgid="752569941028903610">"იტენება"</string>
diff --git a/packages/SettingsLib/res/values-kk-rKZ/strings.xml b/packages/SettingsLib/res/values-kk-rKZ/strings.xml
index 4768b79..5100282 100644
--- a/packages/SettingsLib/res/values-kk-rKZ/strings.xml
+++ b/packages/SettingsLib/res/values-kk-rKZ/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Белсенді. Ауыстырып қосу үшін түртіңіз."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Қосылып тұрған қызметтер"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ағымдағы қосылып тұрған қызметтерді көру және басқару"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Бірнеше процесті веб-көріністі қосу"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Веб-көрініс бейнелеушілерін оқшауланған процесте іске қосу."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Бірнеше процесті WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView бейнелеушілерін бөлек қолдану"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ендіру"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView ендіруін орнату"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Бұл таңдау енді жарамды емес. Әрекетті қайталаңыз."</string>
diff --git a/packages/SettingsLib/res/values-km-rKH/strings.xml b/packages/SettingsLib/res/values-km-rKH/strings.xml
index a79fd983..941c01d 100644
--- a/packages/SettingsLib/res/values-km-rKH/strings.xml
+++ b/packages/SettingsLib/res/values-km-rKH/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"សកម្ម។ ប៉ះដើម្បីបិទ/បើក។"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"សេវាកម្ម​កំពុង​ដំណើរការ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"មើល និង​គ្រប់គ្រង​សេវាកម្ម​កំពុង​ដំណើរការ​បច្ចុប្បន្ន"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"បើកដំណើរការ WebView ដែលមានអង្គដំណើរការច្រើន"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ដំណើរការកម្មវិធីបំលែង WebView ក្នុងដំណើរការដាច់ដោយឡែក"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView ដែលមានអង្គដំណើរការច្រើន"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"ដំណើរការកម្មវិធីបម្លែង WebView ដោយឡែក"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"ការប្រតិបត្តិ WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"កំណត់ការប្រតិបត្តិ WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ជម្រើសនេះលែងមានសុពលភាពទៀតហើយ ព្យាយាមម្តងទៀត"</string>
diff --git a/packages/SettingsLib/res/values-kn-rIN/strings.xml b/packages/SettingsLib/res/values-kn-rIN/strings.xml
index b70ea63..99fb1b2 100644
--- a/packages/SettingsLib/res/values-kn-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-kn-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ಸಕ್ರಿಯ. ಟಾಗಲ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"ರನ್‌ ಆಗುತ್ತಿರುವ ಸೇವೆಗಳು"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ಈಗ ರನ್‌ ಆಗುತ್ತಿರುವ ಸೇವೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"ಬಹುಪ್ರಕ್ರಿಯೆ WebView ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ಪ್ರತ್ಯೇಕಗೊಳಿಸಿದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ WebView ರೆಂಡರರ್‌‌ ರನ್‌ ಮಾಡಿ."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"ಬಹುಪ್ರಕ್ರಿಯೆ WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView ರೆಂಡರರ್‌‌‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ರನ್‌ ಮಾಡಿ"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ಅನುಷ್ಠಾನಗೊಳಿಸುವಿಕೆ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView ಅನುಷ್ಠಾನಗೊಳಿಸುವಿಕೆಯನ್ನು ಹೊಂದಿಸಿ"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ಈ ಆಯ್ಕೆಯು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿರುವುದಿಲ್ಲ. ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."</string>
@@ -332,5 +332,5 @@
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"ಸ್ವಲ್ಪ ದೊಡ್ಡ"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"ದೊಡ್ಡ"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"ಕಸ್ಟಮ್ (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
-    <string name="help_feedback_label" msgid="6815040660801785649">"ಸಹಾಯ &amp; amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
+    <string name="help_feedback_label" msgid="6815040660801785649">"ಸಹಾಯ &amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index fed4211..0f48a45 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"활성화되었습니다. 전환하려면 탭하세요."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"실행 중인 서비스"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"현재 실행 중인 서비스 보기 및 제어"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"멀티 프로세스 WebView 사용"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"단독 프로세스 내에서 WebView 렌더러를 실행합니다."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"멀티 프로세스 WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"개별적으로 WebView 렌더기 실행"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView 구현"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView 구현 설정"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"선택이 더 이상 유효하지 않습니다. 다시 시도하세요."</string>
diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml
index 19c18e6..204c666 100644
--- a/packages/SettingsLib/res/values-ky-rKG/strings.xml
+++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Иштеп турат. Которуштуруу үчүн таптап коюңуз."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Иштеп жаткан кызматтар"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Учурда иштеп жаткан кызматтарды көрүү жана көзөмөлдөө"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Көп процесстүү WebView иштт"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView рендерерлерин корголгон процессте иштетүү."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Көп процесстүү WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView рендерерлерин өзүнчө иштетүү"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView аткарылышы"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView аткарылышын коюу"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Тандалган нерсе жараксыз болуп калган. Кайра аракет кылыңыз."</string>
diff --git a/packages/SettingsLib/res/values-lo-rLA/strings.xml b/packages/SettingsLib/res/values-lo-rLA/strings.xml
index f6f7e6b..d768214 100644
--- a/packages/SettingsLib/res/values-lo-rLA/strings.xml
+++ b/packages/SettingsLib/res/values-lo-rLA/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ນຳໃຊ້ຢູ່. ແຕະເພື່ອສັບປ່ຽນ."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"ບໍລິການທີ່ເຮັດວຽກຢູ່"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ເບິ່ງ ແລະຈັດການບໍລິການທີ່ກຳລັງເຮັດວຽກຢູ່ໃນປັດຈຸບັນ"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"ອະນຸຍາດໃຫ້ມີໂປຣເຊສ WebView ຫຼາຍອັນໄດ້"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ເປີດໃຊ້ຕົວປະມວນ WebView ໃນໂປຣເຊສທີ່ແຍກຈາກກັນໄດ້."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"ໃຊ້ຕົວເຣນເດີ WebView ແຍກຕ່າງຫາກ"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"ການຈັດຕັ້ງປະຕິບັດ WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"ຕັ້ງການຈັດຕັ້ງປະຕິບັດ WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ບໍ່ສາມາດໃຊ້ການເລືອກນີ້ໄດ້ອີກຕໍ່ໄປແລ້ວ. ກະລຸນາລອງໃໝ່."</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 3358683..7318b41 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktyvi. Palieskite, kad perjungtumėte."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Vykdomos paslaugos"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Žiūrėti ir valdyti dabar vykdomas paslaugas"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Įgal. kelių procesų „WebView“"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Paleisti „WebView“ pateikimo priemones vienam procesui."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Kelių procesų „WebView“"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Paleisti „WebView“ pateikimo priemones atskirai"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"„WebView“ diegimas"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"„WebView“ diegimo nustatymas"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Šios parinkties nebegalima pasirinkti. Bandykite dar kartą."</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index bcdba2d..e11a4b2 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktīva. Pieskarieties, lai pārslēgtu."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Aktīvie pakalpojumi"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Pašreiz darbojošos pakalpojumu skatīšana un vadība"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Iespējot vairākprocesu WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Atsevišķā procesā tiek palaisti WebView renderētāji."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Vairākprocesu WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Palaist WebView renderētājus atsevišķi"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ieviešana"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Iestatīt WebView ieviešanu"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Šī iespēja vairs nav derīga. Mēģiniet vēlreiz."</string>
diff --git a/packages/SettingsLib/res/values-mk-rMK/strings.xml b/packages/SettingsLib/res/values-mk-rMK/strings.xml
index 9839ebb..2a80e6d 100644
--- a/packages/SettingsLib/res/values-mk-rMK/strings.xml
+++ b/packages/SettingsLib/res/values-mk-rMK/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Активно. Допрете за да смените."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Активни услуги"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Погледнете и контролирајте услуги што се моментално активни"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Овозможи мултипроцесен WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Активирајте ги WebView-прикажувачите во изолиран процес."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Повеќекратен процес на WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Посебно извршувајте ги прикажувачите на WebView"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Воведување WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Поставете воведување WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Овој избор веќе не важи. Обидете се повторно."</string>
diff --git a/packages/SettingsLib/res/values-ml-rIN/strings.xml b/packages/SettingsLib/res/values-ml-rIN/strings.xml
index 6cab99a..82ef83d 100644
--- a/packages/SettingsLib/res/values-ml-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-ml-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"സജീവം. മാറ്റുന്നതിന് ടാപ്പുചെയ്യുക."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"പ്രവർത്തിക്കുന്ന സേവനങ്ങൾ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"നിലവിൽ പ്രവർത്തിക്കുന്ന സേവങ്ങൾ കാണുക, നിയന്ത്രിക്കുക"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"മൾട്ടിപ്രോസസ്സ് WebView പ്രവർത്തനക്ഷമമാക്കൂ"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ഒറ്റപ്പെട്ടൊരു പ്രോസസ്സിൽ WebView റെൻഡററുകൾ റൺ ചെയ്യുക."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"മൾട്ടിപ്രോസസ്സ് WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView റെൻഡററുകൾ പ്രത്യേകമായി റൺ ചെയ്യുക"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView നടപ്പാക്കൽ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView നടപ്പാക്കൽ സജ്ജമാക്കുക"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ഈ തിരഞ്ഞെടുപ്പിന് തുടർന്നങ്ങോട്ട് സാധുതയില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
diff --git a/packages/SettingsLib/res/values-mn-rMN/strings.xml b/packages/SettingsLib/res/values-mn-rMN/strings.xml
index e0ea442..0757508 100644
--- a/packages/SettingsLib/res/values-mn-rMN/strings.xml
+++ b/packages/SettingsLib/res/values-mn-rMN/strings.xml
@@ -88,7 +88,7 @@
     <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"Арилгасан апп-ууд болон хэрэглэгчид"</string>
     <string name="tether_settings_title_usb" msgid="6688416425801386511">"USB модем болгох"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Зөөврийн сүлжээний цэг"</string>
-    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Блютүүт модем болгох"</string>
+    <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Bluetooth модем болгох"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="5355828977109785001">"Модем болгох"</string>
     <string name="tether_settings_title_all" msgid="8356136101061143841">"Модем болгох &amp; зөөврийн сүлжээний цэг"</string>
     <string name="managed_user_title" msgid="8109605045406748842">"Ажлын бүх апп"</string>
@@ -153,7 +153,7 @@
     <string name="bugreport_in_power_summary" msgid="1778455732762984579">"Цэсэнд согогийн репорт авахад зориулсан товчийг харуулах"</string>
     <string name="keep_screen_on" msgid="1146389631208760344">"Идэвхтэй байлгах"</string>
     <string name="keep_screen_on_summary" msgid="2173114350754293009">"Цэнэглэж байх үед дэлгэц хэзээ ч амрахгүй"</string>
-    <string name="bt_hci_snoop_log" msgid="3340699311158865670">"Блютүүт HCI снүүп логыг идэвхжүүлэх"</string>
+    <string name="bt_hci_snoop_log" msgid="3340699311158865670">"Bluetooth HCI снүүп логыг идэвхжүүлэх"</string>
     <string name="bt_hci_snoop_log_summary" msgid="730247028210113851">"Файл доторх бүх блютүүт HCI пакетуудыг унших"</string>
     <string name="oem_unlock_enable" msgid="6040763321967327691">"OEM түгжээ тайлагч"</string>
     <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"Bootloader-н түгжээг тайлахыг зөвшөөрөх"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Идэвхтэй байна. Унтраах/асаахын тулд дарна уу."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Ажиллаж байгаа үйлчилгээнүүд"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Одоо ажиллаж байгаа үйлчилгээнүүдийг харах болон хянах"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"WebView-н олон боловсруулалтыг идэвхжүүлэх"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView хөрвүүлэгчийг тусдаа боловсруулалтаар ажиллуулна уу."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Олон боловсруулалттай WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView хөрвүүлэгчийг тусад нь ажиллуулах"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView хэрэгжилт"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView хэрэгжилтийг тохируулах"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Энэ сонголт хүчингүй байна. Дахин оролдоно уу."</string>
diff --git a/packages/SettingsLib/res/values-mr-rIN/strings.xml b/packages/SettingsLib/res/values-mr-rIN/strings.xml
index 7ae8b17..ba020da 100644
--- a/packages/SettingsLib/res/values-mr-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-mr-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"सक्रिय. टॉगल करण्यासाठी टॅप करा."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"चालू सेवा"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"सध्या चालत असलेल्या सेवा पहा आणि नियंत्रित करा"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"एकाधिक प्रक्रिया WebView सक्षम करा"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"एक वेगळ्या प्रक्रियेत WebView प्रस्तुतकर्ते चालवा."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"एकाधिक प्रक्रिया वेबदृश्य"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"वेबदृश्य प्रस्तुतकर्ते स्वतंत्रपणे चालवा"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"वेबदृश्य अंमलबजावणी"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"वेबदृश्य अंमलबजावणी सेट करा"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ही निवड यापुढे वैध असणार नाही. पुन्हा प्रयत्न करा."</string>
diff --git a/packages/SettingsLib/res/values-ms-rMY/strings.xml b/packages/SettingsLib/res/values-ms-rMY/strings.xml
index 794482f..554b3af 100644
--- a/packages/SettingsLib/res/values-ms-rMY/strings.xml
+++ b/packages/SettingsLib/res/values-ms-rMY/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktif. Ketik untuk menogol."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Perkhidmatan dijalankan"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Lihat dan kawal perkhidmatan yang sedang dijalankan"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Dayakan WebView berbilang proses"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Jalankan pemapar WebView dalam proses terpencil."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Paparan Web Berbilang Proses"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Jalankan pemapar Paparan Web secara berasingan"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Pelaksanaan WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Tetapkan pelaksanaan WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Pilihan ini tidak lagi sah. Cuba lagi."</string>
diff --git a/packages/SettingsLib/res/values-my-rMM/strings.xml b/packages/SettingsLib/res/values-my-rMM/strings.xml
index 8c64bd7..d7d6b56 100644
--- a/packages/SettingsLib/res/values-my-rMM/strings.xml
+++ b/packages/SettingsLib/res/values-my-rMM/strings.xml
@@ -71,7 +71,7 @@
     <string name="bluetooth_hid_profile_summary_use_for" msgid="232727040453645139">"ထည့်သွင်းရန်အသုံးပြုသည်"</string>
     <string name="bluetooth_pairing_accept" msgid="6163520056536604875">"အတူတွဲပါ"</string>
     <string name="bluetooth_pairing_accept_all_caps" msgid="6061699265220789149">"ချိတ်တွဲရန်"</string>
-    <string name="bluetooth_pairing_decline" msgid="4185420413578948140">"ထားတော့"</string>
+    <string name="bluetooth_pairing_decline" msgid="4185420413578948140">"ဖျက်သိမ်းရန်"</string>
     <string name="bluetooth_pairing_will_share_phonebook" msgid="4982239145676394429">"ချိတ်တွဲမှုက ချိတ်ဆက်ထားလျှင် သင်၏ အဆက်အသွယ်များ နှင့် ခေါ်ဆိုမှု မှတ်တမ်းကို ရယူခွင့် ပြုသည်။"</string>
     <string name="bluetooth_pairing_error_message" msgid="3748157733635947087">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>နှင့် တွဲချိတ်မရပါ"</string>
     <string name="bluetooth_pairing_pin_error_message" msgid="8337234855188925274">"ပင်နံပါတ် သို့မဟုတ် ဖြတ်သန်းခွင့်ကီးမမှန်ကန်သောကြောင့်<xliff:g id="DEVICE_NAME">%1$s</xliff:g>နှင့် တွဲချိတ်မရပါ။"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ပွင့်နေသည်။ ပြောင်းရန်တို့ပါ။"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"အလုပ်လုပ်နေသောဝန်ဆောင်မှုများ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ယခုအလုပ်လုပ်နေသောဝန်ဆောင်မှုကို ကြည့်ခြင်းနှင့် ထိန်းသိမ်းခြင်းအား ပြုလုပ်မည်လား?"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"လုပ်ငန်းဖြစ်စဉ်များစွာကြည့်နိုင်သည့် ဝဘ်မြင်ကွင်းကိုဖွင့်ပါ"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"လုပ်ငန်းဖြစ်စဉ်တစ်ခုတည်းအတွက် ဝဘ်မြင်ကွင်း အဖြစ်ပြုလုပ်ခြင်းကို ဖွင့်ပါ။"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"တဘ်တစ်ခုထက်ပိုဖွင့်ထားနိုင်သော ​WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView ပြင်ဆင်မှုစနစ်ကို သီးခြားဖွင့်ပါ"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView အကောင်အထည်ဖော်မှု"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView အကောင်အထည်ဖော်မှု သတ်မှတ်ပါ"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ဤရွေးချယ်မှု မှန်ကန်မှု မရှိတော့ပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
@@ -332,5 +332,5 @@
     <string name="screen_zoom_summary_very_large" msgid="7108563375663670067">"ပိုကြီး"</string>
     <string name="screen_zoom_summary_extremely_large" msgid="7427320168263276227">"အကြီးဆုံး"</string>
     <string name="screen_zoom_summary_custom" msgid="5611979864124160447">"စိတ်ကြိုက် (<xliff:g id="DENSITYDPI">%d</xliff:g>)"</string>
-    <string name="help_feedback_label" msgid="6815040660801785649">"အကူအညီ နှင့်တုံ့ပြန်ချက်"</string>
+    <string name="help_feedback_label" msgid="6815040660801785649">"အကူအညီနှင့် တုံ့ပြန်ချက်"</string>
 </resources>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 11ce40c..fa15cd3 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiv. Trykk for å slå av/på."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Aktive tjenester"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Se og kontrollér tjenester som kjører for øyeblikket"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Slå på WebView for flere prosesser"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Kjør WebView-gjengivelser i en isolert prosess."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView for flere prosesser"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Kjør WebView-gjengivere separat"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Angi WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Dette valget er ikke gyldig lenger. Prøv på nytt."</string>
diff --git a/packages/SettingsLib/res/values-ne-rNP/strings.xml b/packages/SettingsLib/res/values-ne-rNP/strings.xml
index d1f4607..e091138 100644
--- a/packages/SettingsLib/res/values-ne-rNP/strings.xml
+++ b/packages/SettingsLib/res/values-ne-rNP/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"सक्रिय। टगल गर्न ट्याप गर्नुहोस्।"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"चलिरहेका सेवाहरू"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"हाल चालु भइरहेका सेवाहरू हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"मल्टिप्रोसेस वेबभ्यु सक्षम गर्नुहोस्"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"एउटा पृथक प्रक्रियामा वेबभ्यु रेन्डररहरू चलाउनुहोस्।"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"मल्टिप्रोसेस WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView रेन्डररहरूलाई पृथक रूपमा सञ्चालन गर्नुहोस्"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView कार्यान्वयन"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView कार्यान्वयन सेट गर्नुहोस्"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"यो छनोट अब मान्य छैन। फेरि प्रयास गर्नुहोस्।"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index abca5c8..2c2c5d0 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Actief. Tik om te schakelen."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Actieve services"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Services die momenteel actief zijn, weergeven en beheren"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Multiproces-WebView aan"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView-weergaveprogramma\'s uitvoeren in geïsoleerd proces."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess-WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView-weergaveprogramma\'s afzonderlijk uitvoeren"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-implementatie"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView-implementatie instellen"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Deze keuze is niet meer geldig. Probeer het opnieuw."</string>
diff --git a/packages/SettingsLib/res/values-pa-rIN/strings.xml b/packages/SettingsLib/res/values-pa-rIN/strings.xml
index 3234c49..19893d6 100644
--- a/packages/SettingsLib/res/values-pa-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-pa-rIN/strings.xml
@@ -46,7 +46,7 @@
     <string name="bluetooth_profile_a2dp" msgid="2031475486179830674">"ਮੀਡੀਆ ਔਡੀਓ"</string>
     <string name="bluetooth_profile_headset" msgid="8658779596261212609">"ਫੋਨ ਔਡੀਓ"</string>
     <string name="bluetooth_profile_opp" msgid="9168139293654233697">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ"</string>
-    <string name="bluetooth_profile_hid" msgid="3680729023366986480">"ਇਨਪੁਟ ਡਿਵਾਈਸ"</string>
+    <string name="bluetooth_profile_hid" msgid="3680729023366986480">"ਇਨਪੁਟ ਡੀਵਾਈਸ"</string>
     <string name="bluetooth_profile_pan" msgid="3391606497945147673">"ਇੰਟਰਨੈਟ ਪਹੁੰਚ"</string>
     <string name="bluetooth_profile_pbap" msgid="5372051906968576809">"ਸੰਪਰਕ ਸ਼ੇਅਰਿੰਗ"</string>
     <string name="bluetooth_profile_pbap_summary" msgid="6605229608108852198">"ਸੰਪਰਕ ਸ਼ੇਅਰਿੰਗ ਲਈ ਵਰਤੋ"</string>
@@ -59,9 +59,9 @@
     <string name="bluetooth_map_profile_summary_connected" msgid="8191407438851351713">"ਨਕਸ਼ੇ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
     <string name="bluetooth_sap_profile_summary_connected" msgid="8561765057453083838">"SAP ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
     <string name="bluetooth_opp_profile_summary_not_connected" msgid="1267091356089086285">"ਫਾਈਲ ਟ੍ਰਾਂਸਫਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ"</string>
-    <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"ਇਨਪੁਟ ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
-    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"ਇੰਟਰਨੈਟ ਪਹੁੰਚ ਲਈ ਡਿਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
-    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"ਡਿਵਾਈਸ ਨਾਲ ਸਥਾਨਕ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਸ਼ੇਅਰ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="bluetooth_hid_profile_summary_connected" msgid="3381760054215168689">"ਇਨਪੁਟ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
+    <string name="bluetooth_pan_user_profile_summary_connected" msgid="4602294638909590612">"ਇੰਟਰਨੈਟ ਪਹੁੰਚ ਲਈ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="1561383706411975199">"ਡੀਵਾਈਸ ਨਾਲ ਸਥਾਨਕ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਸ਼ੇਅਰ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="bluetooth_pan_profile_summary_use_for" msgid="5664884523822068653">"ਇੰਟਰਨੈਟ ਪਹੁੰਚ ਲਈ ਵਰਤੋ"</string>
     <string name="bluetooth_map_profile_summary_use_for" msgid="5154200119919927434">"ਨਕਸ਼ੇ ਲਈ ਵਰਤੋ"</string>
     <string name="bluetooth_sap_profile_summary_use_for" msgid="7085362712786907993">"SIM ਪਹੁੰਚ ਲਈ ਵਰਤੋ"</string>
@@ -98,7 +98,7 @@
     <string name="launch_defaults_some" msgid="313159469856372621">"ਕੁਝ ਡਿਫੌਲਟਸ ਸੈਟ ਕੀਤੇ"</string>
     <string name="launch_defaults_none" msgid="4241129108140034876">"ਕੋਈ ਡਿਫੌਲਟਸ ਸੈਟ ਨਹੀਂ ਕੀਤੇ"</string>
     <string name="tts_settings" msgid="8186971894801348327">"ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="tts_settings_title" msgid="1237820681016639683">"ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਆਉਟਪੁਟ"</string>
+    <string name="tts_settings_title" msgid="1237820681016639683">"ਲਿਖਤ-ਤੋਂ-ਬੋਲੀ ਆਊਟਪੁਟ"</string>
     <string name="tts_default_rate_title" msgid="6030550998379310088">"ਸਪੀਚ ਰੇਟ"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"ਸਪੀਡ ਜਿਸਤੇ ਟੈਕਸਟ ਬੋਲਿਆ ਜਾਂਦਾ ਹੈ"</string>
     <string name="tts_default_pitch_title" msgid="6135942113172488671">"ਪਿਚ"</string>
@@ -109,14 +109,14 @@
     <string name="tts_default_lang_summary" msgid="5219362163902707785">"ਬੋਲੇ ਗਏ ਟੈਕਸਟ ਲਈ ਭਾਸ਼ਾ-ਵਿਸ਼ੇਸ਼ ਵੌਇਸ ਸੈਟ ਕਰਦਾ ਹੈ"</string>
     <string name="tts_play_example_title" msgid="7094780383253097230">"ਇੱਕ ਉਦਾਹਰਨ ਲਈ ਸੁਣੋ"</string>
     <string name="tts_play_example_summary" msgid="8029071615047894486">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਦਾ ਇੱਕ ਛੋਟਾ ਪ੍ਰਦਰਸ਼ਨ ਪਲੇ ਕਰੋ"</string>
-    <string name="tts_install_data_title" msgid="4264378440508149986">"ਵੌਇਸ ਡਾਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string>
-    <string name="tts_install_data_summary" msgid="5742135732511822589">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਲਈ ਲੁੜੀਂਦਾ ਵੌਇਸ ਡਾਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string>
-    <string name="tts_engine_security_warning" msgid="8786238102020223650">"ਇਹ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਉਹ ਸਾਰਾ ਟੈਕਸਟ ਇਕੱਤਰ ਕਰਨ ਵਿੱਚ ਸਮਰੱਥ ਹੋ ਸਕਦਾ ਹੈ, ਜੋ ਬੋਲਿਆ ਜਾਏਗਾ, ਨਿੱਜੀ ਡਾਟਾ ਸਮੇਤ ਜਿਵੇਂ ਪਾਸਵਰਡ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ। ਇਹ <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g> ਇੰਜਣ ਤੋਂ ਆਉਂਦਾ ਹੈ। ਕੀ ਇਸ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?"</string>
-    <string name="tts_engine_network_required" msgid="1190837151485314743">"ਇਸ ਭਾਸ਼ਾ ਲਈ ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਆਉਟਪੁਟ ਲਈ ਇੱਕ ਚਾਲੂ ਨੈਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="tts_install_data_title" msgid="4264378440508149986">"ਵੌਇਸ ਡੈਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string>
+    <string name="tts_install_data_summary" msgid="5742135732511822589">"ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਲਈ ਲੁੜੀਂਦਾ ਵੌਇਸ ਡੈਟਾ ਇੰਸਟੌਲ ਕਰੋ"</string>
+    <string name="tts_engine_security_warning" msgid="8786238102020223650">"ਇਹ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਉਹ ਸਾਰਾ ਟੈਕਸਟ ਇਕੱਤਰ ਕਰਨ ਵਿੱਚ ਸਮਰੱਥ ਹੋ ਸਕਦਾ ਹੈ, ਜੋ ਬੋਲਿਆ ਜਾਏਗਾ, ਨਿੱਜੀ ਡੈਟਾ ਸਮੇਤ ਜਿਵੇਂ ਪਾਸਵਰਡ ਅਤੇ ਕ੍ਰੈਡਿਟ ਕਾਰਡ ਨੰਬਰ। ਇਹ <xliff:g id="TTS_PLUGIN_ENGINE_NAME">%s</xliff:g> ਇੰਜਣ ਤੋਂ ਆਉਂਦਾ ਹੈ। ਕੀ ਇਸ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਇੰਜਣ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?"</string>
+    <string name="tts_engine_network_required" msgid="1190837151485314743">"ਇਸ ਭਾਸ਼ਾ ਲਈ ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਆਊਟਪੁਟ ਲਈ ਇੱਕ ਚਾਲੂ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ।"</string>
     <string name="tts_default_sample_string" msgid="4040835213373086322">"ਇਹ ਸਪੀਚ ਸਿੰਥੈਸਿਸ ਦਾ ਇੱਕ ਉਦਾਹਰਨ ਹੈ"</string>
     <string name="tts_status_title" msgid="7268566550242584413">"ਡਿਫੌਲਟ ਭਾਸ਼ਾ ਸਥਿਤੀ"</string>
     <string name="tts_status_ok" msgid="1309762510278029765">"<xliff:g id="LOCALE">%1$s</xliff:g> ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਮਰਥਿਤ ਹੈ"</string>
-    <string name="tts_status_requires_network" msgid="6042500821503226892">"<xliff:g id="LOCALE">%1$s</xliff:g> ਲਈ ਨੈਟਵਰਕ ਕਨੈਕਸ਼ਨ ਲੁੜੀਂਦਾ ਹੈ"</string>
+    <string name="tts_status_requires_network" msgid="6042500821503226892">"<xliff:g id="LOCALE">%1$s</xliff:g> ਲਈ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ ਲੁੜੀਂਦਾ ਹੈ"</string>
     <string name="tts_status_not_supported" msgid="4491154212762472495">"<xliff:g id="LOCALE">%1$s</xliff:g> ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ"</string>
     <string name="tts_status_checking" msgid="5339150797940483592">"ਜਾਂਚ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ..."</string>
     <string name="tts_engine_settings_title" msgid="3499112142425680334">"<xliff:g id="TTS_ENGINE_NAME">%s</xliff:g> ਲਈ ਸੈਟਿੰਗਾਂ"</string>
@@ -141,7 +141,7 @@
     <string name="category_work" msgid="8699184680584175622">"ਦਫ਼ਤਰ"</string>
     <string name="development_settings_title" msgid="215179176067683667">"ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ"</string>
     <string name="development_settings_enable" msgid="542530994778109538">"ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ ਨੂੰ ਯੋਗ ਬਣਾਓ"</string>
-    <string name="development_settings_summary" msgid="1815795401632854041">"ਐਪ ਵਿਕਾਸ ਲਈ ਚੋਣਾਂ ਸੈਟ ਕਰੋ"</string>
+    <string name="development_settings_summary" msgid="1815795401632854041">"ਐਪ ਵਿਕਾਸ ਲਈ ਚੋਣਾਂ ਸੈੱਟ ਕਰੋ"</string>
     <string name="development_settings_not_available" msgid="4308569041701535607">"ਇਸ ਉਪਭੋਗਤਾ ਲਈ ਵਿਕਾਸਕਾਰ ਚੋਣਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
     <string name="vpn_settings_not_available" msgid="956841430176985598">"ਇਸ ਉਪਭੋਗਤਾ ਲਈ VPN ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
     <string name="tethering_settings_not_available" msgid="6765770438438291012">"ਇਸ ਉਪਭੋਗਤਾ ਲਈ ਟੀਥਰਿੰਗ ਸੈਟਿੰਗਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
@@ -158,7 +158,7 @@
     <string name="oem_unlock_enable" msgid="6040763321967327691">"OEM ਅਨਲੌਕ ਕਰਨਾ"</string>
     <string name="oem_unlock_enable_summary" msgid="4720281828891618376">"ਬੂਟਲੋਡਰ ਨੂੰ ਅਨਲੌਕ ਕੀਤੇ ਜਾਣ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
     <string name="confirm_enable_oem_unlock_title" msgid="4802157344812385674">"ਕੀ OEM ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
-    <string name="confirm_enable_oem_unlock_text" msgid="5517144575601647022">"ਚਿਤਾਵਨੀ: ਡਿਵਾਈਸ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਉਦੋਂ ਇਸ ਡਿਵਾਈਸ ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ ਜਦੋਂ ਇਹ ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇਗੀ।"</string>
+    <string name="confirm_enable_oem_unlock_text" msgid="5517144575601647022">"ਚਿਤਾਵਨੀ: ਡੀਵਾਈਸ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਉਦੋਂ ਇਸ ਡੀਵਾਈਸ ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ ਜਦੋਂ ਇਹ ਸੈਟਿੰਗ ਚਾਲੂ ਹੋਵੇਗੀ।"</string>
     <string name="mock_location_app" msgid="7966220972812881854">"ਮੌਕ ਸਥਾਨ ਐਪ ਚੁਣੋ"</string>
     <string name="mock_location_app_not_set" msgid="809543285495344223">"ਕੋਈ ਵੀ ਮੌਕ ਸਥਾਨ ਐਪ ਸੈੱਟ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string>
     <string name="mock_location_app_set" msgid="8966420655295102685">"ਮੌਕ ਸਥਾਨ ਐਪ: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
@@ -171,8 +171,8 @@
     <string name="bluetooth_disable_absolute_volume" msgid="2660673801947898809">"ਪੂਰਨ ਵੌਲਯੂਮ ਨੂੰ ਅਯੋਗ ਬਣਾਓ"</string>
     <string name="wifi_display_certification_summary" msgid="1155182309166746973">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਚੋਣਾਂ ਦਿਖਾਓ"</string>
     <string name="wifi_verbose_logging_summary" msgid="6615071616111731958">"Wi‑Fi ਲੌਗਿੰਗ ਪੱਧਰ ਵਧਾਓ, Wi‑Fi Picker ਵਿੱਚ ਪ੍ਰਤੀ SSID RSSI ਦਿਖਾਓ"</string>
-    <string name="wifi_aggressive_handover_summary" msgid="6328455667642570371">"ਜਦੋਂ ਸਮਰਥਿਤ ਹੋਵੇ, ਤਾਂ Wi‑Fi ਸੈਲਿਊਲਰ ਨੂੰ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਹੈਂਡ ਓਵਰ ਕਰਨ ਵਿੱਚ ਵੱਧ ਅਗ੍ਰੈਸਿਵ ਹੋ ਜਾਏਗਾ, ਜਦੋਂ Wi‑Fi ਸਿਗਨਲ ਘੱਟ ਹੋਵੇ"</string>
-    <string name="wifi_allow_scan_with_traffic_summary" msgid="2575101424972686310">"ਇੰਟਰਫੇਸ ਤੇ ਮੌਜੂਦ ਡਾਟਾ ਟ੍ਰੈਫਿਕ ਦੀ ਮਾਤਰਾ ਦੇ ਆਧਾਰ ਤੇ Wi‑Fi ਰੋਮ ਸਕੈਨ ਦੀ ਆਗਿਆ ਦਿਓ/ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="wifi_aggressive_handover_summary" msgid="6328455667642570371">"ਜਦੋਂ ਸਮਰਥਿਤ ਹੋਵੇ, ਤਾਂ Wi‑Fi ਸੈਲਿਊਲਰ ਨੂੰ ਡੈਟਾ ਕਨੈਕਸ਼ਨ ਹੈਂਡ ਓਵਰ ਕਰਨ ਵਿੱਚ ਵੱਧ ਅਗ੍ਰੈਸਿਵ ਹੋ ਜਾਏਗਾ, ਜਦੋਂ Wi‑Fi ਸਿਗਨਲ ਘੱਟ ਹੋਵੇ"</string>
+    <string name="wifi_allow_scan_with_traffic_summary" msgid="2575101424972686310">"ਇੰਟਰਫੇਸ ਤੇ ਮੌਜੂਦ ਡੈਟਾ ਟ੍ਰੈਫਿਕ ਦੀ ਮਾਤਰਾ ਦੇ ਆਧਾਰ ਤੇ Wi‑Fi ਰੋਮ ਸਕੈਨ ਦੀ ਆਗਿਆ ਦਿਓ/ਅਸਵੀਕਾਰ ਕਰੋ"</string>
     <string name="select_logd_size_title" msgid="7433137108348553508">"ਲੌਗਰ ਬਫਰ ਆਕਾਰ"</string>
     <string name="select_logd_size_dialog_title" msgid="1206769310236476760">"ਪ੍ਰਤੀ ਲੌਗ ਬਫਰ ਲੌਗਰ ਆਕਾਰ ਚੁਣੋ"</string>
     <string name="select_usb_configuration_title" msgid="2649938511506971843">"USB ਕੌਂਫਿਗਰੇਸ਼ਨ ਚੁਣੋ"</string>
@@ -183,17 +183,17 @@
     <string name="legacy_dhcp_client_summary" msgid="163383566317652040">"ਨਵੇਂ Android DHCP ਕਲਾਈਂਟ ਦੀ ਬਜਾਇ Lollipop ਦਾ DHCP ਕਲਾਈਂਟ ਵਰਤੋ।"</string>
     <string name="mobile_data_always_on_summary" msgid="8149773901431697910">"ਹਮੇਸ਼ਾ ਮੋਬਾਈਲ ਡੇਟਾ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਰੱਖੋ ਭਾਵੇਂ Wi‑Fi ਕਿਰਿਆਸ਼ੀਲ ਹੋਵੇ (ਤੇਜ਼ ਨੈੱਟਵਰਕ ਸਵਿੱਚਿੰਗ ਲਈ)।"</string>
     <string name="adb_warning_title" msgid="6234463310896563253">"ਕੀ USB ਡੀਬਗਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
-    <string name="adb_warning_message" msgid="7316799925425402244">"USB ਡੀਬਗਿੰਗ ਕੇਵਲ ਵਿਕਾਸ ਮੰਤਵਾਂ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਅਤੇ ਆਪਣੀ ਡਿਵਾਈਸ ਵਿਚਕਾਰ ਡਾਟਾ ਕਾਪੀ ਕਰਨ ਲਈ ਵਰਤੋ, ਸੂਚਨਾ ਦੇ ਬਿਨਾਂ ਆਪਣੀ ਡਿਵਾਈਸ ਤੇ ਐਪਸ ਇੰਸਟੌਲ ਕਰੋ ਅਤੇ ਲੌਗ ਡਾਟਾ ਪੜ੍ਹੋ।"</string>
+    <string name="adb_warning_message" msgid="7316799925425402244">"USB ਡੀਬਗਿੰਗ ਕੇਵਲ ਵਿਕਾਸ ਮੰਤਵਾਂ ਲਈ ਹੁੰਦੀ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਕੰਪਿਊਟਰ ਅਤੇ ਆਪਣੀ ਡੀਵਾਈਸ ਵਿਚਕਾਰ ਡੈਟਾ ਕਾਪੀ ਕਰਨ ਲਈ ਵਰਤੋ, ਸੂਚਨਾ ਦੇ ਬਿਨਾਂ ਆਪਣੀ ਡੀਵਾਈਸ ਤੇ ਐਪਸ ਇੰਸਟੌਲ ਕਰੋ ਅਤੇ ਲੌਗ ਡੈਟਾ ਪੜ੍ਹੋ।"</string>
     <string name="adb_keys_warning_message" msgid="5659849457135841625">"ਕੀ ਉਹਨਾਂ ਸਾਰੇ ਕੰਪਿਊਟਰਾਂ ਤੋਂ USB ਡੀਬਗਿੰਗ ਤੱਕ ਪਹੁੰਚ ਰੱਦ ਕਰਨੀ ਹੈ, ਜਿਹਨਾਂ ਲਈ ਪਹਿਲਾਂ ਤੁਸੀਂ ਅਧਿਕਾਰਤ ਕੀਤਾ ਹੈ?"</string>
     <string name="dev_settings_warning_title" msgid="7244607768088540165">"ਕੀ ਵਿਕਾਸ ਸੈਟਿੰਗਾਂ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
-    <string name="dev_settings_warning_message" msgid="2298337781139097964">"ਇਹ ਸੈਟਿੰਗਾਂ ਕੇਵਲ ਵਿਕਾਸਕਾਰ ਦੀ ਵਰਤੋਂ ਲਈ ਹਨ। ਇਹ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਅਤੇ ਇਸਤੇ ਮੌਜੂਦ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਬ੍ਰੇਕ ਕਰਨ ਜਾਂ ਦੁਰਵਿਵਹਾਰ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੇ ਹਨ।"</string>
+    <string name="dev_settings_warning_message" msgid="2298337781139097964">"ਇਹ ਸੈਟਿੰਗਾਂ ਕੇਵਲ ਵਿਕਾਸਕਾਰ ਦੀ ਵਰਤੋਂ ਲਈ ਹਨ। ਇਹ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਅਤੇ ਇਸਤੇ ਮੌਜੂਦ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਬ੍ਰੇਕ ਕਰਨ ਜਾਂ ਦੁਰਵਿਵਹਾਰ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੇ ਹਨ।"</string>
     <string name="verify_apps_over_usb_title" msgid="4177086489869041953">"USB ਤੇ ਐਪਸ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ"</string>
     <string name="verify_apps_over_usb_summary" msgid="9164096969924529200">"ਹਾਨੀਕਾਰਕ ਵਿਵਹਾਰ ਲਈ ADB/ADT ਰਾਹੀਂ ਇੰਸਟੌਲ ਕੀਤੇ ਐਪਸ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
     <string name="bluetooth_disable_absolute_volume_summary" msgid="6031284410786545957">"ਰਿਮੋਟ ਡੀਵਾਈਸਾਂ ਨਾਲ ਵੌਲਯੂਮ ਸਮੱਸਿਆਵਾਂ ਜਿਵੇਂ ਕਿ ਨਾ ਪਸੰਦ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਉੱਚੀ ਵੌਲਯੂਮ ਜਾਂ ਕੰਟਰੋਲ ਦੀ ਕਮੀ ਵਰਗੀ ਹਾਲਤ ਵਿੱਚ ਬਲੂਟੁੱਥ ਪੂਰਨ ਵੌਲਯੂਮ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।"</string>
     <string name="enable_terminal_title" msgid="95572094356054120">"ਸਥਾਨਕ ਟਰਮੀਨਲ"</string>
     <string name="enable_terminal_summary" msgid="67667852659359206">"ਟਰਮੀਨਲ ਐਪ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ ਜੋ ਸਥਾਨਕ ਸ਼ੈਲ ਪਹੁੰਚ ਆੱਫਰ ਕਰਦਾ ਹੈ"</string>
     <string name="hdcp_checking_title" msgid="8605478913544273282">"HDCP ਜਾਂਚ"</string>
-    <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"HDCP ਜਾਂਚ ਵਿਵਹਾਰ ਸੈਟ ਕਰੋ"</string>
+    <string name="hdcp_checking_dialog_title" msgid="5141305530923283">"HDCP ਜਾਂਚ ਵਿਵਹਾਰ ਸੈੱਟ ਕਰੋ"</string>
     <string name="debug_debugging_category" msgid="6781250159513471316">"ਡੀਬਗਿੰਗ"</string>
     <string name="debug_app" msgid="8349591734751384446">"ਡੀਬਗ ਐਪ ਚੁਣੋ"</string>
     <string name="debug_app_not_set" msgid="718752499586403499">"ਕੋਈ ਡੀਬਗ ਐਪਲੀਕੇਸ਼ਨ ਸੈਟ ਨਹੀਂ ਕੀਤੀ"</string>
@@ -209,8 +209,8 @@
     <string name="debug_monitoring_category" msgid="7640508148375798343">"ਨਿਰੀਖਣ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="strict_mode" msgid="1938795874357830695">"ਸਟ੍ਰਿਕਟ ਮੋਡ ਸਮਰਥਿਤ"</string>
     <string name="strict_mode_summary" msgid="142834318897332338">"ਜਦੋਂ ਐਪਸ ਮੇਨ ਥ੍ਰੈਡ ਤੇ ਲੰਮੇ ਓਪਰੇਸ਼ਨ ਕਰਨ ਤਾਂ ਸਕ੍ਰੀਨ ਫਲੈਸ਼ ਕਰੋ"</string>
-    <string name="pointer_location" msgid="6084434787496938001">"ਪੌਇੰਟਰ ਨਿਰਧਾਰਿਤ ਸਥਾਨ"</string>
-    <string name="pointer_location_summary" msgid="840819275172753713">"ਸਕ੍ਰੀਨ ਓਵਰਲੇ ਮੌਜੂਦਾ ਟਚ ਡਾਟਾ ਦਿਖਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="pointer_location" msgid="6084434787496938001">"ਪੌਇੰਟਰ ਟਿਕਾਣਾ"</string>
+    <string name="pointer_location_summary" msgid="840819275172753713">"ਸਕ੍ਰੀਨ ਓਵਰਲੇ ਮੌਜੂਦਾ ਟਚ ਡੈਟਾ ਦਿਖਾ ਰਿਹਾ ਹੈ"</string>
     <string name="show_touches" msgid="2642976305235070316">"ਟੈਪਾਂ ਵਿਖਾਓ"</string>
     <string name="show_touches_summary" msgid="6101183132903926324">"ਟੈਪਾਂ ਲਈ ਨਜ਼ਰ ਸਬੰਧੀ ਪ੍ਰਤੀਕਰਮ ਵਿਖਾਓ"</string>
     <string name="show_screen_updates" msgid="5470814345876056420">"ਸਰਫਸ ਅਪਡੇਟਾਂ ਦਿਖਾਓ"</string>
@@ -242,7 +242,7 @@
     <string name="transition_animation_scale_title" msgid="387527540523595875">"ਟ੍ਰਾਂਜਿਸ਼ਨ ਐਨੀਮੇਸ਼ਨ ਸਕੇਲ"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"ਐਨੀਮੇਟਰ ਮਿਆਦ ਸਕੇਲ"</string>
     <string name="overlay_display_devices_title" msgid="5364176287998398539">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ ਦੀ ਨਕਲ ਕਰੋ"</string>
-    <string name="debug_applications_category" msgid="4206913653849771549">"ਐਪਸ"</string>
+    <string name="debug_applications_category" msgid="4206913653849771549">"ਐਪਾਂ"</string>
     <string name="immediately_destroy_activities" msgid="1579659389568133959">"ਗਤੀਵਿਧੀਆਂ ਨਾ ਰੱਖੋ"</string>
     <string name="immediately_destroy_activities_summary" msgid="3592221124808773368">"ਹਰੇਕ ਗਤੀਵਿਧੀ ਨੂੰ ਨਸ਼ਟ ਕਰੋ ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਇਸਨੂੰ ਛੱਡ ਦੇਵੇ"</string>
     <string name="app_process_limit_title" msgid="4280600650253107163">"ਪਿਛੋਕੜ ਪ੍ਰਕਿਰਿਆ ਸੀਮਾ"</string>
@@ -257,7 +257,7 @@
     <string name="local_backup_password_title" msgid="3860471654439418822">"ਡੈਸਕਟੌਪ ਬੈਕਅਪ ਪਾਸਵਰਡ"</string>
     <string name="local_backup_password_summary_none" msgid="6951095485537767956">"ਡੈਸਕਟੌਪ ਪੂਰੇ ਬੈਕਅਪਸ ਇਸ ਵੇਲੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ"</string>
     <string name="local_backup_password_summary_change" msgid="5376206246809190364">"ਡੈਸਕਟਾਪ ਦੇ ਮੁਕੰਮਲ ਬੈਕਅੱਪਾਂ ਲਈ ਪਾਸਵਰਡ ਨੂੰ ਬਦਲਣ ਜਾਂ ਹਟਾਉਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
-    <string name="local_backup_password_toast_success" msgid="582016086228434290">"ਨਵਾਂ ਬੈਕਅਪ ਪਾਸਵਰਡ ਸੈਟ ਕੀਤਾ"</string>
+    <string name="local_backup_password_toast_success" msgid="582016086228434290">"ਨਵਾਂ ਬੈਕਅਪ ਪਾਸਵਰਡ ਸੈੱਟ ਕੀਤਾ ਗਿਆ"</string>
     <string name="local_backup_password_toast_confirmation_mismatch" msgid="7805892532752708288">"ਨਵਾਂ ਪਾਸਵਰਡ ਅਤੇ ਪੁਸ਼ਟੀ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ"</string>
     <string name="local_backup_password_toast_validation_failure" msgid="5646377234895626531">"ਬੈਕਅਪ ਪਾਸਵਰਡ ਸੈਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ"</string>
   <string-array name="color_mode_names">
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ਕਿਰਿਆਸ਼ੀਲ। ਟੌਗਲ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"ਚੱਲ ਰਹੀਆਂ ਸੇਵਾਵਾਂ"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ਇਸ ਵੇਲੇ ਚੱਲ ਰਹੀਆਂ ਸੇਵਾਵਾਂ ਦੇਖੋ ਅਤੇ ਇਹਨਾਂ ਤੇ ਨਿਯੰਤਰਣ ਪਾਓ"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"ਬਹੁ-ਮੰਤਵ WebView ਨੂੰ ਯੋਗ ਬਣਾਓ"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ਕਿਸੇ ਵੱਖ ਕੀਤੀ ਗਈ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ WebView ਰੈਂਡਰਰਾਂ ਨੂੰ ਚਲਾਓ।"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"ਮਲਟੀਪ੍ਰੋਸੈੱਸ WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView ਰੈਂਡਰਰਾਂ ਨੂੰ ਵੱਖਰੇ ਤੌਰ \'ਤੇ ਚਲਾਓ"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ਅਮਲ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView ਅਮਲ ਸੈੱਟ ਕਰੋ"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ਇਹ ਚੋਣ ਹੁਣ ਵੈਧ ਨਹੀਂ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 16b3df2..e0c51f1 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktywna. Dotknij, by zmienić."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Uruchomione usługi"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Wyświetl obecnie uruchomione usługi i zarządzaj nimi"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Włącz wieloprocesowy WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Uruchom WebView jako izolowany proces."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Wieloprocesowy WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Uruchom mechanizmy renderowania WebView osobno"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementacja WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Ustaw implementację WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ta opcja nie jest już obsługiwana. Spróbuj ponownie."</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 6125493..b2ca437 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Ativo. Tocar para alternar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Serviços em execução"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualizar e controlar os serviços em execução no momento"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Ativar WebView de vários processos"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Executar renderizadores de WebView em um processo isolado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView de vários processos"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Executar renderizadores de WebView separadamente"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementação do WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Configurar implementação do WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opção não é mais válida. Tente novamente."</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 440512d..55e4def 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -98,7 +98,7 @@
     <string name="launch_defaults_some" msgid="313159469856372621">"Algumas predefinições definidas"</string>
     <string name="launch_defaults_none" msgid="4241129108140034876">"Nenhuma predefinição definida"</string>
     <string name="tts_settings" msgid="8186971894801348327">"Definições de texto para voz"</string>
-    <string name="tts_settings_title" msgid="1237820681016639683">"Saída de texto para voz"</string>
+    <string name="tts_settings_title" msgid="1237820681016639683">"Saída de síntese de voz"</string>
     <string name="tts_default_rate_title" msgid="6030550998379310088">"Taxa de voz"</string>
     <string name="tts_default_rate_summary" msgid="4061815292287182801">"Velocidade a que o texto é falado"</string>
     <string name="tts_default_pitch_title" msgid="6135942113172488671">"Tonalidade"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Ativo. Toque para ativar/desativar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Serviços em execução"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ver e controlar os serviços actualmente em execução"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Ativar WebView multiprocessos"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Executar renderizadores WebView num processo isolado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView multiprocessos"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Executar renderizadores WebView separadamente"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementação WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Definir implementação WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opção já não é válida. Tente novamente."</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 6125493..b2ca437 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Ativo. Tocar para alternar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Serviços em execução"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Visualizar e controlar os serviços em execução no momento"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Ativar WebView de vários processos"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Executar renderizadores de WebView em um processo isolado."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView de vários processos"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Executar renderizadores de WebView separadamente"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementação do WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Configurar implementação do WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Esta opção não é mais válida. Tente novamente."</string>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 1dc0c7d..5dfdba5 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -139,7 +139,7 @@
     <string name="choose_profile" msgid="8229363046053568878">"Alegeți un profil"</string>
     <string name="category_personal" msgid="1299663247844969448">"Personal"</string>
     <string name="category_work" msgid="8699184680584175622">"Serviciu"</string>
-    <string name="development_settings_title" msgid="215179176067683667">"Opțiuni dezvoltator"</string>
+    <string name="development_settings_title" msgid="215179176067683667">"Opțiuni pentru dezvoltatori"</string>
     <string name="development_settings_enable" msgid="542530994778109538">"Activați opțiunile pentru dezvoltatori"</string>
     <string name="development_settings_summary" msgid="1815795401632854041">"Setați opțiuni pentru dezvoltarea aplicației"</string>
     <string name="development_settings_not_available" msgid="4308569041701535607">"Opțiunile de dezvoltator nu sunt disponibile pentru acest utilizator"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Activă. Atingeți pentru a comuta."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Servicii în curs de funcționare"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Vedeți și controlați serviciile care funcționează în prezent"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Activați WebView cu mai multe procese"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Rulați programele de redare WebView într-un proces izolat."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView cu mai multe procese"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Rulați programele de redare WebView separat"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementare WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Setați implementarea WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Această opțiune nu mai este validă. Încercați din nou."</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index f26264a..339d2b0 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Включено. Нажмите, чтобы отключить."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Работающие приложения"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Просмотр и управление работающими приложениями"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Включить многопроц. WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Выполнять обработчики WebView в изолированном процессе"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Многопроцессорный WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Выполнять обработчики WebView отдельно"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Сервис WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Настройки сервиса WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Вариант недействителен. Повторите попытку."</string>
diff --git a/packages/SettingsLib/res/values-si-rLK/strings.xml b/packages/SettingsLib/res/values-si-rLK/strings.xml
index 0de437b..994acb9 100644
--- a/packages/SettingsLib/res/values-si-rLK/strings.xml
+++ b/packages/SettingsLib/res/values-si-rLK/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"සක්‍රියයි. ටොගල කිරීමට තට්ටු කරන්න."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"ධාවනය වන සේවා"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"දැනට ධාවනය වන සේවා බලන්න සහ පාලනය කරන්න"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"බහු සැකසීම් WebView සබල කරන්න"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"හුදකලා වූ ක්‍රියාවලියක WebView විදහා දැක්වීම් ධාවනය කරන්න."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"බහු සැකසීම් WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView විදහා දැක්වීම් ධාවනය කරන්න"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ක්‍රියාත්මක කිරීම"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView ක්‍රියාත්මක කිරීම සකසන්න"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"මෙම තෝරා ගැනීම තව දුරටත් වලංගු නැත. නැවත උත්සාහ කරන්න."</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 3e356ee..5ad82d6 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktívne. Prepnite klepnutím."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Spustené služby"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Zobrazenie a ovládanie aktuálne spustených služieb"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Povoliť viacprocesové moduly WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Spúšťať vykresľovacie moduly WebView v izolovanom procese."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Viacprocesový prvok WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Spúšťať vykresľovacie moduly WebView samostatne"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Implementácia komponenta WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Nastavenie implementácie komponenta WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Táto voľba už nie je platná. Skúste to znova."</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index b1e1760..4f00360 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -237,7 +237,7 @@
     <string name="force_msaa" msgid="7920323238677284387">"Vsili 4x MSAA"</string>
     <string name="force_msaa_summary" msgid="9123553203895817537">"V aplikacijah OpenGL ES 2.0 omogoči 4x MSAA"</string>
     <string name="show_non_rect_clip" msgid="505954950474595172">"Odpr. težav s postopki nepravokotnega izrezovanja"</string>
-    <string name="track_frame_time" msgid="6146354853663863443">"Upod. profilov z GPE-jem"</string>
+    <string name="track_frame_time" msgid="6146354853663863443">"Upod. profilov z GPE"</string>
     <string name="window_animation_scale_title" msgid="6162587588166114700">"Merilo animacije okna"</string>
     <string name="transition_animation_scale_title" msgid="387527540523595875">"Merilo animacije prehoda"</string>
     <string name="animator_duration_scale_title" msgid="3406722410819934083">"Lestvica trajanja animacije"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktivno. Dotaknite se za preklop."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Zagnane storitve"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Preglejte in nadzorujte storitve, ki so trenutno zagnane"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Omogoči večprocesni WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Izvajanje upodabljalnikov za WebView v ločenem procesu."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Večprocesni WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Izvajanje upodabljalnikov za WebView ločeno"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Izvedba spletnega pogleda"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Nastavitev izvedbe spletnega pogleda"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ta izbira ni več veljavna. Poskusite znova."</string>
diff --git a/packages/SettingsLib/res/values-sq-rAL/strings.xml b/packages/SettingsLib/res/values-sq-rAL/strings.xml
index f45d047..753d7e3 100644
--- a/packages/SettingsLib/res/values-sq-rAL/strings.xml
+++ b/packages/SettingsLib/res/values-sq-rAL/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiv. Trokit për ta ndryshuar."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Shërbimet në ekzekutim"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Shiko dhe kontrollo shërbimet që po ekzekutohen aktualisht"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Aktivizo WebView të multiprocesit"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Ekzekuto renderizuesit e WebView në një proces të izoluar."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView me shumë procese"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Ekzekuto më vete interpretuesit e WebView"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Zbatimi i WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Cakto zbatimin e WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Kjo zgjedhje nuk është më e vlefshme. Provo përsëri."</string>
@@ -323,7 +323,7 @@
     <string name="disabled_by_admin_summary_text" msgid="6750513964908334617">"Kontrolluar nga administratori"</string>
     <string name="enabled_by_admin" msgid="2386503803463071894">"Aktivizuar nga administratori"</string>
     <string name="disabled_by_admin" msgid="3669999613095206948">"Çaktivizuar nga administratori"</string>
-    <string name="home" msgid="3256884684164448244">"Krey i cilësimeve"</string>
+    <string name="home" msgid="3256884684164448244">"Kreu i cilësimeve"</string>
     <string name="charge_length_format" msgid="8978516217024434156">"<xliff:g id="ID_1">%1$s</xliff:g> më parë"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"<xliff:g id="ID_1">%1$s</xliff:g> të mbetura"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"I vogël"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index b47bcf1..2fee567 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Активна. Додирните да бисте је деактивирали."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Покренуте услуге"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Приказ и контрола тренутно покренутих услуга"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Омогући вишепроцесни WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Покрећите WebView приказиваче у оквиру изолованог процеса."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Вишепроцесни WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Покрећите WebView приказиваче засебно"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Примена WebView-а"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Подесите примену WebView-а"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Овај избор више није важећи. Покушајте поново."</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index 29c7481..60704e0 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktiv. Tryck om du vill inaktivera."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Aktiva tjänster"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Visa och styr aktiva tjänster"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Aktivera WebView-multibearb."</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Kör WebView-renderare i en isolerad bearbetning."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView-multibearbetning"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Kör WebView-renderare separat"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView-implementering"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Ange WebView-implementering"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Det här alternativet är inte längre giltigt. Försök igen."</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index 5938946..245caba 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -23,7 +23,7 @@
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Haiwezi kutambaza mitandao"</string>
     <string name="wifi_security_none" msgid="7985461072596594400">"Hamna"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Imehifadhiwa"</string>
-    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Imelemazwa"</string>
+    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Imezimwa"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Haikuweza Kusanidi IP"</string>
     <string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"Haikuweza Kuunganisha kwenye WiFi"</string>
     <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Tatizo la uthibitishaji"</string>
@@ -34,7 +34,7 @@
     <string name="connected_via_passpoint" msgid="2826205693803088747">"Imeunganishwa kupitia %1$s"</string>
     <string name="available_via_passpoint" msgid="1617440946846329613">"Inapatikana kupitia %1$s"</string>
     <string name="wifi_connected_no_internet" msgid="3149853966840874992">"Imeunganishwa, hakuna Intaneti"</string>
-    <string name="bluetooth_disconnected" msgid="6557104142667339895">"Imetenganishwa"</string>
+    <string name="bluetooth_disconnected" msgid="6557104142667339895">"Haijaunganishwa"</string>
     <string name="bluetooth_disconnecting" msgid="8913264760027764974">"Inatenganisha..."</string>
     <string name="bluetooth_connecting" msgid="8555009514614320497">"Inaunganisha…"</string>
     <string name="bluetooth_connected" msgid="6038755206916626419">"Umeunganishwa"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Inatumika. Gonga ili ugeuze."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Huduma zinazoendeshwa"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Onyesha na dhibiti huduma zinazoendeshwa kwa sasa"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Washa WebView ya michakato mingi"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Tekeleza vitoaji huduma vya WebView katika mchakato mahususi."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Mwonekano wa Wavuti wa michakato mingi"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Tekeleza vitoaji huduma vya Mwonekano wa Wavuti kando"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Utekelezaji wa WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Weka utekelezaji wa WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Chaguo hili halipo tena. Jaribu tena."</string>
diff --git a/packages/SettingsLib/res/values-ta-rIN/strings.xml b/packages/SettingsLib/res/values-ta-rIN/strings.xml
index ca6bde0..5c0c9cf 100644
--- a/packages/SettingsLib/res/values-ta-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-ta-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"செயலில் உள்ளது. மாற்ற, தட்டவும்."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"இயங்கும் சேவைகள்"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"தற்போது இயக்கத்தில் இருக்கும் சேவைகளைப் பார்த்து கட்டுப்படுத்து"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"பல செயல்முறை WebViewஐ இயக்கு"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"தனிப்படுத்தப்பட்ட செயல்முறையில் WebView ரெண்டரர்களை இயக்கு."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"பல செயல்முறை WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView ரெண்டரர்களைத் தனித்தனியாக இயக்கு"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView செயல்படுத்தல்"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView செயல்படுத்தலை அமை"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"இனி இந்தத் தேர்வைப் பயன்படுத்த முடியாது. மீண்டும் முயலவும்."</string>
diff --git a/packages/SettingsLib/res/values-te-rIN/strings.xml b/packages/SettingsLib/res/values-te-rIN/strings.xml
index 374b62c..0c43480 100644
--- a/packages/SettingsLib/res/values-te-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-te-rIN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"సక్రియంగా ఉంది. టోగుల్ చేయడానికి నొక్కండి."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"అమలులో ఉన్న సేవలు"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ప్రస్తుతం అమలులో ఉన్న సేవలను వీక్షించండి మరియు నియంత్రించండి"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"మల్టీప్రాసెస్ వెబ్ వీక్షణ ఆరం."</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"ప్రత్యేకప్రాసెస్‌లో వెబ్ వీక్షణ రెండెరెర్‌లను అమలుచేస్తుంది."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"మల్టీప్రాసెస్ వెబ్ వీక్షణ"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"వెబ్ వీక్షణ రెండెరెర్‌లను అమలు చేయి"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"వెబ్ వీక్షణ అమలు"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"వెబ్ వీక్షణ అమలుని సెట్ చేయండి"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ఈ ఎంపిక ఇప్పుడు లేదు. మళ్లీ ప్రయత్నించండి."</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index 5337a0d..7d2c9fb 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"ใช้งานอยู่ แตะเพื่อสลับ"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"บริการที่ทำงานอยู่"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"ดูและควบคุมบริการที่ทำงานอยู่"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"เปิดใช้ WebView แบบหลายขั้นตอน"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"เรียกใช้โหมดแสดงภาพ WebView ในการดำเนินการที่แยกออกมา"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView แบบหลายขั้นตอน"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"เรียกใช้โหมดแสดงภาพ WebView แยกต่างหาก"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"การใช้งาน WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"ตั้งค่าการใช้งาน WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"ตัวเลือกนี้ใช้ไม่ได้อีกต่อไป โปรดลองอีกครั้ง"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 07b9d54..4c12a7d 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -23,7 +23,7 @@
     <string name="wifi_fail_to_scan" msgid="1265540342578081461">"Hindi makapag-scan ng mga network"</string>
     <string name="wifi_security_none" msgid="7985461072596594400">"Wala"</string>
     <string name="wifi_remembered" msgid="4955746899347821096">"Na-save"</string>
-    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Hindi Pinagana"</string>
+    <string name="wifi_disabled_generic" msgid="4259794910584943386">"Naka-disable"</string>
     <string name="wifi_disabled_network_failure" msgid="2364951338436007124">"Pagkabigo ng Configuration ng IP"</string>
     <string name="wifi_disabled_wifi_failure" msgid="3081668066612876581">"Pagkabigo ng Koneksyon sa WiFi"</string>
     <string name="wifi_disabled_password_failure" msgid="8659805351763133575">"Problema sa pagpapatotoo"</string>
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Aktibo. I-tap upang i-toggle."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Mga tumatakbong serbisyo"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Tingnan at kontrolin ang mga kasalukuyang tumatakbong serbisyo"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"I-enable, multiprocess WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Tagapag-render ng WebView, patakbuhin sa hiwalay na proseso."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Multiprocess na WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Magpatakbo ng mga tagapag-render ng WebView nang hiwalay"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Pagpapatupad sa WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Itakda ang pagpapatupad sa WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Wala nang bisa ang napiling ito. Subukang muli."</string>
@@ -294,7 +294,7 @@
     <string name="daltonizer_mode_protanomaly" msgid="8424148009038666065">"Protanomaly (pula-berde)"</string>
     <string name="daltonizer_mode_tritanomaly" msgid="481725854987912389">"Tritanomaly (asul-dilaw)"</string>
     <string name="accessibility_display_daltonizer_preference_title" msgid="5800761362678707872">"Pagtatama ng kulay"</string>
-    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ang feature na ito ay pinag-eeksperimentuhan at maaaring makaapekto sa pagganap."</string>
+    <string name="accessibility_display_daltonizer_preference_subtitle" msgid="3484969015295282911">"Ang feature na ito ay pinag-eeksperimentuhan at maaaring makaapekto sa performance."</string>
     <string name="daltonizer_type_overridden" msgid="3116947244410245916">"Na-override ng <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <string name="power_remaining_duration_only" msgid="4400068916452346544">"Humigit-kumulang <xliff:g id="TIME">%1$s</xliff:g> na lang ang natitira"</string>
     <string name="power_remaining_duration_only_short" msgid="5329694252258605547">"<xliff:g id="TIME">%1$s</xliff:g> pa"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 2417572..ff62803 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Etkin. Geçiş yapmak için hafifçe dokunun."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Çalışan hizmetler"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Şu anda çalışan hizmetleri görüntüle ve denetle"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Çoklu işlem WebView\'ı etkinleştir"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView oluşturucuları yalıtılmış bir işlemde çalıştırın."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Çoklu İşlem WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView oluşturucularını ayrı ayrı çalıştır"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView kullanımı"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView kullanımını ayarla"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Bu seçenek artık geçerli değil. Tekrar deneyin."</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index c288d17..e09ef59 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Активний додаток. Торкніться, щоб дезактивувати."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Запущені служби"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Перегляд і керування запущеними службами"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Увімк. багатопроцесний WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Запустити засоби обробки відео WebView окремим процесом."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Багатопроцесний WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Запустити засоби обробки відео WebView окремим процесом"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Застосування WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Налаштувати застосування WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Ця опція більше не дійсна. Повторіть спробу."</string>
diff --git a/packages/SettingsLib/res/values-ur-rPK/strings.xml b/packages/SettingsLib/res/values-ur-rPK/strings.xml
index 90ac0ac..c6b6d80 100644
--- a/packages/SettingsLib/res/values-ur-rPK/strings.xml
+++ b/packages/SettingsLib/res/values-ur-rPK/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"فعال۔ ٹوگل کرنے کیلئے تھپتھپائیں۔"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"چل رہی سروسز"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"فی الحال چل رہی سروسز دیکھیں اور انہیں کنٹرول کریں"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"‏ملٹی پراسیس WebView بحال کریں"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"‏WebView رینڈررز کو ایک علیحدہ پراسیس میں چلائیں۔"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"‏ملٹی پراسیس WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"‏WebView رینڈررز کو علیحدہ علیحدہ چلائیں"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"‏WebView کا نفاذ"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"‏WebView کا نفاذ سیٹ کریں"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"یہ انتخاب اب درست نہیں رہا۔ دوبارہ کوشش کریں۔"</string>
diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
index 6749cfd..6196179 100644
--- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml
+++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Faol. O‘zgartirish uchun bu yerga bosing."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Ishlab turgan ilovalar"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Ishlab turgan ilovalarni ko‘rish va boshqarish"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"WebView multiprocess’ni yoqish"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"WebView renderlovchilarini alohida jarayonda ishga tushirish."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"Ko‘p jarayonli WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"WebView renderlovchilarini alohida ishga tushirish"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView ta’minotchisi"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"WebView ta’minotchisini sozlash"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Bu variant endi yaroqsiz. Qaytadan urining."</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 8ffe7c8..975aa58 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Hiện hoạt. Nhấn để chuyển đổi."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Các dịch vụ đang hoạt động"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Xem và kiểm soát các dịch vụ hiện đang hoạt động"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Bật WebView đa quy trình"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Chạy kết xuất đồ họa WebView trong quy trình tách biệt."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"WebView đa quy trình"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Chạy riêng kết xuất đồ họa WebView"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Triển khai WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Đặt triển khai WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Lựa chọn này không còn hợp lệ nữa. Hãy thử lại."</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 96a9b54..b81c995 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"已启用。点按即可切换。"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"正在运行的服务"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"查看和控制当前正在运行的服务"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"启用多进程 WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"在独立进程中运行 WebView 渲染程序。"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"多进程 WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"单独运行 WebView 渲染程序"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView 实现"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"设置 WebView 实现"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"此选项已失效,请重试。"</string>
@@ -323,7 +323,7 @@
     <string name="disabled_by_admin_summary_text" msgid="6750513964908334617">"由管理员控制"</string>
     <string name="enabled_by_admin" msgid="2386503803463071894">"已被管理员启用"</string>
     <string name="disabled_by_admin" msgid="3669999613095206948">"已被管理员禁用"</string>
-    <string name="home" msgid="3256884684164448244">"设置首页"</string>
+    <string name="home" msgid="3256884684164448244">"设置主屏幕"</string>
     <string name="charge_length_format" msgid="8978516217024434156">"<xliff:g id="ID_1">%1$s</xliff:g>前"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"还剩 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"小"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 4af73b3..3388c27 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"已啟用。輕按即可切換。"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"執行中的服務"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"查看並控制目前正在執行中的服務"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"啟用多重處理程序 WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"在獨立的處理程序中執行 WebView 轉譯器。"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"多重處理程序 WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"單獨執行 WebView 轉譯器"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView 設置"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"設定 WebView 設置"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"此選擇已失效,請再試一次。"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index 02f2a57..437e899 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"已啟用。輕觸即可切換。"</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"正在運作的服務"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"查看並管理目前正在執行的服務"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"啟用多重處理程序 WebView"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"在獨立的處理程序中執行 WebView 轉譯器。"</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"多重處理程序 WebView"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"個別執行 WebView 轉譯器"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"WebView 實作"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"設定 WebView 實作"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"這個選項已失效,請再試一次。"</string>
@@ -323,7 +323,7 @@
     <string name="disabled_by_admin_summary_text" msgid="6750513964908334617">"已由管理員停用"</string>
     <string name="enabled_by_admin" msgid="2386503803463071894">"已由管理員啟用"</string>
     <string name="disabled_by_admin" msgid="3669999613095206948">"已由管理員停用"</string>
-    <string name="home" msgid="3256884684164448244">"「設定」主畫面"</string>
+    <string name="home" msgid="3256884684164448244">"設定主畫面"</string>
     <string name="charge_length_format" msgid="8978516217024434156">"<xliff:g id="ID_1">%1$s</xliff:g>前"</string>
     <string name="remaining_length_format" msgid="7886337596669190587">"還剩 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="screen_zoom_summary_small" msgid="5867245310241621570">"小"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index c5e7fab..aa8ae42 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -275,8 +275,8 @@
     <string name="inactive_app_active_summary" msgid="4174921824958516106">"Kuyasebenza. Thepha ukuze ushintshe."</string>
     <string name="runningservices_settings_title" msgid="8097287939865165213">"Amasevisi asebenzayo"</string>
     <string name="runningservices_settings_summary" msgid="854608995821032748">"Buka futhi ulawule amasevisi  asebenzayo okwamanje"</string>
-    <string name="enable_webview_multiprocess" msgid="3405948012467585908">"Nika amandla i-WebView kokucubungula okuningi"</string>
-    <string name="enable_webview_multiprocess_desc" msgid="852226124223847283">"Sebenzisa abasebenzeli be-WebView kwinqubo ekhethiwe."</string>
+    <string name="enable_webview_multiprocess" msgid="3352660896640797330">"I-WebView yokucubungula okuningi"</string>
+    <string name="enable_webview_multiprocess_desc" msgid="2485604010404197724">"Qalisa izinikezeli ze-WebView ngokuhlukile"</string>
     <string name="select_webview_provider_title" msgid="4628592979751918907">"Ukufakwa ke-WebView"</string>
     <string name="select_webview_provider_dialog_title" msgid="4370551378720004872">"Sesba ukufakwa kwe-WebView"</string>
     <string name="select_webview_provider_toast_text" msgid="5466970498308266359">"Lokhu kukhetha akusavumelekile. Zama futhi."</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtils.java b/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtils.java
index 3c32615..8e43bff 100644
--- a/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/RestrictedLockUtils.java
@@ -24,7 +24,6 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.UserInfo;
 import android.graphics.drawable.Drawable;
-import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -74,45 +73,31 @@
         if (dpm == null) {
             return null;
         }
-        ComponentName deviceOwner = dpm.getDeviceOwnerComponentOnAnyUser();
-        int deviceOwnerUserId = dpm.getDeviceOwnerUserId();
-        boolean enforcedByDeviceOwner = false;
-        if (deviceOwner != null && deviceOwnerUserId != UserHandle.USER_NULL) {
-            Bundle enforcedRestrictions =
-                    dpm.getUserRestrictionsForUser(deviceOwner, deviceOwnerUserId);
-            if (enforcedRestrictions != null
-                    && enforcedRestrictions.getBoolean(userRestriction, false)) {
-                enforcedByDeviceOwner = true;
-            }
-        }
+        UserManager um = UserManager.get(context);
+        int restrictionSource = um.getUserRestrictionSource(userRestriction,
+                UserHandle.of(userId));
 
-        ComponentName profileOwner = null;
-        boolean enforcedByProfileOwner = false;
-        if (userId != UserHandle.USER_NULL) {
-            profileOwner = dpm.getProfileOwnerAsUser(userId);
-            if (profileOwner != null) {
-                Bundle enforcedRestrictions =
-                        dpm.getUserRestrictionsForUser(profileOwner, userId);
-                if (enforcedRestrictions != null
-                        && enforcedRestrictions.getBoolean(userRestriction, false)) {
-                    enforcedByProfileOwner = true;
-                }
-            }
-        }
-
-        if (!enforcedByDeviceOwner && !enforcedByProfileOwner) {
+        // If the restriction is not enforced or enforced only by system then return null
+        if (restrictionSource == UserManager.RESTRICTION_NOT_SET
+                || restrictionSource == UserManager.RESTRICTION_SOURCE_SYSTEM) {
             return null;
         }
 
-        EnforcedAdmin admin = null;
-        if (enforcedByDeviceOwner && enforcedByProfileOwner) {
-            admin = new EnforcedAdmin();
+        final boolean enforcedByProfileOwner =
+                (restrictionSource & UserManager.RESTRICTION_SOURCE_PROFILE_OWNER) != 0;
+        final boolean enforcedByDeviceOwner =
+                (restrictionSource & UserManager.RESTRICTION_SOURCE_DEVICE_OWNER) != 0;
+        if (enforcedByProfileOwner) {
+            return getProfileOwner(context, userId);
         } else if (enforcedByDeviceOwner) {
-            admin = new EnforcedAdmin(deviceOwner, deviceOwnerUserId);
-        } else {
-            admin = new EnforcedAdmin(profileOwner, userId);
+            // When the restriction is enforced by device owner, return the device owner admin only
+            // if the admin is for the {@param userId} otherwise return a default EnforcedAdmin.
+            final EnforcedAdmin deviceOwner = getDeviceOwner(context);
+            return deviceOwner.userId == userId
+                    ? deviceOwner
+                    : EnforcedAdmin.MULTIPLE_ENFORCED_ADMIN;
         }
-        return admin;
+        return null;
     }
 
     public static boolean hasBaseUserRestriction(Context context,
@@ -479,6 +464,9 @@
     public static EnforcedAdmin checkIfMaximumTimeToLockIsSet(Context context) {
         final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
                 Context.DEVICE_POLICY_SERVICE);
+        if (dpm == null) {
+            return null;
+        }
         LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
         EnforcedAdmin enforcedAdmin = null;
         final int userId = UserHandle.myUserId();
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java
index 9c5abf3..2683609 100755
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/LocalBluetoothAdapter.java
@@ -208,7 +208,7 @@
         return false;
     }
 
-    public void setBluetoothEnabled(boolean enabled) {
+    public boolean setBluetoothEnabled(boolean enabled) {
         boolean success = enabled
                 ? mAdapter.enable()
                 : mAdapter.disable();
@@ -225,6 +225,7 @@
 
             syncBluetoothState();
         }
+        return success;
     }
 
     public BluetoothDevice getRemoteDevice(String address) {
diff --git a/packages/SystemUI/res/layout/global_screenshot.xml b/packages/SystemUI/res/layout/global_screenshot.xml
index c1fe1a8..59952e0 100644
--- a/packages/SystemUI/res/layout/global_screenshot.xml
+++ b/packages/SystemUI/res/layout/global_screenshot.xml
@@ -38,5 +38,5 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:visibility="gone"
-        android:pointerShape="crosshair"/>
+        android:pointerIcon="crosshair"/>
 </FrameLayout>
diff --git a/packages/SystemUI/res/values-be-rBY/strings.xml b/packages/SystemUI/res/values-be-rBY/strings.xml
index b650c22..42994cf 100644
--- a/packages/SystemUI/res/values-be-rBY/strings.xml
+++ b/packages/SystemUI/res/values-be-rBY/strings.xml
@@ -98,7 +98,7 @@
     <string name="voice_assist_label" msgid="3956854378310019854">"адкрыць галасавую дапамогу"</string>
     <string name="camera_label" msgid="7261107956054836961">"адкрыць камеру"</string>
     <string name="recents_caption_resize" msgid="3517056471774958200">"Выберыце новы макет заданняў"</string>
-    <string name="cancel" msgid="6442560571259935130">"Адмяніць"</string>
+    <string name="cancel" msgid="6442560571259935130">"Скасаваць"</string>
     <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Кнопка сумяшчальнасці маштаба."</string>
     <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Маштабаванне малых элементаў для большага экрана."</string>
     <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth-сувязь."</string>
@@ -431,7 +431,7 @@
     <string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"Схаваць"</string>
     <string name="volumeui_prompt_message" msgid="918680947433389110">"<xliff:g id="APP_NAME">%1$s</xliff:g> хоча быць дыялогам гучнасці."</string>
     <string name="volumeui_prompt_allow" msgid="7954396902482228786">"Дазволіць"</string>
-    <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Адхiлiць"</string>
+    <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Адмовіць"</string>
     <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> з\'яўляецца дыялогам гучнасці"</string>
     <string name="volumeui_notification_text" msgid="8819536904234337445">"Дакраніцеся, каб аднавіць арыгінал."</string>
     <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Вы выкарыстоўваеце свой працоўны профіль"</string>
@@ -599,7 +599,7 @@
     <string name="keycode" msgid="7335281375728356499">"Код клавішы"</string>
     <string name="keycode_description" msgid="1403795192716828949">"Кнопка Код клавішы дазваляе дадаваць клавішы ў Панэль навігацыі. Пры націску гэтай кнопкі эмулюецца выбраная клавіша. Спачатку трэба выбраць клавішу для кнопкі, а потым відарыс, які будзе паказвацца на кнопцы."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Выберыце клавішу клавіятуры"</string>
-    <string name="preview" msgid="9077832302472282938">"Папярэдні прагляд"</string>
+    <string name="preview" msgid="9077832302472282938">"Перадпрагляд"</string>
     <string name="drag_to_add_tiles" msgid="7058945779098711293">"Перацягніце, каб дадаць пліткі"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Перацягніце сюды, каб выдаліць"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Рэдагаваць"</string>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index 2547a2e..7053030 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -43,12 +43,12 @@
     <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"চালু করুন"</string>
     <string name="battery_saver_start_action" msgid="5576697451677486320">"ব্যাটারি সঞ্চয়কারী চালু"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"সেটিংস"</string>
-    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
+    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"ওয়াই-ফাই"</string>
     <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"স্বতঃ-ঘূর্ণায়মান স্ক্রীণ"</string>
     <string name="status_bar_settings_mute_label" msgid="554682549917429396">"নিঃশব্দ করুন"</string>
     <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"স্বতঃ"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"বিজ্ঞপ্তিগুলি"</string>
-    <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth টিথার করা হয়েছে"</string>
+    <string name="bluetooth_tethered" msgid="7094101612161133267">"ব্লুটুথ টিথার করা হয়েছে"</string>
     <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"ইনপুট পদ্ধতিগুলি সেট আপ করুন"</string>
     <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"ফিজিক্যাল কীবোর্ড"</string>
     <string name="usb_device_permission_prompt" msgid="834698001271562057">"এই <xliff:g id="APPLICATION">%1$s</xliff:g> অ্যাপ্লিকেশানটিকে কি USB ডিভাইস অ্যাক্সেস করা মঞ্জুরি দেবেন?"</string>
@@ -99,8 +99,8 @@
     <string name="cancel" msgid="6442560571259935130">"বাতিল করুন"</string>
     <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"সামঞ্জস্যের জুম বোতাম৷"</string>
     <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"ছোট থেকে বৃহৎ স্ক্রীণে জুম করুন৷"</string>
-    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth সংযুক্ত হয়েছে৷"</string>
-    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth সংযোগ বিচ্ছিন্ন হয়েছে৷"</string>
+    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ব্লুটুথ সংযুক্ত হয়েছে৷"</string>
+    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ব্লুটুথ সংযোগ বিচ্ছিন্ন হয়েছে৷"</string>
     <string name="accessibility_no_battery" msgid="358343022352820946">"কোনো ব্যাটারি নেই৷"</string>
     <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"এক দন্ড ব্যাটারি রয়েছে৷"</string>
     <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"দুই দন্ড ব্যাটারি রয়েছে৷"</string>
@@ -147,12 +147,12 @@
     <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
     <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"রোমিং"</string>
     <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
-    <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string>
+    <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"ওয়াই-ফাই"</string>
     <string name="accessibility_no_sim" msgid="8274017118472455155">"কোনো সিম নেই৷"</string>
     <string name="accessibility_cell_data" msgid="7080312242791850520">"সেলুলার ডেটা"</string>
     <string name="accessibility_cell_data_on" msgid="4310018593519761767">"সেলুলার ডেটা চালু রয়েছে"</string>
     <string name="accessibility_cell_data_off" msgid="8000803571751407635">"সেলুলার ডেটা বন্ধ আছে"</string>
-    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth টিথারিং৷"</string>
+    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ব্লুটুথ টিথারিং৷"</string>
     <string name="accessibility_airplane_mode" msgid="834748999790763092">"বিমান মোড৷"</string>
     <string name="accessibility_no_sims" msgid="3957997018324995781">"কোনো SIM কার্ড নেই।"</string>
     <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"পরিষেবা প্রদানকারীর নেটওয়ার্ক পরিবর্তিত হচ্ছে।"</string>
@@ -200,13 +200,13 @@
     <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"“বিরক্ত করবেন না” বন্ধ৷"</string>
     <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"বিরক্ত করবেন না বন্ধ রয়েছে৷"</string>
     <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"বিরক্ত করবেন না চালু রয়েছে৷"</string>
-    <string name="accessibility_quick_settings_bluetooth" msgid="6341675755803320038">"Bluetooth"</string>
-    <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"Bluetooth বন্ধ আছে।"</string>
-    <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"Bluetooth চালু আছে।"</string>
-    <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"Bluetooth সংযুক্ত হচ্ছে।"</string>
-    <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"Bluetooth সংযুক্ত হয়েছে৷"</string>
-    <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"Bluetooth বন্ধ হয়েছে।"</string>
-    <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"Bluetooth চালু হয়েছে।"</string>
+    <string name="accessibility_quick_settings_bluetooth" msgid="6341675755803320038">"ব্লুটুথ"</string>
+    <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"ব্লুটুথ বন্ধ আছে।"</string>
+    <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"ব্লুটুথ চালু আছে।"</string>
+    <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"ব্লুটুথ সংযুক্ত হচ্ছে।"</string>
+    <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"ব্লুটুথ সংযুক্ত হয়েছে৷"</string>
+    <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"ব্লুটুথ বন্ধ হয়েছে।"</string>
+    <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"ব্লুটুথ চালু হয়েছে।"</string>
     <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"অবস্থানের প্রতিবেদন বন্ধ আছে।"</string>
     <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"অবস্থানের প্রতিবেদন চালু আছে।"</string>
     <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"অবস্থানের প্রতিবেদন বন্ধ হয়েছে।"</string>
@@ -239,7 +239,7 @@
     <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"আপনার সেট ডেটার সীমা অবধি পৌঁছনোর কারনে ডিভাইস এই চক্রের অবশিষ্টাংশের জন্য ডেটা ব্যবহারে বিরতি দেওয়া হয়েছে৷ \n\nপুনরায় চালু করা হলে পরিষেবা প্রদানকারীর দ্বারা চার্জের করা হতে পারে৷"</string>
     <string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"পুনঃসূচনা করুন"</string>
     <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"কোনো ইন্টারনেট সংযোগ নেই"</string>
-    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi সংযুক্ত হয়েছে"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"ওয়াই-ফাই সংযুক্ত হয়েছে"</string>
     <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS এর জন্য অনুসন্ধান করা হচ্ছে"</string>
     <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS এর দ্বারা সেট করা অবস্থান"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"অবস্থান অনুরোধ সক্রিয় রয়েছে"</string>
@@ -260,9 +260,9 @@
     <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"শুধুমাত্র অগ্রাধিকার"</string>
     <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"শুধুমাত্র অ্যালার্মগুলি"</string>
     <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"একদম নিরব"</string>
-    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
-    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> টি ডিভাইস)"</string>
-    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth বন্ধ"</string>
+    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ব্লুটুথ"</string>
+    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ব্লুটুথ (<xliff:g id="NUMBER">%d</xliff:g> টি ডিভাইস)"</string>
+    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ব্লুটুথ বন্ধ"</string>
     <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"যুক্ত করা কোন ডিভাইস উপলব্ধ নয়"</string>
     <string name="quick_settings_brightness_label" msgid="6968372297018755815">"উজ্জ্বলতা"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"স্বতঃ ঘূর্ণায়মান"</string>
@@ -282,12 +282,12 @@
     <string name="quick_settings_user_label" msgid="5238995632130897840">"আমাকে"</string>
     <string name="quick_settings_user_title" msgid="4467690427642392403">"ব্যবহারকারী"</string>
     <string name="quick_settings_user_new_user" msgid="9030521362023479778">"নতুন ব্যবহারকারী"</string>
-    <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+    <string name="quick_settings_wifi_label" msgid="9135344704899546041">"ওয়াই-ফাই"</string>
     <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"সংযুক্ত নয়"</string>
     <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"কোনো নেটওয়ার্ক নেই"</string>
-    <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi বন্ধ"</string>
-    <string name="quick_settings_wifi_on_label" msgid="7607810331387031235">"Wi-Fi চালু আছে"</string>
-    <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"কোনো Wi-Fi নেটওয়ার্ক উপলব্ধ নেই"</string>
+    <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"ওয়াই-ফাই বন্ধ"</string>
+    <string name="quick_settings_wifi_on_label" msgid="7607810331387031235">"ওয়াই-ফাই চালু আছে"</string>
+    <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"কোনো ওয়াই-ফাই নেটওয়ার্ক উপলব্ধ নেই"</string>
     <string name="quick_settings_cast_title" msgid="7709016546426454729">"কাস্ট করুন"</string>
     <string name="quick_settings_casting" msgid="6601710681033353316">"কাস্ট করা হচ্ছে"</string>
     <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"নামবিহীন ডিভাইস"</string>
@@ -472,8 +472,8 @@
     <string name="overview_nav_bar_gesture" msgid="8579814204727917764">"উপরের দিকে সোয়াইপ করে বিভক্ত-স্ক্রীনে প্রবেশ করার অঙ্গভঙ্গি সক্ষম করুন"</string>
     <string name="overview_nav_bar_gesture_desc" msgid="6329167382305102615">"\'এক নজরে\' বোতাম থেকে উপরের দিকে সোয়াইপ করে, বিভক্ত-স্ক্রীনে প্রবেশ করতে অঙ্গভঙ্গি সক্ষম করুন"</string>
     <string name="experimental" msgid="6198182315536726162">"পরীক্ষামূলক"</string>
-    <string name="enable_bluetooth_title" msgid="5027037706500635269">"Bluetooth চালু করবেন?"</string>
-    <string name="enable_bluetooth_message" msgid="9106595990708985385">"আপনার ট্যাবলেটের সাথে আপনার কীবোর্ড সংযুক্ত করতে, আপনাকে প্রথমে Bluetooth চালু করতে হবে।"</string>
+    <string name="enable_bluetooth_title" msgid="5027037706500635269">"ব্লুটুথ চালু করবেন?"</string>
+    <string name="enable_bluetooth_message" msgid="9106595990708985385">"আপনার ট্যাবলেটের সাথে আপনার কীবোর্ড সংযুক্ত করতে, আপনাকে প্রথমে ব্লুটুথ চালু করতে হবে।"</string>
     <string name="enable_bluetooth_confirmation_ok" msgid="6258074250948309715">"চালু করুন"</string>
     <string name="show_silently" msgid="6841966539811264192">"নীরবভাবে বিজ্ঞপ্তিগুলি দেখায়"</string>
     <string name="block" msgid="2734508760962682611">"সমস্ত বিজ্ঞপ্তি অবরুদ্ধ করুন"</string>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index f836a99..166282a 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -302,7 +302,7 @@
     <string name="quick_settings_connected" msgid="1722253542984847487">"Connectat"</string>
     <string name="quick_settings_connecting" msgid="47623027419264404">"S\'està connectant..."</string>
     <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Ancoratge a xarxa"</string>
-    <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona Wi-Fi"</string>
+    <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Punt d\'accés Wi-Fi"</string>
     <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notificacions"</string>
     <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Llanterna"</string>
     <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Dades mòbils"</string>
@@ -455,7 +455,7 @@
     <string name="alarm_template" msgid="3980063409350522735">"Hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
     <string name="alarm_template_far" msgid="4242179982586714810">"Dia: <xliff:g id="WHEN">%1$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuració ràpida, <xliff:g id="TITLE">%s</xliff:g>."</string>
-    <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Zona Wi-Fi"</string>
+    <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Punt d\'accés Wi-Fi"</string>
     <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil professional"</string>
     <string name="tuner_warning_title" msgid="7094689930793031682">"Diversió per a uns quants, però no per a tothom"</string>
     <string name="tuner_warning" msgid="8730648121973575701">"El Personalitzador d\'interfície d\'usuari presenta opcions addicionals per canviar i personalitzar la interfície d\'usuari d\'Android. És possible que aquestes funcions experimentals canviïn, deixin de funcionar o desapareguin en versions futures. Continua amb precaució."</string>
@@ -584,7 +584,7 @@
     <string name="select_button" msgid="1597989540662710653">"Tria un botó per afegir-lo"</string>
     <string name="add_button" msgid="4134946063432258161">"Afegeix un botó"</string>
     <string name="save" msgid="2311877285724540644">"Desa"</string>
-    <string name="reset" msgid="2448168080964209908">"Reinicia"</string>
+    <string name="reset" msgid="2448168080964209908">"Restableix"</string>
     <string name="no_home_title" msgid="1563808595146071549">"No s\'ha trobat cap botó d\'inici"</string>
     <string name="no_home_message" msgid="5408485011659260911">"Per poder navegar per aquest dispositiu, cal un botó d\'inici. Afegeix-ne un abans de desar."</string>
     <string name="adjust_button_width" msgid="6138616087197632947">"Ajusta l\'amplada del botó"</string>
@@ -595,7 +595,7 @@
     <string name="keycode_description" msgid="1403795192716828949">"Amb els botons de codi de tecla es poden afegir tecles del teclat a la barra de navegació. En prémer aquests botons es duen a terme les mateixes accions que quan es prem la tecla corresponent. Primer cal seleccionar la tecla del botó i, a continuació, triar la imatge que es mostrarà."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Selecciona un botó de teclat"</string>
     <string name="preview" msgid="9077832302472282938">"Previsualització"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Arrossega per afegir camps"</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Arrossega per afegir funcions"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Arrossega\'ls aquí per suprimir-los"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Edita"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Hora"</string>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 039be4e..2f1db1b 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -600,7 +600,7 @@
     <string name="select_keycode" msgid="7413765103381924584">"Vyberte klávesu na klávesnici"</string>
     <string name="preview" msgid="9077832302472282938">"Náhled"</string>
     <string name="drag_to_add_tiles" msgid="7058945779098711293">"Dlaždice přidáte přetažením"</string>
-    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Přetažením sem tituly odstraníte"</string>
+    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Přetažením sem dlaždice odstraníte"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Upravit"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Čas"</string>
   <string-array name="clock_options">
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index b9c04b8..7d3ca4f 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -316,7 +316,7 @@
     <string name="recents_empty_message" msgid="808480104164008572">"Ingen nye elementer"</string>
     <string name="recents_empty_message_dismissed_all" msgid="2791312568666558651">"Du har ryddet alt"</string>
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Oplysninger om applikationen"</string>
-    <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"bliv i app"</string>
+    <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"skærmfastholdelse"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"søg"</string>
     <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> kunne ikke startes."</string>
     <string name="recents_launch_disabled_message" msgid="1624523193008871793">"<xliff:g id="APP">%s</xliff:g> er deaktiveret i sikker tilstand."</string>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 3527fe9d..da7d872 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -24,7 +24,7 @@
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Eliminar de la lista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Información de la aplicación"</string>
     <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Aquí aparecerán tus pantallas recientes"</string>
-    <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignorar aplicaciones recientes"</string>
+    <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Descartar aplicaciones recientes"</string>
     <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759">
       <item quantity="other">%d pantallas en Visión general</item>
       <item quantity="one">1 pantalla en Visión general</item>
@@ -172,7 +172,7 @@
     <!-- no translation found for accessibility_casting (6887382141726543668) -->
     <skip />
     <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabajo"</string>
-    <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ignorar <xliff:g id="APP">%s</xliff:g>."</string>
+    <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Descartar <xliff:g id="APP">%s</xliff:g>."</string>
     <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Se ha eliminado <xliff:g id="APP">%s</xliff:g>."</string>
     <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Se han ignorado todas las aplicaciones recientes."</string>
     <string name="accessibility_recents_item_open_app_info" msgid="5107479759905883540">"Abre la información de la aplicación <xliff:g id="APP">%s</xliff:g>."</string>
@@ -311,11 +311,11 @@
     <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Uso de datos"</string>
     <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Datos restantes"</string>
     <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"Límite superado"</string>
-    <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizado"</string>
+    <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> usado"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertencia de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabajo"</string>
-    <string name="recents_empty_message" msgid="808480104164008572">"Ningún elemento reciente"</string>
+    <string name="recents_empty_message" msgid="808480104164008572">"No hay elementos recientes"</string>
     <string name="recents_empty_message_dismissed_all" msgid="2791312568666558651">"Has rechazado todo"</string>
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Información de la aplicación"</string>
     <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fijación de pantalla"</string>
@@ -572,9 +572,9 @@
     <string name="headset" msgid="4534219457597457353">"Auriculares"</string>
     <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"Auriculares conectados"</string>
     <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"Auriculares conectados"</string>
-    <string name="data_saver" msgid="5037565123367048522">"Economizador de datos"</string>
-    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"Economizador de datos activado"</string>
-    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"Economizador de datos desactivado"</string>
+    <string name="data_saver" msgid="5037565123367048522">"Economizador de Datos"</string>
+    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"Economizador de Datos activado"</string>
+    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"Economizador de Datos desactivado"</string>
     <string name="switch_bar_on" msgid="1142437840752794229">"Sí"</string>
     <string name="switch_bar_off" msgid="8803270596930432874">"No"</string>
     <string name="nav_bar" msgid="1993221402773877607">"Barra de navegación"</string>
@@ -597,9 +597,9 @@
     <string name="keycode_description" msgid="1403795192716828949">"Con los botones del código de teclado puedes añadir teclas a la barra de navegación que, al pulsarlas, emulan la tecla seleccionada. Primero debes seleccionar la tecla para el botón y, a continuación, la imagen que se va a mostrar en él."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Selecciona un botón de teclado"</string>
     <string name="preview" msgid="9077832302472282938">"Vista previa"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Arrastrar para añadir mosaicos"</string>
-    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Arrastrar aquí para eliminar"</string>
-    <string name="qs_edit" msgid="2232596095725105230">"Cambiar"</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Arrastra para añadir funciones"</string>
+    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Arrastra aquí para quitar una función"</string>
+    <string name="qs_edit" msgid="2232596095725105230">"Editar"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Hora"</string>
   <string-array name="clock_options">
     <item msgid="5965318737560463480">"Mostrar horas, minutos y segundos"</item>
diff --git a/packages/SystemUI/res/values-es/strings_tv.xml b/packages/SystemUI/res/values-es/strings_tv.xml
index 35153d4..32b3b8c 100644
--- a/packages/SystemUI/res/values-es/strings_tv.xml
+++ b/packages/SystemUI/res/values-es/strings_tv.xml
@@ -27,5 +27,5 @@
     <string name="pip_onboarding_title" msgid="7850436557670253991">"Imagen en imagen"</string>
     <string name="pip_onboarding_description" msgid="4028124563309465267">"El vídeo estará visible hasta que reproduzcas otro. Mantén pulsado el botón "<b>"INICIO"</b>" para controlarlo."</string>
     <string name="pip_onboarding_button" msgid="3957426748484904611">"Entendido"</string>
-    <string name="recents_tv_dismiss" msgid="3555093879593377731">"Ignorar"</string>
+    <string name="recents_tv_dismiss" msgid="3555093879593377731">"Descartar"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 7b5aa6f..72cd8179 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -231,8 +231,8 @@
     <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Töörežiim on sees."</string>
     <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Töörežiim on välja lülitatud."</string>
     <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Töörežiim on sisse lülitatud."</string>
-    <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Andmemahu säästja on välja lülitatud."</string>
-    <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Andmemahu säästja on sisse lülitatud."</string>
+    <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"Andmeside mahu säästja on välja lülitatud."</string>
+    <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"Andmeside mahu säästja on sisse lülitatud."</string>
     <string name="accessibility_brightness" msgid="8003681285547803095">"Ekraani heledus"</string>
     <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G andmekasutus on peatatud"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G andmekasutus on peatatud"</string>
@@ -572,9 +572,9 @@
     <string name="headset" msgid="4534219457597457353">"Peakomplekt"</string>
     <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"Kõrvaklapid on ühendatud"</string>
     <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"Peakomplekt on ühendatud"</string>
-    <string name="data_saver" msgid="5037565123367048522">"Andmemahu säästja"</string>
-    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"Andmemahu säästja on sisse lülitatud"</string>
-    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"Andmemahu säästja on välja lülitatud"</string>
+    <string name="data_saver" msgid="5037565123367048522">"Andmeside mahu säästja"</string>
+    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"Andmeside mahu säästja on sisse lülitatud"</string>
+    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"Andmeside mahu säästja on välja lülitatud"</string>
     <string name="switch_bar_on" msgid="1142437840752794229">"Sees"</string>
     <string name="switch_bar_off" msgid="8803270596930432874">"Väljas"</string>
     <string name="nav_bar" msgid="1993221402773877607">"Navigeerimisriba"</string>
@@ -599,7 +599,7 @@
     <string name="preview" msgid="9077832302472282938">"Eelvaade"</string>
     <string name="drag_to_add_tiles" msgid="7058945779098711293">"Lohistage paanide lisamiseks"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Lohistage eemaldamiseks siia"</string>
-    <string name="qs_edit" msgid="2232596095725105230">"Muuda"</string>
+    <string name="qs_edit" msgid="2232596095725105230">"Muutmine"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Kellaaeg"</string>
   <string-array name="clock_options">
     <item msgid="5965318737560463480">"Kuva tunnid, minutid ja sekundid"</item>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 5e7e661..732abb3 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -597,7 +597,7 @@
     <string name="keycode_description" msgid="1403795192716828949">"Les boutons de codes de touche permettent d\'ajouter des touches du clavier à la barre de navigation. Lorsque vous appuyez sur l\'un de ces boutons, il reproduit la fonction du clavier correspondante. Vous devez d\'abord sélectionner la touche pour le bouton, puis l\'image à afficher sur celui-ci."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Sélectionnez la touche du clavier"</string>
     <string name="preview" msgid="9077832302472282938">"Aperçu"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Faites glisser des tuiles ici pour les ajouter"</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Faites glisser des tuiles pour les ajouter"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Faites glisser les tuiles ici pour les supprimer"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Modifier"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Heure"</string>
diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml
index 753e784..e405db4 100644
--- a/packages/SystemUI/res/values-gu-rIN/strings.xml
+++ b/packages/SystemUI/res/values-gu-rIN/strings.xml
@@ -22,7 +22,7 @@
     <string name="app_label" msgid="7164937344850004466">"સિસ્ટમ UI"</string>
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"સાફ કરો"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"સૂચિમાંથી દૂર કરો"</string>
-    <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"એપ્લિકેશન માહિતી"</string>
+    <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ઍપ્લિકેશન માહિતી"</string>
     <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"તમારી તાજેતરની સ્ક્રીન્સ અહીં દેખાય છે"</string>
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"તાજેતરની એપ્લિકેશનો કાઢી નાખો."</string>
     <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759">
@@ -79,7 +79,7 @@
     <string name="usb_preference_title" msgid="6551050377388882787">"USB ફાઇલ ટ્રાન્સફર વિકલ્પો"</string>
     <string name="use_mtp_button_title" msgid="4333504413563023626">"મીડિયા પ્લેયર તરીકે માઉન્ટ કરો (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7517127540301625751">"કૅમેરા તરીકે માઉન્ટ કરો (PTP)"</string>
-    <string name="installer_cd_button_title" msgid="2312667578562201583">"Mac માટે Android ફાઇલ ટ્રાન્સફર એપ્લિકેશન ઇન્સ્ટોલ કરો"</string>
+    <string name="installer_cd_button_title" msgid="2312667578562201583">"Mac માટે Android ફાઇલ ટ્રાન્સફર ઍપ્લિકેશન ઇન્સ્ટોલ કરો"</string>
     <string name="accessibility_back" msgid="567011538994429120">"પાછળ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"હોમ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"મેનુ"</string>
@@ -279,7 +279,7 @@
     <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"ફક્ત કટોકટીના કૉલ્સ"</string>
     <string name="quick_settings_settings_label" msgid="5326556592578065401">"સેટિંગ્સ"</string>
     <string name="quick_settings_time_label" msgid="4635969182239736408">"સમય"</string>
-    <string name="quick_settings_user_label" msgid="5238995632130897840">"મારા"</string>
+    <string name="quick_settings_user_label" msgid="5238995632130897840">"હું"</string>
     <string name="quick_settings_user_title" msgid="4467690427642392403">"વપરાશકર્તા"</string>
     <string name="quick_settings_user_new_user" msgid="9030521362023479778">"નવો વપરાશકર્તા"</string>
     <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
@@ -315,7 +315,7 @@
     <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"કાર્ય મોડ"</string>
     <string name="recents_empty_message" msgid="808480104164008572">"કોઇ તાજેતરની આઇટમ્સ નથી"</string>
     <string name="recents_empty_message_dismissed_all" msgid="2791312568666558651">"તમે બધું સાફ કર્યું"</string>
-    <string name="recents_app_info_button_label" msgid="2890317189376000030">"એપ્લિકેશન માહિતી"</string>
+    <string name="recents_app_info_button_label" msgid="2890317189376000030">"ઍપ્લિકેશન માહિતી"</string>
     <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"સ્ક્રીન પિનિંગ"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"શોધ"</string>
     <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> પ્રારંભ કરી શકાયું નથી."</string>
@@ -381,7 +381,7 @@
     <string name="user_add_user_title" msgid="4553596395824132638">"નવા વપરાશકર્તાને ઉમેરીએ?"</string>
     <string name="user_add_user_message_short" msgid="2161624834066214559">"જ્યારે તમે કોઈ નવા વપરાશકર્તાને ઉમેરો છો, ત્યારે તે વ્યક્તિને તેમનું સ્થાન સેટ કરવાની જરૂર પડે છે.\n\nકોઈપણ વપરાશકર્તા બધા અન્ય વપરાશકર્તાઓ માટે એપ્લિકેશન્સને અપડેટ કરી શકે છે."</string>
     <string name="user_remove_user_title" msgid="4681256956076895559">"વપરાશકર્તાને દૂર કરીએ?"</string>
-    <string name="user_remove_user_message" msgid="1453218013959498039">"આ વપરાશકર્તાની તમામ એપ્લિકેશન્સ અને ડેટા કાઢી નાખવામાં આવશે."</string>
+    <string name="user_remove_user_message" msgid="1453218013959498039">"આ વપરાશકર્તાની તમામ ઍપ્લિકેશનો અને ડેટા કાઢી નાખવામાં આવશે."</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"દૂર કરો"</string>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"બેટરી સેવર ચાલુ છે"</string>
     <string name="battery_saver_notification_text" msgid="820318788126672692">"પ્રદર્શન અને પૃષ્ઠભૂમિ ડેટા ઘટાડે છે"</string>
@@ -400,7 +400,7 @@
     <string name="disable_vpn" msgid="4435534311510272506">"VPN અક્ષમ કરો"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ડિસ્કનેક્ટ કરો"</string>
     <string name="monitoring_description_device_owned" msgid="5780988291898461883">"તમારું ઉપકરણ <xliff:g id="ORGANIZATION">%1$s</xliff:g> દ્વારા સંચાલિત થાય છે.\n\nતમારા વ્યવસ્થાપક સેટિંગ્સ, કોર્પોરેટ ઍક્સેસ, એપ્લિકેશનો, તમારા ઉપકરણ સાથે સંકળાયેલ ડેટા અને તમારા ઉપકરણની સ્થાન માહિતી મોનિટર અને સંચાલિત કરી શકે છે. વધુ માહિતી માટે, તમારા વ્યવસ્થાપકનો સંપર્ક કરો."</string>
-    <string name="monitoring_description_vpn" msgid="4445150119515393526">"તમે VPN કનેક્શન સેટ કરવા માટે એપ્લિકેશન પરવાનગી આપી.\n\nઆ એપ્લિકેશન ઇમેઇલ્સ, એપ્લિકેશનો અને વેબસાઇટ્સ સહિત તમારા ઉપકરણ અને નેટવર્ક પ્રવૃત્તિને મૉનિટર કરી શકે છે."</string>
+    <string name="monitoring_description_vpn" msgid="4445150119515393526">"તમે VPN કનેક્શન સેટ કરવા માટે ઍપ્લિકેશન પરવાનગી આપી.\n\nઆ ઍપ્લિકેશન ઇમેઇલ્સ, ઍપ્લિકેશનો અને વેબસાઇટ્સ સહિત તમારા ઉપકરણ અને નેટવર્ક પ્રવૃત્તિને મૉનિટર કરી શકે છે."</string>
     <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"તમારું ઉપકરણ <xliff:g id="ORGANIZATION">%1$s</xliff:g> દ્વારા સંચાલિત થાય છે.\n\nતમારા વ્યવસ્થાપક સેટિંગ્સ, કોર્પોરેટ ઍક્સેસ, એપ્લિકેશનો, તમારા ઉપકરણ સાથે સંકળાયેલ ડેટા અને તમારા ઉપકરણની સ્થાન માહિતી મોનિટર અને સંચાલિત કરી શકે છે.\n\nતમે VPN સાથે કનેક્ટ થયેલા છો જે ઇમેઇલ્સ, એપ્લિકેશનો અને વેબસાઇટ્સ સહિતની, તમારી નેટવર્ક પ્રવૃત્તિ મોનિટર કરી શકે છે.\n\nવધુ માહિતી માટે, તમારા વ્યવસ્થાપકનો સંપર્ક કરો."</string>
     <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"તમારી કાર્ય પ્રોફાઇલ <xliff:g id="ORGANIZATION">%1$s</xliff:g> દ્વારા સંચાલિત થાય છે.\n\nતમારા વ્યવસ્થાપક ઇમેઇલ્સ, એપ્લિકેશનો અને વેબસાઇટ્સ સહિતની તમારી નેટવર્ક પ્રવૃત્તિને મૉનિટર કરવામાં સમર્થ છે.\n\nવધુ માહિતી માટે, તમારા વ્યવસ્થાપકનો સંપર્ક કરો.\n\nતમે VPN સાથે પણ કનેક્ટ છો, જે તમારી નેટવર્ક પ્રવૃત્તિને મૉનિટર કરી શકે છે."</string>
     <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string>
@@ -465,7 +465,7 @@
     <string name="tuner_toast" msgid="603429811084428439">"અભિનંદન! સિસ્ટમ UI ટ્યૂનરને સેટિંગ્સમાં ઉમેરવામાં આવ્યું છે"</string>
     <string name="remove_from_settings" msgid="8389591916603406378">"સેટિંગ્સમાંથી દૂર કરો"</string>
     <string name="remove_from_settings_prompt" msgid="6069085993355887748">"સેટિંગ્સમાંથી સિસ્ટમ UI ટ્યૂનર દૂર કરી અને તેની તમામ સુવિધાઓનો ઉપયોગ કરવાનું બંધ કરીએ?"</string>
-    <string name="activity_not_found" msgid="348423244327799974">"તમારા ઉપકરણ પર એપ્લિકેશન ઇન્સ્ટોલ થયેલ નથી"</string>
+    <string name="activity_not_found" msgid="348423244327799974">"તમારા ઉપકરણ પર ઍપ્લિકેશન ઇન્સ્ટોલ થયેલ નથી"</string>
     <string name="clock_seconds" msgid="7689554147579179507">"ઘડિયાળ સેકન્ડ બતાવો"</string>
     <string name="clock_seconds_desc" msgid="6282693067130470675">"ઘડિયાળ સેકન્ડ સ્થિતિ બારમાં બતાવો. બૅટરીની આવરદા પર અસર કરી શકે છે."</string>
     <string name="qs_rearrange" msgid="8060918697551068765">"ઝડપી સેટિંગ્સને ફરીથી ગોઠવો"</string>
@@ -515,7 +515,7 @@
     <string name="night_mode_disclaimer" msgid="598914896926759578">"ઘાટી થીમને Android OS ના મુખ્ય ક્ષેત્રો પર લાગુ કરે છે જે સામાન્ય રીતે સેટિંગ્સ જેવી લાઇટ થીમમાં પ્રદર્શિત કરવામાં આવે છે."</string>
     <string name="color_apply" msgid="9212602012641034283">"લાગુ કરો"</string>
     <string name="color_revert_title" msgid="4746666545480534663">"સેટિંગ્સની પુષ્ટિ કરો"</string>
-    <string name="color_revert_message" msgid="9116001069397996691">"કેટલીક રંગ સેટિંગ્સ આ ઉપકરણને બિનઉપયોગી બનાવી શકે છે. આ રંગ સેટિંગ્સની પુષ્ટિ કરવા માટે ઑકે ક્લિક કરો, અન્યથા 10 સેકંડ પછી આ સેટિંગ્સ ફરીથી સેટ થશે."</string>
+    <string name="color_revert_message" msgid="9116001069397996691">"કેટલીક રંગ સેટિંગ્સ આ ઉપકરણને બિનઉપયોગી બનાવી શકે છે. આ રંગ સેટિંગ્સની પુષ્ટિ કરવા માટે ઓકે ક્લિક કરો, અન્યથા 10 સેકંડ પછી આ સેટિંગ્સ ફરીથી સેટ થશે."</string>
     <string name="battery_panel_title" msgid="7944156115535366613">"બૅટરી વપરાશ"</string>
     <string name="battery_detail_charging_summary" msgid="1279095653533044008">"ચાર્જિંગ દરમિયાન બૅટરી બચતકર્તા ઉપલબ્ધ નથી"</string>
     <string name="battery_detail_switch_title" msgid="6285872470260795421">"બૅટરી બચતકર્તા"</string>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 384d125..6992940 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -61,7 +61,7 @@
     <string name="label_view" msgid="6304565553218192990">"Prikaži"</string>
     <string name="always_use_device" msgid="1450287437017315906">"Koristi se prema zadanim postavkama za ovaj USB uređaj"</string>
     <string name="always_use_accessory" msgid="1210954576979621596">"Koristi se prema zadanim postavkama za ovaj USB pribor"</string>
-    <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti uklanjanje pogrešaka putem USB-a?"</string>
+    <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti otklanjanje pogrešaka putem USB-a?"</string>
     <string name="usb_debugging_message" msgid="2220143855912376496">"Otisak prsta RSA ključa računala je: \n <xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
     <string name="usb_debugging_always" msgid="303335496705863070">"Uvijek dopusti s ovog računala"</string>
     <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Otklanjanje pogrešaka putem USB-a nije dopušteno"</string>
@@ -296,7 +296,7 @@
     <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"Nema dostupnih uređaja"</string>
     <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Svjetlina"</string>
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATSKI"</string>
-    <string name="quick_settings_inversion_label" msgid="8790919884718619648">"Preokreni boje"</string>
+    <string name="quick_settings_inversion_label" msgid="8790919884718619648">"Zamijeni boje"</string>
     <string name="quick_settings_color_space_label" msgid="853443689745584770">"Način korekcije boje"</string>
     <string name="quick_settings_more_settings" msgid="326112621462813682">"Više  postavki"</string>
     <string name="quick_settings_done" msgid="3402999958839153376">"Gotovo"</string>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 8c92ab1..b7a333b 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -51,8 +51,8 @@
     <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth-ը կապված է"</string>
     <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Կարգավորել մուտքագրման եղանակները"</string>
     <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Ֆիզիկական ստեղնաշար"</string>
-    <string name="usb_device_permission_prompt" msgid="834698001271562057">"Թույլատրե՞լ <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածի մուտքը USB սարք:"</string>
-    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"Թույլատրե՞լ, որ <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածը մուտք գործի USB լրասարք:"</string>
+    <string name="usb_device_permission_prompt" msgid="834698001271562057">"Թույլատրե՞լ <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածին օգտագործել USB սարքը։"</string>
+    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"Թույլատրե՞լ, <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածին օգտագործել USB սարքը։"</string>
     <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"Բացե՞լ <xliff:g id="ACTIVITY">%1$s</xliff:g>-ը, երբ այս USB կրիչը կապակցված է:"</string>
     <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"Բացե՞լ <xliff:g id="ACTIVITY">%1$s</xliff:g>-ը, երբ այս USB լրասարքը կապակցված է:"</string>
     <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Այս USB լրասարքի հետ ոչ մի հավելված չի աշխատում: Իմացեք ավելին այս լրասարքի մասին <xliff:g id="URL">%1$s</xliff:g>-ում"</string>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index e522950..f352d50 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -597,8 +597,8 @@
     <string name="keycode_description" msgid="1403795192716828949">"I pulsanti keycode consentono di aggiungere tasti della tastiera alla barra di navigazione. Quando vengono premuti, emulano il tasto selezionato. Innanzitutto è necessario selezionare il tasto da associare al pulsante, poi un\'immagine da mostrare sul pulsante."</string>
     <string name="select_keycode" msgid="7413765103381924584">"Seleziona il tasto della tastiera"</string>
     <string name="preview" msgid="9077832302472282938">"Anteprima"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Trascina per aggiungere i riquadri"</string>
-    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Trascinali qui per rimuoverli"</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"Trascina per aggiungere le funzioni"</string>
+    <string name="drag_to_remove_tiles" msgid="3361212377437088062">"Trascina qui per rimuovere"</string>
     <string name="qs_edit" msgid="2232596095725105230">"Modifica"</string>
     <string name="tuner_time" msgid="6572217313285536011">"Ora"</string>
   <string-array name="clock_options">
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index 5485b5d..1c295e6 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -378,7 +378,7 @@
     <string name="user_logout_notification_text" msgid="3350262809611876284">"ಪ್ರಸ್ತುತ ಬಳಕೆದಾರರನ್ನು ಲಾಗ್ಔಟ್ ಮಾಡಿ"</string>
     <string name="user_logout_notification_action" msgid="1195428991423425062">"ಬಳಕೆದಾರರನ್ನು ಲಾಗ್ಔಟ್ ಮಾಡಿ"</string>
     <string name="user_add_user_title" msgid="4553596395824132638">"ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸುವುದೇ?"</string>
-    <string name="user_add_user_message_short" msgid="2161624834066214559">"ನೀವು ಒಬ್ಬ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿದಾಗ, ಆ ವ್ಯಕ್ತಿಯು ಅವರ ಸ್ಥಳವನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.\n\nಯಾವುದೇ ಬಳಕೆದಾರರು ಎಲ್ಲಾ ಇತರೆ ಬಳಕೆದಾರರಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನವೀಕರಿಸಬಹುದು."</string>
+    <string name="user_add_user_message_short" msgid="2161624834066214559">"ನೀವು ಒಬ್ಬ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿದಾಗ, ಆ ವ್ಯಕ್ತಿಯು ಅವರ ಸ್ಥಳವನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.\n\nಯಾವುದೇ ಬಳಕೆದಾರರು ಎಲ್ಲಾ ಇತರೆ ಬಳಕೆದಾರರಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಬಹುದು."</string>
     <string name="user_remove_user_title" msgid="4681256956076895559">"ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?"</string>
     <string name="user_remove_user_message" msgid="1453218013959498039">"ಈ ಬಳಕೆದಾರರ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುವುದು."</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"ತೆಗೆದುಹಾಕಿ"</string>
@@ -570,9 +570,9 @@
     <string name="headset" msgid="4534219457597457353">"ಹೆಡ್‌ಸೆಟ್"</string>
     <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"ಹೆಡ್‌ಫೋನ್ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
     <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"ಹೆಡ್‌ಸೆಟ್ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
-    <string name="data_saver" msgid="5037565123367048522">"ಡೇಟಾ ಉಳಿಸುವಿಕೆ"</string>
-    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"ಡೇಟಾ ಉಳಿಸುವಿಕೆ ಆನ್ ಆಗಿದೆ"</string>
-    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"ಡೇಟಾ ಉಳಿಸುವಿಕೆ ಆಫ್ ಆಗಿದೆ"</string>
+    <string name="data_saver" msgid="5037565123367048522">"ಡೇಟಾ ಸೇವರ್"</string>
+    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"ಡೇಟಾ ಸೇವರ್ ಆನ್ ಆಗಿದೆ"</string>
+    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"ಡೇಟಾ ಸೇವರ್ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="switch_bar_on" msgid="1142437840752794229">"ಆನ್"</string>
     <string name="switch_bar_off" msgid="8803270596930432874">"ಆಫ್"</string>
     <string name="nav_bar" msgid="1993221402773877607">"ನ್ಯಾವಿಗೇಷನ್ ಬಾರ್"</string>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index 5d9743c..9eba956 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -231,8 +231,8 @@
     <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"작업 모드가 사용 설정되었습니다."</string>
     <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"작업 모드가 사용 중지되었습니다."</string>
     <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"작업 모드가 사용 설정되었습니다."</string>
-    <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"데이터 세이버를 사용 중지했습니다."</string>
-    <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"데이터 세이버를 사용 설정했습니다."</string>
+    <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"데이터 절약 모드를 사용 중지했습니다."</string>
+    <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"데이터 절약 모드를 사용 설정했습니다."</string>
     <string name="accessibility_brightness" msgid="8003681285547803095">"디스플레이 밝기"</string>
     <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G 데이터 사용 중지됨"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G 데이터 사용 중지됨"</string>
@@ -572,9 +572,9 @@
     <string name="headset" msgid="4534219457597457353">"헤드셋"</string>
     <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"헤드폰 연결됨"</string>
     <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"헤드셋 연결됨"</string>
-    <string name="data_saver" msgid="5037565123367048522">"데이터 세이버"</string>
-    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"데이터 세이버 사용"</string>
-    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"데이터 세이버 사용 안함"</string>
+    <string name="data_saver" msgid="5037565123367048522">"데이터 절약 모드"</string>
+    <string name="accessibility_data_saver_on" msgid="8454111686783887148">"데이터 절약 모드 사용"</string>
+    <string name="accessibility_data_saver_off" msgid="8841582529453005337">"데이터 절약 모드 사용 안함"</string>
     <string name="switch_bar_on" msgid="1142437840752794229">"사용"</string>
     <string name="switch_bar_off" msgid="8803270596930432874">"사용 안함"</string>
     <string name="nav_bar" msgid="1993221402773877607">"탐색 메뉴"</string>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index c0e1520..4fd8485 100644
--- a/packages/SystemUI/res/values-lo-rLA/strings.xml
+++ b/packages/SystemUI/res/values-lo-rLA/strings.xml
@@ -23,7 +23,7 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"ລຶບ"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"ເອົາອອກຈາກລາຍການ"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ຂໍ້ມູນແອັບຯ"</string>
-    <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string>
+    <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"ໜ້າຈໍຫຼ້າສຸດຂອງທ່ານຈະປາກົດຢູ່ບ່ອນນີ້"</string>
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ປິດແອັບຯຫຼ້າສຸດທີ່ໃຊ້"</string>
     <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759">
       <item quantity="other">%d ໜ້າ​ຈໍ​ຢູ່​ໃນ​ພາບ​ລວມ</item>
@@ -359,7 +359,7 @@
     <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ປ່ຽນຜູ່ໃຊ້, ຜູ່ໃຊ້ປະຈຸບັນ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string>
     <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"ຜູ້ໃຊ້ປະຈຸບັນ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string>
     <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"​ສະ​ແດງ​ໂປຣ​ໄຟລ໌"</string>
-    <string name="user_add_user" msgid="5110251524486079492">"ເພີ່ມຜູ່ໃຊ້"</string>
+    <string name="user_add_user" msgid="5110251524486079492">"ເພີ່ມຜູ້ໃຊ້"</string>
     <string name="user_new_user_name" msgid="426540612051178753">"ຜູ່ໃຊ້ໃໝ່"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"ແຂກ"</string>
     <string name="guest_new_guest" msgid="600537543078847803">"ເພີ່ມແຂກ"</string>
@@ -378,7 +378,7 @@
     <string name="user_logout_notification_text" msgid="3350262809611876284">"ອອກ​ຈາກ​ຜູ້​ໃຊ້​ປະ​ຈຸ​ບັນ"</string>
     <string name="user_logout_notification_action" msgid="1195428991423425062">"ເອົາຜູ້ໃຊ້ອອກຈາກລະບົບ"</string>
     <string name="user_add_user_title" msgid="4553596395824132638">"ເພີ່ມ​ຜູ່​ໃຊ້​ໃໝ່​ບໍ?"</string>
-    <string name="user_add_user_message_short" msgid="2161624834066214559">"ເມື່ອ​ທ່ານ​ເພີ່ມ​ຜູ່​ໃຊ້​ໃໝ່, ຜູ່​ໃຊ້​ນັ້ນ​ຈະ​ຕ້ອງ​ຕັ້ງ​ຄ່າ​ພື້ນ​ທີ່​ບ່ອນ​ຈັດ​ເກັບ​ຂໍ້​ມູນ​ຂອງ​ລາວ.\n\nຜູ່​ໃຊ້​ທຸກ​ຄົນ​ສາ​ມາດ​ອັບ​ເດດ​ແອັບຯ​ຂອງ​ຜູ່​ໃຊ້​ຄົນ​ອື່ນ​ທັງ​ໝົດ​ໄດ້."</string>
+    <string name="user_add_user_message_short" msgid="2161624834066214559">"ເມື່ອ​ທ່ານ​ເພີ່ມ​ຜູ້ໃຊ້​ໃໝ່, ຜູ້ໃຊ້​ນັ້ນ​ຈະ​ຕ້ອງ​ຕັ້ງ​ຄ່າ​ພື້ນ​ທີ່​ບ່ອນ​ຈັດ​ເກັບ​ຂໍ້​ມູນ​ຂອງ​ລາວ.\n\nຜູ້ໃຊ້​ທຸກ​ຄົນ​ສາ​ມາດ​ອັບ​ເດດ​ແອັບຯຂອງ​ຜູ້​ໃຊ້​ຄົນ​ອື່ນ​ທັງ​ໝົດ​ໄດ້."</string>
     <string name="user_remove_user_title" msgid="4681256956076895559">"ລຶບຜູ້ໃຊ້ອອກບໍ?"</string>
     <string name="user_remove_user_message" msgid="1453218013959498039">"ທຸກ​ແອັບ ແລະ ຂໍ້​ມູນ​ຂອງ​ຜູ້​ໃຊ້​ນີ້​ຈະ​ຖືກ​ລຶບ."</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"ເອົາ​ອອກ"</string>
@@ -595,7 +595,7 @@
     <string name="keycode_description" msgid="1403795192716828949">"ປຸ່ມ Keycode ອະນຸຍາດໃຫ້ເພີ່ມປຸ່ມແປ້ນພິມໃສ່ແຖບການນຳທາງ. ເມື່ອກົດແລ້ວພວກມັນຈະຮຽນແບບປຸ່ມແປ້ນພິມທີ່ເລືອກ. ທຳອິດຕ້ອງເລືອກປຸ່ມແປ້ນພິມສຳລັບປຸ່ມນັ້ນ, ຕາມດ້ວຍຮູບທີ່ຈະປາກົດຂຶ້ນເທິງປຸ່ມນັ້ນ."</string>
     <string name="select_keycode" msgid="7413765103381924584">"ເລືອກປຸ່ມແປ້ນພິມ"</string>
     <string name="preview" msgid="9077832302472282938">"ສະແດງຕົວຢ່າງ"</string>
-    <string name="drag_to_add_tiles" msgid="7058945779098711293">"ລາກເພື່ອເພີ່ມໄທລ໌"</string>
+    <string name="drag_to_add_tiles" msgid="7058945779098711293">"ລາກເພື່ອເພີ່ມໄອຄອນ"</string>
     <string name="drag_to_remove_tiles" msgid="3361212377437088062">"ລາກມາບ່ອນນີ້ເພື່ອລຶບອອກ"</string>
     <string name="qs_edit" msgid="2232596095725105230">"ແກ້ໄຂ"</string>
     <string name="tuner_time" msgid="6572217313285536011">"ເວລາ"</string>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index b832082..af1bab18 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -38,11 +38,11 @@
     <string name="invalid_charger" msgid="4549105996740522523">"USB ചാർജ്ജുചെയ്യൽ പിന്തുണയ്ക്കുന്നില്ല.\nഅതിന്റെ അനുബന്ധ ചാർജ്ജർ മാത്രം ഉപയോഗിക്കുക."</string>
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB ചാർജ്ജുചെയ്യൽ പിന്തുണച്ചില്ല."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"വിതരണം ചെയ്‌ത ചാർജ്ജർ മാത്രം ഉപയോഗിക്കുക."</string>
-    <string name="battery_low_why" msgid="4553600287639198111">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="battery_low_why" msgid="4553600287639198111">"ക്രമീകരണം"</string>
     <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"ബാറ്ററി സേവർ ഓണാക്കണോ?"</string>
     <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"ഓൺ ചെയ്യുക"</string>
     <string name="battery_saver_start_action" msgid="5576697451677486320">"ബാറ്ററി സേവർ ഓണാക്കുക"</string>
-    <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ക്രമീകരണം"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"വൈഫൈ"</string>
     <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"സ്‌ക്രീൻ സ്വയമേതിരിക്കുക"</string>
     <string name="status_bar_settings_mute_label" msgid="554682549917429396">"മ്യൂട്ടുചെയ്യുക"</string>
@@ -180,7 +180,7 @@
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"അറിയിപ്പ് ഷെയ്‌ഡ്."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ദ്രുത ക്രമീകരണങ്ങൾ."</string>
     <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ലോക്ക് സ്‌ക്രീൻ."</string>
-    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ക്രമീകരണം"</string>
     <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"കാഴ്ച."</string>
     <string name="accessibility_desc_close" msgid="7479755364962766729">"അടയ്‌ക്കുക"</string>
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ഉപയോക്താവ് <xliff:g id="USER">%s</xliff:g>."</string>
@@ -246,7 +246,7 @@
     <string name="accessibility_clear_all" msgid="5235938559247164925">"എല്ലാ വിവരങ്ങളും മായ്‌ക്കുക."</string>
     <string name="notification_group_overflow_indicator" msgid="1863231301642314183">"+ <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="status_bar_notification_inspect_item_title" msgid="5668348142410115323">"അറിയിപ്പ് ക്രമീകരണങ്ങൾ"</string>
-    <string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"<xliff:g id="APP_NAME">%s</xliff:g> ക്രമീകരണങ്ങൾ"</string>
+    <string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"<xliff:g id="APP_NAME">%s</xliff:g> ക്രമീകരണം"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"സ്‌ക്രീൻ യാന്ത്രികമായി തിരിയും."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"സ്‌ക്രീൻ ലാൻഡ്‌സ്‌കേപ്പ് ഓറിയന്റേഷനിൽ ലോക്കുചെയ്‌തു."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"സ്‌ക്രീൻ പോർട്രെയ്‌റ്റ് ഓറിയന്റേഷനിൽ ലോക്കുചെയ്‌തു."</string>
@@ -277,7 +277,7 @@
     <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>
-    <string name="quick_settings_settings_label" msgid="5326556592578065401">"ക്രമീകരണങ്ങൾ"</string>
+    <string name="quick_settings_settings_label" msgid="5326556592578065401">"ക്രമീകരണം"</string>
     <string name="quick_settings_time_label" msgid="4635969182239736408">"സമയം"</string>
     <string name="quick_settings_user_label" msgid="5238995632130897840">"ഞാന്‍"</string>
     <string name="quick_settings_user_title" msgid="4467690427642392403">"ഉപയോക്താവ്"</string>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index d146210..278468a 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -97,8 +97,8 @@
     <string name="cancel" msgid="6442560571259935130">"Цуцлах"</string>
     <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Тохиромжтой өсгөх товч."</string>
     <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Жижгээс том дэлгэцрүү өсгөх."</string>
-    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Блютүүт холбогдсон."</string>
-    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Блютүүт тасрав."</string>
+    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth холбогдсон."</string>
+    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth тасрав."</string>
     <string name="accessibility_no_battery" msgid="358343022352820946">"Батерей байхгүй."</string>
     <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Батерей нэг баганатай."</string>
     <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Батерей хоёр баганатай."</string>
@@ -150,7 +150,7 @@
     <string name="accessibility_cell_data" msgid="7080312242791850520">"Мобайл дата"</string>
     <string name="accessibility_cell_data_on" msgid="4310018593519761767">"Мобайл дата асаалттай"</string>
     <string name="accessibility_cell_data_off" msgid="8000803571751407635">"Мобайл датаг унтраасан байна"</string>
-    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Блютүүт модем болж байна."</string>
+    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth модем болж байна."</string>
     <string name="accessibility_airplane_mode" msgid="834748999790763092">"Нислэгийн горим"</string>
     <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM карт байхгүй."</string>
     <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Дамжуулагч сүлжээг өөрчилж байна."</string>
@@ -199,10 +199,10 @@
     <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Идэвхгүй болгох үйлдэлд бүү саад бол."</string>
     <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"Идэвхжүүлэх үйлдэлд бүү саад бол."</string>
     <string name="accessibility_quick_settings_bluetooth" msgid="6341675755803320038">"Bluetooth."</string>
-    <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"Блютүүт идэвхгүй."</string>
-    <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"Блютүүт идэвхтэй."</string>
+    <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"Bluetooth идэвхгүй."</string>
+    <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"Bluetooth идэвхтэй."</string>
     <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"Блютүүтийг холбож байна."</string>
-    <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"Блютүүт холбогдсон."</string>
+    <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"Bluetooth холбогдсон."</string>
     <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"Блютүүтийг унтраасан."</string>
     <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"Блютүүтийг асаасан."</string>
     <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"Байршил мэдээлэлт идэвхгүй."</string>
@@ -258,9 +258,9 @@
     <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Зөвхөн чухал зүйлс"</string>
     <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Зөвхөн сэрүүлэг"</string>
     <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Дуугүй болгох"</string>
-    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Блютүүт"</string>
-    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Блютүүт (<xliff:g id="NUMBER">%d</xliff:g> төхөөрөмж)"</string>
-    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Блютүүт унтраалттай"</string>
+    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
+    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> төхөөрөмж)"</string>
+    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth унтраалттай"</string>
     <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"Хослуулсан төхөөрөмж байхгүй"</string>
     <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Тодрол"</string>
     <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"Автоматаар эргэх"</string>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 2c51984..219f9f8 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -96,7 +96,7 @@
     <string name="voice_assist_label" msgid="3956854378310019854">"အသံ အကူအညီအား ဖွင့်ရန်"</string>
     <string name="camera_label" msgid="7261107956054836961">"ကင်မရာ ဖွင့်ရန်"</string>
     <string name="recents_caption_resize" msgid="3517056471774958200">"အလုပ်သစ်စီစဥ်မှုကို ရွေးပါ။"</string>
-    <string name="cancel" msgid="6442560571259935130">"ထားတော့"</string>
+    <string name="cancel" msgid="6442560571259935130">"ဖျက်သိမ်းရန်"</string>
     <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"အံ့ဝင်သောချုံ့ချဲ့ခလုတ်"</string>
     <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"ဖန်သားပြင်ပေါ်တွင် အသေးမှအကြီးသို့ချဲ့ခြင်း"</string>
     <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ဘလူးတုသ်ချိတ်ဆက်ထားမှု"</string>
diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml
index 5cab544..9ca2df0 100644
--- a/packages/SystemUI/res/values-pa-rIN/strings.xml
+++ b/packages/SystemUI/res/values-pa-rIN/strings.xml
@@ -51,20 +51,20 @@
     <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth ਟੀਥਰ ਕੀਤੀ"</string>
     <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"ਇਨਪੁਟ ਵਿਧੀਆਂ ਸੈਟ ਅਪ ਕਰੋ"</string>
     <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"ਫਿਜੀਕਲ ਕੀਬੋਰਡ"</string>
-    <string name="usb_device_permission_prompt" msgid="834698001271562057">"ਕੀ ਐਪ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨੂੰ USB ਡਿਵਾਈਸ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
+    <string name="usb_device_permission_prompt" msgid="834698001271562057">"ਕੀ ਐਪ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨੂੰ USB ਡੀਵਾਈਸ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
     <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"ਕੀ ਐਪ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨੂੰ USB ਐਕਸੈਸਰੀ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
-    <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"ਕੀ ਜਦੋਂ ਇਹ USB ਡਿਵਾਈਸ ਕਨੈਕਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ <xliff:g id="ACTIVITY">%1$s</xliff:g> ਨੂੰ ਖੋਲ੍ਹਂਣਾ ਹੈ?"</string>
+    <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"ਕੀ ਜਦੋਂ ਇਹ USB ਡੀਵਾਈਸ ਕਨੈਕਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ <xliff:g id="ACTIVITY">%1$s</xliff:g> ਨੂੰ ਖੋਲ੍ਹਂਣਾ ਹੈ?"</string>
     <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"ਕੀ ਜਦੋਂ ਇਹ USB ਐਕਸੈਸਰੀ ਕਨੈਕਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ <xliff:g id="ACTIVITY">%1$s</xliff:g> ਨੂੰ ਖੋਲ੍ਹਣਾ ਹੈ?"</string>
     <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"ਕੋਈ ਇੰਸਟੌਲ ਕੀਤੇ ਐਪਸ ਇਸ USB ਐਕਸੈਸਰੀ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦੇ। <xliff:g id="URL">%1$s</xliff:g> ਤੇ ਇਸ ਐਕਸੈਸਰੀ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="title_usb_accessory" msgid="4966265263465181372">"USB ਐਕਸੈਸਰੀ"</string>
     <string name="label_view" msgid="6304565553218192990">"ਦੇਖੋ"</string>
-    <string name="always_use_device" msgid="1450287437017315906">"ਇਸ USB ਡਿਵਾਈਸ ਲਈ ਬਾਇ ਡਿਫੌਲਟ ਵਰਤੋ"</string>
+    <string name="always_use_device" msgid="1450287437017315906">"ਇਸ USB ਡੀਵਾਈਸ ਲਈ ਬਾਇ ਡਿਫੌਲਟ ਵਰਤੋ"</string>
     <string name="always_use_accessory" msgid="1210954576979621596">"ਇਸ USB ਐਕਸਸੈਰੀ ਲਈ ਬਾਇ ਡਿਫੌਲਟ ਵਰਤੋ"</string>
     <string name="usb_debugging_title" msgid="4513918393387141949">"ਕੀ USB ਡੀਬਗਿੰਗ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
     <string name="usb_debugging_message" msgid="2220143855912376496">"ਕੰਪਿਊਟਰ ਦਾ RSA ਕੁੰਜੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਹੈ:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
     <string name="usb_debugging_always" msgid="303335496705863070">"ਹਮੇਸ਼ਾਂ ਇਸ ਕੰਪਿਊਟਰ ਤੋਂ ਆਗਿਆ ਦਿਓ"</string>
     <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ਡਿਬੱਗਿੰਗ ਦੀ ਆਗਿਆ ਨਹੀਂ"</string>
-    <string name="usb_debugging_secondary_user_message" msgid="8572228137833020196">"ਇਸ ਡਿਵਾਈਸ ਵਿੱਚ ਵਰਤਮਾਨ ਵਿੱਚ ਸਾਈਨ ਇਨ ਕੀਤਾ ਉਪਭੋਗਤਾ USB ਡਿਬੱਗਿੰਗ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਕਿਸੇ ਪ੍ਰਸ਼ਾਸਕ ਉਪਭੋਗਤਾ ਵਿੱਚ ਸਵਿੱਚ ਕਰੋ।"</string>
+    <string name="usb_debugging_secondary_user_message" msgid="8572228137833020196">"ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਵਰਤਮਾਨ ਵਿੱਚ ਸਾਈਨ ਇਨ ਕੀਤਾ ਉਪਭੋਗਤਾ USB ਡਿਬੱਗਿੰਗ ਨੂੰ ਚਾਲੂ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਉਪਯੋਗ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਕਿਸੇ ਪ੍ਰਸ਼ਾਸਕ ਉਪਭੋਗਤਾ ਵਿੱਚ ਸਵਿੱਚ ਕਰੋ।"</string>
     <string name="compat_mode_on" msgid="6623839244840638213">"ਸਕ੍ਰੀਨ ਭਰਨ ਲਈ ਜ਼ੂਮ ਕਰੋ"</string>
     <string name="compat_mode_off" msgid="4434467572461327898">"ਸਕ੍ਰੀਨ ਭਰਨ ਲਈ ਸਟ੍ਰੈਚ ਕਰੋ"</string>
     <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ਸਕ੍ਰੀਨਸ਼ੌਟ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -111,11 +111,11 @@
     <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"ਫੋਨ ਦੋ ਬਾਰਸ।"</string>
     <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"ਫੋਨ ਤਿੰਨ ਬਾਰਸ।"</string>
     <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"ਫੋਨ ਸਿਗਨਲ ਪੂਰਾ।"</string>
-    <string name="accessibility_no_data" msgid="4791966295096867555">"ਕੋਈ ਡਾਟਾ ਨਹੀਂ।"</string>
-    <string name="accessibility_data_one_bar" msgid="1415625833238273628">"ਡਾਟਾ ਇੱਕ ਬਾਰ।"</string>
-    <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ਡਾਟਾ ਦੋ ਬਾਰਸ।"</string>
-    <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ਡਾਟਾ ਤਿੰਨ ਬਾਰ।"</string>
-    <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ਡਾਟਾ ਸਿਗਨਲ ਪੂਰਾ।"</string>
+    <string name="accessibility_no_data" msgid="4791966295096867555">"ਕੋਈ ਡੈਟਾ ਨਹੀਂ।"</string>
+    <string name="accessibility_data_one_bar" msgid="1415625833238273628">"ਡੈਟਾ ਇੱਕ ਬਾਰ।"</string>
+    <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ਡੈਟਾ ਦੋ ਬਾਰਸ।"</string>
+    <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ਡੈਟਾ ਤਿੰਨ ਬਾਰ।"</string>
+    <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ਡੈਟਾ ਸਿਗਨਲ ਪੂਰਾ।"</string>
     <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ।"</string>
     <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ।"</string>
     <string name="accessibility_cast_name" msgid="4026393061247081201">"<xliff:g id="CAST">%s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ।"</string>
@@ -207,11 +207,11 @@
     <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"Bluetooth ਕਨੈਕਟ ਕੀਤੀ।"</string>
     <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"Bluetooth ਬੰਦ ਹੈ।"</string>
     <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"Bluetooth ਚਾਲੂ ਕੀਤੀ।"</string>
-    <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਰਿਪੋਰਟਿੰਗ ਬੰਦ।"</string>
-    <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਰਿਪੋਰਟਿੰਗ ਚਾਲੂ।"</string>
-    <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਰਿਪੋਰਟਿੰਗ ਬੰਦ ਕੀਤੀ।"</string>
-    <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਰਿਪੋਰਟਿੰਗ ਚਾਲੂ ਕੀਤੀ।"</string>
-    <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"ਅਲਾਰਮ <xliff:g id="TIME">%s</xliff:g> ਲਈ ਸੈਟ ਕੀਤਾ।"</string>
+    <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"ਟਿਕਾਣਾ ਰਿਪੋਰਟਿੰਗ ਬੰਦ।"</string>
+    <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"ਟਿਕਾਣਾ ਰਿਪੋਰਟਿੰਗ ਚਾਲੂ।"</string>
+    <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"ਟਿਕਾਣਾ ਰਿਪੋਰਟਿੰਗ ਬੰਦ ਕੀਤੀ।"</string>
+    <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"ਟਿਕਾਣਾ ਰਿਪੋਰਟਿੰਗ ਚਾਲੂ ਕੀਤੀ।"</string>
+    <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"ਅਲਾਰਮ <xliff:g id="TIME">%s</xliff:g> ਲਈ ਸੈੱਟ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"ਪੈਨਲ ਬੰਦ ਕਰੋ।"</string>
     <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"ਹੋਰ ਸਮਾਂ।"</string>
     <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"ਘੱਟ ਸਮਾਂ।"</string>
@@ -232,16 +232,16 @@
     <string name="accessibility_quick_settings_data_saver_changed_off" msgid="650231949881093289">"ਡੈਟਾ ਸੇਵਰ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="accessibility_quick_settings_data_saver_changed_on" msgid="4218725402373934151">"ਡੈਟਾ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="accessibility_brightness" msgid="8003681285547803095">"ਡਿਸਪਲੇ ਚਮਕ"</string>
-    <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
-    <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
-    <string name="data_usage_disabled_dialog_mobile_title" msgid="4651001290947318931">"ਸੈਲਿਊਲਰ ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
-    <string name="data_usage_disabled_dialog_title" msgid="3932437232199671967">"ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
-    <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"ਕਿਉਂਕਿ ਤੁਹਾਡੀ ਸੈਟ ਡਾਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ ਸੀ,  ਡਿਵਾਈਸ ਨੇ ਇਸ ਬਾਕੀ ਚੱਕਰ ਲਈ ਡਾਟਾ ਵਰਤੋਂ ਰੋਕ ਦਿੱਤੀ ਹੈ।\n\nਇਸਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।"</string>
+    <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
+    <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
+    <string name="data_usage_disabled_dialog_mobile_title" msgid="4651001290947318931">"ਸੈਲਿਊਲਰ ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
+    <string name="data_usage_disabled_dialog_title" msgid="3932437232199671967">"ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string>
+    <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"ਕਿਉਂਕਿ ਤੁਹਾਡੀ ਸੈਟ ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ ਸੀ,  ਡੀਵਾਈਸ ਨੇ ਇਸ ਬਾਕੀ ਚੱਕਰ ਲਈ ਡੈਟਾ ਵਰਤੋਂ ਰੋਕ ਦਿੱਤੀ ਹੈ।\n\nਇਸਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।"</string>
     <string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ"</string>
     <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ"</string>
     <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi ਕਨੈਕਟ ਕੀਤਾ"</string>
     <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS ਦੀ ਖੋਜ ਕਰ ਰਿਹਾ ਹੈ"</string>
-    <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS ਵੱਲੋਂ ਸੈਟ ਕੀਤਾ ਨਿਰਧਾਰਿਤ ਸਥਾਨ"</string>
+    <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS ਵੱਲੋਂ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਟਿਕਾਣਾ"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਸੇਵਾ ਬੇਨਤੀਆਂ ਸਕਿਰਿਆ"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"ਸਾਰੀਆਂ ਸੂਚਨਾਵਾਂ ਹਟਾਓ।"</string>
     <string name="notification_group_overflow_indicator" msgid="1863231301642314183">"+ <xliff:g id="NUMBER">%s</xliff:g>"</string>
@@ -272,9 +272,9 @@
     <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"ਤਸਵੀਰ"</string>
     <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"ਲੈਂਡਸਕੇਪ"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"ਇਨਪੁਟ ਵਿਧੀ"</string>
-    <string name="quick_settings_location_label" msgid="5011327048748762257">"ਨਿਰਧਾਰਿਤ ਸਥਾਨ"</string>
+    <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_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>
     <string name="quick_settings_settings_label" msgid="5326556592578065401">"ਸੈਟਿੰਗਾਂ"</string>
@@ -284,13 +284,13 @@
     <string name="quick_settings_user_new_user" msgid="9030521362023479778">"ਨਵਾਂ ਉਪਭੋਗਤਾ"</string>
     <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
     <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ"</string>
-    <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ਕੋਈ ਨੈਟਵਰਕ ਨਹੀਂ"</string>
+    <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ"</string>
     <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ਬੰਦ"</string>
     <string name="quick_settings_wifi_on_label" msgid="7607810331387031235">"Wi-Fi ਚਾਲੂ"</string>
-    <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ਕੋਈ Wi-Fi ਨੈਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ"</string>
+    <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ਕੋਈ Wi-Fi ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ"</string>
     <string name="quick_settings_cast_title" msgid="7709016546426454729">"ਜੋੜੋ"</string>
     <string name="quick_settings_casting" msgid="6601710681033353316">"ਕਾਸਟਿੰਗ"</string>
-    <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ਬਿਨਾਂ ਨਾਮ ਦਿੱਤੀ ਡਿਵਾਈਸ"</string>
+    <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ਬਿਨਾਂ ਨਾਮ ਦਿੱਤੀ ਡੀਵਾਈਸ"</string>
     <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"ਜੋੜਨ ਲਈ ਤਿਆਰ"</string>
     <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"ਕੋਈ ਡਿਵਾਈਸਾਂ ਉਪਲਬਧ ਨਹੀਂ"</string>
     <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"ਚਮਕ"</string>
@@ -305,9 +305,9 @@
     <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ਹੌਟਸਪੌਟ"</string>
     <string name="quick_settings_notifications_label" msgid="4818156442169154523">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"ਫਲੈਸ਼ਲਾਈਟ"</string>
-    <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"ਸੈਲਿਊਲਰ ਡਾਟਾ"</string>
-    <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"ਡਾਟਾ ਵਰਤੋਂ"</string>
-    <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"ਬਾਕੀ ਡਾਟਾ"</string>
+    <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"ਸੈਲਿਊਲਰ ਡੈਟਾ"</string>
+    <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"ਡੈਟਾ ਵਰਤੋਂ"</string>
+    <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"ਬਾਕੀ ਡੈਟਾ"</string>
     <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"ਸੀਮਾ ਤੋਂ ਵੱਧ"</string>
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ਵਰਤਿਆ"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ਸੀਮਾ"</string>
@@ -330,7 +330,7 @@
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ਚਾਰਜ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> ਪੂਰਾ ਹੋਣ ਤੱਕ"</string>
     <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਿਹਾ"</string>
-    <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"ਨੈਟਵਰਕ ਦੀ ਨਿਗਰਾਨੀ\nਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"</string>
+    <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"ਨੈੱਟਵਰਕ ਦੀ ਨਿਗਰਾਨੀ\nਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"</string>
     <string name="description_target_search" msgid="3091587249776033139">"ਖੋਜੋ"</string>
     <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਲਈ ਉੱਪਰ ਸਲਾਈਡ ਕਰੋ।"</string>
     <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਖੱਬੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string>
@@ -366,14 +366,14 @@
     <string name="guest_new_guest" msgid="600537543078847803">"ਮਹਿਮਾਨ ਜੋੜੋ"</string>
     <string name="guest_exit_guest" msgid="7187359342030096885">"ਮਹਿਮਾਨ ਹਟਾਓ"</string>
     <string name="guest_exit_guest_dialog_title" msgid="8480693520521766688">"ਕੀ ਮਹਿਮਾਨ ਹਟਾਉਣਾ ਹੈ?"</string>
-    <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"ਇਸ ਸੈਸ਼ਨ ਵਿੱਚ ਸਾਰੇ ਐਪਸ ਅਤੇ ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਏਗਾ।"</string>
+    <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"ਇਸ ਸੈਸ਼ਨ ਵਿੱਚ ਸਾਰੇ ਐਪਸ ਅਤੇ ਡੈਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਏਗਾ।"</string>
     <string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"ਹਟਾਓ"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ਮਹਿਮਾਨ, ਫਿਰ ਤੁਹਾਡਾ ਸੁਆਗਤ ਹੈ!"</string>
     <string name="guest_wipe_session_message" msgid="8476238178270112811">"ਕੀ ਤੁਸੀਂ ਆਪਣਾ ਸੈਸ਼ਨ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
     <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ਸ਼ੁਰੂ ਕਰੋ"</string>
     <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ਹਾਂ, ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="guest_notification_title" msgid="1585278533840603063">"ਮਹਿਮਾਨ ਉਪਭੋਗਤਾ"</string>
-    <string name="guest_notification_text" msgid="335747957734796689">"ਐਪਸ ਅਤੇ ਡਾਟਾ ਮਿਟਾਉਣ ਲਈ, ਮਹਿਮਾਨ ਉਪਭੋਗਤਾ ਹਟਾਓ"</string>
+    <string name="guest_notification_text" msgid="335747957734796689">"ਐਪਸ ਅਤੇ ਡੈਟਾ ਮਿਟਾਉਣ ਲਈ, ਮਹਿਮਾਨ ਉਪਭੋਗਤਾ ਹਟਾਓ"</string>
     <string name="guest_notification_remove_action" msgid="8820670703892101990">"ਮਹਿਮਾਨ ਨੂੰ ਹਟਾਓ"</string>
     <string name="user_logout_notification_title" msgid="1453960926437240727">"ਉਪਭੋਗਤਾ ਨੂੰ ਲੌਗ ਆਉਟ ਕਰੋ"</string>
     <string name="user_logout_notification_text" msgid="3350262809611876284">"ਵਰਤਮਾਨ ਉਪਭੋਗਤਾ ਨੂੰ ਲੌਗਆਉਟ ਕਰੋ"</string>
@@ -381,35 +381,35 @@
     <string name="user_add_user_title" msgid="4553596395824132638">"ਕੀ ਨਵਾਂ ਉਪਭੋਗਤਾ ਜੋੜਨਾ ਹੈ?"</string>
     <string name="user_add_user_message_short" msgid="2161624834066214559">"ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਨਵਾਂ ਉਪਭੋਗਤਾ ਜੋੜਦੇ ਹੋ, ਉਸ ਵਿਅਕਤੀ ਨੂੰ ਆਪਣਾ ਸਪੇਸ ਸੈਟ ਅਪ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।\n\nਕੋਈ ਵੀ ਉਪਭੋਗਤਾ ਹੋਰ ਸਾਰੇ ਉਪਭੋਗਤਾਵਾਂ ਦੇ ਐਪਸ ਨੂੰ ਅਪਡੇਟ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="user_remove_user_title" msgid="4681256956076895559">"ਕੀ ਉਪਭੋਗਤਾ ਹਟਾਉਣਾ ਹੈ?"</string>
-    <string name="user_remove_user_message" msgid="1453218013959498039">"ਇਸ ਉਪਭੋਗਤਾ ਦੇ ਸਾਰੇ ਐਪਸ ਅਤੇ ਡਾਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਏਗਾ।"</string>
+    <string name="user_remove_user_message" msgid="1453218013959498039">"ਇਸ ਉਪਭੋਗਤਾ ਦੇ ਸਾਰੇ ਐਪਸ ਅਤੇ ਡੈਟਾ ਮਿਟਾ ਦਿੱਤਾ ਜਾਏਗਾ।"</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"ਹਟਾਓ"</string>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ਬੈਟਰੀ ਸੇਵਰ ਚਾਲੂ ਹੈ"</string>
-    <string name="battery_saver_notification_text" msgid="820318788126672692">"ਪ੍ਰਦਰਸ਼ਨ ਅਤੇ ਪਿਛੋਕੜ ਡਾਟਾ ਘੱਟ ਕਰਦਾ ਹੈ"</string>
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ਪ੍ਰਦਰਸ਼ਨ ਅਤੇ ਪਿਛੋਕੜ ਡੈਟਾ ਘੱਟ ਕਰਦਾ ਹੈ"</string>
     <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ਬੈਟਰੀ ਸੇਵਰ ਬੰਦ ਕਰੋ"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ਉਹ ਸਭ ਕੁਝ ਕੈਪਚਰ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰ ਦੇਵੇਗਾ, ਜੋ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਤੇ ਡਿਸਪਲੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।"</string>
     <string name="media_projection_remember_text" msgid="3103510882172746752">"ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ"</string>
     <string name="clear_all_notifications_text" msgid="814192889771462828">"ਸਾਰੇ ਹਟਾਓ"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"ਹੁਣ ਚਾਲੂ ਕਰੋ"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"ਕੋਈ ਸੂਚਨਾਵਾਂ ਨਹੀਂ"</string>
-    <string name="device_owned_footer" msgid="3802752663326030053">"ਡਿਵਾਈਸ ਦਾ ਨਿਰੀਖਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"</string>
+    <string name="device_owned_footer" msgid="3802752663326030053">"ਡੀਵਾਈਸ ਦਾ ਨਿਰੀਖਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"</string>
     <string name="profile_owned_footer" msgid="8021888108553696069">"ਪ੍ਰੋਫਾਈਲ ਦਾ ਨਿਰੀਖਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"</string>
-    <string name="vpn_footer" msgid="2388611096129106812">"ਨੈਟਵਰਕ ਦਾ ਨਿਰੀਖਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"</string>
-    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ਡਿਵਾਈਸ ਦਾ ਨਿਰੀਖਣ ਕਰਨਾ"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ਨੈੱਟਵਰਕ ਦਾ ਨਿਰੀਖਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ਡੀਵਾਈਸ ਦਾ ਨਿਰੀਖਣ ਕਰਨਾ"</string>
     <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"ਪ੍ਰੋਫਾਈਲ ਦਾ ਨਿਰੀਖਣ ਕਰਨਾ"</string>
-    <string name="monitoring_title" msgid="169206259253048106">"ਨੈਟਵਰਕ ਨਿਰੀਖਣ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ਨੈੱਟਵਰਕ ਨਿਰੀਖਣ ਕਰ ਰਿਹਾ ਹੈ"</string>
     <string name="disable_vpn" msgid="4435534311510272506">"VPN ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ਤੁਹਾਡੀ ਡਿਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਵੱਲੋਂ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡਾਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <string name="monitoring_description_vpn" msgid="4445150119515393526">"ਤੁਸੀਂ ਇੱਕ ਐਪ ਨੂੰ ਇੱਕ VPN ਕਨੈਕਸ਼ਨ ਸੈਟ ਅਪ ਕਰਨ ਦੀ ਅਨੁਮਤੀ ਦਿੱਤੀ ਹੈ।\n\nਇਹ ਐਪ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਅਤੇ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ, ਈਮੇਲਾਂ, ਐਪਸ ਅਤੇ ਸੁਰੱਖਿਅਤ ਵੈਬਸਾਈਟਾਂ ਸਮੇਤ।"</string>
-    <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ਤੁਹਾਡੀ ਡਿਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g>ਵੱਲੋਂ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡਾਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ।\n\nਤੁਸੀਂ ਇੱਕ VPN ਨਾਲ ਵੀ ਕਨੈਕਟ ਕੀਤਾ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ, ਈਮੇਲਾਂ, ਐਪਸ ਅਤੇ ਵੈਬਸਾਈਟਾਂ ਸਮੇਤ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਵੱਲੋਂ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡੈਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <string name="monitoring_description_vpn" msgid="4445150119515393526">"ਤੁਸੀਂ ਇੱਕ ਐਪ ਨੂੰ ਇੱਕ VPN ਕਨੈਕਸ਼ਨ ਸੈਟ ਅਪ ਕਰਨ ਦੀ ਅਨੁਮਤੀ ਦਿੱਤੀ ਹੈ।\n\nਇਹ ਐਪ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਅਤੇ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ, ਈਮੇਲਾਂ, ਐਪਸ ਅਤੇ ਸੁਰੱਖਿਅਤ ਵੈਬਸਾਈਟਾਂ ਸਮੇਤ।"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g>ਵੱਲੋਂ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡੈਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ।\n\nਤੁਸੀਂ ਇੱਕ VPN ਨਾਲ ਵੀ ਕਨੈਕਟ ਕੀਤਾ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ, ਈਮੇਲਾਂ, ਐਪਸ ਅਤੇ ਵੈਬਸਾਈਟਾਂ ਸਮੇਤ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫ਼ਾਈਲ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਈਮੇਲ, ਐਪਸ, ਅਤੇ ਵੈੱਬਪੰਨੇ ਸੰਤੇ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਦੇ ਸਮਰੱਥ ਹੈ।\n\nਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।\n\nਤੁਸੀਂ VPN ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋ, ਜੋ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string>
-    <string name="monitoring_description_app" msgid="6259179342284742878">"ਤੁਸੀਂ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।"</string>
-    <string name="monitoring_description_app_personal" msgid="484599052118316268">"ਤੁਸੀਂ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।"</string>
-    <string name="monitoring_description_app_work" msgid="1754325860918060897">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫ਼ਾਈਲ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ <xliff:g id="APPLICATION">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫ਼ਾਈਲ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।\n\nਤੁਸੀਂ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ।"</string>
-    <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ਤੁਹਾਡੀ ਡਿਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡਾਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ।\n\nਤੁਸੀਂ ਇੱਕ <xliff:g id="APPLICATION">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈੱਬਪੰਨੇ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
-    <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ਡਿਵਾਈਸ ਲੌਕ ਰਹੇਗੀ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਮੈਨੂਅਲੀ ਅਨਲੌਕ ਨਹੀਂ ਕਰਦੇ"</string>
+    <string name="monitoring_description_app" msgid="6259179342284742878">"ਤੁਸੀਂ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+    <string name="monitoring_description_app_personal" msgid="484599052118316268">"ਤੁਸੀਂ <xliff:g id="APPLICATION">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+    <string name="monitoring_description_app_work" msgid="1754325860918060897">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫ਼ਾਈਲ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ <xliff:g id="APPLICATION">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ਤੁਹਾਡੀ ਕਾਰਜ ਪ੍ਰੋਫ਼ਾਈਲ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈਬਸਫ਼ਿਆਂ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦੀ ਹੈ।\n\nਤੁਸੀਂ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ਨਾਲ ਵੀ ਕਨੈਕਟ ਹੋ, ਜੋ ਤੁਹਾਡੀ ਨਿੱਜੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦਾ ਨਿਰੀਖਣ ਕਰ ਸਕਦਾ ਹੈ।"</string>
+    <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ਤੁਹਾਡੀ ਡੀਵਾਈਸ <xliff:g id="ORGANIZATION">%1$s</xliff:g> ਦੁਆਰਾ ਵਿਵਸਥਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।\n\nਪ੍ਰਬੰਧਕ ਸੈਟਿੰਗਾਂ, ਕਾਰਪੋਰੇਟ ਪਹੁੰਚ, ਐਪਸ, ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਡੈਟਾ ਅਤੇ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਦੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਜਾਣਕਾਰੀ ਦਾ ਨਿਰੀਖਣ ਅਤੇ ਉਸਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹੈ।\n\nਤੁਸੀਂ ਇੱਕ <xliff:g id="APPLICATION">%2$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋ, ਜੋ ਈਮੇਲ, ਐਪਸ ਅਤੇ ਵੈੱਬਪੰਨੇ ਸਮੇਤ ਤੁਹਾਡੀ ਨੈੱਟਵਰਕ ਗਤੀਵਿਧੀ ਦੀ ਨਿਗਰਾਨੀ ਕਰ ਸਕਦਾ ਹੈ।\n\nਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ਡੀਵਾਈਸ ਲੌਕ ਰਹੇਗੀ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਮੈਨੂਅਲੀ ਅਨਲੌਕ ਨਹੀਂ ਕਰਦੇ"</string>
     <string name="hidden_notifications_title" msgid="7139628534207443290">"ਤੇਜ਼ੀ ਨਾਲ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="hidden_notifications_text" msgid="2326409389088668981">"ਅਨਲੌਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਦੇਖੋ"</string>
     <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ਨਹੀਂ ਧੰਨਵਾਦ"</string>
@@ -465,7 +465,7 @@
     <string name="tuner_toast" msgid="603429811084428439">"ਵਧਾਈਆਂ! ਸਿਸਟਮ UI ਟਿਊਨਰ ਨੂੰ ਸੈਟਿੰਗਜ਼ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ"</string>
     <string name="remove_from_settings" msgid="8389591916603406378">"ਸੈਟਿੰਗਜ਼ ਤੋਂ ਹਟਾਓ"</string>
     <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ਕੀ ਸੈਟਿੰਗਜ਼ ਤੋਂ ਸਿਸਟਮ UI ਟਿਊਨਰ ਨੂੰ ਹਟਾਉਣਾ ਹੈ ਅਤੇ ਇਸਦੀਆਂ ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਉਪਯੋਗ ਕਰਨ ਤੋਂ ਰੋਕਣਾ ਹੈ?"</string>
-    <string name="activity_not_found" msgid="348423244327799974">"ਐਪਲੀਕੇਸ਼ਨ ਤੁਹਾਡੀ ਡਿਵਾਈਸ ਤੇ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ"</string>
+    <string name="activity_not_found" msgid="348423244327799974">"ਐਪਲੀਕੇਸ਼ਨ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੇ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ"</string>
     <string name="clock_seconds" msgid="7689554147579179507">"ਘੜੀ ਸਕਿੰਟ ਦਿਖਾਓ"</string>
     <string name="clock_seconds_desc" msgid="6282693067130470675">"ਸਥਿਤੀ ਬਾਰ ਵਿੱਚ ਘੜੀ ਸਕਿੰਟ ਦਿਖਾਓ। ਬੈਟਰੀ ਸਮਰੱਥਾ ਤੇ ਅਸਰ ਪੈ ਸਕਦਾ ਹੈ।"</string>
     <string name="qs_rearrange" msgid="8060918697551068765">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਨੂੰ ਦੁਬਾਰਾ ਕ੍ਰਮ ਦਿਓ"</string>
@@ -585,7 +585,7 @@
     <string name="select_button" msgid="1597989540662710653">"ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਬਟਨ ਚੁਣੋ"</string>
     <string name="add_button" msgid="4134946063432258161">"ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="save" msgid="2311877285724540644">"ਰੱਖਿਅਤ ਕਰੋ"</string>
-    <string name="reset" msgid="2448168080964209908">"ਰੀਸੈਟ ਕਰੋ"</string>
+    <string name="reset" msgid="2448168080964209908">"ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="no_home_title" msgid="1563808595146071549">"ਕੋਈ ਹੋਮ ਬਟਨ ਨਹੀਂ ਮਿਲਿਆ"</string>
     <string name="no_home_message" msgid="5408485011659260911">"ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਆਵਾਗੌਣ ਕਰਨ ਲਈ ਇੱਕ ਹੋਮ ਬਟਨ ਦੀ ਲੋੜ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਰੱਖਿਅਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਹੋਮ ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ।"</string>
     <string name="adjust_button_width" msgid="6138616087197632947">"ਬਟਨ ਚੁੜਾਈ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 33c12c2..65e2a92 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -174,7 +174,7 @@
     <!-- no translation found for accessibility_casting (6887382141726543668) -->
     <skip />
     <string name="accessibility_work_mode" msgid="2478631941714607225">"Pracovný režim"</string>
-    <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Zrušiť aplikáciu <xliff:g id="APP">%s</xliff:g>"</string>
+    <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Zavrieť aplikáciu <xliff:g id="APP">%s</xliff:g>"</string>
     <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Aplikácia <xliff:g id="APP">%s</xliff:g> bola zrušená."</string>
     <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Všetky nedávne aplikácie boli odmietnuté."</string>
     <string name="accessibility_recents_item_open_app_info" msgid="5107479759905883540">"Otvoriť informácie o aplikácii <xliff:g id="APP">%s</xliff:g>"</string>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index afd2334..66334d4 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -495,7 +495,7 @@
     <string name="high_importance" msgid="3441537905162782568">"Pomembnost: stopnja 4"</string>
     <string name="max_importance" msgid="4880179829869865275">"Pomembnost: stopnja 5"</string>
     <string name="notification_importance_user_unspecified" msgid="2868359605125272874">"Aplikacija določi pomembnost za posamezno obvestilo."</string>
-    <string name="notification_importance_blocked" msgid="4237497046867398057">"Nikoli ne pokaži obvestil za to aplikacijo."</string>
+    <string name="notification_importance_blocked" msgid="4237497046867398057">"Nikoli ne pokaži obvestil te aplikacije."</string>
     <string name="notification_importance_min" msgid="7844224511187027155">"Brez prekinitev, predog., zvoka ali vibrir. v celoz. načinu. Skrij na zakl. zasl. in v vrst. stanja."</string>
     <string name="notification_importance_low" msgid="7950291702044409847">"Brez prekinitev, hitrih predogledov, zvoka ali vibriranja v celozaslonskem načinu."</string>
     <string name="notification_importance_default" msgid="5924405820269074915">"Brez prekinitev ali hitrih predogledov v celozaslonskem načinu."</string>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index 1a4ea49..3fe37b9 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -43,7 +43,7 @@
     <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Washa"</string>
     <string name="battery_saver_start_action" msgid="5576697451677486320">"Washa kiokoa betri"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Mipangilio"</string>
-    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Mtandao-Hewa"</string>
+    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Skrini ijizungushe kiotomatiki"</string>
     <string name="status_bar_settings_mute_label" msgid="554682549917429396">"PUUZA"</string>
     <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"KIOTOMATIKI"</string>
@@ -378,7 +378,7 @@
     <string name="user_logout_notification_text" msgid="3350262809611876284">"Mwondoe mtumiaji wa sasa"</string>
     <string name="user_logout_notification_action" msgid="1195428991423425062">"ONDOA MTUMIAJI"</string>
     <string name="user_add_user_title" msgid="4553596395824132638">"Ungependa kuongeza mtumiaji?"</string>
-    <string name="user_add_user_message_short" msgid="2161624834066214559">"Unapomwongeza mtumiaji mpya, mtu huyo anahitaji kusanidi nafasi yake.\n\nMtumiaji yoyote anaweza kusasisha programu kwa ajili ya watumiaji wengine wote."</string>
+    <string name="user_add_user_message_short" msgid="2161624834066214559">"Mtumiaji mpya unayemwongeza anahitaji kuongeza akaunti yake.\n\nMtumiaji yoyote anaweza kusasisha programu kwa niaba ya watumiaji wengine wote."</string>
     <string name="user_remove_user_title" msgid="4681256956076895559">"Je, ungependa kuondoa mtumiaji?"</string>
     <string name="user_remove_user_message" msgid="1453218013959498039">"Programu na data yote ya mtumiaji huyu itafutwa."</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"Ondoa"</string>
@@ -491,7 +491,7 @@
     <string name="high_importance" msgid="3441537905162782568">"Umuhimu wa Arifa: Kiwango cha 4"</string>
     <string name="max_importance" msgid="4880179829869865275">"Umuhimu wa Arifa: Kiwango cha 5"</string>
     <string name="notification_importance_user_unspecified" msgid="2868359605125272874">"Programu hubaini umuhimu wa kila arifa."</string>
-    <string name="notification_importance_blocked" msgid="4237497046867398057">"Usionyeshe kamwe arifa kutoka programu hii."</string>
+    <string name="notification_importance_blocked" msgid="4237497046867398057">"Usionyeshe arifa zozote kutoka programu hii."</string>
     <string name="notification_importance_min" msgid="7844224511187027155">"Usiruhusu ukatizaji wa skrini nzima, arifa za kuchungulia, sauti au mtetemo. Usionyeshe katika skrini iliyofungwa na sehemu ya kuonyesha hali."</string>
     <string name="notification_importance_low" msgid="7950291702044409847">"Usiruhusu ukatizaji wa skrini nzima, arifa za kuchungulia, sauti au mtetemo."</string>
     <string name="notification_importance_default" msgid="5924405820269074915">"Usiruhusu arifa za kuchungulia au ukatizaji wa skrini nzima."</string>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index 184c5ac..d618073 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -44,7 +44,7 @@
     <string name="battery_saver_start_action" msgid="5576697451677486320">"I-on ang pagtitipid ng baterya"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Mga Setting"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
-    <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"I-auto-rotate ang screen"</string>
+    <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"I-auto rotate ang screen"</string>
     <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUTE"</string>
     <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string>
     <string name="status_bar_settings_notifications" msgid="397146176280905137">"Mga Notification"</string>
@@ -383,7 +383,7 @@
     <string name="user_remove_user_message" msgid="1453218013959498039">"Made-delete ang lahat ng app at data ng user na ito."</string>
     <string name="user_remove_user_remove" msgid="7479275741742178297">"Alisin"</string>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Naka-on ang tagatipid ng baterya"</string>
-    <string name="battery_saver_notification_text" msgid="820318788126672692">"Binabawasan ang pagganap at data sa background"</string>
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Binabawasan ang performance at data sa background"</string>
     <string name="battery_saver_notification_action_text" msgid="109158658238110382">"I-off ang pagtitipid ng baterya"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Sisimulan ng i-capture ng <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ang lahat ng ipinapakita sa iyong screen."</string>
     <string name="media_projection_remember_text" msgid="3103510882172746752">"Huwag ipakitang muli"</string>
@@ -518,7 +518,7 @@
     <string name="battery_panel_title" msgid="7944156115535366613">"Paggamit ng baterya"</string>
     <string name="battery_detail_charging_summary" msgid="1279095653533044008">"Hindi available ang Pangtipid sa Baterya kapag nagcha-charge"</string>
     <string name="battery_detail_switch_title" msgid="6285872470260795421">"Pangtipid sa Baterya"</string>
-    <string name="battery_detail_switch_summary" msgid="9049111149407626804">"Binabawasan ang pagganap at data sa background"</string>
+    <string name="battery_detail_switch_summary" msgid="9049111149407626804">"Binabawasan ang performance at data sa background"</string>
     <string name="keyboard_key_button_template" msgid="6230056639734377300">"Button na <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="keyboard_key_home" msgid="2243500072071305073">"Home"</string>
     <string name="keyboard_key_back" msgid="2337450286042721351">"Back"</string>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 3e200b2..7764073 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -570,7 +570,7 @@
     <string name="headset" msgid="4534219457597457353">"耳機"</string>
     <string name="accessibility_status_bar_headphones" msgid="9156307120060559989">"已與耳機連線"</string>
     <string name="accessibility_status_bar_headset" msgid="8666419213072449202">"已與耳機連線"</string>
-    <string name="data_saver" msgid="5037565123367048522">"Data Saver"</string>
+    <string name="data_saver" msgid="5037565123367048522">"數據節省模式"</string>
     <string name="accessibility_data_saver_on" msgid="8454111686783887148">"Data Saver 已開啟"</string>
     <string name="accessibility_data_saver_off" msgid="8841582529453005337">"Data Saver 已關閉"</string>
     <string name="switch_bar_on" msgid="1142437840752794229">"開啟"</string>
diff --git a/packages/SystemUI/src/com/android/systemui/AutoReinflateContainer.java b/packages/SystemUI/src/com/android/systemui/AutoReinflateContainer.java
index 0afab88..2aca788 100644
--- a/packages/SystemUI/src/com/android/systemui/AutoReinflateContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/AutoReinflateContainer.java
@@ -18,8 +18,8 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.TypedArray;
+import android.os.LocaleList;
 import android.util.AttributeSet;
-import android.util.LocaleList;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.FrameLayout;
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index 15bc279..64f83a9 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -371,11 +371,19 @@
         try {
             ActivityManager.StackInfo stackInfo = mIam.getStackInfo(
                     ActivityManager.StackId.HOME_STACK_ID);
+            ActivityManager.StackInfo fullscreenStackInfo = mIam.getStackInfo(
+                    ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID);
             ComponentName topActivity = stackInfo.topActivity;
-            if (isHomeStackVisible != null) {
-                isHomeStackVisible.value = stackInfo.visible;
+            boolean homeStackVisibleNotOccluded = stackInfo.visible;
+            if (fullscreenStackInfo != null) {
+                boolean isFullscreenStackOccludingHome = fullscreenStackInfo.visible &&
+                        fullscreenStackInfo.position > stackInfo.position;
+                homeStackVisibleNotOccluded &= !isFullscreenStackOccludingHome;
             }
-            return (stackInfo.visible && topActivity != null
+            if (isHomeStackVisible != null) {
+                isHomeStackVisible.value = homeStackVisibleNotOccluded;
+            }
+            return (homeStackVisibleNotOccluded && topActivity != null
                     && topActivity.getPackageName().equals(RecentsImpl.RECENTS_PACKAGE)
                     && (topActivity.getClassName().equals(RecentsImpl.RECENTS_ACTIVITY)
                         || topActivity.getClassName().equals(RecentsTvImpl.RECENTS_TV_ACTIVITY)));
diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java
index 5bb5091..4341ab9c 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvActivity.java
@@ -335,12 +335,6 @@
     }
 
     @Override
-    protected void onStart() {
-        super.onStart();
-        updatePipUI();
-    }
-
-    @Override
     public void onEnterAnimationComplete() {
         super.onEnterAnimationComplete();
         if(mLaunchedFromHome) {
@@ -391,6 +385,8 @@
         } else {
             mTaskStackHorizontalGridView.setSelectedPosition(0);
         }
+
+        updatePipUI();
     }
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
index f017803..e89c136 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java
@@ -169,10 +169,12 @@
                 if (mAdjustedForIme != adjustedForIme) {
                     mAdjustedForIme = adjustedForIme;
                     updateTouchable();
-                    if (animDuration > 0) {
-                        mView.setAdjustedForIme(adjustedForIme, animDuration);
-                    } else {
-                        mView.setAdjustedForIme(adjustedForIme);
+                    if (!mMinimized) {
+                        if (animDuration > 0) {
+                            mView.setAdjustedForIme(adjustedForIme, animDuration);
+                        } else {
+                            mView.setAdjustedForIme(adjustedForIme);
+                        }
                     }
                 }
             });
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
index a220f2ed7..64eaeec 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
@@ -16,8 +16,8 @@
 
 package com.android.systemui.stackdivider;
 
-import static android.view.PointerIcon.STYLE_HORIZONTAL_DOUBLE_ARROW;
-import static android.view.PointerIcon.STYLE_VERTICAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
@@ -266,7 +266,7 @@
         boolean landscape = getResources().getConfiguration().orientation
                 == Configuration.ORIENTATION_LANDSCAPE;
         mHandle.setPointerIcon(PointerIcon.getSystemIcon(getContext(),
-                landscape ? STYLE_HORIZONTAL_DOUBLE_ARROW : STYLE_VERTICAL_DOUBLE_ARROW));
+                landscape ? TYPE_HORIZONTAL_DOUBLE_ARROW : TYPE_VERTICAL_DOUBLE_ARROW));
         getViewTreeObserver().addOnComputeInternalInsetsListener(this);
         mHandle.setAccessibilityDelegate(mHandleDelegate);
         mGestureDetector = new GestureDetector(mContext, new SimpleOnGestureListener() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 593e170..e66dc74 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -956,32 +956,39 @@
 
     protected View bindVetoButtonClickListener(View row, final StatusBarNotification n) {
         View vetoButton = row.findViewById(R.id.veto);
-        final String _pkg = n.getPackageName();
-        final String _tag = n.getTag();
-        final int _id = n.getId();
-        final int _userId = n.getUserId();
         vetoButton.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Accessibility feedback
                 v.announceForAccessibility(
                         mContext.getString(R.string.accessibility_notification_dismissed));
-                try {
-                    mBarService.onNotificationClear(_pkg, _tag, _id, _userId);
-                    if (FORCE_REMOTE_INPUT_HISTORY
-                            && mKeysKeptForRemoteInput.contains(n.getKey())) {
-                        removeNotification(n.getKey(), null);
-                        mKeysKeptForRemoteInput.remove(n.getKey());
-                    }
-
-                } catch (RemoteException ex) {
-                    // system process is dead if we're here.
-                }
+                performRemoveNotification(n, false /* removeView */);
             }
         });
         vetoButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
         return vetoButton;
     }
 
+    private void performRemoveNotification(StatusBarNotification n, boolean removeView) {
+        final String pkg = n.getPackageName();
+        final String tag = n.getTag();
+        final int id = n.getId();
+        final int userId = n.getUserId();
+        try {
+            mBarService.onNotificationClear(pkg, tag, id, userId);
+            if (FORCE_REMOTE_INPUT_HISTORY
+                    && mKeysKeptForRemoteInput.contains(n.getKey())) {
+                mKeysKeptForRemoteInput.remove(n.getKey());
+                removeView = true;
+            }
+            if (removeView) {
+                removeNotification(n.getKey(), null);
+            }
+
+        } catch (RemoteException ex) {
+            // system process is dead if we're here.
+        }
+    }
+
 
     protected void applyColorsAndBackgrounds(StatusBarNotification sbn,
             NotificationData.Entry entry) {
@@ -1826,6 +1833,13 @@
         }, afterKeyguardGone);
     }
 
+    public void addPostCollapseAction(Runnable r) {
+    }
+
+    public boolean isCollapsing() {
+        return false;
+    }
+
     private final class NotificationClicker implements View.OnClickListener {
         public void onClick(final View v) {
             if (!(v instanceof ExpandableNotificationRow)) {
@@ -1875,6 +1889,15 @@
                         HeadsUpManager.setIsClickedNotification(row, true);
                         mHeadsUpManager.releaseImmediately(notificationKey);
                     }
+                    StatusBarNotification parentToCancel = null;
+                    if (shouldAutoCancel(sbn) && mGroupManager.isOnlyChildInGroup(sbn)) {
+                        StatusBarNotification summarySbn = mGroupManager.getLogicalGroupSummary(sbn)
+                                        .getStatusBarNotification();
+                        if (shouldAutoCancel(summarySbn)) {
+                            parentToCancel = summarySbn;
+                        }
+                    }
+                    final StatusBarNotification parentToCancelFinal = parentToCancel;
                     new Thread() {
                         @Override
                         public void run() {
@@ -1930,6 +1953,28 @@
                             } catch (RemoteException ex) {
                                 // system process is dead if we're here.
                             }
+                            if (parentToCancelFinal != null) {
+                                // We have to post it to the UI thread for synchronization
+                                mHandler.post(new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        Runnable removeRunnable = new Runnable() {
+                                            @Override
+                                            public void run() {
+                                                performRemoveNotification(parentToCancelFinal,
+                                                        true);
+                                            }
+                                        };
+                                        if (isCollapsing()) {
+                                            // To avoid lags we're only performing the remove
+                                            // after the shade was collapsed
+                                            addPostCollapseAction(removeRunnable);
+                                        } else {
+                                            removeRunnable.run();
+                                        }
+                                    }
+                                });
+                            }
                         }
                     }.start();
 
@@ -1943,6 +1988,17 @@
             }, afterKeyguardGone);
         }
 
+        private boolean shouldAutoCancel(StatusBarNotification sbn) {
+            int flags = sbn.getNotification().flags;
+            if ((flags & Notification.FLAG_AUTO_CANCEL) != Notification.FLAG_AUTO_CANCEL) {
+                return false;
+            }
+            if ((flags & Notification.FLAG_FOREGROUND_SERVICE) != 0) {
+                return false;
+            }
+            return true;
+        }
+
         public void register(ExpandableNotificationRow row, StatusBarNotification sbn) {
             Notification notification = sbn.getNotification();
             if (notification.contentIntent != null || notification.fullScreenIntent != null) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
index a5d65d2..280663b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
@@ -38,7 +38,6 @@
     protected int mClipTopAmount;
     private boolean mDark;
     private ArrayList<View> mMatchParentViews = new ArrayList<View>();
-    private int mClipTopOptimization;
     private static Rect mClipRect = new Rect();
     private boolean mWillBeGone;
     private int mMinClipTopAmount = 0;
@@ -218,6 +217,7 @@
      */
     public void setClipTopAmount(int clipTopAmount) {
         mClipTopAmount = clipTopAmount;
+        updateClipping();
     }
 
     public int getClipTopAmount() {
@@ -306,7 +306,7 @@
     public void getBoundsOnScreen(Rect outRect, boolean clipToParent) {
         super.getBoundsOnScreen(outRect, clipToParent);
         outRect.bottom = outRect.top + getActualHeight();
-        outRect.top += getClipTopOptimization();
+        outRect.top += getClipTopAmount();
     }
 
     public boolean isSummaryWithChildren() {
@@ -319,7 +319,7 @@
 
     private void updateClipping() {
         if (mClipToActualHeight) {
-            int top = mClipTopOptimization;
+            int top = getClipTopAmount();
             if (top >= getActualHeight()) {
                 top = getActualHeight() - 1;
             }
@@ -335,21 +335,6 @@
         updateClipping();
     }
 
-    public int getClipTopOptimization() {
-        return mClipTopOptimization;
-    }
-
-    /**
-     * Set that the view will be clipped by a given amount from the top. Contrary to
-     * {@link #setClipTopAmount} this amount doesn't effect shadows and the background.
-     *
-     * @param clipTopOptimization the amount to clip from the top
-     */
-    public void setClipTopOptimization(int clipTopOptimization) {
-        mClipTopOptimization = clipTopOptimization;
-        updateClipping();
-    }
-
     public boolean willBeGone() {
         return mWillBeGone;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
index ce0163e..bc33b30 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java
@@ -328,7 +328,7 @@
         Notification.Builder builder = Notification.Builder.recoverBuilder(c, n);
         String appName = builder.loadHeaderAppName();
 
-        CharSequence title = n.extras.getString(Notification.EXTRA_TITLE);
+        CharSequence title = n.extras.getCharSequence(Notification.EXTRA_TITLE);
         CharSequence ticker = n.tickerText;
 
         CharSequence desc = !TextUtils.isEmpty(ticker) ? ticker
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
index 270b6ed..182075f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java
@@ -215,7 +215,11 @@
 
     public boolean isOnlyChildInSuppressedGroup(StatusBarNotification sbn) {
         return isGroupSuppressed(sbn.getGroupKey())
-                && !sbn.getNotification().isGroupSummary()
+                && isOnlyChildInGroup(sbn);
+    }
+
+    public boolean isOnlyChildInGroup(StatusBarNotification sbn) {
+        return !sbn.getNotification().isGroupSummary()
                 && getTotalNumberOfChildren(sbn) == 1;
     }
 
@@ -426,7 +430,6 @@
 
     private boolean isGroupNotFullyVisible(NotificationGroup notificationGroup) {
         return notificationGroup.summary == null
-                || notificationGroup.summary.row.getClipTopOptimization() > 0
                 || notificationGroup.summary.row.getClipTopAmount() > 0
                 || notificationGroup.summary.row.getTranslationY() < 0;
     }
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 4bb9797..e3ce1e2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -1178,6 +1178,7 @@
         mKeyguardIndicationController.setStatusBarKeyguardViewManager(
                 mStatusBarKeyguardViewManager);
         mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
+        mIconPolicy.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
         mRemoteInputController.addCallback(mStatusBarKeyguardViewManager);
 
         if (FORCE_REMOTE_INPUT_HISTORY) {
@@ -3828,10 +3829,12 @@
         updateMediaMetaData(true /* metaDataChanged */, true);
     }
 
+    @Override
     public boolean isCollapsing() {
         return mNotificationPanel.isCollapsing();
     }
 
+    @Override
     public void addPostCollapseAction(Runnable r) {
         mPostCollapseRunnables.add(r);
     }
@@ -4065,12 +4068,10 @@
         }
         if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) {
             mScrimController.setKeyguardShowing(true);
-            mIconPolicy.setKeyguardShowing(true);
         } else {
             mScrimController.setKeyguardShowing(false);
-            mIconPolicy.setKeyguardShowing(false);
         }
-
+        mIconPolicy.notifyKeyguardShowingChanged();
         mNotificationPanel.setBarState(mState, mKeyguardFadingAway, goingToFullShade);
         updateDozingState();
         updatePublicMode();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
index 823af36..d9dd9e2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
@@ -80,6 +80,7 @@
     private final StatusBarIconController mIconController;
     private final RotationLockController mRotationLockController;
     private final DataSaverController mDataSaver;
+    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
 
     // Assume it's all good unless we hear otherwise.  We don't always seem
     // to get broadcasts that it *is* there.
@@ -95,7 +96,6 @@
     private boolean mManagedProfileIconVisible = false;
     private boolean mManagedProfileInQuietMode = false;
 
-    private boolean mKeyguardVisible = true;
     private BluetoothController mBluetooth;
 
     public PhoneStatusBarPolicy(Context context, StatusBarIconController iconController,
@@ -192,6 +192,11 @@
         mDataSaver.addListener(this);
     }
 
+    public void setStatusBarKeyguardViewManager(
+            StatusBarKeyguardViewManager statusBarKeyguardViewManager) {
+        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
+    }
+
     public void setZenMode(int zen) {
         mZen = zen;
         updateVolumeZen();
@@ -385,10 +390,9 @@
 
     private void updateManagedProfile() {
         if (DEBUG) Log.v(TAG, "updateManagedProfile: mManagedProfileFocused: "
-                + mManagedProfileFocused
-                + " mKeyguardVisible: " + mKeyguardVisible);
+                + mManagedProfileFocused);
         final boolean showIcon;
-        if (mManagedProfileFocused && !mKeyguardVisible) {
+        if (mManagedProfileFocused && !mStatusBarKeyguardViewManager.isShowing()) {
             showIcon = true;
             mIconController.setIcon(mSlotManagedProfile,
                     R.drawable.stat_sys_managed_profile_status,
@@ -411,20 +415,35 @@
             new SynchronousUserSwitchObserver() {
                 @Override
                 public void onUserSwitching(int newUserId) throws RemoteException {
-                    mUserInfoController.reloadUserInfo();
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            mUserInfoController.reloadUserInfo();
+                        }
+                    });
                 }
 
                 @Override
                 public void onUserSwitchComplete(int newUserId) throws RemoteException {
-                    updateAlarm();
-                    profileChanged(newUserId);
-                    updateQuietState();
-                    updateManagedProfile();
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            updateAlarm();
+                            profileChanged(newUserId);
+                            updateQuietState();
+                            updateManagedProfile();
+                        }
+                    });
                 }
 
                 @Override
                 public void onForegroundProfileSwitch(int newProfileId) {
-                    profileChanged(newProfileId);
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            profileChanged(newProfileId);
+                        }
+                    });
                 }
             };
 
@@ -446,8 +465,7 @@
         updateManagedProfile();
     }
 
-    public void setKeyguardShowing(boolean visible) {
-        mKeyguardVisible = visible;
+    public void notifyKeyguardShowingChanged() {
         updateManagedProfile();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java
index dafaf61..e919d5c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java
@@ -393,7 +393,6 @@
             childState.hideSensitive = parentState.hideSensitive;
             childState.belowSpeedBump = parentState.belowSpeedBump;
             childState.clipTopAmount = 0;
-            childState.topOverLap = 0;
             childState.alpha = 0;
             if (i < firstOverflowIndex) {
                 childState.alpha = 1;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index 1edaa0f..70d4aec 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -1757,6 +1757,9 @@
     }
 
     private void startBackgroundAnimation() {
+        // left and right are always instantly applied
+        mCurrentBounds.left = mBackgroundBounds.left;
+        mCurrentBounds.right = mBackgroundBounds.right;
         startBottomAnimation();
         startTopAnimation();
     }
@@ -2211,7 +2214,7 @@
         updateAnimationState(false, child);
 
         // Make sure the clipRect we might have set is removed
-        expandableView.setClipTopOptimization(0);
+        expandableView.setClipTopAmount(0);
     }
 
     private boolean isChildInGroup(View child) {
@@ -3395,9 +3398,6 @@
     public void setDismissAllInProgress(boolean dismissAllInProgress) {
         mDismissAllInProgress = dismissAllInProgress;
         mAmbientState.setDismissAllInProgress(dismissAllInProgress);
-        if (dismissAllInProgress) {
-            disableClipOptimization();
-        }
         handleDismissAllClipping();
     }
 
@@ -3418,17 +3418,6 @@
         }
     }
 
-    private void disableClipOptimization() {
-        final int count = getChildCount();
-        for (int i = 0; i < count; i++) {
-            ExpandableView child = (ExpandableView) getChildAt(i);
-            if (child.getVisibility() == GONE) {
-                continue;
-            }
-            child.setClipTopOptimization(0);
-        }
-    }
-
     public boolean isDismissViewNotGone() {
         return mDismissView.getVisibility() != View.GONE && !mDismissView.willBeGone();
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
index c7333c2..5d26988 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -138,11 +138,9 @@
 
     private void updateClipping(StackScrollState resultState,
             StackScrollAlgorithmState algorithmState, AmbientState ambientState) {
-        boolean dismissAllInProgress = ambientState.isDismissAllInProgress();
         float drawStart = ambientState.getTopPadding() + ambientState.getStackTranslation();
         float previousNotificationEnd = 0;
         float previousNotificationStart = 0;
-        boolean previousNotificationIsSwiped = false;
         int childCount = algorithmState.visibleChildren.size();
         for (int i = 0; i < childCount; i++) {
             ExpandableView child = algorithmState.visibleChildren.get(i);
@@ -153,36 +151,21 @@
             }
             float newYTranslation = state.yTranslation;
             float newHeight = state.height;
-            // apply clipping and shadow
             float newNotificationEnd = newYTranslation + newHeight;
 
-            float clipHeight;
-            if (previousNotificationIsSwiped) {
-                // When the previous notification is swiped, we don't clip the content to the
-                // bottom of it.
-                clipHeight = newHeight;
+            if (newYTranslation < previousNotificationEnd) {
+                // The previous view is overlapping on top, clip!
+                float overlapAmount = previousNotificationEnd - newYTranslation;
+                state.clipTopAmount = (int) overlapAmount;
             } else {
-                clipHeight = newNotificationEnd - previousNotificationEnd;
-                clipHeight = Math.max(0.0f, clipHeight);
-            }
-
-            updateChildClippingAndBackground(state, newHeight, clipHeight,
-                    newHeight - (previousNotificationStart - newYTranslation));
-
-            if (dismissAllInProgress) {
-                state.clipTopAmount = Math.max(child.getMinClipTopAmount(), state.clipTopAmount);
+                state.clipTopAmount = 0;
             }
 
             if (!child.isTransparent()) {
                 // Only update the previous values if we are not transparent,
                 // otherwise we would clip to a transparent view.
-                if ((dismissAllInProgress && canChildBeDismissed(child))) {
-                    previousNotificationIsSwiped = true;
-                } else {
-                    previousNotificationIsSwiped = ambientState.getDraggedViews().contains(child);
-                    previousNotificationEnd = newNotificationEnd;
-                    previousNotificationStart =newYTranslation + state.clipTopAmount;
-                }
+                previousNotificationEnd = newNotificationEnd;
+                previousNotificationStart = newYTranslation;
             }
         }
     }
@@ -193,31 +176,6 @@
     }
 
     /**
-     * Updates the shadow outline and the clipping for a view.
-     *
-     * @param state the viewState to update
-     * @param realHeight the currently applied height of the view
-     * @param clipHeight the desired clip height, the rest of the view will be clipped from the top
-     * @param backgroundHeight the desired background height. The shadows of the view will be
-     *                         based on this height and the content will be clipped from the top
-     */
-    private void updateChildClippingAndBackground(StackViewState state, float realHeight,
-            float clipHeight, float backgroundHeight) {
-        if (realHeight > clipHeight) {
-            // Rather overlap than create a hole.
-            state.topOverLap = (int) Math.floor(realHeight - clipHeight);
-        } else {
-            state.topOverLap = 0;
-        }
-        if (realHeight > backgroundHeight) {
-            // Rather overlap than create a hole.
-            state.clipTopAmount = (int) Math.floor(realHeight - backgroundHeight);
-        } else {
-            state.clipTopAmount = 0;
-        }
-    }
-
-    /**
      * Updates the dimmed, activated and hiding sensitive states of the children.
      */
     private void updateDimmedActivatedHideSensitive(AmbientState ambientState,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java
index 1fedc1e..1ccc908 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollState.java
@@ -110,11 +110,11 @@
             }
             if (child instanceof DismissView) {
                 DismissView dismissView = (DismissView) child;
-                boolean visible = state.topOverLap < mClearAllTopPadding;
+                boolean visible = state.clipTopAmount < mClearAllTopPadding;
                 dismissView.performVisibilityAnimation(visible && !dismissView.willBeGone());
             } else if (child instanceof EmptyShadeView) {
                 EmptyShadeView emptyShadeView = (EmptyShadeView) child;
-                boolean visible = state.topOverLap <= 0;
+                boolean visible = state.clipTopAmount <= 0;
                 emptyShadeView.performVisibilityAnimation(
                         visible && !emptyShadeView.willBeGone());
             }
@@ -171,10 +171,6 @@
         if (oldClipTopAmount != state.clipTopAmount) {
             view.setClipTopAmount(state.clipTopAmount);
         }
-        float oldClipTopOptimization = view.getClipTopOptimization();
-        if (oldClipTopOptimization != state.topOverLap) {
-            view.setClipTopOptimization(state.topOverLap);
-        }
         if (view instanceof ExpandableNotificationRow) {
             ExpandableNotificationRow row = (ExpandableNotificationRow) view;
             row.applyChildrenState(this);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
index 0c08d13..6f451ff 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java
@@ -91,7 +91,6 @@
     private int mCurrentLastNotAddedIndex;
     private ValueAnimator mTopOverScrollAnimator;
     private ValueAnimator mBottomOverScrollAnimator;
-    private ExpandableNotificationRow mChildExpandingView;
     private int mHeadsUpAppearHeightBottom;
     private boolean mShadeExpanded;
     private ArrayList<View> mChildrenToClearFromOverlay = new ArrayList<>();
@@ -128,7 +127,6 @@
                 continue;
             }
 
-            child.setClipTopOptimization(0);
             startStackAnimations(child, viewState, finalState, i, -1 /* fixedDelay */);
         }
         if (!isRunning()) {
@@ -139,7 +137,6 @@
         mHeadsUpDisappearChildren.clear();
         mNewEvents.clear();
         mNewAddChildren.clear();
-        mChildExpandingView = null;
     }
 
     /**
@@ -871,7 +868,6 @@
                     .AnimationEvent.ANIMATION_TYPE_GROUP_EXPANSION_CHANGED) {
                 ExpandableNotificationRow row = (ExpandableNotificationRow) event.changingView;
                 row.prepareExpansionChanged(finalState);
-                mChildExpandingView = row;
             } else if (event.animationType == NotificationStackScrollLayout
                     .AnimationEvent.ANIMATION_TYPE_HEADS_UP_APPEAR) {
                 // This item is added, initialize it's properties.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackViewState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackViewState.java
index fa15195..1114e03 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackViewState.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackViewState.java
@@ -40,18 +40,12 @@
     public float shadowAlpha;
 
     /**
-     * The amount which the view should be clipped from the top. This is calculated to
-     * perceive consistent shadows.
+     * How much the child overlaps with the previous child on top. This is used to
+     * show the background properly when the child on top is translating away.
      */
     public int clipTopAmount;
 
     /**
-     * How much does the child overlap with the previous view on the top? Can be used for
-     * a clipping optimization
-     */
-    public int topOverLap;
-
-    /**
      * The index of the view, only accounting for views not equal to GONE
      */
     public int notGoneIndex;
@@ -75,7 +69,6 @@
             hideSensitive = svs.hideSensitive;
             belowSpeedBump = svs.belowSpeedBump;
             clipTopAmount = svs.clipTopAmount;
-            topOverLap = svs.topOverLap;
             notGoneIndex = svs.notGoneIndex;
             location = svs.location;
         }
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index d2d71bf..1ab8160 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -3528,6 +3528,7 @@
 
     private void routeSocketDataToOutput(ParcelFileDescriptor inPipe, OutputStream out)
             throws IOException {
+        // We do not take close() responsibility for the pipe FD
         FileInputStream raw = new FileInputStream(inPipe.getFileDescriptor());
         DataInputStream in = new DataInputStream(raw);
 
@@ -4445,7 +4446,8 @@
                         (new Thread(backupRunner, "package-backup-bridge")).start();
 
                         // Read data off the engine pipe and pass it to the transport
-                        // pipe until we hit EOD on the input stream.
+                        // pipe until we hit EOD on the input stream.  We do not take
+                        // close() responsibility for these FDs into these stream wrappers.
                         FileInputStream in = new FileInputStream(
                                 enginePipes[0].getFileDescriptor());
                         FileOutputStream out = new FileOutputStream(
@@ -8579,7 +8581,10 @@
             EngineThread(FullRestoreEngine engine, ParcelFileDescriptor engineSocket) {
                 mEngine = engine;
                 engine.setRunning(true);
-                mEngineStream = new FileInputStream(engineSocket.getFileDescriptor());
+                // We *do* want this FileInputStream to own the underlying fd, so that
+                // when we are finished with it, it closes this end of the pipe in a way
+                // that signals its other end.
+                mEngineStream = new FileInputStream(engineSocket.getFileDescriptor(), true);
             }
 
             public boolean isRunning() {
@@ -8598,6 +8603,8 @@
                         mEngine.restoreOneFile(mEngineStream, false);
                     }
                 } finally {
+                    // Because mEngineStream adopted its underlying FD, this also
+                    // closes this end of the pipe.
                     IoUtils.closeQuietly(mEngineStream);
                 }
             }
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 0a814ab..5e8687a 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -613,7 +613,20 @@
                                                 "Need BLUETOOTH ADMIN permission");
         if (DBG) {
             Slog.d(TAG,"enable():  mBluetooth =" + mBluetooth +
-                    " mBinding = " + mBinding);
+                    " mBinding = " + mBinding + " mState = " + mState);
+        }
+        // We do not honor ON requests when the adapter is already turned ON or in the process of
+        // turning ON.
+        // As a protective mechanism to make sure that the native stack gets cleaned up properly
+        // before turning it back ON we ignore requests while the bluetooth is turning OFF.
+        // Bug: b/28318203
+        if (mState == BluetoothAdapter.STATE_BLE_TURNING_OFF ||
+            mState == BluetoothAdapter.STATE_TURNING_OFF ||
+            mState == BluetoothAdapter.STATE_ON ||
+            mState == BluetoothAdapter.STATE_BLE_ON ||
+            mState == BluetoothAdapter.STATE_TURNING_ON ||
+            mState == BluetoothAdapter.STATE_BLE_TURNING_ON) {
+            return false;
         }
 
         synchronized(mReceiver) {
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index b5c2b89..c096fa5f 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -915,6 +915,13 @@
         final boolean networkMetered;
         final int uidRules;
 
+        synchronized (mVpns) {
+            final Vpn vpn = mVpns.get(UserHandle.getUserId(uid));
+            if (vpn != null && vpn.isBlockingUid(uid)) {
+                return true;
+            }
+        }
+
         final String iface = (lp == null ? "" : lp.getInterfaceName());
         synchronized (mRulesLock) {
             networkMetered = mMeteredIfaces.contains(iface);
@@ -3365,23 +3372,42 @@
     }
 
     /**
-     * Sets up or tears down the always-on VPN for user {@param user} as appropriate.
+     * Starts the always-on VPN {@link VpnService} for user {@param userId}, which should perform
+     * some setup and then call {@code establish()} to connect.
      *
-     * @return {@code false} in case of errors; {@code true} otherwise.
+     * @return {@code true} if the service was started, the service was already connected, or there
+     *         was no always-on VPN to start. {@code false} otherwise.
      */
-    private boolean updateAlwaysOnVpn(int user) {
-        final String lockdownPackage = getAlwaysOnVpnPackage(user);
-        if (lockdownPackage == null) {
-            return true;
+    private boolean startAlwaysOnVpn(int userId) {
+        final String alwaysOnPackage;
+        synchronized (mVpns) {
+            Vpn vpn = mVpns.get(userId);
+            if (vpn == null) {
+                // Shouldn't happen as all codepaths that point here should have checked the Vpn
+                // exists already.
+                Slog.wtf(TAG, "User " + userId + " has no Vpn configuration");
+                return false;
+            }
+            alwaysOnPackage = vpn.getAlwaysOnPackage();
+            // Skip if there is no service to start.
+            if (alwaysOnPackage == null) {
+                return true;
+            }
+            // Skip if the service is already established. This isn't bulletproof: it's not bound
+            // until after establish(), so if it's mid-setup onStartCommand will be sent twice,
+            // which may restart the connection.
+            if (vpn.getNetworkInfo().isConnected()) {
+                return true;
+            }
         }
 
-        // Create an intent to start the VPN service declared in the app's manifest.
+        // Start the VPN service declared in the app's manifest.
         Intent serviceIntent = new Intent(VpnConfig.SERVICE_INTERFACE);
-        serviceIntent.setPackage(lockdownPackage);
-
+        serviceIntent.setPackage(alwaysOnPackage);
         try {
-            return mContext.startServiceAsUser(serviceIntent, UserHandle.of(user)) != null;
+            return mContext.startServiceAsUser(serviceIntent, UserHandle.of(userId)) != null;
         } catch (RuntimeException e) {
+            Slog.w(TAG, "VpnService " + serviceIntent + " failed to start", e);
             return false;
         }
     }
@@ -3396,25 +3422,35 @@
             return false;
         }
 
-        // If the current VPN package is the same as the new one, this is a no-op
-        final String oldPackage = getAlwaysOnVpnPackage(userId);
-        if (TextUtils.equals(oldPackage, packageName)) {
-            return true;
-        }
-
         synchronized (mVpns) {
             Vpn vpn = mVpns.get(userId);
             if (vpn == null) {
                 Slog.w(TAG, "User " + userId + " has no Vpn configuration");
                 return false;
             }
-            if (!vpn.setAlwaysOnPackage(packageName)) {
+            // If the current VPN package is the same as the new one, this is a no-op
+            if (TextUtils.equals(packageName, vpn.getAlwaysOnPackage())) {
+                return true;
+            }
+            if (!vpn.setAlwaysOnPackage(packageName, lockdown)) {
                 return false;
             }
-            if (!updateAlwaysOnVpn(userId)) {
-                vpn.setAlwaysOnPackage(null);
+            if (!startAlwaysOnVpn(userId)) {
+                vpn.setAlwaysOnPackage(null, false);
                 return false;
             }
+
+            // Save the configuration
+            final long token = Binder.clearCallingIdentity();
+            try {
+                final ContentResolver cr = mContext.getContentResolver();
+                Settings.Secure.putStringForUser(cr, Settings.Secure.ALWAYS_ON_VPN_APP,
+                        packageName, userId);
+                Settings.Secure.putIntForUser(cr, Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN,
+                        (lockdown ? 1 : 0), userId);
+            } finally {
+                Binder.restoreCallingIdentity(token);
+            }
         }
         return true;
     }
@@ -3685,11 +3721,18 @@
             }
             userVpn = new Vpn(mHandler.getLooper(), mContext, mNetd, userId);
             mVpns.put(userId, userVpn);
+
+            final ContentResolver cr = mContext.getContentResolver();
+            String alwaysOnPackage = Settings.Secure.getStringForUser(cr,
+                    Settings.Secure.ALWAYS_ON_VPN_APP, userId);
+            final boolean alwaysOnLockdown = Settings.Secure.getIntForUser(cr,
+                    Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN, /* default */ 0, userId) != 0;
+            if (alwaysOnPackage != null) {
+                userVpn.setAlwaysOnPackage(alwaysOnPackage, alwaysOnLockdown);
+            }
         }
         if (mUserManager.getUserInfo(userId).isPrimary() && LockdownVpnTracker.isEnabled()) {
             updateLockdownVpn();
-        } else {
-            updateAlwaysOnVpn(userId);
         }
     }
 
@@ -3700,6 +3743,7 @@
                 loge("Stopped user has no VPN");
                 return;
             }
+            userVpn.onUserStopped();
             mVpns.delete(userId);
         }
     }
@@ -3729,7 +3773,7 @@
         if (mUserManager.getUserInfo(userId).isPrimary() && LockdownVpnTracker.isEnabled()) {
             updateLockdownVpn();
         } else {
-            updateAlwaysOnVpn(userId);
+            startAlwaysOnVpn(userId);
         }
     }
 
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
index b60f3e2..69960c7 100644
--- a/services/core/java/com/android/server/DeviceIdleController.java
+++ b/services/core/java/com/android/server/DeviceIdleController.java
@@ -325,9 +325,7 @@
         @Override public void onReceive(Context context, Intent intent) {
             switch (intent.getAction()) {
                 case ConnectivityManager.CONNECTIVITY_ACTION: {
-                    synchronized (DeviceIdleController.this) {
-                        updateConnectivityStateLocked(intent);
-                    }
+                    updateConnectivityState(intent);
                 } break;
                 case Intent.ACTION_BATTERY_CHANGED: {
                     synchronized (DeviceIdleController.this) {
@@ -1426,9 +1424,9 @@
                 mLocalPowerManager.setDeviceIdleWhitelist(mPowerSaveWhitelistAllAppIdArray);
                 mLocalAlarmManager.setDeviceIdleUserWhitelist(mPowerSaveWhitelistUserAppIdArray);
                 mDisplayManager.registerDisplayListener(mDisplayListener, null);
-                updateConnectivityStateLocked(null);
                 updateDisplayLocked();
             }
+            updateConnectivityState(null);
         }
     }
 
@@ -1707,9 +1705,17 @@
         }
     }
 
-    void updateConnectivityStateLocked(Intent connIntent) {
-        if (mConnectivityService != null) {
-            NetworkInfo ni = mConnectivityService.getActiveNetworkInfo();
+    void updateConnectivityState(Intent connIntent) {
+        ConnectivityService cm;
+        synchronized (this) {
+            cm = mConnectivityService;
+        }
+        if (cm == null) {
+            return;
+        }
+        // Note: can't call out to ConnectivityService with our lock held.
+        NetworkInfo ni = cm.getActiveNetworkInfo();
+        synchronized (this) {
             boolean conn;
             if (ni == null) {
                 conn = false;
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index b0a00e6..727bf5c 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -82,6 +82,7 @@
 import android.os.IBinder;
 import android.os.IInterface;
 import android.os.Message;
+import android.os.LocaleList;
 import android.os.Parcel;
 import android.os.Process;
 import android.os.RemoteException;
@@ -97,7 +98,6 @@
 import android.util.ArraySet;
 import android.util.AtomicFile;
 import android.util.EventLog;
-import android.util.LocaleList;
 import android.util.LruCache;
 import android.util.Pair;
 import android.util.PrintWriterPrinter;
diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java
index 5b6117d..cec3229 100644
--- a/services/core/java/com/android/server/LockSettingsService.java
+++ b/services/core/java/com/android/server/LockSettingsService.java
@@ -790,10 +790,11 @@
                 if (isSecure) {
                     tieManagedProfileLockIfNecessary(managedUserId, null);
                 } else {
+                    clearUserKeyProtection(managedUserId);
                     getGateKeeperService().clearSecureUserId(managedUserId);
                     mStorage.writePatternHash(null, managedUserId);
                     setKeystorePassword(null, managedUserId);
-                    clearUserKeyProtection(managedUserId);
+                    fixateNewestUserKeyAuth(managedUserId);
                     mStorage.removeChildProfileLock(managedUserId);
                     removeKeystoreProfileKey(managedUserId);
                 }
@@ -828,10 +829,11 @@
         byte[] currentHandle = getCurrentHandle(userId);
 
         if (pattern == null) {
+            clearUserKeyProtection(userId);
             getGateKeeperService().clearSecureUserId(userId);
             mStorage.writePatternHash(null, userId);
             setKeystorePassword(null, userId);
-            clearUserKeyProtection(userId);
+            fixateNewestUserKeyAuth(userId);
             onUserLockChanged(userId);
             return;
         }
@@ -861,8 +863,12 @@
 
         byte[] enrolledHandle = enrollCredential(currentHandle, savedCredential, pattern, userId);
         if (enrolledHandle != null) {
+            CredentialHash willStore
+                = new CredentialHash(enrolledHandle, CredentialHash.VERSION_GATEKEEPER);
+            setUserKeyProtection(userId, pattern,
+                doVerifyPattern(pattern, willStore, true, 0, userId));
             mStorage.writePatternHash(enrolledHandle, userId);
-            setUserKeyProtection(userId, pattern, verifyPattern(pattern, 0, userId));
+            fixateNewestUserKeyAuth(userId);
             onUserLockChanged(userId);
         } else {
             throw new RemoteException("Failed to enroll pattern");
@@ -885,10 +891,11 @@
             throws RemoteException {
         byte[] currentHandle = getCurrentHandle(userId);
         if (password == null) {
+            clearUserKeyProtection(userId);
             getGateKeeperService().clearSecureUserId(userId);
             mStorage.writePasswordHash(null, userId);
             setKeystorePassword(null, userId);
-            clearUserKeyProtection(userId);
+            fixateNewestUserKeyAuth(userId);
             onUserLockChanged(userId);
             return;
         }
@@ -916,8 +923,12 @@
 
         byte[] enrolledHandle = enrollCredential(currentHandle, savedCredential, password, userId);
         if (enrolledHandle != null) {
+            CredentialHash willStore
+                = new CredentialHash(enrolledHandle, CredentialHash.VERSION_GATEKEEPER);
+            setUserKeyProtection(userId, password,
+                doVerifyPassword(password, willStore, true, 0, userId));
             mStorage.writePasswordHash(enrolledHandle, userId);
-            setUserKeyProtection(userId, password, verifyPassword(password, 0, userId));
+            fixateNewestUserKeyAuth(userId);
             onUserLockChanged(userId);
         } else {
             throw new RemoteException("Failed to enroll password");
@@ -1022,11 +1033,11 @@
         if (token == null) {
             throw new RemoteException("Empty payload verifying a credential we just set");
         }
-        changeUserKey(userId, token, secretFromCredential(credential));
+        addUserKeyAuth(userId, token, secretFromCredential(credential));
     }
 
     private void clearUserKeyProtection(int userId) throws RemoteException {
-        changeUserKey(userId, null, null);
+        addUserKeyAuth(userId, null, null);
     }
 
     private static byte[] secretFromCredential(String credential) throws RemoteException {
@@ -1045,18 +1056,23 @@
         }
     }
 
-    private void changeUserKey(int userId, byte[] token, byte[] secret)
+    private void addUserKeyAuth(int userId, byte[] token, byte[] secret)
             throws RemoteException {
         final UserInfo userInfo = UserManager.get(mContext).getUserInfo(userId);
         final IMountService mountService = getMountService();
         final long callingId = Binder.clearCallingIdentity();
         try {
-            mountService.changeUserKey(userId, userInfo.serialNumber, token, null, secret);
+            mountService.addUserKeyAuth(userId, userInfo.serialNumber, token, secret);
         } finally {
             Binder.restoreCallingIdentity(callingId);
         }
     }
 
+    private void fixateNewestUserKeyAuth(int userId)
+            throws RemoteException {
+        getMountService().fixateNewestUserKeyAuth(userId);
+    }
+
     @Override
     public VerifyCredentialResponse checkPattern(String pattern, int userId) throws RemoteException {
         return doVerifyPattern(pattern, false, 0, userId);
@@ -1072,6 +1088,11 @@
             long challenge, int userId) throws RemoteException {
        checkPasswordReadPermission(userId);
        CredentialHash storedHash = mStorage.readPatternHash(userId);
+       return doVerifyPattern(pattern, storedHash, hasChallenge, challenge, userId);
+    }
+
+    private VerifyCredentialResponse doVerifyPattern(String pattern, CredentialHash storedHash,
+            boolean hasChallenge, long challenge, int userId) throws RemoteException {
        boolean shouldReEnrollBaseZero = storedHash != null && storedHash.isBaseZeroPattern;
 
        String patternToVerify;
@@ -1109,7 +1130,6 @@
        }
 
        return response;
-
     }
 
     @Override
@@ -1159,6 +1179,11 @@
             long challenge, int userId) throws RemoteException {
        checkPasswordReadPermission(userId);
        CredentialHash storedHash = mStorage.readPasswordHash(userId);
+       return doVerifyPassword(password, storedHash, hasChallenge, challenge, userId);
+    }
+
+    private VerifyCredentialResponse doVerifyPassword(String password, CredentialHash storedHash,
+            boolean hasChallenge, long challenge, int userId) throws RemoteException {
        return verifyCredential(userId, storedHash, password, hasChallenge, challenge,
                new CredentialUtil() {
                    @Override
diff --git a/services/core/java/com/android/server/LockSettingsStorage.java b/services/core/java/com/android/server/LockSettingsStorage.java
index 9ab63003..ab91a73 100644
--- a/services/core/java/com/android/server/LockSettingsStorage.java
+++ b/services/core/java/com/android/server/LockSettingsStorage.java
@@ -74,7 +74,7 @@
 
     private SparseArray<Integer> mStoredCredentialType;
 
-    class CredentialHash {
+    static class CredentialHash {
         static final int TYPE_NONE = -1;
         static final int TYPE_PATTERN = 1;
         static final int TYPE_PASSWORD = 2;
diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
index 25ce485..c89b6ea 100644
--- a/services/core/java/com/android/server/MountService.java
+++ b/services/core/java/com/android/server/MountService.java
@@ -2816,15 +2816,36 @@
         }
     }
 
+    /*
+     * Add this token/secret pair to the set of ways we can recover a disk encryption key.
+     * Changing the token/secret for a disk encryption key is done in two phases: first, adding
+     * a new token/secret pair with this call, then delting all other pairs with
+     * fixateNewestUserKeyAuth. This allows other places where a credential is used, such as
+     * Gatekeeper, to be updated between the two calls.
+     */
     @Override
-    public void changeUserKey(int userId, int serialNumber,
-            byte[] token, byte[] oldSecret, byte[] newSecret) {
+    public void addUserKeyAuth(int userId, int serialNumber, byte[] token, byte[] secret) {
         enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
         waitForReady();
 
         try {
-            mCryptConnector.execute("cryptfs", "change_user_key", userId, serialNumber,
-                encodeBytes(token), encodeBytes(oldSecret), encodeBytes(newSecret));
+            mCryptConnector.execute("cryptfs", "add_user_key_auth", userId, serialNumber,
+                encodeBytes(token), encodeBytes(secret));
+        } catch (NativeDaemonConnectorException e) {
+            throw e.rethrowAsParcelableException();
+        }
+    }
+
+    /*
+     * Delete all disk encryption token/secret pairs except the most recently added one
+     */
+    @Override
+    public void fixateNewestUserKeyAuth(int userId) {
+        enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
+        waitForReady();
+
+        try {
+            mCryptConnector.execute("cryptfs", "fixate_newest_user_key_auth", userId);
         } catch (NativeDaemonConnectorException e) {
             throw e.rethrowAsParcelableException();
         }
diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
index 22f01ab..f236877 100644
--- a/services/core/java/com/android/server/NetworkManagementService.java
+++ b/services/core/java/com/android/server/NetworkManagementService.java
@@ -556,7 +556,7 @@
             // chain.
             if (DBG) Slog.d(TAG, "Pushing " + size + " active firewall " + name + "UID rules");
             for (int i = 0; i < rules.size(); i++) {
-                setFirewallUidRuleInternal(chain, rules.keyAt(i), rules.valueAt(i));
+                setFirewallUidRuleLocked(chain, rules.keyAt(i), rules.valueAt(i));
             }
         }
     }
@@ -1850,6 +1850,22 @@
     }
 
     @Override
+    public void setAllowOnlyVpnForUids(boolean add, UidRange[] uidRanges)
+            throws ServiceSpecificException {
+        try {
+            mNetdService.networkRejectNonSecureVpn(add, uidRanges);
+        } catch (ServiceSpecificException e) {
+            Log.w(TAG, "setAllowOnlyVpnForUids(" + add + ", " + Arrays.toString(uidRanges) + ")"
+                    + ": netd command failed", e);
+            throw e;
+        } catch (RemoteException e) {
+            Log.w(TAG, "setAllowOnlyVpnForUids(" + add + ", " + Arrays.toString(uidRanges) + ")"
+                    + ": netd command failed", e);
+            throw e.rethrowAsRuntimeException();
+        }
+    }
+
+    @Override
     public void setUidCleartextNetworkPolicy(int uid, int policy) {
         if (Binder.getCallingUid() != uid) {
             mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
@@ -2240,7 +2256,7 @@
             for (int index = uids.length - 1; index >= 0; --index) {
                 int uid = uids[index];
                 int rule = rules[index];
-                setFirewallUidRule(chain, uid, rule);
+                updateFirewallUidRuleLocked(chain, uid, rule);
                 newRules.put(uid, rule);
             }
             // collect the rules to remove.
@@ -2254,7 +2270,25 @@
             // remove dead rules
             for (int index = rulesToRemove.size() - 1; index >= 0; --index) {
                 int uid = rulesToRemove.keyAt(index);
-                setFirewallUidRuleInternal(chain, uid, FIREWALL_RULE_DEFAULT);
+                updateFirewallUidRuleLocked(chain, uid, FIREWALL_RULE_DEFAULT);
+            }
+            try {
+                switch (chain) {
+                    case FIREWALL_CHAIN_DOZABLE:
+                        mNetdService.firewallReplaceUidChain("fw_dozable", true, uids);
+                        break;
+                    case FIREWALL_CHAIN_STANDBY:
+                        mNetdService.firewallReplaceUidChain("fw_standby", false, uids);
+                        break;
+                    case FIREWALL_CHAIN_POWERSAVE:
+                        mNetdService.firewallReplaceUidChain("fw_powersave", true, uids);
+                        break;
+                    case FIREWALL_CHAIN_NONE:
+                    default:
+                        Slog.d(TAG, "setFirewallUidRules() called on invalid chain: " + chain);
+                }
+            } catch (RemoteException e) {
+                Slog.w(TAG, "Error flushing firewall chain " + chain, e);
             }
         }
     }
@@ -2262,44 +2296,48 @@
     @Override
     public void setFirewallUidRule(int chain, int uid, int rule) {
         enforceSystemUid();
-        setFirewallUidRuleInternal(chain, uid, rule);
+        synchronized (mQuotaLock) {
+            setFirewallUidRuleLocked(chain, uid, rule);
+        }
     }
 
-    private void setFirewallUidRuleInternal(int chain, int uid, int rule) {
-        synchronized (mQuotaLock) {
-            SparseIntArray uidFirewallRules = getUidFirewallRules(chain);
-
-            final int oldUidFirewallRule = uidFirewallRules.get(uid, FIREWALL_RULE_DEFAULT);
-            if (DBG) {
-                Slog.d(TAG, "oldRule = " + oldUidFirewallRule
-                        + ", newRule=" + rule + " for uid=" + uid + " on chain " + chain);
-            }
-            if (oldUidFirewallRule == rule) {
-                if (DBG) Slog.d(TAG, "!!!!! Skipping change");
-                // TODO: eventually consider throwing
-                return;
-            }
-
+    private void setFirewallUidRuleLocked(int chain, int uid, int rule) {
+        if (updateFirewallUidRuleLocked(chain, uid, rule)) {
             try {
-                String ruleName = getFirewallRuleName(chain, rule);
-                String oldRuleName = getFirewallRuleName(chain, oldUidFirewallRule);
-
-                if (rule == NetworkPolicyManager.FIREWALL_RULE_DEFAULT) {
-                    uidFirewallRules.delete(uid);
-                } else {
-                    uidFirewallRules.put(uid, rule);
-                }
-
-                if (!ruleName.equals(oldRuleName)) {
-                    mConnector.execute("firewall", "set_uid_rule", getFirewallChainName(chain), uid,
-                            ruleName);
-                }
+                mConnector.execute("firewall", "set_uid_rule", getFirewallChainName(chain), uid,
+                        getFirewallRuleName(chain, rule));
             } catch (NativeDaemonConnectorException e) {
                 throw e.rethrowAsParcelableException();
             }
         }
     }
 
+    // TODO: now that netd supports batching, NMS should not keep these data structures anymore...
+    private boolean updateFirewallUidRuleLocked(int chain, int uid, int rule) {
+        SparseIntArray uidFirewallRules = getUidFirewallRules(chain);
+
+        final int oldUidFirewallRule = uidFirewallRules.get(uid, FIREWALL_RULE_DEFAULT);
+        if (DBG) {
+            Slog.d(TAG, "oldRule = " + oldUidFirewallRule
+                    + ", newRule=" + rule + " for uid=" + uid + " on chain " + chain);
+        }
+        if (oldUidFirewallRule == rule) {
+            if (DBG) Slog.d(TAG, "!!!!! Skipping change");
+            // TODO: eventually consider throwing
+            return false;
+        }
+
+        String ruleName = getFirewallRuleName(chain, rule);
+        String oldRuleName = getFirewallRuleName(chain, oldUidFirewallRule);
+
+        if (rule == NetworkPolicyManager.FIREWALL_RULE_DEFAULT) {
+            uidFirewallRules.delete(uid);
+        } else {
+            uidFirewallRules.put(uid, rule);
+        }
+        return !ruleName.equals(oldRuleName);
+    }
+
     private @NonNull String getFirewallRuleName(int chain, int rule) {
         String ruleName;
         if (getFirewallType(chain) == FIREWALL_TYPE_WHITELIST) {
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index a066462..dec5e41 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -170,6 +170,7 @@
 import android.os.IPermissionController;
 import android.os.IProcessInfoService;
 import android.os.IProgressListener;
+import android.os.LocaleList;
 import android.os.Looper;
 import android.os.Message;
 import android.os.Parcel;
@@ -205,7 +206,6 @@
 import android.util.AtomicFile;
 import android.util.DebugUtils;
 import android.util.EventLog;
-import android.util.LocaleList;
 import android.util.Log;
 import android.util.Pair;
 import android.util.PrintWriterPrinter;
@@ -240,6 +240,7 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
@@ -7057,6 +7058,15 @@
             return ((PendingIntentRecord)target).sendWithResult(code, intent, resolvedType,
                     finishedReceiver, requiredPermission, options);
         } else {
+            if (intent == null) {
+                // Weird case: someone has given us their own custom IIntentSender, and now
+                // they have someone else trying to send to it but of course this isn't
+                // really a PendingIntent, so there is no base Intent, and the caller isn't
+                // supplying an Intent... but we never want to dispatch a null Intent to
+                // a receiver, so um...  let's make something up.
+                Slog.wtf(TAG, "Can't use null intent with direct IIntentSender call");
+                intent = new Intent(Intent.ACTION_MAIN);
+            }
             try {
                 target.send(code, intent, resolvedType, null, requiredPermission, options);
             } catch (RemoteException e) {
@@ -11115,8 +11125,12 @@
                                     .getPackageInfo(pkgName, matchFlags, userId);
                             if (pkgInfo != null && !ArrayUtils.isEmpty(pkgInfo.providers)) {
                                 for (ProviderInfo provInfo : pkgInfo.providers) {
-                                    Log.v(TAG, "Installing " + provInfo);
-                                    app.thread.scheduleInstallProvider(provInfo);
+                                    if (Objects.equals(provInfo.processName, app.processName)) {
+                                        Log.v(TAG, "Installing " + provInfo);
+                                        app.thread.scheduleInstallProvider(provInfo);
+                                    } else {
+                                        Log.v(TAG, "Skipping " + provInfo);
+                                    }
                                 }
                             }
                         } catch (RemoteException ignored) {
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 8ade556..3811b61 100644
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -1725,13 +1725,9 @@
                     continue;
                 }
                 aboveTop = false;
-                // mLaunchingBehind: Activities launching behind are at the back of the task stack
-                // but must be drawn initially for the animation as though they were visible.
-                final boolean activityVisibleBehind =
-                        (behindTranslucentActivity || stackVisibleBehind) && visibleBehind == r;
-                final boolean isVisible = (!behindFullscreenActivity || r.mLaunchTaskBehind
-                        || activityVisibleBehind) && okToShowLocked(r);
-                if (isVisible) {
+
+                if (shouldBeVisible(r, behindTranslucentActivity, stackVisibleBehind,
+                        visibleBehind, behindFullscreenActivity)) {
                     if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Make visible? " + r
                             + " finishing=" + r.finishing + " state=" + r.state);
                     // First: if this is not the current activity being started, make
@@ -1819,6 +1815,31 @@
         }
     }
 
+    /** Return true if the input activity should be made visible */
+    private boolean shouldBeVisible(ActivityRecord r, boolean behindTranslucentActivity,
+            boolean stackVisibleBehind, ActivityRecord visibleBehind,
+            boolean behindFullscreenActivity) {
+        // mLaunchingBehind: Activities launching behind are at the back of the task stack
+        // but must be drawn initially for the animation as though they were visible.
+        final boolean activityVisibleBehind =
+                (behindTranslucentActivity || stackVisibleBehind) && visibleBehind == r;
+
+        if (!okToShowLocked(r)) {
+            return false;
+        }
+
+        boolean isVisible =
+                !behindFullscreenActivity || r.mLaunchTaskBehind || activityVisibleBehind;
+
+        if (isVisible && r.isRecentsActivity()) {
+            // Recents activity can only be visible if the home stack isn't fullscreen or is the
+            // focused stack.
+            isVisible = !mFullscreen || mStackSupervisor.isFocusedStack(this);
+        }
+
+        return isVisible;
+    }
+
     private void checkTranslucentActivityWaiting(ActivityRecord top) {
         if (mTranslucentActivityWaiting != top) {
             mUndrawnActivitiesBelowTopTranslucent.clear();
@@ -4902,8 +4923,8 @@
                     "    Task id #" + task.taskId + "\n" +
                     "    mFullscreen=" + task.mFullscreen + "\n" +
                     "    mBounds=" + task.mBounds + "\n" +
-                    "    mMinimalWidth=" + task.mMinimalWidth + "\n" +
-                    "    mMinimalHeight=" + task.mMinimalHeight + "\n" +
+                    "    mMinWidth=" + task.mMinWidth + "\n" +
+                    "    mMinHeight=" + task.mMinHeight + "\n" +
                     "    mLastNonFullscreenBounds=" + task.mLastNonFullscreenBounds);
             if (printed) {
                 header = null;
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 0baca9e..01b2eb4 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -123,7 +123,6 @@
 import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_FORCE_RESIZEABLE;
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.os.Trace.TRACE_TAG_ACTIVITY_MANAGER;
 import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALL;
@@ -410,7 +409,7 @@
 
     // The default minimal size that will be used if the activity doesn't specify its minimal size.
     // It will be calculated when the default display gets added.
-    int mDefaultMinimalSizeOfResizeableTask = -1;
+    int mDefaultMinSizeOfResizeableTask = -1;
 
     // Whether tasks have moved and we need to rank the tasks before next OOM scoring
     private boolean mTaskLayersChanged = true;
@@ -3376,7 +3375,7 @@
     }
 
     private void calculateDefaultMinimalSizeOfResizeableTasks(ActivityDisplay display) {
-        mDefaultMinimalSizeOfResizeableTask =
+        mDefaultMinSizeOfResizeableTask =
                 mService.mContext.getResources().getDimensionPixelSize(
                         com.android.internal.R.dimen.default_minimal_size_resizable_task);
     }
@@ -3406,12 +3405,16 @@
     }
 
     private StackInfo getStackInfoLocked(ActivityStack stack) {
+        final ActivityDisplay display = mActivityDisplays.get(Display.DEFAULT_DISPLAY);
         StackInfo info = new StackInfo();
         mWindowManager.getStackBounds(stack.mStackId, info.bounds);
         info.displayId = Display.DEFAULT_DISPLAY;
         info.stackId = stack.mStackId;
         info.userId = stack.mCurrentUser;
         info.visible = stack.getStackVisibilityLocked(null) == STACK_VISIBLE;
+        info.position = display != null
+                ? display.mStacks.indexOf(stack)
+                : 0;
 
         ArrayList<TaskRecord> tasks = stack.getAllTasks();
         final int numTasks = tasks.size();
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index 64b898a..ad57ae2 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -620,6 +620,10 @@
                 .getSystemService(Context.KEYGUARD_SERVICE);
         final Intent credential =
                 km.createConfirmDeviceCredentialIntent(null, null, userId);
+        // For safety, check null here in case users changed the setting after the checking.
+        if (credential == null) {
+            return;
+        }
         final ActivityRecord activityRecord = targetStack.topRunningActivityLocked();
         if (activityRecord != null) {
             final IIntentSender target = mService.getIntentSenderLocked(
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index 96934f0..b4df10f 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -1323,55 +1323,60 @@
         delta.mTimestamp = latest.getTimeStamp();
         delta.mStackState = latest.getStackState();
 
-        // These times seem to be the most reliable.
-        delta.mControllerTxTimeMs = latest.mControllerTxTimeMs - lastTxMs;
-        delta.mControllerRxTimeMs = latest.mControllerRxTimeMs - lastRxMs;
+        final long txTimeMs = latest.mControllerTxTimeMs - lastTxMs;
+        final long rxTimeMs = latest.mControllerRxTimeMs - lastRxMs;
+        final long idleTimeMs = latest.mControllerIdleTimeMs - lastIdleMs;
 
-        // WiFi calculates the idle time as a difference from the on time and the various
-        // Rx + Tx times. There seems to be some missing time there because this sometimes
-        // becomes negative. Just cap it at 0 and move on.
-        // b/21613534
-        delta.mControllerIdleTimeMs = Math.max(0, latest.mControllerIdleTimeMs - lastIdleMs);
-        delta.mControllerEnergyUsed = Math.max(0, latest.mControllerEnergyUsed - lastEnergy);
-
-        if (delta.mControllerTxTimeMs < 0 || delta.mControllerRxTimeMs < 0) {
+        if (txTimeMs < 0 || rxTimeMs < 0) {
             // The stats were reset by the WiFi system (which is why our delta is negative).
             // Returns the unaltered stats.
             delta.mControllerEnergyUsed = latest.mControllerEnergyUsed;
             delta.mControllerRxTimeMs = latest.mControllerRxTimeMs;
             delta.mControllerTxTimeMs = latest.mControllerTxTimeMs;
             delta.mControllerIdleTimeMs = latest.mControllerIdleTimeMs;
-
             Slog.v(TAG, "WiFi energy data was reset, new WiFi energy data is " + delta);
-        }
-
-        // There is some accuracy error in reports so allow some slop in the results.
-        final long SAMPLE_ERROR_MILLIS = 750;
-        final long totalTimeMs = delta.mControllerIdleTimeMs + delta.mControllerRxTimeMs +
-                delta.mControllerTxTimeMs;
-        if (totalTimeMs > timePeriodMs + SAMPLE_ERROR_MILLIS) {
-            StringBuilder sb = new StringBuilder();
-            sb.append("Total time ");
-            TimeUtils.formatDuration(totalTimeMs, sb);
-            sb.append(" is longer than sample period ");
-            TimeUtils.formatDuration(timePeriodMs, sb);
-            sb.append(".\n");
-            sb.append("Previous WiFi snapshot: ").append("idle=");
-            TimeUtils.formatDuration(lastIdleMs, sb);
-            sb.append(" rx=");
-            TimeUtils.formatDuration(lastRxMs, sb);
-            sb.append(" tx=");
-            TimeUtils.formatDuration(lastTxMs, sb);
-            sb.append(" e=").append(lastEnergy);
-            sb.append("\n");
-            sb.append("Current WiFi snapshot: ").append("idle=");
-            TimeUtils.formatDuration(latest.mControllerIdleTimeMs, sb);
-            sb.append(" rx=");
-            TimeUtils.formatDuration(latest.mControllerRxTimeMs, sb);
-            sb.append(" tx=");
-            TimeUtils.formatDuration(latest.mControllerTxTimeMs, sb);
-            sb.append(" e=").append(latest.mControllerEnergyUsed);
-            Slog.wtf(TAG, sb.toString());
+        } else {
+            final long totalActiveTimeMs = txTimeMs + rxTimeMs;
+            long maxExpectedIdleTimeMs;
+            // Active time can never be greater than the total time, the stats received seem
+            // to be corrupt.
+            if (totalActiveTimeMs > timePeriodMs) {
+                maxExpectedIdleTimeMs = timePeriodMs;
+                StringBuilder sb = new StringBuilder();
+                sb.append("Total Active time ");
+                TimeUtils.formatDuration(totalActiveTimeMs, sb);
+                sb.append(" is longer than sample period ");
+                TimeUtils.formatDuration(timePeriodMs, sb);
+                sb.append(".\n");
+                sb.append("Previous WiFi snapshot: ").append("idle=");
+                TimeUtils.formatDuration(lastIdleMs, sb);
+                sb.append(" rx=");
+                TimeUtils.formatDuration(lastRxMs, sb);
+                sb.append(" tx=");
+                TimeUtils.formatDuration(lastTxMs, sb);
+                sb.append(" e=").append(lastEnergy);
+                sb.append("\n");
+                sb.append("Current WiFi snapshot: ").append("idle=");
+                TimeUtils.formatDuration(latest.mControllerIdleTimeMs, sb);
+                sb.append(" rx=");
+                TimeUtils.formatDuration(latest.mControllerRxTimeMs, sb);
+                sb.append(" tx=");
+                TimeUtils.formatDuration(latest.mControllerTxTimeMs, sb);
+                sb.append(" e=").append(latest.mControllerEnergyUsed);
+                Slog.wtf(TAG, sb.toString());
+            } else {
+                maxExpectedIdleTimeMs = timePeriodMs - totalActiveTimeMs;
+            }
+            // These times seem to be the most reliable.
+            delta.mControllerTxTimeMs = txTimeMs;
+            delta.mControllerRxTimeMs = rxTimeMs;
+            // WiFi calculates the idle time as a difference from the on time and the various
+            // Rx + Tx times. There seems to be some missing time there because this sometimes
+            // becomes negative. Just cap it at 0 and ensure that it is less than the expected idle
+            // time from the difference in timestamps.
+            // b/21613534
+            delta.mControllerIdleTimeMs = Math.min(maxExpectedIdleTimeMs, Math.max(0, idleTimeMs));
+            delta.mControllerEnergyUsed = Math.max(0, latest.mControllerEnergyUsed - lastEnergy);
         }
 
         mLastInfo = latest;
diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
index 1222f54..0acc2a0 100644
--- a/services/core/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -38,7 +38,6 @@
 import android.content.pm.ResolveInfo;
 import android.os.Build;
 import android.os.Bundle;
-import android.os.DeadObjectException;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index 729d32f..8e9af40 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -127,14 +127,14 @@
     private static final String ATTR_RESIZE_MODE = "resize_mode";
     private static final String ATTR_PRIVILEGED = "privileged";
     private static final String ATTR_NON_FULLSCREEN_BOUNDS = "non_fullscreen_bounds";
-    private static final String ATTR_MINIMAL_WIDTH = "minimal_width";
-    private static final String ATTR_MINIMAL_HEIGHT = "minimal_height";
+    private static final String ATTR_MIN_WIDTH = "min_width";
+    private static final String ATTR_MIN_HEIGHT = "min_height";
 
 
     private static final String TASK_THUMBNAIL_SUFFIX = "_task_thumbnail";
 
     static final int INVALID_TASK_ID = -1;
-    static final int INVALID_MINIMAL_SIZE = -1;
+    static final int INVALID_MIN_SIZE = -1;
 
     final int taskId;       // Unique identifier for this task.
     String affinity;        // The affinity name for this task, or null; may change identity.
@@ -260,8 +260,8 @@
     Rect mLastNonFullscreenBounds = null;
     // Minimal width and height of this task when it's resizeable. -1 means it should use the
     // default minimal width/height.
-    int mMinimalWidth;
-    int mMinimalHeight;
+    int mMinWidth;
+    int mMinHeight;
 
     // Ranking (from top) of this task among all visible tasks. (-1 means it's not visible)
     // This number will be assigned when we evaluate OOM scores for all visible tasks.
@@ -331,7 +331,7 @@
             TaskThumbnailInfo lastThumbnailInfo, int taskAffiliation, int prevTaskId,
             int nextTaskId, int taskAffiliationColor, int callingUid, String callingPackage,
             int resizeMode, boolean privileged, boolean _realActivitySuspended,
-            boolean userSetupComplete, int minimalWidth, int minimalHeight) {
+            boolean userSetupComplete, int minWidth, int minHeight) {
         mService = service;
         mFilename = String.valueOf(_taskId) + TASK_THUMBNAIL_SUFFIX +
                 TaskPersister.IMAGE_EXTENSION;
@@ -371,8 +371,8 @@
         mCallingPackage = callingPackage;
         mResizeMode = resizeMode;
         mPrivileged = privileged;
-        mMinimalWidth = minimalWidth;
-        mMinimalHeight = minimalHeight;
+        mMinWidth = minWidth;
+        mMinHeight = minHeight;
     }
 
     void touchActiveTime() {
@@ -481,11 +481,11 @@
     /** Sets the original minimal width and height. */
     private void setMinDimensions(ActivityInfo info) {
         if (info != null && info.windowLayout != null) {
-            mMinimalWidth = info.windowLayout.minimalWidth;
-            mMinimalHeight = info.windowLayout.minimalHeight;
+            mMinWidth = info.windowLayout.minWidth;
+            mMinHeight = info.windowLayout.minHeight;
         } else {
-            mMinimalWidth = INVALID_MINIMAL_SIZE;
-            mMinimalHeight = INVALID_MINIMAL_SIZE;
+            mMinWidth = INVALID_MIN_SIZE;
+            mMinHeight = INVALID_MIN_SIZE;
         }
     }
 
@@ -1180,8 +1180,8 @@
             out.attribute(
                     null, ATTR_NON_FULLSCREEN_BOUNDS, mLastNonFullscreenBounds.flattenToString());
         }
-        out.attribute(null, ATTR_MINIMAL_WIDTH, String.valueOf(mMinimalWidth));
-        out.attribute(null, ATTR_MINIMAL_HEIGHT, String.valueOf(mMinimalHeight));
+        out.attribute(null, ATTR_MIN_WIDTH, String.valueOf(mMinWidth));
+        out.attribute(null, ATTR_MIN_HEIGHT, String.valueOf(mMinHeight));
 
         if (affinityIntent != null) {
             out.startTag(null, TAG_AFFINITYINTENT);
@@ -1246,8 +1246,8 @@
         int resizeMode = RESIZE_MODE_FORCE_RESIZEABLE;
         boolean privileged = false;
         Rect bounds = null;
-        int minimalWidth = INVALID_MINIMAL_SIZE;
-        int minimalHeight = INVALID_MINIMAL_SIZE;
+        int minWidth = INVALID_MIN_SIZE;
+        int minHeight = INVALID_MIN_SIZE;
 
         for (int attrNdx = in.getAttributeCount() - 1; attrNdx >= 0; --attrNdx) {
             final String attrName = in.getAttributeName(attrNdx);
@@ -1315,10 +1315,10 @@
                 privileged = Boolean.valueOf(attrValue);
             } else if (ATTR_NON_FULLSCREEN_BOUNDS.equals(attrName)) {
                 bounds = Rect.unflattenFromString(attrValue);
-            } else if (ATTR_MINIMAL_WIDTH.equals(attrName)) {
-                minimalWidth = Integer.parseInt(attrValue);
-            } else if (ATTR_MINIMAL_HEIGHT.equals(attrName)) {
-                minimalHeight = Integer.parseInt(attrValue);
+            } else if (ATTR_MIN_WIDTH.equals(attrName)) {
+                minWidth = Integer.parseInt(attrValue);
+            } else if (ATTR_MIN_HEIGHT.equals(attrName)) {
+                minHeight = Integer.parseInt(attrValue);
             } else {
                 Slog.w(TAG, "TaskRecord: Unknown attribute=" + attrName);
             }
@@ -1379,7 +1379,7 @@
                 activities, firstActiveTime, lastActiveTime, lastTimeOnTop, neverRelinquishIdentity,
                 taskDescription, thumbnailInfo, taskAffiliation, prevTaskId, nextTaskId,
                 taskAffiliationColor, callingUid, callingPackage, resizeMode, privileged,
-                realActivitySuspended, userSetupComplete, minimalWidth, minimalHeight);
+                realActivitySuspended, userSetupComplete, minWidth, minHeight);
         task.updateOverrideConfiguration(bounds);
 
         for (int activityNdx = activities.size() - 1; activityNdx >=0; --activityNdx) {
@@ -1394,41 +1394,41 @@
         if (bounds == null) {
             return;
         }
-        int minimalWidth = mMinimalWidth;
-        int minimalHeight = mMinimalHeight;
+        int minWidth = mMinWidth;
+        int minHeight = mMinHeight;
         // If the task has no requested minimal size, we'd like to enforce a minimal size
         // so that the user can not render the task too small to manipulate. We don't need
         // to do this for the pinned stack as the bounds are controlled by the system.
         if (stack.mStackId != PINNED_STACK_ID) {
-            if (minimalWidth == INVALID_MINIMAL_SIZE) {
-                minimalWidth = mService.mStackSupervisor.mDefaultMinimalSizeOfResizeableTask;
+            if (minWidth == INVALID_MIN_SIZE) {
+                minWidth = mService.mStackSupervisor.mDefaultMinSizeOfResizeableTask;
             }
-            if (minimalHeight == INVALID_MINIMAL_SIZE) {
-                minimalHeight = mService.mStackSupervisor.mDefaultMinimalSizeOfResizeableTask;
+            if (minHeight == INVALID_MIN_SIZE) {
+                minHeight = mService.mStackSupervisor.mDefaultMinSizeOfResizeableTask;
             }
         }
-        final boolean adjustWidth = minimalWidth > bounds.width();
-        final boolean adjustHeight = minimalHeight > bounds.height();
+        final boolean adjustWidth = minWidth > bounds.width();
+        final boolean adjustHeight = minHeight > bounds.height();
         if (!(adjustWidth || adjustHeight)) {
             return;
         }
 
         if (adjustWidth) {
             if (mBounds != null && bounds.right == mBounds.right) {
-                bounds.left = bounds.right - minimalWidth;
+                bounds.left = bounds.right - minWidth;
             } else {
                 // Either left bounds match, or neither match, or the previous bounds were
                 // fullscreen and we default to keeping left.
-                bounds.right = bounds.left + minimalWidth;
+                bounds.right = bounds.left + minWidth;
             }
         }
         if (adjustHeight) {
             if (mBounds != null && bounds.bottom == mBounds.bottom) {
-                bounds.top = bounds.bottom - minimalHeight;
+                bounds.top = bounds.bottom - minHeight;
             } else {
                 // Either top bounds match, or neither match, or the previous bounds were
                 // fullscreen and we default to keeping top.
-                bounds.bottom = bounds.top + minimalHeight;
+                bounds.bottom = bounds.top + minHeight;
             }
         }
     }
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index c4e39c9..595d086 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -1468,7 +1468,7 @@
         }
         final KeyguardManager km = (KeyguardManager) mService.mContext
                 .getSystemService(KEYGUARD_SERVICE);
-        return km.isDeviceLocked(userId);
+        return km.isDeviceLocked(userId) && km.isDeviceSecure(userId);
     }
 
     boolean isLockScreenDisabled(@UserIdInt int userId) {
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 8c4e113..32b9429 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -66,7 +66,6 @@
 import android.os.SystemService;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.provider.Settings;
 import android.security.Credentials;
 import android.security.KeyStore;
 import android.text.TextUtils;
@@ -128,6 +127,19 @@
     private final NetworkCapabilities mNetworkCapabilities;
 
     /**
+     * Whether to keep the connection active after rebooting, or upgrading or reinstalling. This
+     * only applies to {@link VpnService} connections.
+     */
+    private boolean mAlwaysOn = false;
+
+    /**
+     * Whether to disable traffic outside of this VPN even when the VPN is not connected. System
+     * apps can still bypass by choosing explicit networks. Has no effect if {@link mAlwaysOn} is
+     * not set.
+     */
+    private boolean mLockdown = false;
+
+    /**
      * List of UIDs that are set to use this VPN by default. Normally, every UID in the user is
      * added to this set but that can be changed by adding allowed or disallowed applications. It
      * is non-null iff the VPN is connected.
@@ -140,6 +152,14 @@
     @GuardedBy("this")
     private Set<UidRange> mVpnUsers = null;
 
+    /**
+     * List of UIDs for which networking should be blocked until VPN is ready, during brief periods
+     * when VPN is not running. For example, during system startup or after a crash.
+     * @see mLockdown
+     */
+    @GuardedBy("this")
+    private Set<UidRange> mBlockedUsers = new ArraySet<>();
+
     // Handle of user initiating VPN.
     private final int mUserHandle;
 
@@ -194,9 +214,10 @@
      *    manifest guarded by {@link android.Manifest.permission.BIND_VPN_SERVICE},
      *    otherwise the call will fail.
      *
-     * @param newPackage the package to designate as always-on VPN supplier.
+     * @param packageName the package to designate as always-on VPN supplier.
+     * @param lockdown whether to prevent traffic outside of a VPN, for example while connecting.
      */
-    public synchronized boolean setAlwaysOnPackage(String packageName) {
+    public synchronized boolean setAlwaysOnPackage(String packageName, boolean lockdown) {
         enforceControlPermissionOrInternalCaller();
 
         // Disconnect current VPN.
@@ -210,14 +231,9 @@
             prepareInternal(packageName);
         }
 
-        // Save the new package name in Settings.Secure.
-        final long token = Binder.clearCallingIdentity();
-        try {
-            Settings.Secure.putStringForUser(mContext.getContentResolver(),
-                    Settings.Secure.ALWAYS_ON_VPN_APP, packageName, mUserHandle);
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
+        mAlwaysOn = (packageName != null);
+        mLockdown = (mAlwaysOn && lockdown);
+        setVpnForcedLocked(mLockdown);
         return true;
     }
 
@@ -229,14 +245,7 @@
      */
     public synchronized String getAlwaysOnPackage() {
         enforceControlPermissionOrInternalCaller();
-
-        final long token = Binder.clearCallingIdentity();
-        try {
-            return Settings.Secure.getStringForUser(mContext.getContentResolver(),
-                    Settings.Secure.ALWAYS_ON_VPN_APP, mUserHandle);
-        } finally {
-            Binder.restoreCallingIdentity(token);
-        }
+        return (mAlwaysOn ? mPackage : null);
     }
 
     /**
@@ -258,6 +267,11 @@
      * @return true if the operation is succeeded.
      */
     public synchronized boolean prepare(String oldPackage, String newPackage) {
+        // Stop an existing always-on VPN from being dethroned by other apps.
+        if (mAlwaysOn && !TextUtils.equals(mPackage, newPackage)) {
+            return false;
+        }
+
         if (oldPackage != null) {
             if (getAppUid(oldPackage, mUserHandle) != mOwnerUID) {
                 // The package doesn't match. We return false (to obtain user consent) unless the
@@ -281,11 +295,6 @@
             return true;
         }
 
-        // Stop an existing always-on VPN from being dethroned by other apps.
-        if (getAlwaysOnPackage() != null) {
-            return false;
-        }
-
         // Check that the caller is authorized.
         enforceControlPermission();
 
@@ -469,7 +478,7 @@
         mNetworkInfo.setDetailedState(DetailedState.CONNECTING, null, null);
 
         NetworkMisc networkMisc = new NetworkMisc();
-        networkMisc.allowBypass = mConfig.allowBypass;
+        networkMisc.allowBypass = mConfig.allowBypass && !mLockdown;
 
         long token = Binder.clearCallingIdentity();
         try {
@@ -685,7 +694,7 @@
             final long token = Binder.clearCallingIdentity();
             List<UserInfo> users;
             try {
-                users = UserManager.get(mContext).getUsers();
+                users = UserManager.get(mContext).getUsers(true);
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
@@ -774,18 +783,22 @@
     public void onUserAdded(int userHandle) {
         // If the user is restricted tie them to the parent user's VPN
         UserInfo user = UserManager.get(mContext).getUserInfo(userHandle);
-        if (user.isRestricted() && user.restrictedProfileParentId == mUserHandle
-                && mVpnUsers != null) {
+        if (user.isRestricted() && user.restrictedProfileParentId == mUserHandle) {
             synchronized(Vpn.this) {
-                try {
-                    addUserToRanges(mVpnUsers, userHandle, mConfig.allowedApplications,
-                            mConfig.disallowedApplications);
-                    if (mNetworkAgent != null) {
-                        final List<UidRange> ranges = uidRangesForUser(userHandle);
-                        mNetworkAgent.addUidRanges(ranges.toArray(new UidRange[ranges.size()]));
+                if (mVpnUsers != null) {
+                    try {
+                        addUserToRanges(mVpnUsers, userHandle, mConfig.allowedApplications,
+                                mConfig.disallowedApplications);
+                        if (mNetworkAgent != null) {
+                            final List<UidRange> ranges = uidRangesForUser(userHandle);
+                            mNetworkAgent.addUidRanges(ranges.toArray(new UidRange[ranges.size()]));
+                        }
+                    } catch (Exception e) {
+                        Log.wtf(TAG, "Failed to add restricted user to owner", e);
                     }
-                } catch (Exception e) {
-                    Log.wtf(TAG, "Failed to add restricted user to owner", e);
+                }
+                if (mAlwaysOn) {
+                    setVpnForcedLocked(mLockdown);
                 }
             }
         }
@@ -794,19 +807,101 @@
     public void onUserRemoved(int userHandle) {
         // clean up if restricted
         UserInfo user = UserManager.get(mContext).getUserInfo(userHandle);
-        if (user.isRestricted() && user.restrictedProfileParentId == mUserHandle
-                && mVpnUsers != null) {
+        if (user.isRestricted() && user.restrictedProfileParentId == mUserHandle) {
             synchronized(Vpn.this) {
-                try {
-                    removeVpnUserLocked(userHandle);
-                } catch (Exception e) {
-                    Log.wtf(TAG, "Failed to remove restricted user to owner", e);
+                if (mVpnUsers != null) {
+                    try {
+                        removeVpnUserLocked(userHandle);
+                    } catch (Exception e) {
+                        Log.wtf(TAG, "Failed to remove restricted user to owner", e);
+                    }
+                }
+                if (mAlwaysOn) {
+                    setVpnForcedLocked(mLockdown);
                 }
             }
         }
     }
 
     /**
+     * Called when the user associated with this VPN has just been stopped.
+     */
+    public synchronized void onUserStopped() {
+        // Switch off networking lockdown (if it was enabled)
+        setVpnForcedLocked(false);
+        mAlwaysOn = false;
+
+        // Quit any active connections
+        agentDisconnect();
+    }
+
+    /**
+     * Restrict network access from all UIDs affected by this {@link Vpn}, apart from the VPN
+     * service app itself, to only sockets that have had {@code protect()} called on them. All
+     * non-VPN traffic is blocked via a {@code PROHIBIT} response from the kernel.
+     *
+     * The exception for the VPN UID isn't technically necessary -- setup should use protected
+     * sockets -- but in practice it saves apps that don't protect their sockets from breaking.
+     *
+     * Calling multiple times with {@param enforce} = {@code true} will recreate the set of UIDs to
+     * block every time, and if anything has changed update using {@link #setAllowOnlyVpnForUids}.
+     *
+     * @param enforce {@code true} to require that all traffic under the jurisdiction of this
+     *                {@link Vpn} goes through a VPN connection or is blocked until one is
+     *                available, {@code false} to lift the requirement.
+     *
+     * @see #mBlockedUsers
+     */
+    @GuardedBy("this")
+    private void setVpnForcedLocked(boolean enforce) {
+        final Set<UidRange> removedRanges = new ArraySet<>(mBlockedUsers);
+        if (enforce) {
+            final Set<UidRange> addedRanges = createUserAndRestrictedProfilesRanges(mUserHandle,
+                    /* allowedApplications */ null,
+                    /* disallowedApplications */ Collections.singletonList(mPackage));
+
+            removedRanges.removeAll(addedRanges);
+            addedRanges.removeAll(mBlockedUsers);
+
+            setAllowOnlyVpnForUids(false, removedRanges);
+            setAllowOnlyVpnForUids(true, addedRanges);
+        } else {
+            setAllowOnlyVpnForUids(false, removedRanges);
+        }
+    }
+
+    /**
+     * Either add or remove a list of {@link UidRange}s to the list of UIDs that are only allowed
+     * to make connections through sockets that have had {@code protect()} called on them.
+     *
+     * @param enforce {@code true} to add to the blacklist, {@code false} to remove.
+     * @param ranges {@link Collection} of {@link UidRange}s to add (if {@param enforce} is
+     *               {@code true}) or to remove.
+     * @return {@code true} if all of the UIDs were added/removed. {@code false} otherwise,
+     *         including added ranges that already existed or removed ones that didn't.
+     */
+    @GuardedBy("this")
+    private boolean setAllowOnlyVpnForUids(boolean enforce, Collection<UidRange> ranges) {
+        if (ranges.size() == 0) {
+            return true;
+        }
+        final UidRange[] rangesArray = ranges.toArray(new UidRange[ranges.size()]);
+        try {
+            mNetd.setAllowOnlyVpnForUids(enforce, rangesArray);
+        } catch (RemoteException | RuntimeException e) {
+            Log.e(TAG, "Updating blocked=" + enforce
+                    + " for UIDs " + Arrays.toString(ranges.toArray()) + " failed", e);
+            return false;
+        }
+        if (enforce) {
+            mBlockedUsers.addAll(ranges);
+        } else {
+            mBlockedUsers.removeAll(ranges);
+        }
+        return true;
+    }
+
+    /**
      * Return the configuration of the currently running VPN.
      */
     public VpnConfig getVpnConfig() {
@@ -959,6 +1054,21 @@
         return false;
     }
 
+    /**
+     * @return {@code true} if the set of users blocked whilst waiting for VPN to connect includes
+     *         the UID {@param uid}, {@code false} otherwise.
+     *
+     * @see #mBlockedUsers
+     */
+    public synchronized boolean isBlockingUid(int uid) {
+        for (UidRange uidRange : mBlockedUsers) {
+            if (uidRange.contains(uid)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private native int jniCreate(int mtu);
     private native String jniGetName(int tun);
     private native int jniSetAddresses(String interfaze, String addresses);
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index c649012..0daa8ba 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -18,7 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.util.LocaleList;
+import android.os.LocaleList;
 import android.view.Display;
 import com.android.internal.inputmethod.InputMethodSubtypeHandle;
 import com.android.internal.os.SomeArgs;
@@ -219,7 +219,7 @@
     private static native void nativeReloadDeviceAliases(long ptr);
     private static native String nativeDump(long ptr);
     private static native void nativeMonitor(long ptr);
-    private static native void nativeSetPointerIconShape(long ptr, int iconId);
+    private static native void nativeSetPointerIconType(long ptr, int iconId);
     private static native void nativeReloadPointerIcons(long ptr);
     private static native void nativeSetCustomPointerIcon(long ptr, PointerIcon icon);
     private static native void nativeSetPointerIconDetached(long ptr, boolean detached);
@@ -1691,8 +1691,8 @@
 
     // Binder call
     @Override
-    public void setPointerIconShape(int iconId) {
-        nativeSetPointerIconShape(mPtr, iconId);
+    public void setPointerIconType(int iconId) {
+        nativeSetPointerIconType(mPtr, iconId);
     }
 
     // Binder call
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 41f62e0..fe6ecbd 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -22,7 +22,6 @@
 import static android.service.notification.NotificationRankerService.REASON_DELEGATE_CANCEL_ALL;
 import static android.service.notification.NotificationRankerService.REASON_DELEGATE_CLICK;
 import static android.service.notification.NotificationRankerService.REASON_DELEGATE_ERROR;
-import static android.service.notification.NotificationRankerService.REASON_GROUP_OPTIMIZATION;
 import static android.service.notification.NotificationRankerService.REASON_GROUP_SUMMARY_CANCELED;
 import static android.service.notification.NotificationRankerService.REASON_LISTENER_CANCEL;
 import static android.service.notification.NotificationRankerService.REASON_LISTENER_CANCEL_ALL;
@@ -164,7 +163,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
@@ -2221,8 +2219,14 @@
                 int userId = -1;
                 NotificationRecord summaryRecord = null;
                 synchronized (mNotificationList) {
-                    final StatusBarNotification adjustedSbn
-                            = mNotificationsByKey.get(adjustment.getKey()).sbn;
+                    NotificationRecord notificationRecord =
+                            mNotificationsByKey.get(adjustment.getKey());
+                    if (notificationRecord == null) {
+                        // The notification could have been cancelled again already. A successive
+                        // adjustment will post a summary if needed.
+                        return;
+                    }
+                    final StatusBarNotification adjustedSbn = notificationRecord.sbn;
                     userId = adjustedSbn.getUser().getIdentifier();
                     ArrayMap<String, String> summaries = mAutobundledSummaries.get(userId);
                     if (summaries == null) {
@@ -2666,6 +2670,12 @@
             int callingUid, int callingPid) {
         StatusBarNotification sbn = r.sbn;
         Notification n = sbn.getNotification();
+        if (n.isGroupSummary() && !sbn.isAppGroup())  {
+            // notifications without a group shouldn't be a summary, otherwise autobundling can
+            // lead to bugs
+            n.flags &= ~Notification.FLAG_GROUP_SUMMARY;
+        }
+
         String group = sbn.getGroupKey();
         boolean isSummary = n.isGroupSummary();
 
diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java
index 1315bcb..7c89e9f 100644
--- a/services/core/java/com/android/server/notification/NotificationRecord.java
+++ b/services/core/java/com/android/server/notification/NotificationRecord.java
@@ -176,7 +176,7 @@
         mRankingTimeMs = calculateRankingTimeMs(previous.getRankingTimeMs());
         mCreationTimeMs = previous.mCreationTimeMs;
         mVisibleSinceMs = previous.mVisibleSinceMs;
-        if(previous.sbn.getOverrideGroupKey() != null) {
+        if (previous.sbn.getOverrideGroupKey() != null && !sbn.isAppGroup()) {
             sbn.setOverrideGroupKey(previous.sbn.getOverrideGroupKey());
         }
         // Don't copy importance information or mGlobalSortKey, recompute them.
diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
index 89747b5..26a840d 100644
--- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java
+++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java
@@ -328,10 +328,11 @@
 
         for (String apkPath : pkg.getAllCodePathsExcludingResourceOnly()) {
             try {
-                apkPath = new File(apkPath).getCanonicalPath();
+                apkPath = PackageManagerServiceUtils.realpath(new File(apkPath));
             } catch (IOException e) {
                 // Log an error but continue without it.
                 Slog.w(TAG, "Failed to get canonical path", e);
+                continue;
             }
             String useMarker = apkPath.replace('/', '@');
             final int[] currentUserIds = UserManagerService.getInstance().getUserIds();
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index faec844..35bcaa9 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -7603,10 +7603,11 @@
 
         for (String path : pkg.getAllCodePathsExcludingResourceOnly()) {
             try {
-                path = new File(path).getCanonicalPath();
+                path = PackageManagerServiceUtils.realpath(new File(path));
             } catch (IOException e) {
                 // TODO: Should we return early here ?
                 Slog.w(TAG, "Failed to get canonical path", e);
+                continue;
             }
 
             final String useMarker = path.replace('/', '@');
@@ -17549,21 +17550,26 @@
                 throw new IllegalArgumentException(
                         "Unknown component: " + packageName + "/" + className);
             }
-            // Don't allow other apps to disable an active profile owner
-            if (!UserHandle.isSameApp(uid, pkgSetting.appId)) {
-                final DevicePolicyManagerInternal dpmi = LocalServices
-                        .getService(DevicePolicyManagerInternal.class);
-                if (dpmi != null && dpmi.hasDeviceOwnerOrProfileOwner(packageName, userId)) {
-                    throw new SecurityException("Cannot disable a device owner or a profile owner");
-                }
-            }
-            // Allow root and verify that userId is not being specified by a different user
-            if (!allowedByPermission && !UserHandle.isSameApp(uid, pkgSetting.appId)) {
+        }
+
+        // Limit who can change which apps
+        if (!UserHandle.isSameApp(uid, pkgSetting.appId)) {
+            // Don't allow apps that don't have permission to modify other apps
+            if (!allowedByPermission) {
                 throw new SecurityException(
                         "Permission Denial: attempt to change component state from pid="
                         + Binder.getCallingPid()
                         + ", uid=" + uid + ", package uid=" + pkgSetting.appId);
             }
+            // Don't allow changing profile and device owners. Calling into DPMS, so no locking.
+            final DevicePolicyManagerInternal dpmi = LocalServices
+                    .getService(DevicePolicyManagerInternal.class);
+            if (dpmi != null && dpmi.hasDeviceOwnerOrProfileOwner(packageName, userId)) {
+                throw new SecurityException("Cannot disable a device owner or a profile owner");
+            }
+        }
+
+        synchronized (mPackages) {
             if (uid == Process.SHELL_UID) {
                 // Shell can only change whole packages between ENABLED and DISABLED_USER states
                 int oldState = pkgSetting.getEnabled(userId);
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
index 67cbcd8..b305ba7 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
@@ -25,9 +25,13 @@
 import android.content.pm.ResolveInfo;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.system.ErrnoException;
 import android.util.ArraySet;
 import android.util.Log;
+import libcore.io.Libcore;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -163,4 +167,16 @@
 
         return result;
     }
-}
\ No newline at end of file
+
+    /**
+     * Returns the canonicalized path of {@code path} as per {@code realpath(3)}
+     * semantics.
+     */
+    public static String realpath(File path) throws IOException {
+        try {
+            return Libcore.os.realpath(path.getAbsolutePath());
+        } catch (ErrnoException ee) {
+            throw ee.rethrowAsIOException();
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
index 29b9b92..a77d512 100644
--- a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
+++ b/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java
@@ -380,6 +380,10 @@
         @Override
         public void onVrStateChanged(boolean enabled) throws RemoteException {
             mVrModeEnabled = enabled;
+            if (mVrModeEnabled) {
+                mHandler.removeMessages(H.SHOW);
+                mHandler.sendEmptyMessage(H.HIDE);
+            }
         }
     };
 }
diff --git a/services/core/java/com/android/server/vr/VrManagerService.java b/services/core/java/com/android/server/vr/VrManagerService.java
index 48c0fee..3700c71 100644
--- a/services/core/java/com/android/server/vr/VrManagerService.java
+++ b/services/core/java/com/android/server/vr/VrManagerService.java
@@ -212,12 +212,14 @@
                 if (!packageNames.contains(pkg)) {
                     revokeNotificationListenerAccess(pkg);
                     revokeNotificationPolicyAccess(pkg);
+                    revokeCoarseLocationAccess(pkg, currentUserHandle);
                 }
             }
             for (String pkg : packageNames) {
                 if (!allowed.contains(pkg)) {
                     grantNotificationPolicyAccess(pkg);
                     grantNotificationListenerAccess(pkg, currentUserHandle);
+                    grantCoarseLocationAccess(pkg, currentUserHandle);
                 }
             }
 
@@ -585,8 +587,6 @@
                     Slog.i(TAG, "Disconnecting " + mCurrentVrService.getComponent() + " for user " +
                             mCurrentVrService.getUserId());
                     mCurrentVrService.disconnect();
-                    disableImpliedPermissionsLocked(mCurrentVrService.getComponent(),
-                            new UserHandle(mCurrentVrService.getUserId()));
                     mCurrentVrService = null;
                 }
             } else {
@@ -595,19 +595,13 @@
                     if (mCurrentVrService.disconnectIfNotMatching(component, userId)) {
                         Slog.i(TAG, "Disconnecting " + mCurrentVrService.getComponent() +
                                 " for user " + mCurrentVrService.getUserId());
-                        disableImpliedPermissionsLocked(mCurrentVrService.getComponent(),
-                                new UserHandle(mCurrentVrService.getUserId()));
                         createAndConnectService(component, userId);
-                        enableImpliedPermissionsLocked(mCurrentVrService.getComponent(),
-                                new UserHandle(mCurrentVrService.getUserId()));
                         sendUpdatedCaller = true;
                     }
                     // The service with the correct component/user is bound
                 } else {
                     // Nothing was previously running, bind a new service
                     createAndConnectService(component, userId);
-                    enableImpliedPermissionsLocked(mCurrentVrService.getComponent(),
-                            new UserHandle(mCurrentVrService.getUserId()));
                     sendUpdatedCaller = true;
                 }
             }
@@ -636,93 +630,6 @@
         }
     }
 
-    /**
-     * Enable the permission given in {@link #IMPLIED_VR_LISTENER_PERMISSIONS} for the given
-     * component package and user.
-     *
-     * @param component the component whose package should be enabled.
-     * @param userId the user that owns the given component.
-     */
-    private void enableImpliedPermissionsLocked(ComponentName component, UserHandle userId) {
-        if (mGuard) {
-            // Impossible
-            throw new IllegalStateException("Enabling permissions without disabling.");
-        }
-        mGuard = true;
-
-        PackageManager pm = mContext.getPackageManager();
-
-        String pName = component.getPackageName();
-        if (pm == null) {
-            Slog.e(TAG, "Couldn't set implied permissions for " + pName +
-                ", PackageManager isn't running");
-            return;
-        }
-
-        ApplicationInfo info = null;
-        try {
-            info = pm.getApplicationInfo(pName, PackageManager.GET_META_DATA);
-        } catch (NameNotFoundException e) {
-        }
-
-        if (info == null || !(info.isSystemApp() || info.isUpdatedSystemApp())) {
-            return;
-        }
-
-        mWasDefaultGranted = true;
-        AppOpsManager mgr = mContext.getSystemService(AppOpsManager.class);
-        if (mgr == null) {
-            Slog.e(TAG, "No AppOpsManager, failed to set permissions for: " + pName);
-            return;
-        }
-        grantCoarseLocationAccess(mgr, pName, info.uid);
-        grantOverlayAccess(mgr, pName, info.uid);
-    }
-
-    /**
-     * Disable the permission given in {@link #IMPLIED_VR_LISTENER_PERMISSIONS} for the given
-     * component package and user.
-     *
-     * @param component the component whose package should be disabled.
-     * @param userId the user that owns the given component.
-     */
-    private void disableImpliedPermissionsLocked(ComponentName component, UserHandle userId) {
-        if (!mGuard) {
-            // Impossible
-            throw new IllegalStateException("Disabling permissions without enabling.");
-        }
-        mGuard = false;
-
-        PackageManager pm = mContext.getPackageManager();
-
-        if (pm == null) {
-            Slog.e(TAG, "Couldn't remove implied permissions for " + component +
-                ", PackageManager isn't running");
-            return;
-        }
-
-        String pName = component.getPackageName();
-        if (mWasDefaultGranted) {
-            ApplicationInfo info = null;
-            try {
-                info = pm.getApplicationInfo(pName, PackageManager.GET_META_DATA);
-            } catch (NameNotFoundException e) {
-            }
-
-            if (info != null) {
-                AppOpsManager mgr = mContext.getSystemService(AppOpsManager.class);
-                if (mgr == null) {
-                    Slog.e(TAG, "No AppOpsManager, failed to set permissions for: " + pName);
-                    return;
-                }
-                revokeCoarseLocationAccess(mgr, pName, info.uid);
-                revokeOverlayAccess(mgr, pName, info.uid);
-            }
-            mWasDefaultGranted = false;
-        }
-
-    }
-
     private boolean isDefaultAllowed(String packageName) {
         PackageManager pm = mContext.getPackageManager();
 
@@ -738,41 +645,16 @@
         return true;
     }
 
-    private void grantCoarseLocationAccess(AppOpsManager mgr, String packageName, int uid) {
-        mPreviousCoarseLocationMode = mgr.checkOpNoThrow(AppOpsManager.OP_COARSE_LOCATION, uid,
-                packageName);
-
-        if (mPreviousCoarseLocationMode != AppOpsManager.MODE_ALLOWED) {
-            mgr.setMode(AppOpsManager.OP_COARSE_LOCATION, uid, packageName,
-                    AppOpsManager.MODE_ALLOWED);
-        }
+    private void grantCoarseLocationAccess(String pkg, UserHandle userId) {
+        PackageManager pm = mContext.getPackageManager();
+        pm.grantRuntimePermission(pkg, android.Manifest.permission.ACCESS_COARSE_LOCATION,
+                userId);
     }
 
-    private void revokeCoarseLocationAccess(AppOpsManager mgr, String packageName, int uid) {
-        if (mPreviousCoarseLocationMode != AppOpsManager.MODE_ALLOWED) {
-            mgr.setMode(AppOpsManager.OP_COARSE_LOCATION, uid, packageName,
-                    mPreviousCoarseLocationMode);
-            mPreviousCoarseLocationMode = INVALID_APPOPS_MODE;
-        }
-    }
-
-    private void grantOverlayAccess(AppOpsManager mgr, String packageName, int uid) {
-
-        mPreviousManageOverlayMode = mgr.checkOpNoThrow(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid,
-                packageName);
-
-        if (mPreviousManageOverlayMode != AppOpsManager.MODE_ALLOWED) {
-            mgr.setMode(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid, packageName,
-                    AppOpsManager.MODE_ALLOWED);
-        }
-    }
-
-    private void revokeOverlayAccess(AppOpsManager mgr, String packageName, int uid) {
-        if (mPreviousManageOverlayMode != AppOpsManager.MODE_ALLOWED) {
-            mgr.setMode(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid, packageName,
-                    mPreviousManageOverlayMode);
-            mPreviousManageOverlayMode = INVALID_APPOPS_MODE;
-        }
+    private void revokeCoarseLocationAccess(String pkg, UserHandle userId) {
+        PackageManager pm = mContext.getPackageManager();
+        pm.revokeRuntimePermission(pkg,
+                android.Manifest.permission.ACCESS_COARSE_LOCATION, userId);
     }
 
     private void grantNotificationPolicyAccess(String pkg) {
diff --git a/services/core/java/com/android/server/wm/BoundsAnimationController.java b/services/core/java/com/android/server/wm/BoundsAnimationController.java
index 51c4045..5bfece4 100644
--- a/services/core/java/com/android/server/wm/BoundsAnimationController.java
+++ b/services/core/java/com/android/server/wm/BoundsAnimationController.java
@@ -156,12 +156,10 @@
                     + mTmpRect + " from=" + mFrom + " mTo=" + mTo + " value=" + value
                     + " remains=" + remains);
 
-            if (remains != 0) {
-                mTmpTaskBounds.set(mTmpRect.left, mTmpRect.top,
-                        mTmpRect.left + mFrozenTaskWidth, mTmpRect.top + mFrozenTaskHeight);
-            }
+            mTmpTaskBounds.set(mTmpRect.left, mTmpRect.top,
+                    mTmpRect.left + mFrozenTaskWidth, mTmpRect.top + mFrozenTaskHeight);
 
-            if (!mTarget.setPinnedStackSize(mTmpRect, remains != 0 ? mTmpTaskBounds : null)) {
+            if (!mTarget.setPinnedStackSize(mTmpRect, mTmpTaskBounds)) {
                 // Whoops, the target doesn't feel like animating anymore. Let's immediately finish
                 // any further animation.
                 animation.cancel();
@@ -205,11 +203,12 @@
                 return;
             }
 
+            finishAnimation();
+
+            mTarget.setPinnedStackSize(mTo, null);
             if (mMoveToFullScreen && !mWillReplace) {
                 mTarget.moveToFullscreen();
             }
-
-            finishAnimation();
         }
 
         @Override
diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java
index d2d9363..1b31d07c 100644
--- a/services/core/java/com/android/server/wm/DockedStackDividerController.java
+++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java
@@ -300,7 +300,7 @@
             boolean animate, WindowState imeWin, int imeHeight) {
         if (mAdjustedForIme != adjustedForIme || (adjustedForIme && mImeHeight != imeHeight)
                 || mAdjustedForDivider != adjustedForDivider) {
-            if (animate) {
+            if (animate && !mAnimatingForMinimizedDockedStack) {
                 startImeAdjustAnimation(adjustedForIme, adjustedForDivider, imeWin);
             } else {
                 // Animation might be delayed, so only notify if we don't run an animation.
@@ -547,8 +547,6 @@
 
     private void startImeAdjustAnimation(
             boolean adjustedForIme, boolean adjustedForDivider, WindowState imeWin) {
-        mAnimatingForIme = true;
-        mAnimationStarted = false;
 
         // If we're not in an animation, the starting point depends on whether we're adjusted
         // or not. If we're already in an animation, we start from where the current animation
@@ -562,6 +560,8 @@
             mAnimationStart = mLastAnimationProgress;
             mDividerAnimationStart = mLastDividerProgress;
         }
+        mAnimatingForIme = true;
+        mAnimationStarted = false;
         mAnimationTarget = adjustedForIme ? 1 : 0;
         mDividerAnimationTarget = adjustedForDivider ? 1 : 0;
 
@@ -606,12 +606,7 @@
     private void setMinimizedDockedStack(boolean minimized) {
         final TaskStack stack = mDisplayContent.getDockedStackVisibleForUserLocked();
         notifyDockedStackMinimizedChanged(minimized, 0);
-        if (stack == null) {
-            return;
-        }
-        if (stack.setAdjustedForMinimizedDock(minimized ? 1f : 0f)) {
-            mService.mWindowPlacerLocked.performSurfacePlacement();
-        }
+        setMinimizeAmount(stack, minimized ? 1f : 0f);
     }
 
     private boolean isAnimationMaximizing() {
@@ -695,11 +690,8 @@
         float t = Math.min(1f, (float) (now - mAnimationStartTime) / mAnimationDuration);
         t = (isAnimationMaximizing() ? TOUCH_RESPONSE_INTERPOLATOR : mMinimizedDockInterpolator)
                 .getInterpolation(t);
-        if (stack != null) {
-            if (stack.setAdjustedForMinimizedDock(getMinimizeAmount(stack, t))) {
-                mService.mWindowPlacerLocked.performSurfacePlacement();
-            }
-        }
+        setMinimizeAmount(stack, getMinimizeAmount(stack, t));
+
         if (t >= 1.0f) {
             mAnimatingForMinimizedDockedStack = false;
             return false;
@@ -708,6 +700,42 @@
         }
     }
 
+    void setMinimizeAmount(TaskStack dockedStack, float minimizeAmount) {
+        final ArrayList<TaskStack> stacks = mDisplayContent.getStacks();
+
+        // If the docked stack is not visible, clear the complementary stack on all stacks.
+        if (dockedStack == null) {
+            for (int i = stacks.size() - 1; i >= 0; --i) {
+                final TaskStack stack = stacks.get(i);
+                stack.resetAdjustedForComplementDock();
+            }
+            return;
+        }
+
+        // Otherwise if the docked stack minimize amount has changed, update the adjusted bounds
+        // on the other stack that's currently visible, so that the stack's getDimBounds()
+        // occupies what's left by the docked stack. This is needed so that stuff like wallpaper
+        // gets cropped properly to the area left by the dock.
+        if (dockedStack.setAdjustedForMinimizedDock(minimizeAmount)) {
+            final boolean adjusted =
+                    dockedStack.isVisibleForUserLocked() && minimizeAmount != 0.0f;
+            dockedStack.getDimBounds(mTmpRect2);
+            int dockSide = dockedStack.getDockSide();
+            for (int i = stacks.size() - 1; i >= 0; --i) {
+                final TaskStack stack = stacks.get(i);
+                if (stack == dockedStack) {
+                    continue;
+                }
+                if (stack.isVisibleLocked() && adjusted) {
+                    stack.setAdjustedForComplementDock(mTmpRect2, dockSide);
+                } else {
+                    stack.resetAdjustedForComplementDock();
+                }
+            }
+            mService.mWindowPlacerLocked.performSurfacePlacement();
+        }
+    }
+
     private float getInterpolatedAnimationValue(float t) {
         return t * mAnimationTarget + (1 - t) * mAnimationStart;
     }
diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
index 0539b05..c4eca08 100644
--- a/services/core/java/com/android/server/wm/DragState.java
+++ b/services/core/java/com/android/server/wm/DragState.java
@@ -584,7 +584,7 @@
     void overridePointerIconLw(int touchSource) {
         mTouchSource = touchSource;
         if (isFromSource(InputDevice.SOURCE_MOUSE)) {
-            InputManager.getInstance().setPointerIconShape(PointerIcon.STYLE_GRABBING);
+            InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_GRABBING);
         }
     }
 }
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 0d35354..f0808ac 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -631,7 +631,7 @@
                     // windows since they aren't at the base layer and could be moved around anyway.
                     if (!win.computeDragResizing() && win.mAttrs.type == TYPE_BASE_APPLICATION &&
                             !mStack.getBoundsAnimating() && !win.isGoneForLayoutLw()) {
-                        win.mResizedWhileNotDragResizing = true;
+                        win.setResizedWhileNotDragResizing(true);
                     }
                 }
                 if (win.isGoneForLayoutLw()) {
diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
index 1852b4c..f51fd8a 100644
--- a/services/core/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -122,6 +122,7 @@
     private float mAdjustImeAmount;
     private float mAdjustDividerAmount;
     private final int mDockedStackMinimizeThickness;
+    private boolean mAdjustedForForComplementDock;
 
     // If this is true, we are in the bounds animating mode.
     // The task will be down or upscaled to perfectly fit the
@@ -129,12 +130,6 @@
     // certain logic we would otherwise apply while resizing,
     // while resizing in the bounds animating mode.
     private boolean mBoundsAnimating = false;
-    // By default, movement animations are applied to all
-    // window movement. If this is true, animations will not
-    // be applied within this stack. This is useful for example
-    // if the windows are moving as the result of a stack animation,
-    // in which case a second window animation would cause jitter.
-    private boolean mFreezeMovementAnimations = false;
 
     // Temporary storage for the new bounds that should be used after the configuration change.
     // Will be cleared once the client retrieves the new bounds via getBoundsForNewConfiguration().
@@ -247,7 +242,9 @@
                 insetBounds = mFullyAdjustedImeBounds;
             }
         }
-        alignTasksToAdjustedBounds(adjusted ? mAdjustedBounds : mBounds, insetBounds);
+        if (!mAdjustedForForComplementDock) {
+            alignTasksToAdjustedBounds(adjusted ? mAdjustedBounds : mBounds, insetBounds);
+        }
         mDisplayContent.layoutNeeded = true;
     }
 
@@ -854,6 +851,7 @@
         mImeWin = imeWin;
         mImeGoingAway = false;
         if (!mAdjustedForIme || forceUpdate) {
+            mAdjustedForForComplementDock = false;
             mAdjustedForIme = true;
             mAdjustImeAmount = 0f;
             mAdjustDividerAmount = 0f;
@@ -916,10 +914,12 @@
      * @return Whether the amount has changed and a layout is needed.
      */
     boolean setAdjustedForMinimizedDock(float minimizeAmount) {
+        mAdjustedForForComplementDock = false;
+
         if (minimizeAmount != mMinimizeAmount) {
             mMinimizeAmount = minimizeAmount;
             updateAdjustedBounds();
-            return isVisibleForUserLocked();
+            return true;
         } else {
             return false;
         }
@@ -929,6 +929,33 @@
         return mMinimizeAmount != 0f;
     }
 
+    void setAdjustedForComplementDock(Rect dockBounds, int dockSide) {
+        if (mMinimizeAmount != 0f || mAdjustedForIme) {
+            return;
+        }
+        mTmpAdjustedBounds.set(mBounds);
+        if (dockSide == DOCKED_TOP) {
+            mTmpAdjustedBounds.top = dockBounds.bottom;
+        } else if (dockSide == DOCKED_LEFT) {
+            mTmpAdjustedBounds.left = dockBounds.right;
+        } else if (dockSide == DOCKED_RIGHT) {
+            mTmpAdjustedBounds.right = dockBounds.left;
+        } else {
+            Slog.w(TAG_WM, "setAdjustedForComplementDock: invalid dock side " + dockSide);
+            return;
+        }
+        mAdjustedForForComplementDock = true;
+        setAdjustedBounds(mTmpAdjustedBounds);
+    }
+
+    void resetAdjustedForComplementDock() {
+        if (mAdjustedForForComplementDock) {
+            mAdjustedForForComplementDock = false;
+            mTmpAdjustedBounds.setEmpty();
+            setAdjustedBounds(mTmpAdjustedBounds);
+        }
+    }
+
     /**
      * Puts all visible tasks that are adjusted for IME into resizing mode and adds the windows
      * to the list of to be drawn windows the service is waiting for.
@@ -1089,7 +1116,7 @@
         }
         setAdjustedBounds(mTmpAdjustedBounds);
 
-        final boolean isImeTarget = (mService.getImeTargetStackLocked() == this);
+        final boolean isImeTarget = (mService.getImeFocusStackLocked() == this);
         if (mAdjustedForIme && adjust && !isImeTarget) {
             final float alpha = Math.max(mAdjustImeAmount, mAdjustDividerAmount)
                     * IME_ADJUST_DIM_AMOUNT;
@@ -1328,7 +1355,6 @@
     @Override  // AnimatesBounds
     public void onAnimationStart() {
         synchronized (mService.mWindowMap) {
-            mFreezeMovementAnimations = true;
             mBoundsAnimating = true;
         }
     }
@@ -1336,7 +1362,6 @@
     @Override  // AnimatesBounds
     public void onAnimationEnd() {
         synchronized (mService.mWindowMap) {
-            mFreezeMovementAnimations = false;
             mBoundsAnimating = false;
             mService.requestTraversal();
         }
@@ -1363,8 +1388,8 @@
         getDisplayContent().getContentRect(bounds);
     }
 
-    public boolean getFreezeMovementAnimations() {
-        return mFreezeMovementAnimations;
+    public boolean hasMovementAnimations() {
+        return StackId.hasMovementAnimations(mStackId);
     }
 
     public boolean getForceScaleToCrop() {
diff --git a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java
index 3dc512f..fb556d2 100644
--- a/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java
+++ b/services/core/java/com/android/server/wm/TaskTapPointerEventListener.java
@@ -26,12 +26,12 @@
 
 import com.android.server.wm.WindowManagerService.H;
 
-import static android.view.PointerIcon.STYLE_NOT_SPECIFIED;
-import static android.view.PointerIcon.STYLE_DEFAULT;
-import static android.view.PointerIcon.STYLE_HORIZONTAL_DOUBLE_ARROW;
-import static android.view.PointerIcon.STYLE_VERTICAL_DOUBLE_ARROW;
-import static android.view.PointerIcon.STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW;
-import static android.view.PointerIcon.STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_NOT_SPECIFIED;
+import static android.view.PointerIcon.TYPE_DEFAULT;
+import static android.view.PointerIcon.TYPE_HORIZONTAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_VERTICAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW;
+import static android.view.PointerIcon.TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW;
 
 public class TaskTapPointerEventListener implements PointerEventListener {
 
@@ -43,7 +43,7 @@
     private boolean mTwoFingerScrolling;
     private boolean mInGestureDetection;
     private GestureDetector mGestureDetector;
-    private int mPointerIconShape = STYLE_NOT_SPECIFIED;
+    private int mPointerIconType = TYPE_NOT_SPECIFIED;
 
     public TaskTapPointerEventListener(WindowManagerService service,
             DisplayContent displayContent) {
@@ -91,39 +91,39 @@
                 final Task task = mDisplayContent.findTaskForControlPoint(x, y);
                 InputDevice inputDevice = motionEvent.getDevice();
                 if (task == null || inputDevice == null) {
-                    mPointerIconShape = STYLE_NOT_SPECIFIED;
+                    mPointerIconType = TYPE_NOT_SPECIFIED;
                     break;
                 }
                 task.getDimBounds(mTmpRect);
                 if (!mTmpRect.isEmpty() && !mTmpRect.contains(x, y)) {
-                    int iconShape = STYLE_DEFAULT;
+                    int iconType = TYPE_DEFAULT;
                     if (x < mTmpRect.left) {
-                        iconShape =
-                            (y < mTmpRect.top) ? STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW :
-                            (y > mTmpRect.bottom) ? STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW :
-                            STYLE_HORIZONTAL_DOUBLE_ARROW;
+                        iconType =
+                            (y < mTmpRect.top) ? TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW :
+                            (y > mTmpRect.bottom) ? TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW :
+                            TYPE_HORIZONTAL_DOUBLE_ARROW;
                     } else if (x > mTmpRect.right) {
-                        iconShape =
-                            (y < mTmpRect.top) ? STYLE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW :
-                            (y > mTmpRect.bottom) ? STYLE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW :
-                            STYLE_HORIZONTAL_DOUBLE_ARROW;
+                        iconType =
+                            (y < mTmpRect.top) ? TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW :
+                            (y > mTmpRect.bottom) ? TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW :
+                            TYPE_HORIZONTAL_DOUBLE_ARROW;
                     } else if (y < mTmpRect.top || y > mTmpRect.bottom) {
-                        iconShape = STYLE_VERTICAL_DOUBLE_ARROW;
+                        iconType = TYPE_VERTICAL_DOUBLE_ARROW;
                     }
-                    if (mPointerIconShape != iconShape) {
-                        mPointerIconShape = iconShape;
-                        inputDevice.setPointerShape(iconShape);
+                    if (mPointerIconType != iconType) {
+                        mPointerIconType = iconType;
+                        inputDevice.setPointerType(iconType);
                     }
                 } else {
-                    mPointerIconShape = STYLE_NOT_SPECIFIED;
+                    mPointerIconType = TYPE_NOT_SPECIFIED;
                 }
             } break;
 
             case MotionEvent.ACTION_HOVER_EXIT:
-                mPointerIconShape = STYLE_NOT_SPECIFIED;
+                mPointerIconType = TYPE_NOT_SPECIFIED;
                 InputDevice inputDevice = motionEvent.getDevice();
                 if (inputDevice != null) {
-                    inputDevice.setPointerShape(STYLE_DEFAULT);
+                    inputDevice.setPointerType(TYPE_DEFAULT);
                 }
                 break;
 
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 5305fe2..82cd0fa 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -3066,9 +3066,9 @@
 
         // If we're starting a drag-resize, we'll be changing the surface size as well as
         // notifying the client to render to with an offset from the surface's top-left.
-        if (win.isDragResizeChanged() || win.mResizedWhileNotDragResizing) {
+        if (win.isDragResizeChanged() || win.isResizedWhileNotDragResizing()) {
             win.setDragResizing();
-            win.mResizedWhileNotDragResizing = false;
+            win.setResizedWhileNotDragResizing(false);
             // We can only change top level windows to the full-screen surface when
             // resizing (as we only have one full-screen surface). So there is no need
             // to preserve and destroy windows which are attached to another, they
@@ -7581,7 +7581,7 @@
         final WindowState imeWin = mInputMethodWindow;
         final boolean imeVisible = imeWin != null && imeWin.isVisibleLw() && imeWin.isDisplayedLw();
         final boolean dockVisible = isStackVisibleLocked(DOCKED_STACK_ID);
-        final TaskStack imeTargetStack = getImeTargetStackLocked();
+        final TaskStack imeTargetStack = getImeFocusStackLocked();
         final int imeDockSide = (dockVisible && imeTargetStack != null) ?
                 imeTargetStack.getDockSide() : DOCKED_INVALID;
         final boolean imeOnTop = (imeDockSide == DOCKED_TOP);
@@ -7750,10 +7750,13 @@
         return mCurrentFocus;
     }
 
-    TaskStack getImeTargetStackLocked() {
-        // Don't use WindowState.getStack() because it returns home stack for system windows.
-        Task imeTask = mInputMethodTarget != null ? mInputMethodTarget.getTask() : null;
-        return imeTask != null ? imeTask.mStack : null;
+    TaskStack getImeFocusStackLocked() {
+        // Don't use mCurrentFocus.getStack() because it returns home stack for system windows.
+        // Also don't use mInputMethodTarget's stack, because some window with FLAG_NOT_FOCUSABLE
+        // and FLAG_ALT_FOCUSABLE_IM flags both set might be set to IME target so they're moved
+        // to make room for IME, but the window is not the focused window that's taking input.
+        return (mFocusedApp != null && mFocusedApp.mTask != null) ?
+                mFocusedApp.mTask.mStack : null;
     }
 
     private void showAuditSafeModeNotification() {
@@ -9269,7 +9272,7 @@
                     || w.mOutsetsChanged
                     || configChanged
                     || dragResizingChanged
-                    || w.mResizedWhileNotDragResizing) {
+                    || !w.isResizedWhileNotDragResizingReported()) {
                 if (DEBUG_RESIZE || DEBUG_ORIENTATION) {
                     Slog.v(TAG_WM, "Resize reasons for w=" + w + ": "
                             + " contentInsetsChanged=" + w.mContentInsetsChanged
@@ -9283,7 +9286,8 @@
                             + " surfaceResized=" + winAnimator.mSurfaceResized
                             + " configChanged=" + configChanged
                             + " dragResizingChanged=" + dragResizingChanged
-                            + " resizedWhileNotDragResizing=" + w.mResizedWhileNotDragResizing);
+                            + " resizedWhileNotDragResizingReported="
+                            + w.isResizedWhileNotDragResizingReported());
                 }
 
                 // If it's a dead window left on screen, and the configuration changed,
@@ -9305,7 +9309,7 @@
                 // we need to go through the process of getting informed by the
                 // application when it has finished drawing.
                 if (w.mOrientationChanging || dragResizingChanged
-                        || w.mResizedWhileNotDragResizing) {
+                        || w.isResizedWhileNotDragResizing()) {
                     if (DEBUG_SURFACE_TRACE || DEBUG_ANIM || DEBUG_ORIENTATION || DEBUG_RESIZE) {
                         Slog.v(TAG_WM, "Orientation or resize start waiting for draw"
                                 + ", mDrawState=DRAW_PENDING in " + w
@@ -11095,7 +11099,7 @@
                 Slog.w(TAG_WM, "unable to restore pointer icon");
             }
         } else {
-            InputManager.getInstance().setPointerIconShape(PointerIcon.STYLE_DEFAULT);
+            InputManager.getInstance().setPointerIconType(PointerIcon.TYPE_DEFAULT);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index c3f2367..e5e74a6 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -486,12 +486,11 @@
      */
     boolean mResizedWhileGone = false;
 
-    /**
-     * Indicates whether we got resized but drag resizing flag was false. In this case, we also
-     * need to recreate the surface and defer surface bound updates in order to make sure the
-     * buffer contents and the positioning/size stay in sync.
-     */
-    boolean mResizedWhileNotDragResizing;
+    /** @see #isResizedWhileNotDragResizing(). */
+    private boolean mResizedWhileNotDragResizing;
+
+    /** @see #isResizedWhileNotDragResizingReported(). */
+    private boolean mResizedWhileNotDragResizingReported;
 
     WindowState(WindowManagerService service, Session s, IWindow c, WindowToken token,
            WindowState attachedWindow, int appOp, int seq, WindowManager.LayoutParams a,
@@ -2115,14 +2114,16 @@
         mWasVisibleBeforeClientHidden = false;
     }
 
-    void clearAnimatingWithSavedSurface() {
+    boolean clearAnimatingWithSavedSurface() {
         if (mAnimatingWithSavedSurface) {
             // App has drawn something to its windows, we're no longer animating with
             // the saved surfaces.
             if (DEBUG_ANIM) Slog.d(TAG,
                     "clearAnimatingWithSavedSurface(): win=" + this);
             mAnimatingWithSavedSurface = false;
+            return true;
         }
+        return false;
     }
 
     @Override
@@ -2324,6 +2325,7 @@
             mVisibleInsetsChanged = false;
             mStableInsetsChanged = false;
             mOutsetsChanged = false;
+            mResizedWhileNotDragResizingReported = true;
             mWinAnimator.mSurfaceResized = false;
         } catch (RemoteException e) {
             mOrientationChanging = false;
@@ -2426,6 +2428,32 @@
         mDragResizingChangeReported = false;
     }
 
+    /**
+     * Set whether we got resized but drag resizing flag was false.
+     * @see #isResizedWhileNotDragResizing().
+     */
+    void setResizedWhileNotDragResizing(boolean resizedWhileNotDragResizing) {
+        mResizedWhileNotDragResizing = resizedWhileNotDragResizing;
+        mResizedWhileNotDragResizingReported = !resizedWhileNotDragResizing;
+    }
+
+    /**
+     * Indicates whether we got resized but drag resizing flag was false. In this case, we also
+     * need to recreate the surface and defer surface bound updates in order to make sure the
+     * buffer contents and the positioning/size stay in sync.
+     */
+    boolean isResizedWhileNotDragResizing() {
+        return mResizedWhileNotDragResizing;
+    }
+
+    /**
+     * @return Whether we reported "resize while not drag resizing" to the application.
+     * @see #isResizedWhileNotDragResizing()
+     */
+    boolean isResizedWhileNotDragResizingReported() {
+        return mResizedWhileNotDragResizingReported;
+    }
+
     int getResizeMode() {
         return mResizeMode;
     }
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 52273dc..aea395d 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -229,6 +229,8 @@
     long mDeferTransactionUntilFrame = -1;
     long mDeferTransactionTime = -1;
 
+    boolean mForceScaleUntilResize;
+
     private final Rect mTmpSize = new Rect();
 
     WindowStateAnimator(final WindowState win) {
@@ -585,7 +587,7 @@
                     + drawStateToString());
         }
 
-        mWin.clearAnimatingWithSavedSurface();
+        boolean layoutNeeded = mWin.clearAnimatingWithSavedSurface();
 
         if (mDrawState == DRAW_PENDING) {
             if (DEBUG_SURFACE_TRACE || DEBUG_ANIM || SHOW_TRANSACTIONS || DEBUG_ORIENTATION)
@@ -595,10 +597,10 @@
                 Slog.v(TAG, "Draw state now committed in " + mWin);
             }
             mDrawState = COMMIT_DRAW_PENDING;
-            return true;
+            layoutNeeded = true;
         }
 
-        return false;
+        return layoutNeeded;
     }
 
     // This must be called while inside a transaction.
@@ -1406,7 +1408,7 @@
         final Task task = w.getTask();
 
         // We got resized, so block all updates until we got the new surface.
-        if (w.mResizedWhileNotDragResizing && !w.isGoneForLayoutLw()) {
+        if (w.isResizedWhileNotDragResizing() && !w.isGoneForLayoutLw()) {
             return;
         }
 
@@ -1416,18 +1418,35 @@
         float extraHScale = (float) 1.0;
         float extraVScale = (float) 1.0;
 
+        mSurfaceResized = mSurfaceController.setSizeInTransaction(
+                mTmpSize.width(), mTmpSize.height(), recoveringMemory);
+        mForceScaleUntilResize = mForceScaleUntilResize && !mSurfaceResized;
+
+
         calculateSurfaceWindowCrop(mTmpClipRect, mTmpFinalClipRect);
-        if (task != null && task.mStack.getForceScaleToCrop()) {
-            extraHScale = mTmpClipRect.width() / (float)mTmpSize.width();
-            extraVScale = mTmpClipRect.height() / (float)mTmpSize.height();
+        if ((task != null && task.mStack.getForceScaleToCrop()) || mForceScaleUntilResize) {
+            int hInsets = w.getAttrs().surfaceInsets.left + w.getAttrs().surfaceInsets.right;
+            int vInsets = w.getAttrs().surfaceInsets.top + w.getAttrs().surfaceInsets.bottom;
+            // We want to calculate the scaling based on the content area, not based on
+            // the entire surface, so that we scale in sync with windows that don't have insets.
+            extraHScale = (mTmpClipRect.width() - hInsets) / (float)(mTmpSize.width() - hInsets);
+            extraVScale = (mTmpClipRect.height() - vInsets) / (float)(mTmpSize.height() - vInsets);
 
             // In the case of ForceScaleToCrop we scale entire tasks together,
             // and so we need to scale our offsets relative to the task bounds
             // or parent and child windows would fall out of alignment.
             int posX = (int) (mTmpSize.left - w.mAttrs.x * (1 - extraHScale));
             int posY = (int) (mTmpSize.top - w.mAttrs.y * (1 - extraVScale));
+            // Imagine we are scaling down. As we scale the buffer down, we decrease the
+            // distance between the surface top left, and the start of the surface contents
+            // (previously it was surfaceInsets.left pixels in screen space but now it
+            // will be surfaceInsets.left*extraHScale). This means in order to keep the
+            // non inset content at the same position, we have to shift the whole window
+            // forward. Likewise for scaling up, we've increased this distance, and we need
+            // to shift by a negative number to compensate.
             posX += w.getAttrs().surfaceInsets.left * (1 - extraHScale);
             posY += w.getAttrs().surfaceInsets.top * (1 - extraVScale);
+
             mSurfaceController.setPositionInTransaction(posX, posY, recoveringMemory);
 
             // Since we are scaled to fit in our previously desired crop, we can now
@@ -1435,6 +1454,14 @@
             // past where the system would have cropped us
             mTmpClipRect.set(0, 0, mTmpSize.width(), mTmpSize.height());
             mTmpFinalClipRect.setEmpty();
+
+            // Various surfaces in the scaled stack may resize at different times.
+            // We need to ensure for each surface, that we disable transformation matrix
+            // scaling in the same transaction which we resize the surface in.
+            // As we are in SCALING_MODE_SCALE_TO_WINDOW, SurfaceFlinger will
+            // then take over the scaling until the new buffer arrives, and things 
+            // will be seamless.
+            mForceScaleUntilResize = true;
         } else {
             mSurfaceController.setPositionInTransaction(mTmpSize.left, mTmpSize.top,
                     recoveringMemory);
@@ -1446,8 +1473,6 @@
                 mDtDx * w.mVScale * extraVScale,
                 mDsDy * w.mHScale * extraHScale,
                 mDtDy * w.mVScale * extraVScale, recoveringMemory);
-        mSurfaceResized = mSurfaceController.setSizeInTransaction(
-                mTmpSize.width(), mTmpSize.height(), recoveringMemory);
 
         if (mSurfaceResized) {
             mReportSurfaceResized = true;
diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
index 7e9993d..308b24d 100644
--- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
+++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
@@ -719,7 +719,7 @@
                                     || task.mStack.isAdjustedForIme());
                     if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0
                             && !w.isDragResizing() && !adjustedForMinimizedDockOrIme
-                            && (task == null || !w.getTask().mStack.getFreezeMovementAnimations())
+                            && (task == null || w.getTask().mStack.hasMovementAnimations())
                             && !w.mWinAnimator.mLastHidden) {
                         winAnimator.setMoveAnimation(left, top);
                     }
@@ -731,7 +731,9 @@
                     }
 
                     try {
-                        w.mClient.moved(left, top);
+                        if (task == null || task.mStack.getBoundsAnimating()) {
+                            w.mClient.moved(left, top);
+                        }
                     } catch (RemoteException e) {
                     }
                     w.mMovedByResize = false;
diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
index cd485c5..2e82cec 100644
--- a/services/core/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/core/jni/com_android_server_input_InputManagerService.cpp
@@ -204,7 +204,7 @@
     void setShowTouches(bool enabled);
     void setInteractive(bool interactive);
     void reloadCalibration();
-    void setPointerIconShape(int32_t iconId);
+    void setPointerIconType(int32_t iconId);
     void reloadPointerIcons();
     void setCustomPointerIcon(const SpriteIcon& icon);
     void setPointerIconDetached(bool detached);
@@ -785,11 +785,11 @@
             InputReaderConfiguration::CHANGE_TOUCH_AFFINE_TRANSFORMATION);
 }
 
-void NativeInputManager::setPointerIconShape(int32_t iconId) {
+void NativeInputManager::setPointerIconType(int32_t iconId) {
     AutoMutex _l(mLock);
     sp<PointerController> controller = mLocked.pointerController.promote();
     if (controller != NULL) {
-        controller->updatePointerShape(iconId);
+        controller->updatePointerIcon(iconId);
     }
 }
 
@@ -1462,9 +1462,9 @@
     im->getInputManager()->getDispatcher()->monitor();
 }
 
-static void nativeSetPointerIconShape(JNIEnv* /* env */, jclass /* clazz */, jlong ptr, jint iconId) {
+static void nativeSetPointerIconType(JNIEnv* /* env */, jclass /* clazz */, jlong ptr, jint iconId) {
     NativeInputManager* im = reinterpret_cast<NativeInputManager*>(ptr);
-    im->setPointerIconShape(iconId);
+    im->setPointerIconType(iconId);
 }
 
 static void nativeReloadPointerIcons(JNIEnv* /* env */, jclass /* clazz */, jlong ptr) {
@@ -1548,8 +1548,8 @@
             (void*) nativeDump },
     { "nativeMonitor", "(J)V",
             (void*) nativeMonitor },
-    { "nativeSetPointerIconShape", "(JI)V",
-            (void*) nativeSetPointerIconShape },
+    { "nativeSetPointerIconType", "(JI)V",
+            (void*) nativeSetPointerIconType },
     { "nativeReloadPointerIcons", "(J)V",
             (void*) nativeReloadPointerIcons },
     { "nativeSetCustomPointerIcon", "(JLandroid/view/PointerIcon;)V",
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index f729ac4..a5eb0b2 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -7315,23 +7315,6 @@
     }
 
     @Override
-    public Bundle getUserRestrictionsForUser(ComponentName who, int userHandle) {
-        if (!mHasFeature) {
-            return null;
-        }
-        Preconditions.checkNotNull(who, "ComponentName is null");
-        enforceFullCrossUsersPermission(userHandle);
-        enforceCanManageProfileAndDeviceOwners();
-        synchronized (this) {
-            ActiveAdmin activeAdmin = getActiveAdminUncheckedLocked(who, userHandle);
-            if (activeAdmin == null) {
-                return null;
-            }
-            return activeAdmin.userRestrictions;
-        }
-    }
-
-    @Override
     public boolean setApplicationHidden(ComponentName who, String packageName,
             boolean hidden) {
         Preconditions.checkNotNull(who, "ComponentName is null");
diff --git a/services/net/java/android/net/dhcp/DhcpClient.java b/services/net/java/android/net/dhcp/DhcpClient.java
index db521e2..505d15a 100644
--- a/services/net/java/android/net/dhcp/DhcpClient.java
+++ b/services/net/java/android/net/dhcp/DhcpClient.java
@@ -135,6 +135,7 @@
     private static final int CMD_RECEIVED_PACKET  = PRIVATE_BASE + 2;
     private static final int CMD_TIMEOUT          = PRIVATE_BASE + 3;
     private static final int CMD_RENEW_DHCP       = PRIVATE_BASE + 4;
+    private static final int CMD_EXPIRE_DHCP      = PRIVATE_BASE + 5;
 
     // For message logging.
     private static final Class[] sMessageClasses = { DhcpClient.class };
@@ -176,6 +177,7 @@
     private final WakeupMessage mKickAlarm;
     private final WakeupMessage mTimeoutAlarm;
     private final WakeupMessage mRenewAlarm;
+    private final WakeupMessage mExpiryAlarm;
     private final String mIfaceName;
 
     private boolean mRegisteredForPreDhcpNotification;
@@ -241,6 +243,7 @@
         mTimeoutAlarm = makeWakeupMessage("TIMEOUT", CMD_TIMEOUT);
         // Used to schedule DHCP renews.
         mRenewAlarm = makeWakeupMessage("RENEW", CMD_RENEW_DHCP);
+        mExpiryAlarm = makeWakeupMessage("EXPIRY", CMD_EXPIRE_DHCP);
     }
 
     public void registerForPreDhcpNotification() {
@@ -403,15 +406,21 @@
         return transmitPacket(packet, description, to);
     }
 
-    private void scheduleRenew() {
-        if (mDhcpLeaseExpiry != 0) {
-            long now = SystemClock.elapsedRealtime();
-            long alarmTime = (now + mDhcpLeaseExpiry) / 2;
-            mRenewAlarm.schedule(alarmTime);
-            Log.d(TAG, "Scheduling renewal in " + ((alarmTime - now) / 1000) + "s");
-        } else {
-            Log.d(TAG, "Infinite lease, no renewal needed");
+    private void scheduleLeaseTimers() {
+        if (mDhcpLeaseExpiry == 0) {
+            Log.d(TAG, "Infinite lease, no timer scheduling needed");
+            return;
         }
+
+        final long now = SystemClock.elapsedRealtime();
+        long renewTime = (now + mDhcpLeaseExpiry) / 2;
+        mRenewAlarm.schedule(renewTime);
+        long secondsHence = (renewTime - now) / 1000;
+        Log.d(TAG, "Scheduling renewal in " + secondsHence + "s");
+
+        mExpiryAlarm.schedule(mDhcpLeaseExpiry);
+        secondsHence = (mDhcpLeaseExpiry - now) / 1000;
+        Log.d(TAG, "Scheduling expiry in " + secondsHence + "s");
     }
 
     private void notifySuccess() {
@@ -423,6 +432,13 @@
         mController.sendMessage(CMD_POST_DHCP_ACTION, DHCP_FAILURE, 0, null);
     }
 
+    private void acceptDhcpResults(DhcpResults results, String msg) {
+        mDhcpLease = results;
+        mOffer = null;
+        Log.d(TAG, msg + " lease: " + mDhcpLease);
+        notifySuccess();
+    }
+
     private void clearDhcpState() {
         mDhcpLease = null;
         mDhcpLeaseExpiry = 0;
@@ -720,11 +736,8 @@
             if ((packet instanceof DhcpAckPacket)) {
                 DhcpResults results = packet.toDhcpResults();
                 if (results != null) {
-                    mDhcpLease = results;
-                    mOffer = null;
-                    Log.d(TAG, "Confirmed lease: " + mDhcpLease);
                     setDhcpLeaseExpiry(packet);
-                    notifySuccess();
+                    acceptDhcpResults(results, "Confirmed");
                     transitionTo(mConfiguringInterfaceState);
                 }
             } else if (packet instanceof DhcpNakPacket) {
@@ -749,7 +762,22 @@
         }
 
         @Override
+        public boolean processMessage(Message message) {
+            super.processMessage(message);
+            switch (message.what) {
+                case CMD_EXPIRE_DHCP:
+                    Log.d(TAG, "Lease expired!");
+                    notifyFailure();
+                    transitionTo(mDhcpInitState);
+                    return HANDLED;
+                default:
+                    return NOT_HANDLED;
+            }
+        }
+
+        @Override
         public void exit() {
+            mExpiryAlarm.cancel();
             // Tell IpManager to clear the IPv4 address. There is no need to
             // wait for confirmation since any subsequent packets are sent from
             // INADDR_ANY anyway (DISCOVER, REQUEST).
@@ -797,7 +825,7 @@
             super.enter();
             // TODO: DhcpStateMachine only supported renewing at 50% of the lease time,
             // and did not support rebinding. Now that the legacy DHCP client is gone, fix this.
-            scheduleRenew();
+            scheduleLeaseTimers();
         }
 
         @Override
@@ -849,22 +877,31 @@
         protected void receivePacket(DhcpPacket packet) {
             if (!isValidPacket(packet)) return;
             if ((packet instanceof DhcpAckPacket)) {
-                setDhcpLeaseExpiry(packet);
-                notifySuccess();
-                transitionTo(mDhcpBoundState);
+                final DhcpResults results = packet.toDhcpResults();
+                if (results != null) {
+                    if (!mDhcpLease.ipAddress.equals(results.ipAddress)) {
+                        Log.d(TAG, "Renewed lease not for our current IP address!");
+                        notifyFailure();
+                        transitionTo(mDhcpInitState);
+                    }
+                    setDhcpLeaseExpiry(packet);
+                    // Updating our notion of DhcpResults here only causes the
+                    // DNS servers and routes to be updated in LinkProperties
+                    // in IpManager and by any overridden relevant handlers of
+                    // the registered IpManager.Callback.  IP address changes
+                    // are not supported here.
+                    acceptDhcpResults(results, "Renewed");
+                    transitionTo(mDhcpBoundState);
+                }
             } else if (packet instanceof DhcpNakPacket) {
+                Log.d(TAG, "Received NAK, returning to INIT");
+                notifyFailure();
                 transitionTo(mDhcpInitState);
             }
         }
-
-        @Override
-        protected void timeout() {
-            transitionTo(mDhcpInitState);
-            notifyFailure();
-        }
     }
 
-    // Not implemented. DhcpStateMachine did not implement it either.
+    // Not implemented--yet. DhcpStateMachine did not implement it either.
     class DhcpRebindingState extends LoggingState {
     }
 
diff --git a/services/tests/servicestests/src/com/android/server/connectivity/VpnTest.java b/services/tests/servicestests/src/com/android/server/connectivity/VpnTest.java
index 3295bf5..5d8b843 100644
--- a/services/tests/servicestests/src/com/android/server/connectivity/VpnTest.java
+++ b/services/tests/servicestests/src/com/android/server/connectivity/VpnTest.java
@@ -20,9 +20,11 @@
 import static android.content.pm.UserInfo.FLAG_MANAGED_PROFILE;
 import static android.content.pm.UserInfo.FLAG_PRIMARY;
 import static android.content.pm.UserInfo.FLAG_RESTRICTED;
+import static org.mockito.AdditionalMatchers.*;
 import static org.mockito.Mockito.*;
 
 import android.annotation.UserIdInt;
+import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
@@ -65,16 +67,35 @@
         managedProfileA.profileGroupId = primaryUser.id;
     }
 
+    /**
+     * Names and UIDs for some fake packages. Important points:
+     *  - UID is ordered increasing.
+     *  - One pair of packages have consecutive UIDs.
+     */
+    static final String[] PKGS = {"com.example", "org.example", "net.example", "web.vpn"};
+    static final int[] PKG_UIDS = {66, 77, 78, 400};
+
+    // Mock packages
+    static final Map<String, Integer> mPackages = new ArrayMap<>();
+    static {
+        for (int i = 0; i < PKGS.length; i++) {
+            mPackages.put(PKGS[i], PKG_UIDS[i]);
+        }
+    }
+
     @Mock private Context mContext;
     @Mock private UserManager mUserManager;
     @Mock private PackageManager mPackageManager;
     @Mock private INetworkManagementService mNetService;
+    @Mock private AppOpsManager mAppOps;
 
     @Override
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        setMockedPackages(mPackages);
         when(mContext.getSystemService(eq(Context.USER_SERVICE))).thenReturn(mUserManager);
+        when(mContext.getSystemService(eq(Context.APP_OPS_SERVICE))).thenReturn(mAppOps);
         doNothing().when(mNetService).registerObserver(any());
     }
 
@@ -82,7 +103,7 @@
     public void testRestrictedProfilesAreAddedToVpn() {
         setMockedUsers(primaryUser, secondaryUser, restrictedProfileA, restrictedProfileB);
 
-        final Vpn vpn = createVpn(primaryUser.id);
+        final Vpn vpn = new MockVpn(primaryUser.id);
         final Set<UidRange> ranges = vpn.createUserAndRestrictedProfilesRanges(primaryUser.id,
                 null, null);
 
@@ -96,7 +117,7 @@
     public void testManagedProfilesAreNotAddedToVpn() {
         setMockedUsers(primaryUser, managedProfileA);
 
-        final Vpn vpn = createVpn(primaryUser.id);
+        final Vpn vpn = new MockVpn(primaryUser.id);
         final Set<UidRange> ranges = vpn.createUserAndRestrictedProfilesRanges(primaryUser.id,
                 null, null);
 
@@ -109,7 +130,7 @@
     public void testAddUserToVpnOnlyAddsOneUser() {
         setMockedUsers(primaryUser, restrictedProfileA, managedProfileA);
 
-        final Vpn vpn = createVpn(primaryUser.id);
+        final Vpn vpn = new MockVpn(primaryUser.id);
         final Set<UidRange> ranges = new ArraySet<>();
         vpn.addUserToRanges(ranges, primaryUser.id, null, null);
 
@@ -120,42 +141,123 @@
 
     @SmallTest
     public void testUidWhiteAndBlacklist() throws Exception {
-        final Map<String, Integer> packages = new ArrayMap<>();
-        packages.put("com.example", 66);
-        packages.put("org.example", 77);
-        packages.put("net.example", 78);
-        setMockedPackages(packages);
-
-        final Vpn vpn = createVpn(primaryUser.id);
+        final Vpn vpn = new MockVpn(primaryUser.id);
         final UidRange user = UidRange.createForUser(primaryUser.id);
+        final String[] packages = {PKGS[0], PKGS[1], PKGS[2]};
 
         // Whitelist
         final Set<UidRange> allow = vpn.createUserAndRestrictedProfilesRanges(primaryUser.id,
-                new ArrayList<String>(packages.keySet()), null);
+                Arrays.asList(packages), null);
         assertEquals(new ArraySet<>(Arrays.asList(new UidRange[] {
-            new UidRange(user.start + 66, user.start + 66),
-            new UidRange(user.start + 77, user.start + 78)
+            new UidRange(user.start + PKG_UIDS[0], user.start + PKG_UIDS[0]),
+            new UidRange(user.start + PKG_UIDS[1], user.start + PKG_UIDS[2])
         })), allow);
 
         // Blacklist
         final Set<UidRange> disallow = vpn.createUserAndRestrictedProfilesRanges(primaryUser.id,
-                null, new ArrayList<String>(packages.keySet()));
+                null, Arrays.asList(packages));
         assertEquals(new ArraySet<>(Arrays.asList(new UidRange[] {
-            new UidRange(user.start, user.start + 65),
-            new UidRange(user.start + 67, user.start + 76),
-            new UidRange(user.start + 79, user.stop)
+            new UidRange(user.start, user.start + PKG_UIDS[0] - 1),
+            new UidRange(user.start + PKG_UIDS[0] + 1, user.start + PKG_UIDS[1] - 1),
+            /* Empty range between UIDS[1] and UIDS[2], should be excluded, */
+            new UidRange(user.start + PKG_UIDS[2] + 1, user.stop)
         })), disallow);
     }
 
+    @SmallTest
+    public void testLockdownChangingPackage() throws Exception {
+        final MockVpn vpn = new MockVpn(primaryUser.id);
+        final UidRange user = UidRange.createForUser(primaryUser.id);
+
+        // Default state.
+        vpn.assertUnblocked(user.start + PKG_UIDS[0], user.start + PKG_UIDS[1], user.start + PKG_UIDS[2], user.start + PKG_UIDS[3]);
+
+        // Set always-on without lockdown.
+        assertTrue(vpn.setAlwaysOnPackage(PKGS[1], false));
+        vpn.assertUnblocked(user.start + PKG_UIDS[0], user.start + PKG_UIDS[1], user.start + PKG_UIDS[2], user.start + PKG_UIDS[3]);
+
+        // Set always-on with lockdown.
+        assertTrue(vpn.setAlwaysOnPackage(PKGS[1], true));
+        verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(new UidRange[] {
+            new UidRange(user.start, user.start + PKG_UIDS[1] - 1),
+            new UidRange(user.start + PKG_UIDS[1] + 1, user.stop)
+        }));
+        vpn.assertBlocked(user.start + PKG_UIDS[0], user.start + PKG_UIDS[2], user.start + PKG_UIDS[3]);
+        vpn.assertUnblocked(user.start + PKG_UIDS[1]);
+
+        // Switch to another app.
+        assertTrue(vpn.setAlwaysOnPackage(PKGS[3], true));
+        verify(mNetService).setAllowOnlyVpnForUids(eq(false), aryEq(new UidRange[] {
+            new UidRange(user.start, user.start + PKG_UIDS[1] - 1),
+            new UidRange(user.start + PKG_UIDS[1] + 1, user.stop)
+        }));
+        verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(new UidRange[] {
+            new UidRange(user.start, user.start + PKG_UIDS[3] - 1),
+            new UidRange(user.start + PKG_UIDS[3] + 1, user.stop)
+        }));
+        vpn.assertBlocked(user.start + PKG_UIDS[0], user.start + PKG_UIDS[1], user.start + PKG_UIDS[2]);
+        vpn.assertUnblocked(user.start + PKG_UIDS[3]);
+    }
+
+    @SmallTest
+    public void testLockdownAddingAProfile() throws Exception {
+        final MockVpn vpn = new MockVpn(primaryUser.id);
+        setMockedUsers(primaryUser);
+
+        // Make a copy of the restricted profile, as we're going to mark it deleted halfway through.
+        final UserInfo tempProfile = new UserInfo(restrictedProfileA.id, restrictedProfileA.name,
+                restrictedProfileA.flags);
+        tempProfile.restrictedProfileParentId = primaryUser.id;
+
+        final UidRange user = UidRange.createForUser(primaryUser.id);
+        final UidRange profile = UidRange.createForUser(tempProfile.id);
+
+        // Set lockdown.
+        assertTrue(vpn.setAlwaysOnPackage(PKGS[3], true));
+        verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(new UidRange[] {
+            new UidRange(user.start, user.start + PKG_UIDS[3] - 1),
+            new UidRange(user.start + PKG_UIDS[3] + 1, user.stop)
+        }));
+
+        // Verify restricted user isn't affected at first.
+        vpn.assertUnblocked(profile.start + PKG_UIDS[0]);
+
+        // Add the restricted user.
+        setMockedUsers(primaryUser, tempProfile);
+        vpn.onUserAdded(tempProfile.id);
+        verify(mNetService).setAllowOnlyVpnForUids(eq(true), aryEq(new UidRange[] {
+            new UidRange(profile.start, profile.start + PKG_UIDS[3] - 1),
+            new UidRange(profile.start + PKG_UIDS[3] + 1, profile.stop)
+        }));
+
+        // Remove the restricted user.
+        tempProfile.partial = true;
+        vpn.onUserRemoved(tempProfile.id);
+        verify(mNetService).setAllowOnlyVpnForUids(eq(false), aryEq(new UidRange[] {
+            new UidRange(profile.start, profile.start + PKG_UIDS[3] - 1),
+            new UidRange(profile.start + PKG_UIDS[3] + 1, profile.stop)
+        }));
+    }
+
     /**
-     * @return A subclass of {@link Vpn} which is reliably:
-     * <ul>
-     *   <li>Associated with a specific user ID</li>
-     *   <li>Not in always-on mode</li>
-     * </ul>
+     * A subclass of {@link Vpn} with some of the fields pre-mocked.
      */
-    private Vpn createVpn(@UserIdInt int userId) {
-        return new Vpn(Looper.myLooper(), mContext, mNetService, userId);
+    private class MockVpn extends Vpn {
+        public MockVpn(@UserIdInt int userId) {
+            super(Looper.myLooper(), mContext, mNetService, userId);
+        }
+
+        public void assertBlocked(int... uids) {
+            for (int uid : uids) {
+                assertTrue("Uid " + uid + " should be blocked", isBlockingUid(uid));
+            }
+        }
+
+        public void assertUnblocked(int... uids) {
+            for (int uid : uids) {
+                assertFalse("Uid " + uid + " should not be blocked", isBlockingUid(uid));
+            }
+        }
     }
 
     /**
@@ -167,9 +269,19 @@
             userMap.put(user.id, user);
         }
 
+        /**
+         * @see UserManagerService#getUsers(boolean)
+         */
         doAnswer(invocation -> {
-            return new ArrayList(userMap.values());
-        }).when(mUserManager).getUsers();
+            final boolean excludeDying = (boolean) invocation.getArguments()[0];
+            final ArrayList<UserInfo> result = new ArrayList<>(users.length);
+            for (UserInfo ui : users) {
+                if (!excludeDying || (ui.isEnabled() && !ui.partial)) {
+                    result.add(ui);
+                }
+            }
+            return result;
+        }).when(mUserManager).getUsers(anyBoolean());
 
         doAnswer(invocation -> {
             final int id = (int) invocation.getArguments()[0];
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 4cab7f0..fc7d741 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -1367,12 +1367,14 @@
 
     /** {@hide} */
     protected void removeConnection(Connection connection) {
-        String id = mIdByConnection.get(connection);
         connection.unsetConnectionService(this);
         connection.removeConnectionListener(mConnectionListener);
-        mConnectionById.remove(mIdByConnection.get(connection));
-        mIdByConnection.remove(connection);
-        mAdapter.removeCall(id);
+        String id = mIdByConnection.get(connection);
+        if (id != null) {
+            mConnectionById.remove(id);
+            mIdByConnection.remove(connection);
+            mAdapter.removeCall(id);
+        }
     }
 
     private String addConferenceInternal(Conference conference) {