Merge "CEC: Handle Remote Control command" into lmp-dev
diff --git a/Android.mk b/Android.mk
index 4a97c28..b419231 100644
--- a/Android.mk
+++ b/Android.mk
@@ -350,8 +350,8 @@
 	media/java/android/media/tv/ITvInputServiceCallback.aidl \
 	media/java/android/media/tv/ITvInputSession.aidl \
 	media/java/android/media/tv/ITvInputSessionCallback.aidl \
-	telecomm/java/com/android/internal/telecomm/IVideoCallCallback.aidl \
-	telecomm/java/com/android/internal/telecomm/IVideoCallProvider.aidl \
+	telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl \
+	telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl \
 	telecomm/java/com/android/internal/telecomm/IConnectionService.aidl \
 	telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl \
 	telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index ae2f3ad..c7cf940 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -218,6 +218,9 @@
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services.core_intermediates)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services.core_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
 
 # ******************************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
diff --git a/api/current.txt b/api/current.txt
index db6ec15..7b7e876 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -114,7 +114,6 @@
     field public static final java.lang.String RECEIVE_SMS = "android.permission.RECEIVE_SMS";
     field public static final java.lang.String RECEIVE_WAP_PUSH = "android.permission.RECEIVE_WAP_PUSH";
     field public static final java.lang.String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
-    field public static final java.lang.String RECOVERY = "android.permission.RECOVERY";
     field public static final java.lang.String REORDER_TASKS = "android.permission.REORDER_TASKS";
     field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
     field public static final java.lang.String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
@@ -465,7 +464,6 @@
     field public static final int contentInsetLeft = 16843861; // 0x1010455
     field public static final int contentInsetRight = 16843862; // 0x1010456
     field public static final int contentInsetStart = 16843859; // 0x1010453
-    field public static final int contentRatingSystemXml = 16843955; // 0x10104b3
     field public static final int controlX1 = 16843798; // 0x1010416
     field public static final int controlX2 = 16843800; // 0x1010418
     field public static final int controlY1 = 16843799; // 0x1010417
@@ -1356,6 +1354,7 @@
     field public static final int trimPathEnd = 16843811; // 0x1010423
     field public static final int trimPathOffset = 16843812; // 0x1010424
     field public static final int trimPathStart = 16843810; // 0x1010422
+    field public static final int tvContentRatingDescription = 16843955; // 0x10104b3
     field public static final int type = 16843169; // 0x10101a1
     field public static final int typeface = 16842902; // 0x1010096
     field public static final int uiOptions = 16843672; // 0x1010398
@@ -2559,6 +2558,7 @@
     field public static final int Widget_Material_Light_SeekBar = 16974534; // 0x10302c6
     field public static final int Widget_Material_Light_SegmentedButton = 16974535; // 0x10302c7
     field public static final int Widget_Material_Light_Spinner = 16974537; // 0x10302c9
+    field public static final int Widget_Material_Light_Spinner_Form = 16974567; // 0x10302e7
     field public static final int Widget_Material_Light_StackView = 16974536; // 0x10302c8
     field public static final int Widget_Material_Light_Tab = 16974538; // 0x10302ca
     field public static final int Widget_Material_Light_TabWidget = 16974539; // 0x10302cb
@@ -2585,6 +2585,7 @@
     field public static final int Widget_Material_SeekBar = 16974471; // 0x1030287
     field public static final int Widget_Material_SegmentedButton = 16974472; // 0x1030288
     field public static final int Widget_Material_Spinner = 16974474; // 0x103028a
+    field public static final int Widget_Material_Spinner_Form = 16974566; // 0x10302e6
     field public static final int Widget_Material_StackView = 16974473; // 0x1030289
     field public static final int Widget_Material_Tab = 16974475; // 0x103028b
     field public static final int Widget_Material_TabWidget = 16974476; // 0x103028c
@@ -3438,7 +3439,6 @@
     method public void onAttachFragment(android.app.Fragment);
     method public void onAttachedToWindow();
     method public void onBackPressed();
-    method public void onBackgroundMediaPlayingChanged(boolean);
     method protected void onChildTitleChanged(android.app.Activity, java.lang.CharSequence);
     method public void onConfigurationChanged(android.content.res.Configuration);
     method public void onContentChanged();
@@ -3495,13 +3495,13 @@
     method public boolean onSearchRequested();
     method protected void onStart();
     method protected void onStop();
-    method public void onStopMediaPlaying();
     method protected void onTitleChanged(java.lang.CharSequence, int);
     method public boolean onTouchEvent(android.view.MotionEvent);
     method public boolean onTrackballEvent(android.view.MotionEvent);
     method public void onTrimMemory(int);
     method public void onUserInteraction();
     method protected void onUserLeaveHint();
+    method public void onVisibleBehindCancelled();
     method public void onWindowAttributesChanged(android.view.WindowManager.LayoutParams);
     method public void onWindowFocusChanged(boolean);
     method public android.view.ActionMode onWindowStartingActionMode(android.view.ActionMode.Callback);
@@ -3513,6 +3513,7 @@
     method public void registerForContextMenu(android.view.View);
     method public final deprecated void removeDialog(int);
     method public void reportFullyDrawn();
+    method public boolean requestVisibleBehind(boolean);
     method public final boolean requestWindowFeature(int);
     method public final void runOnUiThread(java.lang.Runnable);
     method public void setActionBar(android.widget.Toolbar);
@@ -3531,7 +3532,6 @@
     method public void setImmersive(boolean);
     method public void setIntent(android.content.Intent);
     method public final void setMediaController(android.media.session.MediaController);
-    method public boolean setMediaPlaying(boolean);
     method public final void setProgress(int);
     method public final void setProgressBarIndeterminate(boolean);
     method public final void setProgressBarIndeterminateVisibility(boolean);
@@ -3772,20 +3772,11 @@
     method public void update(android.app.ActivityOptions);
   }
 
-  public class AlarmClockInfo implements android.os.Parcelable {
-    ctor public AlarmClockInfo(long, android.app.PendingIntent);
-    method public int describeContents();
-    method public android.app.PendingIntent getShowIntent();
-    method public long getTriggerTime();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator CREATOR;
-  }
-
   public class AlarmManager {
     method public void cancel(android.app.PendingIntent);
-    method public android.app.AlarmClockInfo getNextAlarmClock();
+    method public android.app.AlarmManager.AlarmClockInfo getNextAlarmClock();
     method public void set(int, long, android.app.PendingIntent);
-    method public void setAlarmClock(android.app.AlarmClockInfo, android.app.PendingIntent);
+    method public void setAlarmClock(android.app.AlarmManager.AlarmClockInfo, android.app.PendingIntent);
     method public void setExact(int, long, android.app.PendingIntent);
     method public void setInexactRepeating(int, long, long, android.app.PendingIntent);
     method public void setRepeating(int, long, long, android.app.PendingIntent);
@@ -3804,6 +3795,15 @@
     field public static final int RTC_WAKEUP = 0; // 0x0
   }
 
+  public static final class AlarmManager.AlarmClockInfo implements android.os.Parcelable {
+    ctor public AlarmManager.AlarmClockInfo(long, android.app.PendingIntent);
+    method public int describeContents();
+    method public android.app.PendingIntent getShowIntent();
+    method public long getTriggerTime();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+  }
+
   public class AlertDialog extends android.app.Dialog implements android.content.DialogInterface {
     ctor protected AlertDialog(android.content.Context);
     ctor protected AlertDialog(android.content.Context, int);
@@ -4492,6 +4492,7 @@
 
   public class KeyguardManager {
     method public deprecated void exitKeyguardSecurely(android.app.KeyguardManager.OnKeyguardExitResult);
+    method public android.content.Intent getConfirmDeviceCredentialIntent(java.lang.CharSequence, java.lang.CharSequence);
     method public boolean inKeyguardRestrictedInputMode();
     method public boolean isKeyguardLocked();
     method public boolean isKeyguardSecure();
@@ -5238,8 +5239,8 @@
     field public static java.lang.String ACTION_EXIT_CAR_MODE;
     field public static java.lang.String ACTION_EXIT_DESK_MODE;
     field public static final int DISABLE_CAR_MODE_GO_HOME = 1; // 0x1
+    field public static final int ENABLE_CAR_MODE_ALLOW_SLEEP = 2; // 0x2
     field public static final int ENABLE_CAR_MODE_GO_CAR_HOME = 1; // 0x1
-    field public static final int ENABLE_CAR_MODE_NO_WAKE_LOCK = 2; // 0x2
     field public static final int MODE_NIGHT_AUTO = 0; // 0x0
     field public static final int MODE_NIGHT_NO = 1; // 0x1
     field public static final int MODE_NIGHT_YES = 2; // 0x2
@@ -5412,6 +5413,7 @@
     method public boolean getCrossProfileCallerIdDisabled(android.content.ComponentName);
     method public java.util.List<java.lang.String> getCrossProfileWidgetProviders(android.content.ComponentName);
     method public int getCurrentFailedPasswordAttempts();
+    method public java.util.List<byte[]> getInstalledCaCerts();
     method public int getKeyguardDisabledFeatures(android.content.ComponentName);
     method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName);
     method public long getMaximumTimeToLock(android.content.ComponentName);
@@ -5431,7 +5433,6 @@
     method public boolean getStorageEncryption(android.content.ComponentName);
     method public int getStorageEncryptionStatus();
     method public java.util.List<java.lang.String> getTrustAgentFeaturesEnabled(android.content.ComponentName, android.content.ComponentName);
-    method public boolean hasAnyCaCertsInstalled();
     method public boolean hasCaCertInstalled(byte[]);
     method public boolean hasGrantedPolicy(android.content.ComponentName, int);
     method public boolean installCaCert(android.content.ComponentName, byte[]);
@@ -5479,6 +5480,7 @@
     method public int setStorageEncryption(android.content.ComponentName, boolean);
     method public void setTrustAgentFeaturesEnabled(android.content.ComponentName, android.content.ComponentName, java.util.List<java.lang.String>);
     method public boolean switchUser(android.content.ComponentName, android.os.UserHandle);
+    method public void uninstallAllUserCaCerts(android.content.ComponentName);
     method public void uninstallCaCert(android.content.ComponentName, byte[]);
     method public void wipeData(int);
     field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
@@ -7681,7 +7683,6 @@
     field public static final java.lang.String ACTION_CHOOSER = "android.intent.action.CHOOSER";
     field public static final java.lang.String ACTION_CLOSE_SYSTEM_DIALOGS = "android.intent.action.CLOSE_SYSTEM_DIALOGS";
     field public static final java.lang.String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED";
-    field public static final java.lang.String ACTION_CONFIRM_DEVICE_CREDENTIAL = "android.intent.action.CONFIRM_DEVICE_CREDENTIAL";
     field public static final java.lang.String ACTION_CREATE_DOCUMENT = "android.intent.action.CREATE_DOCUMENT";
     field public static final java.lang.String ACTION_CREATE_SHORTCUT = "android.intent.action.CREATE_SHORTCUT";
     field public static final java.lang.String ACTION_DATE_CHANGED = "android.intent.action.DATE_CHANGED";
@@ -7701,6 +7702,7 @@
     field public static final java.lang.String ACTION_GET_RESTRICTION_ENTRIES = "android.intent.action.GET_RESTRICTION_ENTRIES";
     field public static final java.lang.String ACTION_GTALK_SERVICE_CONNECTED = "android.intent.action.GTALK_CONNECTED";
     field public static final java.lang.String ACTION_GTALK_SERVICE_DISCONNECTED = "android.intent.action.GTALK_DISCONNECTED";
+    field public static final java.lang.String ACTION_HDMI_AUDIO_PLUG = "android.intent.action.HDMI_AUDIO_PLUG";
     field public static final java.lang.String ACTION_HEADSET_PLUG = "android.intent.action.HEADSET_PLUG";
     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";
@@ -7824,7 +7826,6 @@
     field public static final java.lang.String EXTRA_CHANGED_PACKAGE_LIST = "android.intent.extra.changed_package_list";
     field public static final java.lang.String EXTRA_CHANGED_UID_LIST = "android.intent.extra.changed_uid_list";
     field public static final java.lang.String EXTRA_DATA_REMOVED = "android.intent.extra.DATA_REMOVED";
-    field public static final java.lang.String EXTRA_DETAILS = "android.intent.extra.DETAILS";
     field public static final java.lang.String EXTRA_DOCK_STATE = "android.intent.extra.DOCK_STATE";
     field public static final int EXTRA_DOCK_STATE_CAR = 2; // 0x2
     field public static final int EXTRA_DOCK_STATE_DESK = 1; // 0x1
@@ -8527,6 +8528,15 @@
     field public int reqTouchScreen;
   }
 
+  public final class FeatureGroupInfo implements android.os.Parcelable {
+    ctor public FeatureGroupInfo();
+    ctor public FeatureGroupInfo(android.content.pm.FeatureGroupInfo);
+    method public int describeContents();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+    field public android.content.pm.FeatureInfo[] features;
+  }
+
   public class FeatureInfo implements android.os.Parcelable {
     ctor public FeatureInfo();
     ctor public FeatureInfo(android.content.pm.FeatureInfo);
@@ -8541,36 +8551,6 @@
     field public int reqGlEsVersion;
   }
 
-  public class InstallSessionInfo implements android.os.Parcelable {
-    method public int describeContents();
-    method public android.graphics.Bitmap getAppIcon();
-    method public java.lang.CharSequence getAppLabel();
-    method public java.lang.String getAppPackageName();
-    method public android.content.Intent getDetailsIntent();
-    method public java.lang.String getInstallerPackageName();
-    method public float getProgress();
-    method public int getSessionId();
-    method public boolean isOpen();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator CREATOR;
-  }
-
-  public class InstallSessionParams implements android.os.Parcelable {
-    ctor public InstallSessionParams(int);
-    method public int describeContents();
-    method public void setAppIcon(android.graphics.Bitmap);
-    method public void setAppLabel(java.lang.CharSequence);
-    method public void setAppPackageName(java.lang.String);
-    method public void setInstallLocation(int);
-    method public void setOriginatingUri(android.net.Uri);
-    method public void setReferrerUri(android.net.Uri);
-    method public void setSize(long);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator CREATOR;
-    field public static final int MODE_FULL_INSTALL = 1; // 0x1
-    field public static final int MODE_INHERIT_EXISTING = 2; // 0x2
-  }
-
   public class InstrumentationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
     ctor public InstrumentationInfo();
     ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo);
@@ -8648,6 +8628,7 @@
     field public android.content.pm.ActivityInfo[] activities;
     field public android.content.pm.ApplicationInfo applicationInfo;
     field public android.content.pm.ConfigurationInfo[] configPreferences;
+    field public android.content.pm.FeatureGroupInfo[] featureGroups;
     field public long firstInstallTime;
     field public int[] gids;
     field public int installLocation;
@@ -8672,37 +8653,35 @@
   public class PackageInstaller {
     method public void addSessionCallback(android.content.pm.PackageInstaller.SessionCallback);
     method public void addSessionCallback(android.content.pm.PackageInstaller.SessionCallback, android.os.Handler);
-    method public int createSession(android.content.pm.InstallSessionParams) throws java.io.IOException;
-    method public java.util.List<android.content.pm.InstallSessionInfo> getAllSessions();
-    method public java.util.List<android.content.pm.InstallSessionInfo> getMySessions();
-    method public android.content.pm.InstallSessionInfo getSessionInfo(int);
+    method public int createSession(android.content.pm.PackageInstaller.SessionParams) throws java.io.IOException;
+    method public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getAllSessions();
+    method public java.util.List<android.content.pm.PackageInstaller.SessionInfo> getMySessions();
+    method public android.content.pm.PackageInstaller.SessionInfo getSessionInfo(int);
     method public android.content.pm.PackageInstaller.Session openSession(int);
     method public void removeSessionCallback(android.content.pm.PackageInstaller.SessionCallback);
-    method public void uninstall(java.lang.String, android.content.pm.PackageInstaller.UninstallCallback);
+    method public void uninstall(java.lang.String, android.content.IntentSender);
     field public static final java.lang.String ACTION_SESSION_DETAILS = "android.content.pm.action.SESSION_DETAILS";
+    field public static final java.lang.String EXTRA_PACKAGE_NAMES = "android.content.pm.extra.PACKAGE_NAMES";
     field public static final java.lang.String EXTRA_SESSION_ID = "android.content.pm.extra.SESSION_ID";
-  }
-
-  public static abstract class PackageInstaller.CommitCallback {
-    ctor public PackageInstaller.CommitCallback();
-    method public abstract void onFailure(int, java.lang.String, android.os.Bundle);
-    method public abstract void onSuccess();
-    method public abstract void onUserActionRequired(android.content.Intent);
-    field public static final java.lang.String EXTRA_PACKAGE_NAME = "android.content.pm.extra.PACKAGE_NAME";
-    field public static final int FAILURE_ABORTED = 5; // 0x5
-    field public static final int FAILURE_CONFLICT = 2; // 0x2
-    field public static final int FAILURE_INCOMPATIBLE = 4; // 0x4
-    field public static final int FAILURE_INVALID = 1; // 0x1
-    field public static final int FAILURE_STORAGE = 3; // 0x3
-    field public static final int FAILURE_UNKNOWN = 0; // 0x0
+    field public static final java.lang.String EXTRA_STATUS = "android.content.pm.extra.STATUS";
+    field public static final java.lang.String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
+    field public static final int STATUS_FAILURE = 1; // 0x1
+    field public static final int STATUS_FAILURE_ABORTED = 2; // 0x2
+    field public static final int STATUS_FAILURE_BLOCKED = 1; // 0x1
+    field public static final int STATUS_FAILURE_CONFLICT = 4; // 0x4
+    field public static final int STATUS_FAILURE_INCOMPATIBLE = 6; // 0x6
+    field public static final int STATUS_FAILURE_INVALID = 3; // 0x3
+    field public static final int STATUS_FAILURE_STORAGE = 5; // 0x5
+    field public static final int STATUS_SUCCESS = 0; // 0x0
+    field public static final int STATUS_USER_ACTION_REQUIRED = -1; // 0xffffffff
   }
 
   public static class PackageInstaller.Session implements java.io.Closeable {
     method public void abandon();
     method public void close();
-    method public void commit(android.content.pm.PackageInstaller.CommitCallback);
+    method public void commit(android.content.IntentSender);
     method public void fsync(java.io.OutputStream) throws java.io.IOException;
-    method public java.lang.String[] list();
+    method public java.lang.String[] getNames();
     method public java.io.InputStream openRead(java.lang.String) throws java.io.IOException;
     method public java.io.OutputStream openWrite(java.lang.String, long, long) throws java.io.IOException;
     method public void setProgress(float);
@@ -8717,14 +8696,34 @@
     method public abstract void onProgressChanged(int, float);
   }
 
-  public static abstract class PackageInstaller.UninstallCallback {
-    ctor public PackageInstaller.UninstallCallback();
-    method public abstract void onFailure(int, java.lang.String, android.os.Bundle);
-    method public abstract void onSuccess();
-    method public abstract void onUserActionRequired(android.content.Intent);
-    field public static final int FAILURE_ABORTED = 2; // 0x2
-    field public static final int FAILURE_BLOCKED = 1; // 0x1
-    field public static final int FAILURE_UNKNOWN = 0; // 0x0
+  public static class PackageInstaller.SessionInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method public android.graphics.Bitmap getAppIcon();
+    method public java.lang.CharSequence getAppLabel();
+    method public java.lang.String getAppPackageName();
+    method public android.content.Intent getDetailsIntent();
+    method public java.lang.String getInstallerPackageName();
+    method public float getProgress();
+    method public int getSessionId();
+    method public boolean isOpen();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+  }
+
+  public static class PackageInstaller.SessionParams implements android.os.Parcelable {
+    ctor public PackageInstaller.SessionParams(int);
+    method public int describeContents();
+    method public void setAppIcon(android.graphics.Bitmap);
+    method public void setAppLabel(java.lang.CharSequence);
+    method public void setAppPackageName(java.lang.String);
+    method public void setInstallLocation(int);
+    method public void setOriginatingUri(android.net.Uri);
+    method public void setReferrerUri(android.net.Uri);
+    method public void setSize(long);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final android.os.Parcelable.Creator CREATOR;
+    field public static final int MODE_FULL_INSTALL = 1; // 0x1
+    field public static final int MODE_INHERIT_EXISTING = 2; // 0x2
   }
 
   public class PackageItemInfo {
@@ -11655,7 +11654,7 @@
   public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable {
     ctor public AnimatedStateListDrawable();
     method public void addState(int[], android.graphics.drawable.Drawable, int);
-    method public void addTransition(int, int, android.graphics.drawable.Drawable, boolean);
+    method public void addTransition(int, int, T, boolean);
   }
 
   public class AnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable {
@@ -13586,7 +13585,7 @@
 
   public class InputMethodService extends android.inputmethodservice.AbstractInputMethodService {
     ctor public InputMethodService();
-    method public boolean enableHardwareAcceleration();
+    method public deprecated boolean enableHardwareAcceleration();
     method public int getBackDisposition();
     method public int getCandidatesHiddenVisibility();
     method public android.view.inputmethod.InputBinding getCurrentInputBinding();
@@ -15760,11 +15759,12 @@
   }
 
   public class Ringtone {
-    method public int getStreamType();
+    method public deprecated int getStreamType();
     method public java.lang.String getTitle(android.content.Context);
     method public boolean isPlaying();
     method public void play();
-    method public void setStreamType(int);
+    method public void setAudioAttributes(android.media.AudioAttributes) throws java.lang.IllegalArgumentException;
+    method public deprecated void setStreamType(int);
     method public void stop();
   }
 
@@ -16429,7 +16429,6 @@
 
   public final class MediaProjection {
     method public void addCallback(android.media.projection.MediaProjection.Callback, android.os.Handler);
-    method public android.media.AudioRecord createAudioRecord(int, int, int, int);
     method public android.hardware.display.VirtualDisplay createVirtualDisplay(java.lang.String, int, int, int, int, android.view.Surface, android.hardware.display.VirtualDisplay.Callbacks, android.os.Handler);
     method public void removeCallback(android.media.projection.MediaProjection.Callback);
     method public void stop();
@@ -16716,6 +16715,7 @@
     method public void onPlaybackStateChanged(android.media.session.PlaybackState);
     method public void onQueueChanged(java.util.List<android.media.session.MediaSession.Track>);
     method public void onQueueTitleChanged(java.lang.CharSequence);
+    method public void onSessionDestroyed();
     method public void onSessionEvent(java.lang.String, android.os.Bundle);
     method public void onVolumeInfoChanged(android.media.session.MediaController.VolumeInfo);
   }
@@ -16912,7 +16912,7 @@
     method public static final android.net.Uri buildChannelLogoUri(long);
     method public static final android.net.Uri buildChannelLogoUri(android.net.Uri);
     method public static final android.net.Uri buildChannelUri(long);
-    method public static final android.net.Uri buildChannelUriForPassthroughTvInput(java.lang.String);
+    method public static final android.net.Uri buildChannelUriForPassthroughInput(java.lang.String);
     method public static final android.net.Uri buildChannelsUriForInput(java.lang.String);
     method public static final java.lang.String buildInputId(android.content.ComponentName);
     method public static final android.net.Uri buildProgramUri(long);
@@ -17044,7 +17044,7 @@
     method public java.lang.String getParentId();
     method public android.content.pm.ServiceInfo getServiceInfo();
     method public int getType();
-    method public boolean isPassthroughInputType();
+    method public boolean isPassthroughInput();
     method public android.graphics.drawable.Drawable loadIcon(android.content.Context);
     method public java.lang.CharSequence loadLabel(android.content.Context);
     method public void writeToParcel(android.os.Parcel, int);
@@ -22808,7 +22808,6 @@
     field public static final deprecated int FULL_WAKE_LOCK = 26; // 0x1a
     field public static final int ON_AFTER_RELEASE = 536870912; // 0x20000000
     field public static final int PARTIAL_WAKE_LOCK = 1; // 0x1
-    field public static final java.lang.String REBOOT_RECOVERY = "recovery";
     field public static final deprecated int SCREEN_BRIGHT_WAKE_LOCK = 10; // 0xa
     field public static final deprecated int SCREEN_DIM_WAKE_LOCK = 6; // 0x6
   }
@@ -23026,9 +23025,9 @@
     method public boolean isUserRunning(android.os.UserHandle);
     method public boolean isUserRunningOrStopping(android.os.UserHandle);
     method public boolean setRestrictionsChallenge(java.lang.String);
-    method public void setUserRestriction(java.lang.String, boolean);
-    method public void setUserRestrictions(android.os.Bundle);
-    method public void setUserRestrictions(android.os.Bundle, android.os.UserHandle);
+    method public deprecated void setUserRestriction(java.lang.String, boolean);
+    method public deprecated void setUserRestrictions(android.os.Bundle);
+    method public deprecated void setUserRestrictions(android.os.Bundle, android.os.UserHandle);
     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";
     field public static final java.lang.String DISALLOW_APPS_CONTROL = "no_control_apps";
@@ -25884,8 +25883,10 @@
     field public static final java.lang.String ACTION_SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO";
     field public static final java.lang.String ACTION_SOUND_SETTINGS = "android.settings.SOUND_SETTINGS";
     field public static final java.lang.String ACTION_SYNC_SETTINGS = "android.settings.SYNC_SETTINGS";
+    field public static final java.lang.String ACTION_USAGE_ACCESS_SETTINGS = "android.settings.USAGE_ACCESS_SETTINGS";
     field public static final java.lang.String ACTION_USER_DICTIONARY_SETTINGS = "android.settings.USER_DICTIONARY_SETTINGS";
     field public static final java.lang.String ACTION_VOICE_CONTROL_AIRPLANE_MODE = "android.settings.VOICE_CONTROL_AIRPLANE_MODE";
+    field public static final java.lang.String ACTION_VOICE_INPUT_SETTINGS = "android.settings.VOICE_INPUT_SETTINGS";
     field public static final java.lang.String ACTION_WIFI_IP_SETTINGS = "android.settings.WIFI_IP_SETTINGS";
     field public static final java.lang.String ACTION_WIFI_SETTINGS = "android.settings.WIFI_SETTINGS";
     field public static final java.lang.String ACTION_WIRELESS_SETTINGS = "android.settings.WIRELESS_SETTINGS";
@@ -28810,70 +28811,7 @@
 
 package android.telecomm {
 
-  public final class Call {
-    method public void addListener(android.telecomm.Call.Listener);
-    method public void answer(int);
-    method public void conference(android.telecomm.Call);
-    method public void disconnect();
-    method public java.util.List<java.lang.String> getCannedTextResponses();
-    method public java.util.List<android.telecomm.Call> getChildren();
-    method public java.util.List<android.telecomm.Call> getConferenceableCalls();
-    method public android.telecomm.Call.Details getDetails();
-    method public android.telecomm.Call getParent();
-    method public java.lang.String getRemainingPostDialSequence();
-    method public int getState();
-    method public android.telecomm.InCallService.VideoCall getVideoCall();
-    method public void hold();
-    method public void phoneAccountClicked();
-    method public void phoneAccountSelected(android.telecomm.PhoneAccountHandle);
-    method public void playDtmfTone(char);
-    method public void postDialContinue(boolean);
-    method public void reject(boolean, java.lang.String);
-    method public void removeListener(android.telecomm.Call.Listener);
-    method public void splitFromConference();
-    method public void stopDtmfTone();
-    method public void swapWithBackgroundCall();
-    method public void unhold();
-    field public static final int STATE_ACTIVE = 4; // 0x4
-    field public static final int STATE_CONNECTING = 9; // 0x9
-    field public static final int STATE_DIALING = 1; // 0x1
-    field public static final int STATE_DISCONNECTED = 7; // 0x7
-    field public static final int STATE_HOLDING = 3; // 0x3
-    field public static final int STATE_NEW = 0; // 0x0
-    field public static final int STATE_PRE_DIAL_WAIT = 8; // 0x8
-    field public static final int STATE_RINGING = 2; // 0x2
-  }
-
-  public static class Call.Details {
-    method public android.telecomm.PhoneAccountHandle getAccountHandle();
-    method public int getCallCapabilities();
-    method public java.lang.String getCallerDisplayName();
-    method public int getCallerDisplayNamePresentation();
-    method public long getConnectTimeMillis();
-    method public int getDisconnectCauseCode();
-    method public java.lang.String getDisconnectCauseMsg();
-    method public android.telecomm.GatewayInfo getGatewayInfo();
-    method public android.net.Uri getHandle();
-    method public int getHandlePresentation();
-    method public android.telecomm.StatusHints getStatusHints();
-    method public int getVideoState();
-  }
-
-  public static abstract class Call.Listener {
-    ctor public Call.Listener();
-    method public void onCallDestroyed(android.telecomm.Call);
-    method public void onCannedTextResponsesLoaded(android.telecomm.Call, java.util.List<java.lang.String>);
-    method public void onChildrenChanged(android.telecomm.Call, java.util.List<android.telecomm.Call>);
-    method public void onConferenceableCallsChanged(android.telecomm.Call, java.util.List<android.telecomm.Call>);
-    method public void onDetailsChanged(android.telecomm.Call, android.telecomm.Call.Details);
-    method public void onParentChanged(android.telecomm.Call, android.telecomm.Call);
-    method public void onPostDialWait(android.telecomm.Call, java.lang.String);
-    method public void onStartActivity(android.telecomm.Call, android.app.PendingIntent);
-    method public void onStateChanged(android.telecomm.Call, int);
-    method public void onVideoCallChanged(android.telecomm.Call, android.telecomm.InCallService.VideoCall);
-  }
-
-  public final class CallAudioState implements android.os.Parcelable {
+  public final class AudioState implements android.os.Parcelable {
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
@@ -28888,8 +28826,8 @@
     field public final int supportedRouteMask;
   }
 
-  public final class CallCameraCapabilities implements android.os.Parcelable {
-    ctor public CallCameraCapabilities(boolean, float, int, int);
+  public final class CameraCapabilities implements android.os.Parcelable {
+    ctor public CameraCapabilities(boolean, float, int, int);
     method public int describeContents();
     method public int getHeight();
     method public float getMaxZoom();
@@ -28899,55 +28837,18 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
-  public final class CallCapabilities {
-    method public static java.lang.String toString(int);
-    field public static final int ADD_CALL = 16; // 0x10
-    field public static final int ALL = 3327; // 0xcff
-    field public static final int GENERIC_CONFERENCE = 128; // 0x80
-    field public static final int HOLD = 1; // 0x1
-    field public static final int MERGE_CALLS = 4; // 0x4
-    field public static final int MUTE = 64; // 0x40
-    field public static final int RESPOND_VIA_TEXT = 32; // 0x20
-    field public static final int SUPPORTS_VT_LOCAL = 256; // 0x100
-    field public static final int SUPPORTS_VT_REMOTE = 512; // 0x200
-    field public static final int SUPPORT_HOLD = 2; // 0x2
-    field public static final int SWAP_CALLS = 8; // 0x8
-    field public static final int VoLTE = 1024; // 0x400
-    field public static final int VoWIFI = 2048; // 0x800
-  }
-
-  public class CallPropertyPresentation {
-    ctor public CallPropertyPresentation();
-    field public static final int ALLOWED = 1; // 0x1
-    field public static final int PAYPHONE = 4; // 0x4
-    field public static final int RESTRICTED = 2; // 0x2
-    field public static final int UNKNOWN = 3; // 0x3
-  }
-
-  public final class CallState extends java.lang.Enum {
-    method public static android.telecomm.CallState valueOf(java.lang.String);
-    method public static final android.telecomm.CallState[] values();
-    enum_constant public static final android.telecomm.CallState ACTIVE;
-    enum_constant public static final android.telecomm.CallState CONNECTING;
-    enum_constant public static final android.telecomm.CallState DIALING;
-    enum_constant public static final android.telecomm.CallState DISCONNECTED;
-    enum_constant public static final android.telecomm.CallState NEW;
-    enum_constant public static final android.telecomm.CallState ON_HOLD;
-    enum_constant public static final android.telecomm.CallState PRE_DIAL_WAIT;
-    enum_constant public static final android.telecomm.CallState RINGING;
-  }
-
   public abstract class Connection {
     ctor public Connection();
+    method public static android.telecomm.Connection createCanceledConnection();
+    method public static android.telecomm.Connection createFailedConnection(int, java.lang.String);
     method public final void destroy();
     method public final boolean getAudioModeIsVoip();
-    method public final android.telecomm.CallAudioState getCallAudioState();
+    method public final android.telecomm.AudioState getAudioState();
     method public final int getCallCapabilities();
     method public final java.lang.String getCallerDisplayName();
     method public final int getCallerDisplayNamePresentation();
-    method public static android.telecomm.Connection getCanceledConnection();
     method public final java.util.List<android.telecomm.Connection> getChildConnections();
-    method public static android.telecomm.Connection getFailedConnection(int, java.lang.String);
+    method public final java.util.List<android.telecomm.Connection> getConferenceableConnections();
     method public final int getFailureCode();
     method public final java.lang.String getFailureMessage();
     method public final android.net.Uri getHandle();
@@ -28955,7 +28856,7 @@
     method public final android.telecomm.Connection getParentConnection();
     method public final int getState();
     method public final android.telecomm.StatusHints getStatusHints();
-    method public final android.telecomm.ConnectionService.VideoCallProvider getVideoCallProvider();
+    method public final android.telecomm.Connection.VideoProvider getVideoProvider();
     method public final int getVideoState();
     method public final boolean isConferenceConnection();
     method public final boolean isRequestingRingback();
@@ -28970,10 +28871,9 @@
     method public void onPostDialContinue(boolean);
     method public void onReject();
     method public void onSeparate();
-    method public void onSetAudioState(android.telecomm.CallAudioState);
+    method public void onSetAudioState(android.telecomm.AudioState);
     method public void onSetState(int);
     method public void onStopDtmfTone();
-    method public void onSwapWithBackgroundCall();
     method public void onUnhold();
     method public final void setActive();
     method public final void setAudioModeIsVoip(boolean);
@@ -28992,31 +28892,55 @@
     method public final void setPostDialWait(java.lang.String);
     method public final void setRequestingRingback(boolean);
     method public final void setRinging();
-    method public final void setSignal(android.os.Bundle);
     method public final void setStatusHints(android.telecomm.StatusHints);
-    method public final void setVideoCallProvider(android.telecomm.ConnectionService.VideoCallProvider);
+    method public final void setVideoProvider(android.telecomm.Connection.VideoProvider);
     method public final void setVideoState(int);
     method public final void startActivityFromInCall(android.app.PendingIntent);
     method public static java.lang.String stateToString(int);
+    field public static final int STATE_ACTIVE = 4; // 0x4
+    field public static final int STATE_CANCELED = 8; // 0x8
+    field public static final int STATE_DIALING = 3; // 0x3
+    field public static final int STATE_DISCONNECTED = 6; // 0x6
+    field public static final int STATE_FAILED = 7; // 0x7
+    field public static final int STATE_HOLDING = 5; // 0x5
+    field public static final int STATE_INITIALIZING = 0; // 0x0
+    field public static final int STATE_NEW = 1; // 0x1
+    field public static final int STATE_RINGING = 2; // 0x2
   }
 
-  public final class Connection.State {
-    field public static final int ACTIVE = 4; // 0x4
-    field public static final int CANCELED = 8; // 0x8
-    field public static final int DIALING = 3; // 0x3
-    field public static final int DISCONNECTED = 6; // 0x6
-    field public static final int FAILED = 7; // 0x7
-    field public static final int HOLDING = 5; // 0x5
-    field public static final int INITIALIZING = 0; // 0x0
-    field public static final int NEW = 1; // 0x1
-    field public static final int RINGING = 2; // 0x2
+  public static abstract class Connection.VideoProvider {
+    ctor public Connection.VideoProvider();
+    method public void changeCallDataUsage(int);
+    method public void changeCameraCapabilities(android.telecomm.CameraCapabilities);
+    method public void changePeerDimensions(int, int);
+    method public void handleCallSessionEvent(int);
+    method public abstract void onRequestCallDataUsage();
+    method public abstract void onRequestCameraCapabilities();
+    method public abstract void onSendSessionModifyRequest(android.telecomm.VideoProfile);
+    method public abstract void onSendSessionModifyResponse(android.telecomm.VideoProfile);
+    method public abstract void onSetCamera(java.lang.String);
+    method public abstract void onSetDeviceOrientation(int);
+    method public abstract void onSetDisplaySurface(android.view.Surface);
+    method public abstract void onSetPauseImage(java.lang.String);
+    method public abstract void onSetPreviewSurface(android.view.Surface);
+    method public abstract void onSetZoom(float);
+    method public void receiveSessionModifyRequest(android.telecomm.VideoProfile);
+    method public void receiveSessionModifyResponse(int, android.telecomm.VideoProfile, android.telecomm.VideoProfile);
+    field public static final int SESSION_EVENT_CAMERA_FAILURE = 5; // 0x5
+    field public static final int SESSION_EVENT_CAMERA_READY = 6; // 0x6
+    field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
+    field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
+    field public static final int SESSION_EVENT_TX_START = 3; // 0x3
+    field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
+    field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
+    field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
+    field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
   }
 
   public final class ConnectionRequest implements android.os.Parcelable {
-    ctor public ConnectionRequest(android.telecomm.PhoneAccountHandle, java.lang.String, android.net.Uri, int, android.os.Bundle, int);
+    ctor public ConnectionRequest(android.telecomm.PhoneAccountHandle, android.net.Uri, int, android.os.Bundle, int);
     method public int describeContents();
     method public android.telecomm.PhoneAccountHandle getAccountHandle();
-    method public java.lang.String getCallId();
     method public android.os.Bundle getExtras();
     method public android.net.Uri getHandle();
     method public int getHandlePresentation();
@@ -29039,32 +28963,6 @@
     field public static final java.lang.String SERVICE_INTERFACE = "android.telecomm.ConnectionService";
   }
 
-  public static abstract interface ConnectionService.CreateConnectionResponse {
-    method public abstract void onCancel(android.telecomm.ConnectionRequest);
-    method public abstract void onFailure(android.telecomm.ConnectionRequest, int, java.lang.String);
-    method public abstract void onSuccess(android.telecomm.ConnectionRequest, CONNECTION);
-  }
-
-  public static abstract class ConnectionService.VideoCallProvider {
-    ctor public ConnectionService.VideoCallProvider();
-    method public void changeCallDataUsage(int);
-    method public void changeCameraCapabilities(android.telecomm.CallCameraCapabilities);
-    method public void changePeerDimensions(int, int);
-    method public void handleCallSessionEvent(int);
-    method public void onRequestCallDataUsage();
-    method public void onRequestCameraCapabilities();
-    method public void onSendSessionModifyRequest(android.telecomm.VideoCallProfile);
-    method public void onSendSessionModifyResponse(android.telecomm.VideoCallProfile);
-    method public void onSetCamera(java.lang.String);
-    method public void onSetDeviceOrientation(int);
-    method public void onSetDisplaySurface(android.view.Surface);
-    method public void onSetPauseImage(java.lang.String);
-    method public void onSetPreviewSurface(android.view.Surface);
-    method public void onSetZoom(float);
-    method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile);
-    method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
-  }
-
   public class GatewayInfo implements android.os.Parcelable {
     method public int describeContents();
     method public android.net.Uri getGatewayHandle();
@@ -29075,87 +28973,8 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
-  public final class InCallAdapter {
-    method public void answerCall(java.lang.String, int);
-    method public void disconnectCall(java.lang.String);
-    method public void holdCall(java.lang.String);
-    method public void mute(boolean);
-    method public void phoneAccountClicked(java.lang.String);
-    method public void phoneAccountSelected(java.lang.String, android.telecomm.PhoneAccountHandle);
-    method public void playDtmfTone(java.lang.String, char);
-    method public void postDialContinue(java.lang.String, boolean);
-    method public void rejectCall(java.lang.String, boolean, java.lang.String);
-    method public void setAudioRoute(int);
-    method public void stopDtmfTone(java.lang.String);
-    method public void swapWithBackgroundCall(java.lang.String);
-    method public void turnProximitySensorOff(boolean);
-    method public void turnProximitySensorOn();
-    method public void unholdCall(java.lang.String);
-  }
-
-  public abstract class InCallService extends android.app.Service {
-    ctor public InCallService();
-    method public android.telecomm.Phone getPhone();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public void onPhoneCreated(android.telecomm.Phone);
-    method public void onPhoneDestroyed(android.telecomm.Phone);
-  }
-
-  public static abstract class InCallService.VideoCall {
-    ctor public InCallService.VideoCall();
-    method public abstract void requestCallDataUsage();
-    method public abstract void requestCameraCapabilities();
-    method public abstract void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
-    method public abstract void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
-    method public abstract void setCamera(java.lang.String);
-    method public abstract void setDeviceOrientation(int);
-    method public abstract void setDisplaySurface(android.view.Surface);
-    method public abstract void setPauseImage(java.lang.String);
-    method public abstract void setPreviewSurface(android.view.Surface);
-    method public abstract void setVideoCallListener(android.telecomm.InCallService.VideoCall.Listener);
-    method public abstract void setZoom(float);
-    field public static final int SESSION_EVENT_CAMERA_FAILURE = 5; // 0x5
-    field public static final int SESSION_EVENT_CAMERA_READY = 6; // 0x6
-    field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
-    field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
-    field public static final int SESSION_EVENT_TX_START = 3; // 0x3
-    field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
-    field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
-    field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
-    field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
-  }
-
-  public static abstract class InCallService.VideoCall.Listener {
-    ctor public InCallService.VideoCall.Listener();
-    method public abstract void onCallDataUsageChanged(int);
-    method public abstract void onCallSessionEvent(int);
-    method public abstract void onCameraCapabilitiesChanged(android.telecomm.CallCameraCapabilities);
-    method public abstract void onPeerDimensionsChanged(int, int);
-    method public abstract void onSessionModifyRequestReceived(android.telecomm.VideoCallProfile);
-    method public abstract void onSessionModifyResponseReceived(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
-  }
-
-  public final class Phone {
-    method public final void addListener(android.telecomm.Phone.Listener);
-    method public final android.telecomm.CallAudioState getAudioState();
-    method public final java.util.List<android.telecomm.Call> getCalls();
-    method public final void removeListener(android.telecomm.Phone.Listener);
-    method public final void setAudioRoute(int);
-    method public final void setMuted(boolean);
-    method public final void setProximitySensorOff(boolean);
-    method public final void setProximitySensorOn();
-  }
-
-  public static abstract class Phone.Listener {
-    ctor public Phone.Listener();
-    method public void onAudioStateChanged(android.telecomm.Phone, android.telecomm.CallAudioState);
-    method public void onBringToForeground(android.telecomm.Phone, boolean);
-    method public void onCallAdded(android.telecomm.Phone, android.telecomm.Call);
-    method public void onCallRemoved(android.telecomm.Phone, android.telecomm.Call);
-  }
-
   public class PhoneAccount implements android.os.Parcelable {
-    ctor public PhoneAccount(android.telecomm.PhoneAccountHandle, android.net.Uri, java.lang.String, int, int, java.lang.CharSequence, java.lang.CharSequence);
+    method public static android.telecomm.PhoneAccount.Builder builder();
     method public int describeContents();
     method public android.telecomm.PhoneAccountHandle getAccountHandle();
     method public int getCapabilities();
@@ -29172,6 +28991,17 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
+  public static class PhoneAccount.Builder {
+    method public android.telecomm.PhoneAccount build();
+    method public android.telecomm.PhoneAccount.Builder withAccountHandle(android.telecomm.PhoneAccountHandle);
+    method public android.telecomm.PhoneAccount.Builder withCapabilities(int);
+    method public android.telecomm.PhoneAccount.Builder withHandle(android.net.Uri);
+    method public android.telecomm.PhoneAccount.Builder withIconResId(int);
+    method public android.telecomm.PhoneAccount.Builder withLabel(java.lang.CharSequence);
+    method public android.telecomm.PhoneAccount.Builder withShortDescription(java.lang.CharSequence);
+    method public android.telecomm.PhoneAccount.Builder withSubscriptionNumber(java.lang.String);
+  }
+
   public class PhoneAccountHandle implements android.os.Parcelable {
     ctor public PhoneAccountHandle(android.content.ComponentName, java.lang.String);
     method public int describeContents();
@@ -29181,6 +29011,31 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
+  public final class PhoneCapabilities {
+    method public static java.lang.String toString(int);
+    field public static final int ADD_CALL = 16; // 0x10
+    field public static final int ALL = 3327; // 0xcff
+    field public static final int GENERIC_CONFERENCE = 128; // 0x80
+    field public static final int HOLD = 1; // 0x1
+    field public static final int MERGE_CALLS = 4; // 0x4
+    field public static final int MUTE = 64; // 0x40
+    field public static final int RESPOND_VIA_TEXT = 32; // 0x20
+    field public static final int SUPPORTS_VT_LOCAL = 256; // 0x100
+    field public static final int SUPPORTS_VT_REMOTE = 512; // 0x200
+    field public static final int SUPPORT_HOLD = 2; // 0x2
+    field public static final int SWAP_CALLS = 8; // 0x8
+    field public static final int VoLTE = 1024; // 0x400
+    field public static final int VoWIFI = 2048; // 0x800
+  }
+
+  public class PropertyPresentation {
+    ctor public PropertyPresentation();
+    field public static final int ALLOWED = 1; // 0x1
+    field public static final int PAYPHONE = 4; // 0x4
+    field public static final int RESTRICTED = 2; // 0x2
+    field public static final int UNKNOWN = 3; // 0x3
+  }
+
   public final class RemoteConnection {
     method public void abort();
     method public void addListener(android.telecomm.RemoteConnection.Listener);
@@ -29207,9 +29062,8 @@
     method public void postDialContinue(boolean);
     method public void reject();
     method public void removeListener(android.telecomm.RemoteConnection.Listener);
-    method public void setAudioState(android.telecomm.CallAudioState);
+    method public void setAudioState(android.telecomm.AudioState);
     method public void stopDtmfTone();
-    method public void swapWithBackgroundCall();
     method public void unhold();
   }
 
@@ -29237,18 +29091,13 @@
     method public abstract void onResult(IN, OUT...);
   }
 
-  public abstract interface SimpleResponse {
-    method public abstract void onError(IN);
-    method public abstract void onResult(IN, OUT);
-  }
-
   public final class StatusHints implements android.os.Parcelable {
     ctor public StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
     method public int describeContents();
     method public android.content.ComponentName getComponentName();
     method public android.os.Bundle getExtras();
     method public android.graphics.drawable.Drawable getIcon(android.content.Context);
-    method public int getIconId();
+    method public int getIconResId();
     method public java.lang.CharSequence getLabel();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
@@ -29276,23 +29125,9 @@
     field public static final java.lang.String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.intent.extra.START_CALL_WITH_VIDEO_STATE";
   }
 
-  public class VideoCallImpl extends android.telecomm.InCallService.VideoCall {
-    method public void requestCallDataUsage();
-    method public void requestCameraCapabilities();
-    method public void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
-    method public void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
-    method public void setCamera(java.lang.String);
-    method public void setDeviceOrientation(int);
-    method public void setDisplaySurface(android.view.Surface);
-    method public void setPauseImage(java.lang.String);
-    method public void setPreviewSurface(android.view.Surface);
-    method public void setVideoCallListener(android.telecomm.InCallService.VideoCall.Listener);
-    method public void setZoom(float);
-  }
-
-  public class VideoCallProfile implements android.os.Parcelable {
-    ctor public VideoCallProfile(int);
-    ctor public VideoCallProfile(int, int);
+  public class VideoProfile implements android.os.Parcelable {
+    ctor public VideoProfile(int);
+    ctor public VideoProfile(int, int);
     method public int describeContents();
     method public int getQuality();
     method public int getVideoState();
@@ -29304,8 +29139,8 @@
     field public static final int QUALITY_MEDIUM = 2; // 0x2
   }
 
-  public static class VideoCallProfile.VideoState {
-    ctor public VideoCallProfile.VideoState();
+  public static class VideoProfile.VideoState {
+    ctor public VideoProfile.VideoState();
     method public static boolean isAudioOnly(int);
     method public static boolean isBidirectional(int);
     method public static boolean isPaused(int);
@@ -30811,6 +30646,7 @@
   public static class InputFilter.LengthFilter implements android.text.InputFilter {
     ctor public InputFilter.LengthFilter(int);
     method public java.lang.CharSequence filter(java.lang.CharSequence, int, int, android.text.Spanned, int, int);
+    method public int getMax();
   }
 
   public abstract interface InputType {
@@ -32619,6 +32455,7 @@
     method public void setTo(android.util.DisplayMetrics);
     method public void setToDefaults();
     field public static final int DENSITY_400 = 400; // 0x190
+    field public static final int DENSITY_560 = 560; // 0x230
     field public static final int DENSITY_DEFAULT = 160; // 0xa0
     field public static final int DENSITY_HIGH = 240; // 0xf0
     field public static final int DENSITY_LOW = 120; // 0x78
@@ -36044,6 +35881,7 @@
     method public android.view.accessibility.AccessibilityNodeInfo getLabelFor();
     method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy();
     method public int getLiveRegion();
+    method public int getMaxTextLength();
     method public int getMovementGranularities();
     method public java.lang.CharSequence getPackageName();
     method public android.view.accessibility.AccessibilityNodeInfo getParent();
@@ -36107,6 +35945,7 @@
     method public void setLabeledBy(android.view.View, int);
     method public void setLiveRegion(int);
     method public void setLongClickable(boolean);
+    method public void setMaxTextLength(int);
     method public void setMovementGranularities(int);
     method public void setMultiLine(boolean);
     method public void setPackageName(java.lang.CharSequence);
diff --git a/cmds/media/src/com/android/commands/media/Media.java b/cmds/media/src/com/android/commands/media/Media.java
index d9faf4c..b37f896 100644
--- a/cmds/media/src/com/android/commands/media/Media.java
+++ b/cmds/media/src/com/android/commands/media/Media.java
@@ -178,6 +178,13 @@
         public ControllerMonitor(ISessionController controller) {
             mController = controller;
         }
+
+        @Override
+        public void onSessionDestroyed() {
+            System.out.println("onSessionDestroyed. Enter q to quit.");
+
+        }
+
         @Override
         public void onEvent(String event, Bundle extras) {
             System.out.println("onSessionEvent event=" + event + ", extras=" + extras);
@@ -218,7 +225,7 @@
         void printUsageMessage() {
             try {
                 System.out.println("V2Monitoring session " + mController.getTag()
-                        + "...  available commands:");
+                        + "...  available commands: play, pause, next, previous");
             } catch (RemoteException e) {
                 System.out.println("Error trying to monitor session!");
             }
@@ -250,6 +257,14 @@
                         addNewline = false;
                     } else if ("q".equals(line) || "quit".equals(line)) {
                         break;
+                    } else if ("play".equals(line)) {
+                        mController.play();
+                    } else if ("pause".equals(line)) {
+                        mController.pause();
+                    } else if ("next".equals(line)) {
+                        mController.next();
+                    } else if ("previous".equals(line)) {
+                        mController.previous();
                     } else {
                         System.out.println("Invalid command: " + line);
                     }
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index c5e91e3..46d8ade 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -19,21 +19,22 @@
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
 import android.app.IActivityManager;
-import android.app.PackageDeleteObserver;
 import android.app.PackageInstallObserver;
 import android.content.ComponentName;
+import android.content.IIntentReceiver;
+import android.content.IIntentSender;
 import android.content.Intent;
+import android.content.IntentSender;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.FeatureInfo;
 import android.content.pm.IPackageDataObserver;
 import android.content.pm.IPackageInstaller;
 import android.content.pm.IPackageManager;
-import android.content.pm.InstallSessionInfo;
-import android.content.pm.InstallSessionParams;
 import android.content.pm.InstrumentationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInstaller;
-import android.content.pm.PackageInstaller.CommitCallback;
+import android.content.pm.PackageInstaller.SessionInfo;
+import android.content.pm.PackageInstaller.SessionParams;
 import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ParceledListSlice;
@@ -74,6 +75,8 @@
 import java.util.Comparator;
 import java.util.List;
 import java.util.WeakHashMap;
+import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.TimeUnit;
 
 public final class Pm {
     private static final String TAG = "Pm";
@@ -776,36 +779,6 @@
         }
     }
 
-    class LocalCommitCallback extends CommitCallback {
-        boolean finished;
-        boolean success;
-        String msg;
-
-        private void setResult(boolean success, String msg) {
-            synchronized (this) {
-                this.finished = true;
-                this.success = success;
-                this.msg = msg;
-                notifyAll();
-            }
-        }
-
-        @Override
-        public void onUserActionRequired(Intent intent) {
-            setResult(false, "Unexepected user action required!");
-        }
-
-        @Override
-        public void onSuccess() {
-            setResult(true, null);
-        }
-
-        @Override
-        public void onFailure(int failureReason, String msg, Bundle extras) {
-            setResult(false, msg);
-        }
-    }
-
     /**
      * Converts a failure code into a string by using reflection to find a matching constant
      * in PackageManager.
@@ -1007,8 +980,7 @@
     private void runInstallCreate() throws RemoteException {
         String installerPackageName = null;
 
-        final InstallSessionParams params = new InstallSessionParams(
-                InstallSessionParams.MODE_FULL_INSTALL);
+        final SessionParams params = new SessionParams(SessionParams.MODE_FULL_INSTALL);
         params.installFlags = PackageManager.INSTALL_ALL_USERS;
 
         String opt;
@@ -1031,7 +1003,7 @@
             } else if (opt.equals("-d")) {
                 params.installFlags |= PackageManager.INSTALL_ALLOW_DOWNGRADE;
             } else if (opt.equals("-p")) {
-                params.mode = InstallSessionParams.MODE_INHERIT_EXISTING;
+                params.mode = SessionParams.MODE_INHERIT_EXISTING;
             } else if (opt.equals("-S")) {
                 params.setSize(Long.parseLong(nextOptionData()));
             } else if (opt.equals("--abi")) {
@@ -1073,7 +1045,7 @@
             }
         }
 
-        final InstallSessionInfo info = mInstaller.getSessionInfo(sessionId);
+        final SessionInfo info = mInstaller.getSessionInfo(sessionId);
 
         PackageInstaller.Session session = null;
         InputStream in = null;
@@ -1117,22 +1089,20 @@
         try {
             session = new PackageInstaller.Session(mInstaller.openSession(sessionId));
 
-            final LocalCommitCallback callback = new LocalCommitCallback();
-            session.commit(callback);
+            final LocalIntentReceiver receiver = new LocalIntentReceiver();
+            session.commit(receiver.getIntentSender());
 
-            synchronized (callback) {
-                while (!callback.finished) {
-                    try {
-                        callback.wait();
-                    } catch (InterruptedException e) {
-                    }
-                }
-                if (!callback.success) {
-                    throw new IllegalStateException("Failure [" + callback.msg + "]");
-                }
+            final Intent result = receiver.getResult();
+            final int status = result.getIntExtra(PackageInstaller.EXTRA_STATUS,
+                    PackageInstaller.STATUS_FAILURE);
+            if (status == PackageInstaller.STATUS_SUCCESS) {
+                System.out.println("Success");
+            } else {
+                Log.e(TAG, "Failure details: " + result.getExtras());
+                System.out.println("Failure ["
+                        + result.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE) + "]");
+                return;
             }
-
-            System.out.println("Success");
         } finally {
             IoUtils.closeQuietly(session);
         }
@@ -1274,28 +1244,14 @@
         }
     }
 
-    class LocalPackageDeleteObserver extends PackageDeleteObserver {
-        boolean finished;
-        boolean result;
-
-        @Override
-        public void onPackageDeleted(String name, int returnCode, String msg) {
-            synchronized (this) {
-                finished = true;
-                result = returnCode == PackageManager.DELETE_SUCCEEDED;
-                notifyAll();
-            }
-        }
-    }
-
-    private void runUninstall() {
-        int unInstallFlags = 0;
+    private void runUninstall() throws RemoteException {
+        int flags = 0;
         int userId = UserHandle.USER_ALL;
 
         String opt;
         while ((opt=nextOption()) != null) {
             if (opt.equals("-k")) {
-                unInstallFlags |= PackageManager.DELETE_KEEP_DATA;
+                flags |= PackageManager.DELETE_KEEP_DATA;
             } else if (opt.equals("--user")) {
                 String param = nextArg();
                 if (isNumber(param)) {
@@ -1320,7 +1276,7 @@
 
         if (userId == UserHandle.USER_ALL) {
             userId = UserHandle.USER_OWNER;
-            unInstallFlags |= PackageManager.DELETE_ALL_USERS;
+            flags |= PackageManager.DELETE_ALL_USERS;
         } else {
             PackageInfo info;
             try {
@@ -1340,38 +1296,25 @@
             // user set flag so it disables rather than reverting to system
             // version of the app.
             if (isSystem) {
-                unInstallFlags |= PackageManager.DELETE_SYSTEM_APP;
+                flags |= PackageManager.DELETE_SYSTEM_APP;
             }
         }
 
-        boolean result = deletePackage(pkg, unInstallFlags, userId);
-        if (result) {
+        final LocalIntentReceiver receiver = new LocalIntentReceiver();
+        mInstaller.uninstall(pkg, flags, receiver.getIntentSender(), userId);
+
+        final Intent result = receiver.getResult();
+        final int status = result.getIntExtra(PackageInstaller.EXTRA_STATUS,
+                PackageInstaller.STATUS_FAILURE);
+        if (status == PackageInstaller.STATUS_SUCCESS) {
             System.out.println("Success");
         } else {
-            System.out.println("Failure");
+            Log.e(TAG, "Failure details: " + result.getExtras());
+            System.out.println("Failure ["
+                    + result.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE) + "]");
         }
     }
 
-    private boolean deletePackage(String packageName, int flags, int userId) {
-        LocalPackageDeleteObserver obs = new LocalPackageDeleteObserver();
-        try {
-            mInstaller.uninstall(packageName, flags, obs.getBinder(), userId);
-
-            synchronized (obs) {
-                while (!obs.finished) {
-                    try {
-                        obs.wait();
-                    } catch (InterruptedException e) {
-                    }
-                }
-            }
-        } catch (RemoteException e) {
-            System.err.println(e.toString());
-            System.err.println(PM_NOT_RUNNING_ERR);
-        }
-        return obs.result;
-    }
-
     static class ClearDataObserver extends IPackageDataObserver.Stub {
         boolean finished;
         boolean result;
@@ -1384,7 +1327,6 @@
                 notifyAll();
             }
         }
-
     }
 
     private void runClear() {
@@ -1703,6 +1645,10 @@
             throw new IllegalArgumentException("Missing ABI argument");
         }
 
+        if ("-".equals(abi)) {
+            return abi;
+        }
+
         final String[] supportedAbis = Build.SUPPORTED_ABIS;
         for (String supportedAbi : supportedAbis) {
             if (supportedAbi.equals(abi)) {
@@ -1713,6 +1659,35 @@
         throw new IllegalArgumentException("ABI " + abi + " not supported on this device");
     }
 
+    private static class LocalIntentReceiver {
+        private final SynchronousQueue<Intent> mResult = new SynchronousQueue<>();
+
+        private IIntentSender.Stub mLocalSender = new IIntentSender.Stub() {
+            @Override
+            public int send(int code, Intent intent, String resolvedType,
+                    IIntentReceiver finishedReceiver, String requiredPermission) {
+                try {
+                    mResult.offer(intent, 5, TimeUnit.SECONDS);
+                } catch (InterruptedException e) {
+                    throw new RuntimeException(e);
+                }
+                return 0;
+            }
+        };
+
+        public IntentSender getIntentSender() {
+            return new IntentSender((IIntentSender) mLocalSender);
+        }
+
+        public Intent getResult() {
+            try {
+                return mResult.poll(30, TimeUnit.SECONDS);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
     private String nextOption() {
         if (mNextArg >= mArgs.length) {
             return null;
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index fcfeddd..21c8b75 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -31,6 +31,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.Nullable;
+import android.annotation.SystemApi;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentCallbacks2;
 import android.content.ComponentName;
@@ -747,8 +748,8 @@
         }
     };
 
-    // Most recent call to setMediaPlaying().
-    boolean mMediaPlaying;
+    // Most recent call to requestVisibleBehind().
+    boolean mVisibleBehind;
 
     ArrayMap<String, LoaderManagerImpl> mAllLoaderManagers;
     LoaderManagerImpl mLoaderManager;
@@ -5314,6 +5315,7 @@
      *
      * @hide
      */
+    @SystemApi
     public void convertFromTranslucent() {
         try {
             mTranslucentCallback = null;
@@ -5350,6 +5352,7 @@
      *
      * @hide
      */
+    @SystemApi
     public boolean convertToTranslucent(TranslucentConversionListener callback,
             ActivityOptions options) {
         boolean drawComplete;
@@ -5406,12 +5409,13 @@
     }
 
     /**
-     * Activities that want to show media behind a translucent activity above them must call this
-     * method anytime before a return from {@link #onPause()}. If this call is successful
-     * then the activity should continue to play media when {@link #onPause()} is called, but must
-     * stop playing and release resources prior to or within the call to
-     * {@link #onStopMediaPlaying()}. If this call returns false the activity must stop
-     * playing and release resources immediately.
+     * Activities that want to remain visible behind a translucent activity above them must call
+     * this method anytime before a return from {@link #onPause()}. If this call is successful
+     * then the activity will remain visible when {@link #onPause()} is called, and can continue to
+     * play media in the background, but it must stop playing and release resources prior to or
+     * within the call to {@link #onVisibleBehindCancelled()}. If this call returns false, the 
+     * activity will not be visible in the background, and must release any media resources 
+     * immediately.
      *
      * <p>Only fullscreen opaque activities may make this call. I.e. this call is a nop
      * for dialog and translucent activities.
@@ -5419,85 +5423,86 @@
      * <p>False will be returned any time this method is call between the return of onPause and
      *      the next call to onResume.
      *
-     * @param playing true to notify the system that media is starting or continuing playing,
-     *                false to indicate that media has stopped or is stopping. Resources must
-     *                be released when passing false to this method.
-     * @return the resulting play state. If true the activity may continue playing media beyond
-     *      {@link #onPause()}, if false then the caller must stop playing and immediately
-     *      release all media resources. Returning false may occur in lieu of a call to
-     *      onReleaseMediaResources() so the return value must be checked.
+     * @param visible true to notify the system that the activity wishes to be visible behind other
+     *                translucent activities, false to indicate otherwise. Resources must be
+     *                released when passing false to this method.
+     * @return the resulting visibiity state. If true the activity may remain visible beyond
+     *      {@link #onPause()}. If false then the activity may not count on being visible behind
+     *      other translucent activities, and must stop any media playback and release resources.
+     *      Returning false may occur in lieu of a call to onVisibleBehindCancelled() so the return
+     *      value must be checked.
      *
-     * @see #isBackgroundMediaPlaying()
-     * @see #onStopMediaPlaying()
-     * @see #onBackgroundMediaPlayingChanged(boolean)
+     * @see #onVisibleBehindCancelled()
+     * @see #onBackgroundVisibleBehindChanged(boolean)
      */
-    public boolean setMediaPlaying(boolean playing) {
+    public boolean requestVisibleBehind(boolean visible) {
         if (!mResumed) {
-            // Do not permit paused or stopped activities to start playing.
-            playing = false;
+            // Do not permit paused or stopped activities to do this.
+            visible = false;
         }
         try {
-            mMediaPlaying = ActivityManagerNative.getDefault().setMediaPlaying(mToken, playing) &&
-                    playing;
+            mVisibleBehind = ActivityManagerNative.getDefault()
+                    .requestVisibleBehind(mToken, visible) && visible;
         } catch (RemoteException e) {
-            mMediaPlaying = false;
+            mVisibleBehind = false;
         }
-        return mMediaPlaying;
+        return mVisibleBehind;
     }
 
     /**
-     * Called when a translucent activity over playing media is becoming opaque or another
-     * activity is being launched. Activities that call {@link #setMediaPlaying(boolean)}
-     * must implement this method to at the minimum call
-     * <code>super.onStopMediaPlayback()</code>.
+     * Called when a translucent activity over this activity is becoming opaque or another
+     * activity is being launched. Activities that override this method must call
+     * <code>super.onVisibleBehindCancelled()</code> or a SuperNotCalledException will be thrown.
      *
-     * <p>When this method is called the activity has 500 msec to release the media resources.
+     * <p>When this method is called the activity has 500 msec to release any resources it may be
+     * using while visible in the background.
      * If the activity has not returned from this method in 500 msec the system will destroy
-     * the activity and kill the process in order to recover the media resources for another
+     * the activity and kill the process in order to recover the resources for another
      * process. Otherwise {@link #onStop()} will be called following return.
      *
-     * @see #setMediaPlaying(boolean)
-     * @see #isBackgroundMediaPlaying()
-     * @see #onBackgroundMediaPlayingChanged(boolean)
+     * @see #requestVisibleBehind(boolean)
+     * @see #onBackgroundVisibleBehindChanged(boolean)
      */
-    public void onStopMediaPlaying() {
+    public void onVisibleBehindCancelled() {
         mCalled = true;
     }
 
     /**
-     * Translucent activities may call this to determine if there is an activity below it that
-     * is playing media.
+     * Translucent activities may call this to determine if there is an activity below them that
+     * is currently set to be visible in the background.
      *
-     * @return true if media is playing according to the most recent call to
-     * {@link #setMediaPlaying(boolean)}, false otherwise.
+     * @return true if an activity below is set to visible according to the most recent call to
+     * {@link #requestVisibleBehind(boolean)}, false otherwise.
      *
-     * @see #setMediaPlaying(boolean)
-     * @see #onStopMediaPlaying()
-     * @see #onBackgroundMediaPlayingChanged(boolean)
+     * @see #requestVisibleBehind(boolean)
+     * @see #onVisibleBehindCancelled()
+     * @see #onBackgroundVisibleBehindChanged(boolean)
      * @hide
      */
-    public boolean isBackgroundMediaPlaying() {
+    @SystemApi
+    public boolean isBackgroundVisibleBehind() {
         try {
-            return ActivityManagerNative.getDefault().isBackgroundMediaPlaying(mToken);
+            return ActivityManagerNative.getDefault().isBackgroundVisibleBehind(mToken);
         } catch (RemoteException e) {
         }
         return false;
     }
 
     /**
-     * The topmost foreground activity will receive this call when an activity below it either
-     * starts or stops playing media.
+     * The topmost foreground activity will receive this call when the background visibility state
+     * of the activity below it changes.
      *
-     * This call may be a consequence of {@link #setMediaPlaying(boolean)} or might be
+     * This call may be a consequence of {@link #requestVisibleBehind(boolean)} or might be
      * due to a background activity finishing itself.
      *
-     * @param playing true if media playback is starting, false if it is stopping.
+     * @param visible true if a background activity is visible, false otherwise.
      *
-     * @see #setMediaPlaying(boolean)
-     * @see #isBackgroundMediaPlaying()
-     * @see #onStopMediaPlaying()
+     * @see #requestVisibleBehind(boolean)
+     * @see #onVisibleBehindCancelled()
+     * @hide
      */
-    public void onBackgroundMediaPlayingChanged(boolean playing) {
+    @SystemApi
+    public void onBackgroundVisibleBehindChanged(boolean visible) {
     }
 
     /**
@@ -6114,6 +6119,7 @@
      *
      * @hide
      */
+    @SystemApi
     public interface TranslucentConversionListener {
         /**
          * Callback made following {@link Activity#convertToTranslucent} once all visible Activities
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 311a8f55..31cb4d6 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -1942,9 +1942,9 @@
             return true;
         }
 
-        case DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION: {
+        case KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
-            dismissKeyguardOnNextActivity();
+            keyguardWaitingForActivityDrawn();
             reply.writeNoException();
             return true;
         }
@@ -2197,29 +2197,29 @@
             return true;
         }
 
-        case SET_MEDIA_PLAYING_TRANSACTION: {
+        case REQUEST_VISIBLE_BEHIND_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             IBinder token = data.readStrongBinder();
             boolean enable = data.readInt() > 0;
-            boolean success = setMediaPlaying(token, enable);
+            boolean success = requestVisibleBehind(token, enable);
             reply.writeNoException();
             reply.writeInt(success ? 1 : 0);
             return true;
         }
 
-        case IS_BG_MEDIA_PLAYING_TRANSACTION: {
+        case IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             IBinder token = data.readStrongBinder();
-            final boolean enabled = isBackgroundMediaPlaying(token);
+            final boolean enabled = isBackgroundVisibleBehind(token);
             reply.writeNoException();
             reply.writeInt(enabled ? 1 : 0);
             return true;
         }
 
-        case MEDIA_RESOURCES_RELEASED_TRANSACTION: {
+        case BACKGROUND_RESOURCES_RELEASED_TRANSACTION: {
             data.enforceInterface(IActivityManager.descriptor);
             IBinder token = data.readStrongBinder();
-            mediaResourcesReleased(token);
+            backgroundResourcesReleased(token);
             reply.writeNoException();
             return true;
         }
@@ -4738,11 +4738,11 @@
         reply.recycle();
     }
 
-    public void dismissKeyguardOnNextActivity() throws RemoteException {
+    public void keyguardWaitingForActivityDrawn() throws RemoteException {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
-        mRemote.transact(DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION, data, reply, 0);
+        mRemote.transact(KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0);
         reply.readException();
         data.recycle();
         reply.recycle();
@@ -5101,13 +5101,13 @@
     }
 
     @Override
-    public boolean setMediaPlaying(IBinder token, boolean playing) throws RemoteException {
+    public boolean requestVisibleBehind(IBinder token, boolean visible) throws RemoteException {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
         data.writeStrongBinder(token);
-        data.writeInt(playing ? 1 : 0);
-        mRemote.transact(SET_MEDIA_PLAYING_TRANSACTION, data, reply, 0);
+        data.writeInt(visible ? 1 : 0);
+        mRemote.transact(REQUEST_VISIBLE_BEHIND_TRANSACTION, data, reply, 0);
         reply.readException();
         boolean success = reply.readInt() > 0;
         data.recycle();
@@ -5116,26 +5116,27 @@
     }
 
     @Override
-    public boolean isBackgroundMediaPlaying(IBinder token) throws RemoteException {
+    public boolean isBackgroundVisibleBehind(IBinder token) throws RemoteException {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
         data.writeStrongBinder(token);
-        mRemote.transact(IS_BG_MEDIA_PLAYING_TRANSACTION, data, reply, 0);
+        mRemote.transact(IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION, data, reply, 0);
         reply.readException();
-        final boolean playing = reply.readInt() > 0;
+        final boolean visible = reply.readInt() > 0;
         data.recycle();
         reply.recycle();
-        return playing;
+        return visible;
     }
 
     @Override
-    public void mediaResourcesReleased(IBinder token) throws RemoteException {
+    public void backgroundResourcesReleased(IBinder token) throws RemoteException {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
         data.writeStrongBinder(token);
-        mRemote.transact(MEDIA_RESOURCES_RELEASED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
+        mRemote.transact(BACKGROUND_RESOURCES_RELEASED_TRANSACTION, data, reply,
+                IBinder.FLAG_ONEWAY);
         reply.readException();
         data.recycle();
         reply.recycle();
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 3a764fa..d9ea671 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -1155,13 +1155,13 @@
         }
 
         @Override
-        public void scheduleStopMediaPlaying(IBinder token) {
-            sendMessage(H.STOP_MEDIA_PLAYING, token);
+        public void scheduleCancelVisibleBehind(IBinder token) {
+            sendMessage(H.CANCEL_VISIBLE_BEHIND, token);
         }
 
         @Override
-        public void scheduleBackgroundMediaPlayingChanged(IBinder token, boolean playing) {
-            sendMessage(H.BACKGROUND_MEDIA_PLAYING_CHANGED, token, playing ? 1 : 0);
+        public void scheduleBackgroundVisibleBehindChanged(IBinder token, boolean visible) {
+            sendMessage(H.BACKGROUND_VISIBLE_BEHIND_CHANGED, token, visible ? 1 : 0);
         }
 
         public void scheduleEnterAnimationComplete(IBinder token) {
@@ -1217,8 +1217,8 @@
         public static final int TRANSLUCENT_CONVERSION_COMPLETE = 144;
         public static final int INSTALL_PROVIDER        = 145;
         public static final int ON_NEW_ACTIVITY_OPTIONS = 146;
-        public static final int STOP_MEDIA_PLAYING = 147;
-        public static final int BACKGROUND_MEDIA_PLAYING_CHANGED = 148;
+        public static final int CANCEL_VISIBLE_BEHIND = 147;
+        public static final int BACKGROUND_VISIBLE_BEHIND_CHANGED = 148;
         public static final int ENTER_ANIMATION_COMPLETE = 149;
 
         String codeToString(int code) {
@@ -1270,8 +1270,8 @@
                     case TRANSLUCENT_CONVERSION_COMPLETE: return "TRANSLUCENT_CONVERSION_COMPLETE";
                     case INSTALL_PROVIDER: return "INSTALL_PROVIDER";
                     case ON_NEW_ACTIVITY_OPTIONS: return "ON_NEW_ACTIVITY_OPTIONS";
-                    case STOP_MEDIA_PLAYING: return "STOP_MEDIA_PLAYING";
-                    case BACKGROUND_MEDIA_PLAYING_CHANGED: return "BACKGROUND_MEDIA_PLAYING_CHANGED";
+                    case CANCEL_VISIBLE_BEHIND: return "CANCEL_VISIBLE_BEHIND";
+                    case BACKGROUND_VISIBLE_BEHIND_CHANGED: return "BACKGROUND_VISIBLE_BEHIND_CHANGED";
                     case ENTER_ANIMATION_COMPLETE: return "ENTER_ANIMATION_COMPLETE";
                 }
             }
@@ -1491,11 +1491,11 @@
                     Pair<IBinder, ActivityOptions> pair = (Pair<IBinder, ActivityOptions>) msg.obj;
                     onNewActivityOptions(pair.first, pair.second);
                     break;
-                case STOP_MEDIA_PLAYING:
-                    handleStopMediaPlaying((IBinder) msg.obj);
+                case CANCEL_VISIBLE_BEHIND:
+                    handleCancelVisibleBehind((IBinder) msg.obj);
                     break;
-                case BACKGROUND_MEDIA_PLAYING_CHANGED:
-                    handleOnBackgroundMediaPlayingChanged((IBinder) msg.obj, msg.arg1 > 0);
+                case BACKGROUND_VISIBLE_BEHIND_CHANGED:
+                    handleOnBackgroundVisibleBehindChanged((IBinder) msg.obj, msg.arg1 > 0);
                     break;
                 case ENTER_ANIMATION_COMPLETE:
                     handleEnterAnimationComplete((IBinder) msg.obj);
@@ -1807,9 +1807,13 @@
         }
     }
 
-    public void installSystemApplicationInfo(ApplicationInfo info) {
+    public void installSystemApplicationInfo(ApplicationInfo info, ClassLoader classLoader) {
         synchronized (this) {
-            getSystemContext().installSystemApplicationInfo(info);
+            getSystemContext().installSystemApplicationInfo(info, classLoader);
+
+            // The code package for "android" in the system server needs
+            // to be the system context's package.
+            mPackages.put("android", new WeakReference<LoadedApk>(getSystemContext().mPackageInfo));
 
             // give ourselves a default profiler
             mProfiler = new Profiler();
@@ -2488,31 +2492,31 @@
         }
     }
 
-    public void handleStopMediaPlaying(IBinder token) {
+    public void handleCancelVisibleBehind(IBinder token) {
         ActivityClientRecord r = mActivities.get(token);
         if (r != null) {
             final Activity activity = r.activity;
-            if (activity.mMediaPlaying) {
+            if (activity.mVisibleBehind) {
                 activity.mCalled = false;
-                activity.onStopMediaPlaying();
+                activity.onVisibleBehindCancelled();
                 // Tick, tick, tick. The activity has 500 msec to return or it will be destroyed.
                 if (!activity.mCalled) {
                     throw new SuperNotCalledException("Activity " + activity.getLocalClassName() +
-                            " did not call through to super.onStopMediaPlayback()");
+                            " did not call through to super.onVisibleBehindCancelled()");
                 }
-                activity.mMediaPlaying = false;
+                activity.mVisibleBehind = false;
             }
         }
         try {
-            ActivityManagerNative.getDefault().mediaResourcesReleased(token);
+            ActivityManagerNative.getDefault().backgroundResourcesReleased(token);
         } catch (RemoteException e) {
         }
     }
 
-    public void handleOnBackgroundMediaPlayingChanged(IBinder token, boolean playing) {
+    public void handleOnBackgroundVisibleBehindChanged(IBinder token, boolean visible) {
         ActivityClientRecord r = mActivities.get(token);
         if (r != null) {
-            r.activity.onBackgroundMediaPlayingChanged(playing);
+            r.activity.onBackgroundVisibleBehindChanged(visible);
         }
     }
 
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java
index 039bad0..7d2f677 100644
--- a/core/java/android/app/ActivityTransitionCoordinator.java
+++ b/core/java/android/app/ActivityTransitionCoordinator.java
@@ -128,6 +128,7 @@
     protected static final String KEY_SNAPSHOT = "shared_element:bitmap";
     protected static final String KEY_SCALE_TYPE = "shared_element:scaleType";
     protected static final String KEY_IMAGE_MATRIX = "shared_element:imageMatrix";
+    protected static final String KEY_ELEVATION = "shared_element:elevation";
 
     protected static final ImageView.ScaleType[] SCALE_TYPE_VALUES = ImageView.ScaleType.values();
 
@@ -238,7 +239,7 @@
         return mWindow;
     }
 
-    protected ViewGroup getDecor() {
+    public ViewGroup getDecor() {
         return (mWindow == null) ? null : (ViewGroup) mWindow.getDecorView();
     }
 
@@ -393,6 +394,8 @@
 
         float z = sharedElementBundle.getFloat(KEY_TRANSLATION_Z);
         view.setTranslationZ(z);
+        float elevation = sharedElementBundle.getFloat(KEY_ELEVATION);
+        view.setElevation(elevation);
 
         float left = sharedElementBundle.getFloat(KEY_SCREEN_LEFT);
         float top = sharedElementBundle.getFloat(KEY_SCREEN_TOP);
@@ -499,6 +502,8 @@
         state.mBottom = view.getBottom();
         state.mMeasuredWidth = view.getMeasuredWidth();
         state.mMeasuredHeight = view.getMeasuredHeight();
+        state.mTranslationZ = view.getTranslationZ();
+        state.mElevation = view.getElevation();
         if (!(view instanceof ImageView)) {
             return state;
         }
@@ -557,7 +562,9 @@
                   imageView.setImageMatrix(state.mMatrix);
                 }
             }
-           int widthSpec = View.MeasureSpec.makeMeasureSpec(state.mMeasuredWidth,
+            view.setElevation(state.mElevation);
+            view.setTranslationZ(state.mTranslationZ);
+            int widthSpec = View.MeasureSpec.makeMeasureSpec(state.mMeasuredWidth,
                     View.MeasureSpec.EXACTLY);
             int heightSpec = View.MeasureSpec.makeMeasureSpec(state.mMeasuredHeight,
                     View.MeasureSpec.EXACTLY);
@@ -622,6 +629,7 @@
         sharedElementBundle.putFloat(KEY_SCREEN_TOP, tempBounds.top);
         sharedElementBundle.putFloat(KEY_SCREEN_BOTTOM, tempBounds.bottom);
         sharedElementBundle.putFloat(KEY_TRANSLATION_Z, view.getTranslationZ());
+        sharedElementBundle.putFloat(KEY_ELEVATION, view.getElevation());
 
         Parcelable bitmap = mListener.captureSharedElementSnapshot(view, tempMatrix, tempBounds);
         if (bitmap != null) {
@@ -801,5 +809,7 @@
         int mMeasuredHeight;
         ImageView.ScaleType mScaleType;
         Matrix mMatrix;
+        float mTranslationZ;
+        float mElevation;
     }
 }
diff --git a/core/java/android/app/ActivityTransitionState.java b/core/java/android/app/ActivityTransitionState.java
index 4f3b02c..613e248 100644
--- a/core/java/android/app/ActivityTransitionState.java
+++ b/core/java/android/app/ActivityTransitionState.java
@@ -17,9 +17,11 @@
 
 import android.os.Bundle;
 import android.os.ResultReceiver;
+import android.transition.Transition;
 import android.util.ArrayMap;
 import android.util.SparseArray;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.Window;
 
 import java.lang.ref.WeakReference;
@@ -245,13 +247,23 @@
         } else {
             if (!mHasExited) {
                 mHasExited = true;
+                Transition enterViewsTransition = null;
+                ViewGroup decor = null;
                 if (mEnterTransitionCoordinator != null) {
+                    enterViewsTransition = mEnterTransitionCoordinator.getEnterViewsTransition();
+                    decor = mEnterTransitionCoordinator.getDecor();
                     mEnterTransitionCoordinator.cancelEnter();
                     mEnterTransitionCoordinator = null;
+                    if (enterViewsTransition != null && decor != null) {
+                        enterViewsTransition.pause(decor);
+                    }
                 }
 
                 ExitTransitionCoordinator exitCoordinator =
                         new ExitTransitionCoordinator(activity, mEnteringNames, null, null, true);
+                if (enterViewsTransition != null && decor != null) {
+                    enterViewsTransition.resume(decor);
+                }
                 exitCoordinator.startExit(activity.mResultCode, activity.mResultData);
             }
             return true;
diff --git a/core/java/android/app/AlarmClockInfo.java b/core/java/android/app/AlarmClockInfo.java
deleted file mode 100644
index 0ccaf02..0000000
--- a/core/java/android/app/AlarmClockInfo.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package android.app;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * An immutable description of an alarm clock.
- *
- * @see AlarmManager#setAlarmClock
- * @see AlarmManager#getNextAlarmClock
- */
-public class AlarmClockInfo implements Parcelable {
-
-    private final long mTriggerTime;
-    private final PendingIntent mShowIntent;
-
-    /**
-     * Creates a new alarm clock description.
-     *
-     * @param triggerTime time at which the underlying alarm is triggered in wall time milliseconds
-     *                    since the epoch
-     * @param showIntent an intent that can be used to show or edit details of
-     *                        the alarm clock.
-     */
-    public AlarmClockInfo(long triggerTime, PendingIntent showIntent) {
-        mTriggerTime = triggerTime;
-        mShowIntent = showIntent;
-    }
-
-    /**
-     * Use the {@link #CREATOR}
-     * @hide
-     */
-    AlarmClockInfo(Parcel in) {
-        mTriggerTime = in.readLong();
-        mShowIntent = in.readParcelable(PendingIntent.class.getClassLoader());
-    }
-
-    /**
-     * Returns the time at which the alarm is going to trigger.
-     *
-     * This value is UTC wall clock time in milliseconds, as returned by
-     * {@link System#currentTimeMillis()} for example.
-     */
-    public long getTriggerTime() {
-        return mTriggerTime;
-    }
-
-    /**
-     * Returns an intent intent that can be used to show or edit details of the alarm clock in
-     * the application that scheduled it.
-     *
-     * <p class="note">Beware that any application can retrieve and send this intent, potentially
-     * with additional fields filled in. See
-     * {@link PendingIntent#send(android.content.Context, int, android.content.Intent)
-     * PendingIntent.send()} and {@link android.content.Intent#fillIn Intent.fillIn()}
-     * for details.
-     */
-    public PendingIntent getShowIntent() {
-        return mShowIntent;
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeLong(mTriggerTime);
-        dest.writeParcelable(mShowIntent, flags);
-    }
-
-    public static final Creator<AlarmClockInfo> CREATOR = new Creator<AlarmClockInfo>() {
-        @Override
-        public AlarmClockInfo createFromParcel(Parcel in) {
-            return new AlarmClockInfo(in);
-        }
-
-        @Override
-        public AlarmClockInfo[] newArray(int size) {
-            return new AlarmClockInfo[size];
-        }
-    };
-}
diff --git a/core/java/android/app/AlarmClockInfo.aidl b/core/java/android/app/AlarmManager.aidl
similarity index 93%
rename from core/java/android/app/AlarmClockInfo.aidl
rename to core/java/android/app/AlarmManager.aidl
index 58a3644..c9547b2 100644
--- a/core/java/android/app/AlarmClockInfo.aidl
+++ b/core/java/android/app/AlarmManager.aidl
@@ -16,4 +16,4 @@
 
 package android.app;
 
-parcelable AlarmClockInfo;
+parcelable AlarmManager.AlarmClockInfo;
diff --git a/core/java/android/app/AlarmManager.java b/core/java/android/app/AlarmManager.java
index fa2d64c..a64e0ed 100644
--- a/core/java/android/app/AlarmManager.java
+++ b/core/java/android/app/AlarmManager.java
@@ -20,9 +20,12 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Build;
+import android.os.Parcel;
+import android.os.Parcelable;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.WorkSource;
+import android.os.Parcelable.Creator;
 
 /**
  * This class provides access to the system alarm services.  These allow you
@@ -579,4 +582,85 @@
             return null;
         }
     }
+
+    /**
+     * An immutable description of an alarm clock.
+     *
+     * @see AlarmManager#setAlarmClock
+     * @see AlarmManager#getNextAlarmClock
+     */
+    public static final class AlarmClockInfo implements Parcelable {
+
+        private final long mTriggerTime;
+        private final PendingIntent mShowIntent;
+
+        /**
+         * Creates a new alarm clock description.
+         *
+         * @param triggerTime time at which the underlying alarm is triggered in wall time 
+         *                    milliseconds since the epoch
+         * @param showIntent an intent that can be used to show or edit details of
+         *                        the alarm clock.
+         */
+        public AlarmClockInfo(long triggerTime, PendingIntent showIntent) {
+            mTriggerTime = triggerTime;
+            mShowIntent = showIntent;
+        }
+
+        /**
+         * Use the {@link #CREATOR}
+         * @hide
+         */
+        AlarmClockInfo(Parcel in) {
+            mTriggerTime = in.readLong();
+            mShowIntent = in.readParcelable(PendingIntent.class.getClassLoader());
+        }
+
+        /**
+         * Returns the time at which the alarm is going to trigger.
+         *
+         * This value is UTC wall clock time in milliseconds, as returned by
+         * {@link System#currentTimeMillis()} for example.
+         */
+        public long getTriggerTime() {
+            return mTriggerTime;
+        }
+
+        /**
+         * Returns an intent intent that can be used to show or edit details of the alarm clock in
+         * the application that scheduled it.
+         *
+         * <p class="note">Beware that any application can retrieve and send this intent, 
+         * potentially with additional fields filled in. See
+         * {@link PendingIntent#send(android.content.Context, int, android.content.Intent)
+         * PendingIntent.send()} and {@link android.content.Intent#fillIn Intent.fillIn()}
+         * for details.
+         */
+        public PendingIntent getShowIntent() {
+            return mShowIntent;
+        }
+
+        @Override
+        public int describeContents() {
+            return 0;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeLong(mTriggerTime);
+            dest.writeParcelable(mShowIntent, flags);
+        }
+
+        public static final Creator<AlarmClockInfo> CREATOR = new Creator<AlarmClockInfo>() {
+            @Override
+            public AlarmClockInfo createFromParcel(Parcel in) {
+                return new AlarmClockInfo(in);
+            }
+
+            @Override
+            public AlarmClockInfo[] newArray(int size) {
+                return new AlarmClockInfo[size];
+            }
+        };
+    }
 }
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index a52186a..a6b3608 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -451,8 +451,8 @@
             null, //VIBRATE
             null, //READ_CONTACTS
             null, //WRITE_CONTACTS
-            null, //READ_CALL_LOG
-            null, //WRITE_CALL_LOG
+            UserManager.DISALLOW_OUTGOING_CALLS, //READ_CALL_LOG
+            UserManager.DISALLOW_OUTGOING_CALLS, //WRITE_CALL_LOG
             null, //READ_CALENDAR
             null, //WRITE_CALENDAR
             UserManager.DISALLOW_SHARE_LOCATION, //WIFI_SCAN
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index a935dc0..b2812e3 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -1568,7 +1568,7 @@
         synchronized (mLock) {
             if (mInstaller == null) {
                 try {
-                    mInstaller = new PackageInstaller(this, mPM.getPackageInstaller(),
+                    mInstaller = new PackageInstaller(mContext, this, mPM.getPackageInstaller(),
                             mContext.getPackageName(), mContext.getUserId());
                 } catch (RemoteException e) {
                     throw e.rethrowAsRuntimeException();
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java
index e9d4bd9..52b69e1 100644
--- a/core/java/android/app/ApplicationThreadNative.java
+++ b/core/java/android/app/ApplicationThreadNative.java
@@ -648,21 +648,21 @@
             return true;
         }
 
-        case STOP_MEDIA_PLAYING_TRANSACTION:
+        case CANCEL_VISIBLE_BEHIND_TRANSACTION:
         {
             data.enforceInterface(IApplicationThread.descriptor);
             IBinder token = data.readStrongBinder();
-            scheduleStopMediaPlaying(token);
+            scheduleCancelVisibleBehind(token);
             reply.writeNoException();
             return true;
         }
 
-        case BACKGROUND_MEDIA_PLAYING_CHANGED_TRANSACTION:
+        case BACKGROUND_VISIBLE_BEHIND_CHANGED_TRANSACTION:
         {
             data.enforceInterface(IApplicationThread.descriptor);
             IBinder token = data.readStrongBinder();
             boolean enabled = data.readInt() > 0;
-            scheduleBackgroundMediaPlayingChanged(token, enabled);
+            scheduleBackgroundVisibleBehindChanged(token, enabled);
             reply.writeNoException();
             return true;
         }
@@ -1334,21 +1334,23 @@
     }
 
     @Override
-    public void scheduleStopMediaPlaying(IBinder token) throws RemoteException {
+    public void scheduleCancelVisibleBehind(IBinder token) throws RemoteException {
         Parcel data = Parcel.obtain();
         data.writeInterfaceToken(IApplicationThread.descriptor);
         data.writeStrongBinder(token);
-        mRemote.transact(STOP_MEDIA_PLAYING_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
+        mRemote.transact(CANCEL_VISIBLE_BEHIND_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
         data.recycle();
     }
 
     @Override
-    public void scheduleBackgroundMediaPlayingChanged(IBinder token, boolean enabled) throws RemoteException {
+    public void scheduleBackgroundVisibleBehindChanged(IBinder token, boolean enabled)
+            throws RemoteException {
         Parcel data = Parcel.obtain();
         data.writeInterfaceToken(IApplicationThread.descriptor);
         data.writeStrongBinder(token);
         data.writeInt(enabled ? 1 : 0);
-        mRemote.transact(BACKGROUND_MEDIA_PLAYING_CHANGED_TRANSACTION, data, null, IBinder.FLAG_ONEWAY);
+        mRemote.transact(BACKGROUND_VISIBLE_BEHIND_CHANGED_TRANSACTION, data, null,
+                IBinder.FLAG_ONEWAY);
         data.recycle();
     }
 
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 4cf8cb4..da343ac 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -2301,8 +2301,8 @@
         }
     }
 
-    void installSystemApplicationInfo(ApplicationInfo info) {
-        mPackageInfo.installSystemApplicationInfo(info);
+    void installSystemApplicationInfo(ApplicationInfo info, ClassLoader classLoader) {
+        mPackageInfo.installSystemApplicationInfo(info, classLoader);
     }
 
     final void scheduleFinalCleanup(String who, String what) {
diff --git a/core/java/android/app/DatePickerDialog.java b/core/java/android/app/DatePickerDialog.java
index a78b137..1e556d6 100644
--- a/core/java/android/app/DatePickerDialog.java
+++ b/core/java/android/app/DatePickerDialog.java
@@ -24,8 +24,10 @@
 import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.Button;
 import android.widget.DatePicker;
 import android.widget.DatePicker.OnDateChangedListener;
+import android.widget.DatePicker.ValidationCallback;
 
 import com.android.internal.R;
 
@@ -49,7 +51,6 @@
     private final Calendar mCalendar;
 
     private boolean mTitleNeedsUpdate = true;
-    private boolean mIsCanceled = false;
 
     /**
      * The callback used to indicate the user is done filling in the date.
@@ -83,7 +84,7 @@
 
     static int resolveDialogTheme(Context context, int resid) {
         if (resid == 0) {
-            TypedValue outValue = new TypedValue();
+            final TypedValue outValue = new TypedValue();
             context.getTheme().resolveAttribute(R.attr.datePickerDialogTheme, outValue, true);
             return outValue.resourceId;
         } else {
@@ -99,68 +100,41 @@
      * @param monthOfYear The initial month of the dialog.
      * @param dayOfMonth The initial day of the dialog.
      */
-    public DatePickerDialog(Context context,
-            int theme,
-            OnDateSetListener listener,
-            int year,
-            int monthOfYear,
-            int dayOfMonth) {
+    public DatePickerDialog(Context context, int theme, OnDateSetListener listener, int year,
+            int monthOfYear, int dayOfMonth) {
         super(context, resolveDialogTheme(context, theme));
 
         mDateSetListener = listener;
         mCalendar = Calendar.getInstance();
 
-        Context themeContext = getContext();
-
-        final LayoutInflater inflater = (LayoutInflater) themeContext.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
+        final Context themeContext = getContext();
+        final LayoutInflater inflater = LayoutInflater.from(themeContext);
         final View view = inflater.inflate(R.layout.date_picker_dialog, null);
         setView(view);
+        setButton(BUTTON_POSITIVE, themeContext.getString(R.string.ok), this);
+        setButton(BUTTON_NEGATIVE, themeContext.getString(R.string.cancel), this);
         setButtonPanelLayoutHint(LAYOUT_HINT_SIDE);
 
-        // Initialize state
         mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
-        mDatePicker.setShowDoneButton(true);
-        mDatePicker.setDismissCallback(new DatePicker.DatePickerDismissCallback() {
-            @Override
-            public void dismiss(DatePicker view, boolean isCancel, int year, int month, int dayOfMonth) {
-                mIsCanceled = isCancel;
-                if (!isCancel) {
-                    mDateSetListener.onDateSet(view, year, month, dayOfMonth);
-                }
-                DatePickerDialog.this.dismiss();
-            }
-        });
         mDatePicker.init(year, monthOfYear, dayOfMonth, this);
-    }
-
-    public void onClick(DialogInterface dialog, int which) {
-        tryNotifyDateSet();
+        mDatePicker.setValidationCallback(mValidationCallback);
     }
 
     @Override
-    public void cancel() {
-        mIsCanceled = true;
-        super.cancel();
-    }
-
-    @Override
-    protected void onStop() {
-        tryNotifyDateSet();
-        super.onStop();
-    }
-
-    public void onDateChanged(DatePicker view, int year,
-            int month, int day) {
+    public void onDateChanged(DatePicker view, int year, int month, int day) {
         mDatePicker.init(year, month, day, this);
         updateTitle(year, month, day);
     }
 
-    private void tryNotifyDateSet() {
-        if (mDateSetListener != null && !mIsCanceled) {
-            mDatePicker.clearFocus();
-            mDateSetListener.onDateSet(mDatePicker, mDatePicker.getYear(),
-                    mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        switch (which) {
+            case BUTTON_POSITIVE:
+                if (mDateSetListener != null) {
+                    mDateSetListener.onDateSet(mDatePicker, mDatePicker.getYear(),
+                            mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
+                }
+                break;
         }
     }
 
@@ -208,7 +182,7 @@
 
     @Override
     public Bundle onSaveInstanceState() {
-        Bundle state = super.onSaveInstanceState();
+        final Bundle state = super.onSaveInstanceState();
         state.putInt(YEAR, mDatePicker.getYear());
         state.putInt(MONTH, mDatePicker.getMonth());
         state.putInt(DAY, mDatePicker.getDayOfMonth());
@@ -218,9 +192,19 @@
     @Override
     public void onRestoreInstanceState(Bundle savedInstanceState) {
         super.onRestoreInstanceState(savedInstanceState);
-        int year = savedInstanceState.getInt(YEAR);
-        int month = savedInstanceState.getInt(MONTH);
-        int day = savedInstanceState.getInt(DAY);
+        final int year = savedInstanceState.getInt(YEAR);
+        final int month = savedInstanceState.getInt(MONTH);
+        final int day = savedInstanceState.getInt(DAY);
         mDatePicker.init(year, month, day, this);
     }
+
+    private final ValidationCallback mValidationCallback = new ValidationCallback() {
+        @Override
+        public void onValidationChanged(boolean valid) {
+            final Button positive = getButton(BUTTON_POSITIVE);
+            if (positive != null) {
+                positive.setEnabled(valid);
+            }
+        }
+    };
 }
diff --git a/core/java/android/app/EnterTransitionCoordinator.java b/core/java/android/app/EnterTransitionCoordinator.java
index 54c5bc4..75ecbd9 100644
--- a/core/java/android/app/EnterTransitionCoordinator.java
+++ b/core/java/android/app/EnterTransitionCoordinator.java
@@ -59,6 +59,7 @@
     private boolean mIsViewsTransitionComplete;
     private boolean mIsSharedElementTransitionComplete;
     private ArrayList<Matrix> mSharedElementParentMatrices;
+    private Transition mEnterViewsTransition;
 
     public EnterTransitionCoordinator(Activity activity, ResultReceiver resultReceiver,
             ArrayList<String> sharedElementNames, boolean isReturning) {
@@ -104,6 +105,10 @@
         triggerViewsReady(mapNamedElements(accepted, localNames));
     }
 
+    public Transition getEnterViewsTransition() {
+        return mEnterViewsTransition;
+    }
+
     @Override
     protected void viewsReady(ArrayMap<String, View> sharedElements) {
         super.viewsReady(sharedElements);
@@ -399,10 +404,17 @@
                 viewTransitionComplete();
             } else {
                 viewsTransition.forceVisibility(View.INVISIBLE, true);
-                setTransitionAlpha(mTransitioningViews, 1);
                 viewsTransition.addListener(new ContinueTransitionListener() {
                     @Override
+                    public void onTransitionStart(Transition transition) {
+                        mEnterViewsTransition = transition;
+                        setTransitionAlpha(mTransitioningViews, 1);
+                        super.onTransitionStart(transition);
+                    }
+
+                    @Override
                     public void onTransitionEnd(Transition transition) {
+                        mEnterViewsTransition = null;
                         transition.removeListener(this);
                         viewTransitionComplete();
                         super.onTransitionEnd(transition);
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 772e132..2dbc4ea 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -383,7 +383,7 @@
 
     public void showBootMessage(CharSequence msg, boolean always) throws RemoteException;
 
-    public void dismissKeyguardOnNextActivity() throws RemoteException;
+    public void keyguardWaitingForActivityDrawn() throws RemoteException;
 
     public boolean targetTaskAffinityMatchesActivity(IBinder token, String destAffinity)
             throws RemoteException;
@@ -443,9 +443,9 @@
     public void setTaskDescription(IBinder token, ActivityManager.TaskDescription values)
             throws RemoteException;
 
-    public boolean setMediaPlaying(IBinder token, boolean playing) throws RemoteException;
-    public boolean isBackgroundMediaPlaying(IBinder token) throws RemoteException;
-    public void mediaResourcesReleased(IBinder token) throws RemoteException;
+    public boolean requestVisibleBehind(IBinder token, boolean visible) throws RemoteException;
+    public boolean isBackgroundVisibleBehind(IBinder token) throws RemoteException;
+    public void backgroundResourcesReleased(IBinder token) throws RemoteException;
 
     public void notifyLaunchTaskBehindComplete(IBinder token) throws RemoteException;
     public void notifyEnterAnimationComplete(IBinder token) throws RemoteException;
@@ -688,7 +688,6 @@
     int UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+135;
     int GET_PROCESS_PSS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+136;
     int SHOW_BOOT_MESSAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+137;
-    int DISMISS_KEYGUARD_ON_NEXT_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+138;
     int KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+139;
     int GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+140;
     int REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+141;
@@ -754,10 +753,11 @@
     int STOP_LOCK_TASK_BY_CURRENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+222;
     int FINISH_VOICE_TASK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+223;
     int IS_TOP_OF_TASK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+224;
-    int SET_MEDIA_PLAYING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+225;
-    int IS_BG_MEDIA_PLAYING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+226;
-    int MEDIA_RESOURCES_RELEASED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+227;
+    int REQUEST_VISIBLE_BEHIND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+225;
+    int IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+226;
+    int BACKGROUND_RESOURCES_RELEASED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+227;
     int NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+228;
     int START_ACTIVITY_FROM_RECENTS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 229;
     int NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+230;
+    int KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+231;
 }
diff --git a/core/java/android/app/IAlarmManager.aidl b/core/java/android/app/IAlarmManager.aidl
index fb33706..194082e 100644
--- a/core/java/android/app/IAlarmManager.aidl
+++ b/core/java/android/app/IAlarmManager.aidl
@@ -16,7 +16,7 @@
 */
 package android.app;
 
-import android.app.AlarmClockInfo;
+import android.app.AlarmManager;
 import android.app.PendingIntent;
 import android.os.WorkSource;
 
@@ -29,11 +29,11 @@
 	/** windowLength == 0 means exact; windowLength < 0 means the let the OS decide */
     void set(int type, long triggerAtTime, long windowLength,
             long interval, in PendingIntent operation, in WorkSource workSource,
-            in AlarmClockInfo alarmClock);
+            in AlarmManager.AlarmClockInfo alarmClock);
     boolean setTime(long millis);
     void setTimeZone(String zone);
     void remove(in PendingIntent operation);
-    AlarmClockInfo getNextAlarmClock(int userId);
+    AlarmManager.AlarmClockInfo getNextAlarmClock(int userId);
 }
 
 
diff --git a/core/java/android/app/IApplicationThread.java b/core/java/android/app/IApplicationThread.java
index 4a1fda4..01b6fdf 100644
--- a/core/java/android/app/IApplicationThread.java
+++ b/core/java/android/app/IApplicationThread.java
@@ -145,8 +145,8 @@
     void setProcessState(int state) throws RemoteException;
     void scheduleInstallProvider(ProviderInfo provider) throws RemoteException;
     void updateTimePrefs(boolean is24Hour) throws RemoteException;
-    void scheduleStopMediaPlaying(IBinder token) throws RemoteException;
-    void scheduleBackgroundMediaPlayingChanged(IBinder token, boolean enabled) throws RemoteException;
+    void scheduleCancelVisibleBehind(IBinder token) throws RemoteException;
+    void scheduleBackgroundVisibleBehindChanged(IBinder token, boolean enabled) throws RemoteException;
     void scheduleEnterAnimationComplete(IBinder token) throws RemoteException;
 
     String descriptor = "android.app.IApplicationThread";
@@ -202,7 +202,7 @@
     int SET_PROCESS_STATE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+49;
     int SCHEDULE_INSTALL_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+50;
     int UPDATE_TIME_PREFS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+51;
-    int STOP_MEDIA_PLAYING_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+52;
-    int BACKGROUND_MEDIA_PLAYING_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+53;
+    int CANCEL_VISIBLE_BEHIND_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+52;
+    int BACKGROUND_VISIBLE_BEHIND_CHANGED_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+53;
     int ENTER_ANIMATION_COMPLETE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+54;
 }
diff --git a/core/java/android/app/INotificationManager.aidl b/core/java/android/app/INotificationManager.aidl
index 4b65934..e8f6818 100644
--- a/core/java/android/app/INotificationManager.aidl
+++ b/core/java/android/app/INotificationManager.aidl
@@ -66,7 +66,7 @@
     boolean setZenModeConfig(in ZenModeConfig config);
     oneway void notifyConditions(String pkg, in IConditionProvider provider, in Condition[] conditions);
     oneway void requestZenModeConditions(in IConditionListener callback, int relevance);
-    oneway void setZenModeCondition(in Uri conditionId);
+    oneway void setZenModeCondition(in Condition condition);
     oneway void setAutomaticZenModeConditions(in Uri[] conditionIds);
     Condition[] getAutomaticZenModeConditions();
 }
\ No newline at end of file
diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java
index db91742a..50e3a10 100644
--- a/core/java/android/app/KeyguardManager.java
+++ b/core/java/android/app/KeyguardManager.java
@@ -16,6 +16,7 @@
 
 package android.app;
 
+import android.content.Intent;
 import android.os.Binder;
 import android.os.RemoteException;
 import android.os.IBinder;
@@ -24,7 +25,7 @@
 import android.view.WindowManagerGlobal;
 
 /**
- * Class that can be used to lock and unlock the keyboard. Get an instance of this 
+ * Class that can be used to lock and unlock the keyboard. Get an instance of this
  * class by calling {@link android.content.Context#getSystemService(java.lang.String)}
  * with argument {@link android.content.Context#KEYGUARD_SERVICE}. The
  * actual class to control the keyboard locking is
@@ -34,6 +35,45 @@
     private IWindowManager mWM;
 
     /**
+     * Intent used to prompt user for device credentials.
+     * @hide
+     */
+    public static final String ACTION_CONFIRM_DEVICE_CREDENTIAL =
+            "android.app.action.CONFIRM_DEVICE_CREDENTIAL";
+
+    /**
+     * A CharSequence dialog title to show to the user when used with a
+     * {@link #ACTION_CONFIRM_DEVICE_CREDENTIAL}.
+     * @hide
+     */
+    public static final String EXTRA_TITLE = "android.app.extra.TITLE";
+
+    /**
+     * A CharSequence description to show to the user when used with
+     * {@link #ACTION_CONFIRM_DEVICE_CREDENTIAL}.
+     * @hide
+     */
+    public static final String EXTRA_DESCRIPTION = "android.app.extra.DESCRIPTION";
+
+    /**
+     * Get an intent to prompt the user to confirm credentials (pin, pattern or password)
+     * for the current user of the device. The caller is expected to launch this activity using
+     * {@link android.app.Activity#startActivityForResult(Intent, int)} and check for
+     * {@link android.app.Activity#RESULT_OK} if the user successfully completes the challenge.
+     *
+     * @return the intent for launching the activity or null if no password is required.
+     **/
+    public Intent getConfirmDeviceCredentialIntent(CharSequence title, CharSequence description) {
+        if (!isKeyguardSecure()) return null;
+        Intent intent = new Intent(ACTION_CONFIRM_DEVICE_CREDENTIAL);
+        intent.putExtra(EXTRA_TITLE, title);
+        intent.putExtra(EXTRA_DESCRIPTION, description);
+        // For security reasons, only allow this to come from system settings.
+        intent.setPackage("com.android.settings");
+        return intent;
+    }
+
+    /**
      * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD}
      * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED}
      * instead; this allows you to seamlessly hide the keyguard as your application
@@ -58,7 +98,7 @@
          *
          * A good place to call this is from {@link android.app.Activity#onResume()}
          *
-         * Note: This call has no effect while any {@link android.app.admin.DevicePolicyManager} 
+         * Note: This call has no effect while any {@link android.app.admin.DevicePolicyManager}
          * is enabled that requires a password.
          *
          * <p>This method requires the caller to hold the permission
@@ -121,7 +161,7 @@
      * permissions be requested.
      *
      * Enables you to lock or unlock the keyboard. Get an instance of this class by
-     * calling {@link android.content.Context#getSystemService(java.lang.String) Context.getSystemService()}. 
+     * calling {@link android.content.Context#getSystemService(java.lang.String) Context.getSystemService()}.
      * This class is wrapped by {@link android.app.KeyguardManager KeyguardManager}.
      * @param tag A tag that informally identifies who you are (for debugging who
      *   is disabling he keyguard).
diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java
index 24c2835..e0c7816 100644
--- a/core/java/android/app/LoadedApk.java
+++ b/core/java/android/app/LoadedApk.java
@@ -40,6 +40,7 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.util.AndroidRuntimeException;
+import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.view.DisplayAdjustments;
@@ -199,9 +200,10 @@
     /**
      * Sets application info about the system package.
      */
-    void installSystemApplicationInfo(ApplicationInfo info) {
+    void installSystemApplicationInfo(ApplicationInfo info, ClassLoader classLoader) {
         assert info.packageName.equals("android");
         mApplicationInfo = info;
+        mClassLoader = classLoader;
     }
 
     public String getPackageName() {
@@ -262,10 +264,6 @@
                 if (!Objects.equals(mPackageName, ActivityThread.currentPackageName())) {
                     final String isa = VMRuntime.getRuntime().vmInstructionSet();
                     try {
-                        // TODO: We can probably do away with the isa argument since
-                        // the AM and PM have enough information to figure this out
-                        // themselves. If we do need it, we should match it against the
-                        // list of devices ISAs before sending it down to installd.
                         ActivityThread.getPackageManager().performDexOptIfNeeded(mPackageName, isa);
                     } catch (RemoteException re) {
                         // Ignored.
@@ -646,8 +644,17 @@
     }
 
     private void rewriteRValues(ClassLoader cl, String packageName, int id) {
+        final Class<?> rClazz;
         try {
-            final Class<?> rClazz = cl.loadClass(packageName + ".R");
+            rClazz = cl.loadClass(packageName + ".R");
+        } catch (ClassNotFoundException e) {
+            // This is not necessarily an error, as some packages do not ship with resources
+            // (or they do not need rewriting).
+            Log.i(TAG, "Could not find R class for package '" + packageName + "'");
+            return;
+        }
+
+        try {
             Class<?>[] declaredClasses = rClazz.getDeclaredClasses();
             for (Class<?> clazz : declaredClasses) {
                 try {
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 90b8b86..5f58839 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -279,6 +279,7 @@
      *
      * @deprecated Use {@link #audioAttributes} instead.
      */
+    @Deprecated
     public static final int STREAM_DEFAULT = -1;
 
     /**
@@ -288,6 +289,7 @@
      *
      * @deprecated Use {@link #audioAttributes} instead.
      */
+    @Deprecated
     public int audioStreamType = STREAM_DEFAULT;
 
     /**
@@ -2193,6 +2195,7 @@
          * @deprecated use {@link #setSound(Uri, AudioAttributes)} instead.
          * @see Notification#sound
          */
+        @Deprecated
         public Builder setSound(Uri sound, int streamType) {
             mSound = sound;
             mAudioStreamType = streamType;
@@ -2574,9 +2577,21 @@
         }
 
         private RemoteViews applyStandardTemplate(int resId, boolean fitIn1U) {
+            final boolean largeFontScale
+                    = mContext.getResources().getConfiguration().fontScale >= 1.25f;
+
             Bitmap profileIcon = getProfileBadge();
             RemoteViews contentView = new BuilderRemoteViews(mContext.getPackageName(),
                     mOriginatingUserId, resId);
+
+            if (largeFontScale) {
+                // Make a little extra room for the bigger text.
+                final int margin = (int) mContext.getResources()
+                        .getDimensionPixelSize(R.dimen.notification_large_font_vert_pad);
+                contentView.setViewPadding(R.id.line1, 0, margin, 0, 0);
+                contentView.setViewPadding(R.id.line3, 0, 0, 0, margin);
+            }
+
             boolean showLine3 = false;
             boolean showLine2 = false;
 
@@ -3218,7 +3233,7 @@
         }
 
         private int getBigTextLayoutResource() {
-            return R.layout.notification_template_material_big_text;
+            return getBigBaseLayoutResource();
         }
 
         private int getInboxLayoutResource() {
diff --git a/core/java/android/app/TimePickerDialog.java b/core/java/android/app/TimePickerDialog.java
index a2f3050..697c5d8 100644
--- a/core/java/android/app/TimePickerDialog.java
+++ b/core/java/android/app/TimePickerDialog.java
@@ -19,13 +19,14 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnClickListener;
-import android.os.Build;
 import android.os.Bundle;
 import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.Button;
 import android.widget.TimePicker;
 import android.widget.TimePicker.OnTimeChangedListener;
+import android.widget.TimePicker.ValidationCallback;
 
 import com.android.internal.R;
 
@@ -35,8 +36,19 @@
  * <p>See the <a href="{@docRoot}guide/topics/ui/controls/pickers.html">Pickers</a>
  * guide.</p>
  */
-public class TimePickerDialog extends AlertDialog
-        implements OnClickListener, OnTimeChangedListener {
+public class TimePickerDialog extends AlertDialog implements OnClickListener,
+        OnTimeChangedListener {
+
+    private static final String HOUR = "hour";
+    private static final String MINUTE = "minute";
+    private static final String IS_24_HOUR = "is24hour";
+
+    private final TimePicker mTimePicker;
+    private final OnTimeSetListener mTimeSetCallback;
+
+    private final int mInitialHourOfDay;
+    private final int mInitialMinute;
+    private final boolean mIs24HourView;
 
     /**
      * The callback interface used to indicate the user is done filling in
@@ -52,19 +64,6 @@
         void onTimeSet(TimePicker view, int hourOfDay, int minute);
     }
 
-    private static final String HOUR = "hour";
-    private static final String MINUTE = "minute";
-    private static final String IS_24_HOUR = "is24hour";
-
-    private final TimePicker mTimePicker;
-    private final OnTimeSetListener mTimeSetCallback;
-
-    int mInitialHourOfDay;
-    int mInitialMinute;
-    boolean mIs24HourView;
-
-    private boolean mIsCanceled;
-
     /**
      * @param context Parent.
      * @param callBack How parent is notified.
@@ -80,7 +79,7 @@
 
     static int resolveDialogTheme(Context context, int resid) {
         if (resid == 0) {
-            TypedValue outValue = new TypedValue();
+            final TypedValue outValue = new TypedValue();
             context.getTheme().resolveAttribute(R.attr.timePickerDialogTheme, outValue, true);
             return outValue.resourceId;
         } else {
@@ -96,10 +95,8 @@
      * @param minute The initial minute.
      * @param is24HourView Whether this is a 24 hour view, or AM/PM.
      */
-    public TimePickerDialog(Context context,
-            int theme,
-            OnTimeSetListener callBack,
-            int hourOfDay, int minute, boolean is24HourView) {
+    public TimePickerDialog(Context context, int theme, OnTimeSetListener callBack, int hourOfDay,
+            int minute, boolean is24HourView) {
         super(context, resolveDialogTheme(context, theme));
 
         mTimeSetCallback = callBack;
@@ -108,72 +105,51 @@
         mIs24HourView = is24HourView;
 
         final Context themeContext = getContext();
-
-        final int targetSdkVersion = themeContext.getApplicationInfo().targetSdkVersion;
-        if (targetSdkVersion < Build.VERSION_CODES.L) {
-            setIcon(0);
-            setTitle(R.string.time_picker_dialog_title);
-        }
-
         final LayoutInflater inflater = LayoutInflater.from(themeContext);
         final View view = inflater.inflate(R.layout.time_picker_dialog, null);
         setView(view);
+        setButton(BUTTON_POSITIVE, themeContext.getString(R.string.ok), this);
+        setButton(BUTTON_NEGATIVE, themeContext.getString(R.string.cancel), this);
 
         mTimePicker = (TimePicker) view.findViewById(R.id.timePicker);
-        mTimePicker.setShowDoneButton(true);
-        // If time picker layout has no done button, add a dialog button.
-        if (!mTimePicker.isShowDoneButton()) {
-            setButton(BUTTON_POSITIVE, themeContext.getText(R.string.date_time_done), this);
-        }
-
-        mTimePicker.setDismissCallback(new TimePicker.TimePickerDismissCallback() {
-            @Override
-            public void dismiss(TimePicker view, boolean isCancel, int hourOfDay, int minute) {
-                mIsCanceled = isCancel;
-                if (!isCancel) {
-                    mTimeSetCallback.onTimeSet(view, hourOfDay, minute);
-                    TimePickerDialog.this.dismiss();
-                } else {
-                    TimePickerDialog.this.cancel();
-                }
-            }
-        });
         mTimePicker.setIs24HourView(mIs24HourView);
         mTimePicker.setCurrentHour(mInitialHourOfDay);
         mTimePicker.setCurrentMinute(mInitialMinute);
         mTimePicker.setOnTimeChangedListener(this);
+        mTimePicker.setValidationCallback(mValidationCallback);
     }
 
-    public void onClick(DialogInterface dialog, int which) {
-        tryNotifyTimeSet();
-    }
-
-    public void updateTime(int hourOfDay, int minutOfHour) {
-        mTimePicker.setCurrentHour(hourOfDay);
-        mTimePicker.setCurrentMinute(minutOfHour);
-    }
-
+    @Override
     public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
         /* do nothing */
     }
 
-    private void tryNotifyTimeSet() {
-        if (mTimeSetCallback != null && !mIsCanceled) {
-            mTimePicker.clearFocus();
-            mTimeSetCallback.onTimeSet(mTimePicker, mTimePicker.getCurrentHour(),
-                    mTimePicker.getCurrentMinute());
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        switch (which) {
+            case BUTTON_POSITIVE:
+                if (mTimeSetCallback != null) {
+                    mTimeSetCallback.onTimeSet(mTimePicker, mTimePicker.getCurrentHour(),
+                            mTimePicker.getCurrentMinute());
+                }
+                break;
         }
     }
 
-    @Override
-    protected void onStop() {
-        tryNotifyTimeSet();
-        super.onStop();
+    /**
+     * Sets the current time.
+     *
+     * @param hourOfDay The current hour within the day.
+     * @param minuteOfHour The current minute within the hour.
+     */
+    public void updateTime(int hourOfDay, int minuteOfHour) {
+        mTimePicker.setCurrentHour(hourOfDay);
+        mTimePicker.setCurrentMinute(minuteOfHour);
     }
 
     @Override
     public Bundle onSaveInstanceState() {
-        Bundle state = super.onSaveInstanceState();
+        final Bundle state = super.onSaveInstanceState();
         state.putInt(HOUR, mTimePicker.getCurrentHour());
         state.putInt(MINUTE, mTimePicker.getCurrentMinute());
         state.putBoolean(IS_24_HOUR, mTimePicker.is24HourView());
@@ -183,10 +159,20 @@
     @Override
     public void onRestoreInstanceState(Bundle savedInstanceState) {
         super.onRestoreInstanceState(savedInstanceState);
-        int hour = savedInstanceState.getInt(HOUR);
-        int minute = savedInstanceState.getInt(MINUTE);
+        final int hour = savedInstanceState.getInt(HOUR);
+        final int minute = savedInstanceState.getInt(MINUTE);
         mTimePicker.setIs24HourView(savedInstanceState.getBoolean(IS_24_HOUR));
         mTimePicker.setCurrentHour(hour);
         mTimePicker.setCurrentMinute(minute);
     }
+
+    private final ValidationCallback mValidationCallback = new ValidationCallback() {
+        @Override
+        public void onValidationChanged(boolean valid) {
+            final Button positive = getButton(BUTTON_POSITIVE);
+            if (positive != null) {
+                positive.setEnabled(valid);
+            }
+        }
+    };
 }
diff --git a/core/java/android/app/UiModeManager.java b/core/java/android/app/UiModeManager.java
index f79eb04..0a255f7 100644
--- a/core/java/android/app/UiModeManager.java
+++ b/core/java/android/app/UiModeManager.java
@@ -125,15 +125,15 @@
     public static final int ENABLE_CAR_MODE_GO_CAR_HOME = 0x0001;
 
     /**
-     * Flag for use with {@link #enableCarMode(int)}: do not hold full wake lock
-     * while in car mode. By default, when this flag is not set, the system may hold
-     * a full wake lock to keep the screen turned on while in car mode.
-     * Setting this flag disables such behavior and the screen may be turned off if
-     * there is no other user activity and no other full wake lock held.
+     * Flag for use with {@link #enableCarMode(int)}: allow sleep mode while in car mode.
+     * By default, when this flag is not set, the system may hold a full wake lock to keep the
+     * screen turned on and prevent the system from entering sleep mode while in car mode.
+     * Setting this flag disables such behavior and the system may enter sleep mode
+     * if there is no other user activity and no other wake lock held.
      * Setting this flag can be relevant for a car dock application that does not require the
      * screen kept on.
      */
-    public static final int ENABLE_CAR_MODE_NO_WAKE_LOCK = 0x0002;
+    public static final int ENABLE_CAR_MODE_ALLOW_SLEEP = 0x0002;
 
     /**
      * Force device into car mode, like it had been placed in the car dock.
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index ca6b1e8..5350d70 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -1708,7 +1708,7 @@
      * storage.  If the result is {@link #ENCRYPTION_STATUS_ACTIVATING} or
      * {@link #ENCRYPTION_STATUS_ACTIVE}, no further action is required.
      *
-     * @return current status of encryption.  The value will be one of
+     * @return current status of encryption. The value will be one of
      * {@link #ENCRYPTION_STATUS_UNSUPPORTED}, {@link #ENCRYPTION_STATUS_INACTIVE},
      * {@link #ENCRYPTION_STATUS_ACTIVATING}, or{@link #ENCRYPTION_STATUS_ACTIVE}.
      */
@@ -1729,15 +1729,18 @@
     }
 
     /**
-     * Installs the given certificate as a User CA.
+     * Installs the given certificate as a user CA.
+     *
+     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+     * @param certBuffer encoded form of the certificate to install.
      *
      * @return false if the certBuffer cannot be parsed or installation is
-     *         interrupted, otherwise true
+     *         interrupted, true otherwise.
      */
-    public boolean installCaCert(ComponentName who, byte[] certBuffer) {
+    public boolean installCaCert(ComponentName admin, byte[] certBuffer) {
         if (mService != null) {
             try {
-                return mService.installCaCert(who, certBuffer);
+                return mService.installCaCert(admin, certBuffer);
             } catch (RemoteException e) {
                 Log.w(TAG, "Failed talking with device policy service", e);
             }
@@ -1746,13 +1749,16 @@
     }
 
     /**
-     * Uninstalls the given certificate from the list of User CAs, if present.
+     * Uninstalls the given certificate from trusted user CAs, if present.
+     *
+     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+     * @param certBuffer encoded form of the certificate to remove.
      */
-    public void uninstallCaCert(ComponentName who, byte[] certBuffer) {
+    public void uninstallCaCert(ComponentName admin, byte[] certBuffer) {
         if (mService != null) {
             try {
                 final String alias = getCaCertAlias(certBuffer);
-                mService.uninstallCaCert(who, alias);
+                mService.uninstallCaCert(admin, alias);
             } catch (CertificateException e) {
                 Log.w(TAG, "Unable to parse certificate", e);
             } catch (RemoteException e) {
@@ -1762,16 +1768,47 @@
     }
 
     /**
-     * Returns whether there are any user-installed CA certificates.
+     * Returns all CA certificates that are currently trusted, excluding system CA certificates.
+     * If a user has installed any certificates by other means than device policy these will be
+     * included too.
+     *
+     * @return a List of byte[] arrays, each encoding one user CA certificate.
      */
-    public boolean hasAnyCaCertsInstalled() {
-        TrustedCertificateStore certStore = new TrustedCertificateStore();
-        Set<String> aliases = certStore.userAliases();
-        return aliases != null && !aliases.isEmpty();
+    public List<byte[]> getInstalledCaCerts() {
+        final TrustedCertificateStore certStore = new TrustedCertificateStore();
+        List<byte[]> certs = new ArrayList<byte[]>();
+        for (String alias : certStore.userAliases()) {
+            try {
+                certs.add(certStore.getCertificate(alias).getEncoded());
+            } catch (CertificateException ce) {
+                Log.w(TAG, "Could not encode certificate: " + alias, ce);
+            }
+        }
+        return certs;
     }
 
     /**
-     * Returns whether this certificate has been installed as a User CA.
+     * Uninstalls all custom trusted CA certificates from the profile. Certificates installed by
+     * means other than device policy will also be removed, except for system CA certificates.
+     *
+     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
+     */
+    public void uninstallAllUserCaCerts(ComponentName admin) {
+        if (mService != null) {
+            for (String alias : new TrustedCertificateStore().userAliases()) {
+                try {
+                    mService.uninstallCaCert(admin, alias);
+                } catch (RemoteException re) {
+                    Log.w(TAG, "Failed talking with device policy service", re);
+                }
+            }
+        }
+    }
+
+    /**
+     * Returns whether this certificate is installed as a trusted CA.
+     *
+     * @param certBuffer encoded form of the certificate to look up.
      */
     public boolean hasCaCertInstalled(byte[] certBuffer) {
         try {
diff --git a/core/java/android/app/backup/BackupManager.java b/core/java/android/app/backup/BackupManager.java
index e9297b9..1bb4eba 100644
--- a/core/java/android/app/backup/BackupManager.java
+++ b/core/java/android/app/backup/BackupManager.java
@@ -229,6 +229,28 @@
     }
 
     /**
+     * Enable/disable data restore at application install time.  When enabled, app
+     * installation will include an attempt to fetch the app's historical data from
+     * the archival restore dataset (if any).  When disabled, no such attempt will
+     * be made.
+     *
+     * <p>Callers must hold the android.permission.BACKUP permission to use this method.
+     *
+     * @hide
+     */
+    @SystemApi
+    public void setAutoRestore(boolean isEnabled) {
+        checkServiceBinder();
+        if (sService != null) {
+            try {
+                sService.setAutoRestore(isEnabled);
+            } catch (RemoteException e) {
+                Log.e(TAG, "setAutoRestore() couldn't connect");
+            }
+        }
+    }
+
+    /**
      * Identify the currently selected transport.  Callers must hold the
      * android.permission.BACKUP permission to use this method.
      * @return The name of the currently active backup transport.  In case of
diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java
index a767246..02f70c8 100644
--- a/core/java/android/appwidget/AppWidgetProviderInfo.java
+++ b/core/java/android/appwidget/AppWidgetProviderInfo.java
@@ -271,13 +271,13 @@
      * @return The provider icon.
      */
     public final Drawable loadIcon(@NonNull Context context, int density) {
-        return loadDrawable(context, density, providerInfo.getIconResource());
+        return loadDrawable(context, density, providerInfo.getIconResource(), true);
     }
 
     /**
      * Loads a preview of what the AppWidget will look like after it's configured.
-     * If not supplied, the AppWidget's icon will be used. A client can optionally
-     * provide a desired deinsity such as {@link android.util.DisplayMetrics#DENSITY_LOW}
+     * A client can optionally provide a desired density such as
+     * {@link android.util.DisplayMetrics#DENSITY_LOW}
      * {@link android.util.DisplayMetrics#DENSITY_MEDIUM}, etc. If no density is
      * provided, the density of the current display will be used.
      * <p>
@@ -288,10 +288,10 @@
      * @param context Context for accessing resources.
      * @param density The optional desired density as per
      *         {@link android.util.DisplayMetrics#densityDpi}.
-     * @return The widget preview image.
+     * @return The widget preview image or null if preview image is not available.
      */
     public final Drawable loadPreviewImage(@NonNull Context context, int density) {
-        return loadDrawable(context, density, previewImage);
+        return loadDrawable(context, density, previewImage, false);
     }
 
     /**
@@ -361,7 +361,8 @@
         return 0;
     }
 
-    private Drawable loadDrawable(Context context, int density, int resourceId) {
+    private Drawable loadDrawable(Context context, int density, int resourceId,
+            boolean loadDefaultIcon) {
         try {
             Resources resources = context.getPackageManager().getResourcesForApplication(
                     providerInfo.applicationInfo);
@@ -374,7 +375,7 @@
         } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) {
             /* ignore */
         }
-        return providerInfo.loadIcon(context.getPackageManager());
+        return loadDefaultIcon ? providerInfo.loadIcon(context.getPackageManager()) : null;
     }
 
     /**
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 42b8dbf..f0b609a 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1428,6 +1428,9 @@
                 if (VDBG) Log.d(TAG, "onBluetoothServiceDown: " + mService);
                 synchronized (mManagerCallback) {
                     mService = null;
+                    mLeScanClients.clear();
+                    if (sBluetoothLeAdvertiser != null) sBluetoothLeAdvertiser.cleanup();
+                    if (sBluetoothLeScanner != null) sBluetoothLeScanner.cleanup();
                     for (IBluetoothManagerCallback cb : mProxyServiceStateCallbacks ){
                         try {
                             if (cb != null) {
diff --git a/core/java/android/bluetooth/BluetoothGattServer.java b/core/java/android/bluetooth/BluetoothGattServer.java
index 5a39dd6..c8df60e 100644
--- a/core/java/android/bluetooth/BluetoothGattServer.java
+++ b/core/java/android/bluetooth/BluetoothGattServer.java
@@ -519,6 +519,7 @@
      * @param characteristic The local characteristic that has been updated
      * @param confirm true to request confirmation from the client (indication),
      *                false to send a notification
+     * @throws IllegalArgumentException
      * @return true, if the notification has been triggered successfully
      */
     public boolean notifyCharacteristicChanged(BluetoothDevice device,
@@ -529,6 +530,11 @@
         BluetoothGattService service = characteristic.getService();
         if (service == null) return false;
 
+        if (characteristic.getValue() == null) {
+            throw new IllegalArgumentException("Chracteristic value is empty. Use "
+                    + "BluetoothGattCharacteristic#setvalue to update");
+        }
+
         try {
             mService.sendNotification(mServerIf, device.getAddress(),
                     service.getType(), service.getInstanceId(),
diff --git a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
index 331ebfc..f6315ac 100644
--- a/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
+++ b/core/java/android/bluetooth/le/BluetoothLeAdvertiser.java
@@ -175,6 +175,15 @@
         }
     }
 
+    /**
+     * Cleans up advertise clients. Should be called when bluetooth is down.
+     *
+     * @hide
+     */
+    public void cleanup() {
+        mLeAdvertisers.clear();
+    }
+
     // Compute the size of the advertise data.
     private int totalBytes(AdvertiseData data) {
         if (data == null) {
diff --git a/core/java/android/bluetooth/le/BluetoothLeScanner.java b/core/java/android/bluetooth/le/BluetoothLeScanner.java
index 7c3cbc6..988cea5 100644
--- a/core/java/android/bluetooth/le/BluetoothLeScanner.java
+++ b/core/java/android/bluetooth/le/BluetoothLeScanner.java
@@ -209,6 +209,15 @@
     }
 
     /**
+     * Cleans up scan clients. Should be called when bluetooth is down.
+     *
+     * @hide
+     */
+    public void cleanup() {
+        mLeScanClients.clear();
+    }
+
+    /**
      * Bluetooth GATT interface callbacks
      */
     private static class BleScanCallbackWrapper extends BluetoothGattCallbackWrapper {
diff --git a/core/java/android/bluetooth/le/ScanRecord.java b/core/java/android/bluetooth/le/ScanRecord.java
index e7f33ff1..2f3d06f 100644
--- a/core/java/android/bluetooth/le/ScanRecord.java
+++ b/core/java/android/bluetooth/le/ScanRecord.java
@@ -257,9 +257,11 @@
             }
             return new ScanRecord(serviceUuids, manufacturerData, serviceData,
                     advertiseFlag, txPowerLevel, localName, scanRecord);
-        } catch (IndexOutOfBoundsException e) {
+        } catch (Exception e) {
             Log.e(TAG, "unable to parse scan record: " + Arrays.toString(scanRecord));
-            return null;
+            // As the record is invalid, ignore all the parsed results for this packet
+            // and return an empty record with raw scanRecord bytes in results
+            return new ScanRecord(null, null, null, -1, Integer.MIN_VALUE, null, scanRecord);
         }
     }
 
diff --git a/core/java/android/bluetooth/le/Utils.java b/core/java/android/bluetooth/le/Utils.java
index 8598dd7..ccdae69 100644
--- a/core/java/android/bluetooth/le/Utils.java
+++ b/core/java/android/bluetooth/le/Utils.java
@@ -44,7 +44,7 @@
         StringBuilder buffer = new StringBuilder();
         buffer.append('{');
         for (int i = 0; i < array.size(); ++i) {
-            buffer.append(array.keyAt(i)).append("=").append(array.valueAt(i));
+            buffer.append(array.keyAt(i)).append("=").append(Arrays.toString(array.valueAt(i)));
         }
         buffer.append('}');
         return buffer.toString();
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 04a06af..61e105b 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1419,21 +1419,6 @@
     public static final String ACTION_UNINSTALL_PACKAGE = "android.intent.action.UNINSTALL_PACKAGE";
 
     /**
-     * Activity Action: Prompt the user to confirm credentials (pin, pattern or password)
-     * for the current user of the device. Launch this activity using
-     * {@link android.app.Activity#startActivityForResult(Intent, int)} and check if the
-     * result is {@link android.app.Activity#RESULT_OK} for a successful response to the
-     * challenge.<p/>
-     * This intent is handled by the system at a high priority and applications cannot intercept
-     * it.<p/>
-     * You can use {@link android.app.KeyguardManager#isKeyguardSecure()} to determine if the user will be
-     * prompted.
-     */
-    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
-    public static final String ACTION_CONFIRM_DEVICE_CREDENTIAL = "android.intent.action.CONFIRM_DEVICE_CREDENTIAL";
-
-
-    /**
      * Specify whether the package should be uninstalled for all users.
      * @hide because these should not be part of normal application flow.
      */
@@ -2279,15 +2264,20 @@
             "android.intent.action.DIGITAL_AUDIO_DOCK_PLUG";
 
     /**
-     * Broadcast Action: A HMDI cable was plugged or unplugged
+     * Broadcast Action: A sticky broadcast indicating an HMDI cable was plugged or unplugged
      *
      * <p>The intent will have the following extra values:
      * <ul>
      *   <li><em>state</em> - 0 for unplugged, 1 for plugged. </li>
      *   <li><em>name</em> - HDMI cable, human readable string </li>
+     *   <li><em>maxChannelCount</em> - the maximum number of output channels supported by the
+     *       connected HDMI device, only available when <i>state</i> is 1.</li>
+     *   <li><em>encodings</em> - an array of formats supported by the connected HDMI device,
+     *       only available when <i>state</i> is 1. Encoding values are defined in
+     *       {@link android.media.AudioFormat} (for instance see
+     *       {@link android.media.AudioFormat#ENCODING_PCM_16BIT}). Use
+     *       {@link #getIntArrayExtra(String)} to retrieve the encoding values.</li>
      * </ul>
-     * </ul>
-     * @hide
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_HDMI_AUDIO_PLUG =
@@ -3187,17 +3177,11 @@
 
     /**
      * A CharSequence dialog title to provide to the user when used with a
-     * {@link #ACTION_CHOOSER} or {@link #ACTION_CONFIRM_DEVICE_CREDENTIAL}.
+     * {@link #ACTION_CHOOSER}.
      */
     public static final String EXTRA_TITLE = "android.intent.extra.TITLE";
 
     /**
-     * A CharSequence description to provide to the user when used with
-     * {@link #ACTION_CONFIRM_DEVICE_CREDENTIAL}.
-     */
-    public static final String EXTRA_DETAILS = "android.intent.extra.DETAILS";
-
-    /**
      * A Parcelable[] of {@link Intent} or
      * {@link android.content.pm.LabeledIntent} objects as set with
      * {@link #putExtra(String, Parcelable[])} of additional activities to place
@@ -3869,15 +3853,15 @@
     /**
      * By default a document created by {@link #FLAG_ACTIVITY_NEW_DOCUMENT} will
      * have its entry in recent tasks removed when the user closes it (with back
-     * or however else it may finish()).  If you would like to instead allow the
+     * or however else it may finish()). If you would like to instead allow the
      * document to be kept in recents so that it can be re-launched, you can use
-     * this flag.  When set and the task's activity is finished, the recents entry
-     * will remain in the interface for the user to re-launch it, like a recents
-     * entry for a top-level application.
-     *
-     * <p>The receiving activity can override this request with
-     * {@link android.R.styleable#AndroidManifestActivity_autoRemoveFromRecents}
-     * or by explcitly calling {@link android.app.Activity#finishAndRemoveTask()
+     * this flag. When set and the task's activity is finished, the recents
+     * entry will remain in the interface for the user to re-launch it, like a
+     * recents entry for a top-level application.
+     * <p>
+     * The receiving activity can override this request with
+     * {@link android.R.attr#autoRemoveFromRecents} or by explcitly calling
+     * {@link android.app.Activity#finishAndRemoveTask()
      * Activity.finishAndRemoveTask()}.
      */
     public static final int FLAG_ACTIVITY_RETAIN_IN_RECENTS = 0x00002000;
diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java
index cd4a7a0..e3c5449 100644
--- a/core/java/android/content/IntentFilter.java
+++ b/core/java/android/content/IntentFilter.java
@@ -1184,13 +1184,9 @@
      * {@link #MATCH_CATEGORY_MASK} and {@link #MATCH_ADJUSTMENT_MASK}),
      * or one of the error codes {@link #NO_MATCH_TYPE} if the type didn't match,
      * {@link #NO_MATCH_DATA} if the scheme/path didn't match,
-     * {@link #NO_MATCH_ACTION if the action didn't match, or
+     * {@link #NO_MATCH_ACTION} if the action didn't match, or
      * {@link #NO_MATCH_CATEGORY} if one or more categories didn't match.
      *
-     * @return How well the filter matches.  Negative if it doesn't match,
-     *         zero or positive positive value if it does with a higher
-     *         value representing a better match.
-     *
      * @see #match(String, String, String, android.net.Uri , Set, String)
      */
     public final int match(ContentResolver resolver, Intent intent,
@@ -1218,7 +1214,7 @@
      * {@link #MATCH_CATEGORY_MASK} and {@link #MATCH_ADJUSTMENT_MASK}),
      * or one of the error codes {@link #NO_MATCH_TYPE} if the type didn't match,
      * {@link #NO_MATCH_DATA} if the scheme/path didn't match,
-     * {@link #NO_MATCH_ACTION if the action didn't match, or
+     * {@link #NO_MATCH_ACTION} if the action didn't match, or
      * {@link #NO_MATCH_CATEGORY} if one or more categories didn't match.
      *
      * @see #matchData
diff --git a/core/java/android/content/pm/FeatureGroupInfo.java b/core/java/android/content/pm/FeatureGroupInfo.java
new file mode 100644
index 0000000..79a6eea
--- /dev/null
+++ b/core/java/android/content/pm/FeatureGroupInfo.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package android.content.pm;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * A set of features that can be requested by an application. This corresponds
+ * to information collected from the
+ * AndroidManifest.xml's {@code <feature-group>} tag.
+ */
+public final class FeatureGroupInfo implements Parcelable {
+
+    /**
+     * The list of features that are required by this group.
+     *
+     * @see FeatureInfo#FLAG_REQUIRED
+     */
+    public FeatureInfo[] features;
+
+    public FeatureGroupInfo() {
+    }
+
+    public FeatureGroupInfo(FeatureGroupInfo other) {
+        features = other.features;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeTypedArray(features, flags);
+    }
+
+    public static final Creator<FeatureGroupInfo> CREATOR = new Creator<FeatureGroupInfo>() {
+        @Override
+        public FeatureGroupInfo createFromParcel(Parcel source) {
+            FeatureGroupInfo group = new FeatureGroupInfo();
+            group.features = source.createTypedArray(FeatureInfo.CREATOR);
+            return group;
+        }
+
+        @Override
+        public FeatureGroupInfo[] newArray(int size) {
+            return new FeatureGroupInfo[size];
+        }
+    };
+}
diff --git a/core/java/android/content/pm/FeatureInfo.java b/core/java/android/content/pm/FeatureInfo.java
index d919fc3..79fa327 100644
--- a/core/java/android/content/pm/FeatureInfo.java
+++ b/core/java/android/content/pm/FeatureInfo.java
@@ -22,7 +22,7 @@
 /**
  * A single feature that can be requested by an application. This corresponds
  * to information collected from the
- * AndroidManifest.xml's &lt;uses-feature&gt; tag.
+ * AndroidManifest.xml's {@code <uses-feature>} tag.
  */
 public class FeatureInfo implements Parcelable {
     /**
diff --git a/core/java/android/content/pm/IPackageInstaller.aidl b/core/java/android/content/pm/IPackageInstaller.aidl
index 5223476..97be8f0 100644
--- a/core/java/android/content/pm/IPackageInstaller.aidl
+++ b/core/java/android/content/pm/IPackageInstaller.aidl
@@ -19,23 +19,22 @@
 import android.content.pm.IPackageDeleteObserver2;
 import android.content.pm.IPackageInstallerCallback;
 import android.content.pm.IPackageInstallerSession;
-import android.content.pm.InstallSessionInfo;
-import android.content.pm.InstallSessionParams;
+import android.content.pm.PackageInstaller;
+import android.content.IntentSender;
 
 /** {@hide} */
 interface IPackageInstaller {
-    int createSession(in InstallSessionParams params, String installerPackageName, int userId);
+    int createSession(in PackageInstaller.SessionParams params, String installerPackageName, int userId);
     IPackageInstallerSession openSession(int sessionId);
 
-    InstallSessionInfo getSessionInfo(int sessionId);
-    List<InstallSessionInfo> getAllSessions(int userId);
-    List<InstallSessionInfo> getMySessions(String installerPackageName, int userId);
+    PackageInstaller.SessionInfo getSessionInfo(int sessionId);
+    List<PackageInstaller.SessionInfo> getAllSessions(int userId);
+    List<PackageInstaller.SessionInfo> getMySessions(String installerPackageName, int userId);
 
     void registerCallback(IPackageInstallerCallback callback, int userId);
     void unregisterCallback(IPackageInstallerCallback callback);
 
-    void uninstall(String packageName, int flags, in IPackageDeleteObserver2 observer, int userId);
-    void uninstallSplit(String packageName, String splitName, int flags, in IPackageDeleteObserver2 observer, int userId);
+    void uninstall(String packageName, int flags, in IntentSender statusReceiver, int userId);
 
     void setPermissionsResult(int sessionId, boolean accepted);
 }
diff --git a/core/java/android/content/pm/IPackageInstallerSession.aidl b/core/java/android/content/pm/IPackageInstallerSession.aidl
index af0323f..aee3ba7 100644
--- a/core/java/android/content/pm/IPackageInstallerSession.aidl
+++ b/core/java/android/content/pm/IPackageInstallerSession.aidl
@@ -17,6 +17,7 @@
 package android.content.pm;
 
 import android.content.pm.IPackageInstallObserver2;
+import android.content.IntentSender;
 import android.os.ParcelFileDescriptor;
 
 /** {@hide} */
@@ -24,11 +25,11 @@
     void setClientProgress(float progress);
     void addClientProgress(float progress);
 
-    String[] list();
+    String[] getNames();
     ParcelFileDescriptor openWrite(String name, long offsetBytes, long lengthBytes);
     ParcelFileDescriptor openRead(String name);
 
     void close();
-    void commit(in IPackageInstallObserver2 observer);
+    void commit(in IntentSender statusReceiver);
     void abandon();
 }
diff --git a/core/java/android/content/pm/InstallSessionInfo.aidl b/core/java/android/content/pm/InstallSessionInfo.aidl
deleted file mode 100644
index 3d21bbd..0000000
--- a/core/java/android/content/pm/InstallSessionInfo.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-parcelable InstallSessionInfo;
diff --git a/core/java/android/content/pm/InstallSessionInfo.java b/core/java/android/content/pm/InstallSessionInfo.java
deleted file mode 100644
index 161bcde..0000000
--- a/core/java/android/content/pm/InstallSessionInfo.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-import android.annotation.Nullable;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * Details for an active install session.
- */
-public class InstallSessionInfo implements Parcelable {
-
-    /** {@hide} */
-    public int sessionId;
-    /** {@hide} */
-    public String installerPackageName;
-    /** {@hide} */
-    public String resolvedBaseCodePath;
-    /** {@hide} */
-    public float progress;
-    /** {@hide} */
-    public boolean sealed;
-    /** {@hide} */
-    public boolean open;
-
-    /** {@hide} */
-    public int mode;
-    /** {@hide} */
-    public long sizeBytes;
-    /** {@hide} */
-    public String appPackageName;
-    /** {@hide} */
-    public Bitmap appIcon;
-    /** {@hide} */
-    public CharSequence appLabel;
-
-    /** {@hide} */
-    public InstallSessionInfo() {
-    }
-
-    /** {@hide} */
-    public InstallSessionInfo(Parcel source) {
-        sessionId = source.readInt();
-        installerPackageName = source.readString();
-        resolvedBaseCodePath = source.readString();
-        progress = source.readFloat();
-        sealed = source.readInt() != 0;
-        open = source.readInt() != 0;
-
-        mode = source.readInt();
-        sizeBytes = source.readLong();
-        appPackageName = source.readString();
-        appIcon = source.readParcelable(null);
-        appLabel = source.readString();
-    }
-
-    /**
-     * Return the ID for this session.
-     */
-    public int getSessionId() {
-        return sessionId;
-    }
-
-    /**
-     * Return the package name of the app that owns this session.
-     */
-    public @Nullable String getInstallerPackageName() {
-        return installerPackageName;
-    }
-
-    /**
-     * Return current overall progress of this session, between 0 and 1.
-     * <p>
-     * Note that this progress may not directly correspond to the value reported
-     * by {@link PackageInstaller.Session#setProgress(float)}, as the system may
-     * carve out a portion of the overall progress to represent its own internal
-     * installation work.
-     */
-    public float getProgress() {
-        return progress;
-    }
-
-    /**
-     * Return if this session is currently open.
-     */
-    public boolean isOpen() {
-        return open;
-    }
-
-    /**
-     * Return the package name this session is working with. May be {@code null}
-     * if unknown.
-     */
-    public @Nullable String getAppPackageName() {
-        return appPackageName;
-    }
-
-    /**
-     * Return an icon representing the app being installed. May be {@code null}
-     * if unavailable.
-     */
-    public @Nullable Bitmap getAppIcon() {
-        return appIcon;
-    }
-
-    /**
-     * Return a label representing the app being installed. May be {@code null}
-     * if unavailable.
-     */
-    public @Nullable CharSequence getAppLabel() {
-        return appLabel;
-    }
-
-    /**
-     * Return an Intent that can be started to view details about this install
-     * session. This may surface actions such as pause, resume, or cancel.
-     * <p>
-     * In some cases, a matching Activity may not exist, so ensure you safeguard
-     * against this.
-     *
-     * @see PackageInstaller#ACTION_SESSION_DETAILS
-     */
-    public @Nullable Intent getDetailsIntent() {
-        final Intent intent = new Intent(PackageInstaller.ACTION_SESSION_DETAILS);
-        intent.putExtra(PackageInstaller.EXTRA_SESSION_ID, sessionId);
-        intent.setPackage(installerPackageName);
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        return intent;
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeInt(sessionId);
-        dest.writeString(installerPackageName);
-        dest.writeString(resolvedBaseCodePath);
-        dest.writeFloat(progress);
-        dest.writeInt(sealed ? 1 : 0);
-        dest.writeInt(open ? 1 : 0);
-
-        dest.writeInt(mode);
-        dest.writeLong(sizeBytes);
-        dest.writeString(appPackageName);
-        dest.writeParcelable(appIcon, flags);
-        dest.writeString(appLabel != null ? appLabel.toString() : null);
-    }
-
-    public static final Parcelable.Creator<InstallSessionInfo>
-            CREATOR = new Parcelable.Creator<InstallSessionInfo>() {
-                @Override
-                public InstallSessionInfo createFromParcel(Parcel p) {
-                    return new InstallSessionInfo(p);
-                }
-
-                @Override
-                public InstallSessionInfo[] newArray(int size) {
-                    return new InstallSessionInfo[size];
-                }
-            };
-}
diff --git a/core/java/android/content/pm/InstallSessionParams.aidl b/core/java/android/content/pm/InstallSessionParams.aidl
deleted file mode 100644
index 81b7574..0000000
--- a/core/java/android/content/pm/InstallSessionParams.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-parcelable InstallSessionParams;
diff --git a/core/java/android/content/pm/InstallSessionParams.java b/core/java/android/content/pm/InstallSessionParams.java
deleted file mode 100644
index 1716e39..0000000
--- a/core/java/android/content/pm/InstallSessionParams.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content.pm;
-
-import android.annotation.Nullable;
-import android.app.ActivityManager;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import com.android.internal.util.IndentingPrintWriter;
-
-/**
- * Parameters for creating a new {@link PackageInstaller.Session}.
- */
-public class InstallSessionParams implements Parcelable {
-
-    /** {@hide} */
-    public static final int MODE_INVALID = -1;
-
-    /**
-     * Mode for an install session whose staged APKs should fully replace any
-     * existing APKs for the target app.
-     */
-    public static final int MODE_FULL_INSTALL = 1;
-
-    /**
-     * Mode for an install session that should inherit any existing APKs for the
-     * target app, unless they have been explicitly overridden (based on split
-     * name) by the session. For example, this can be used to add one or more
-     * split APKs to an existing installation.
-     * <p>
-     * If there are no existing APKs for the target app, this behaves like
-     * {@link #MODE_FULL_INSTALL}.
-     */
-    public static final int MODE_INHERIT_EXISTING = 2;
-
-    /** {@hide} */
-    public int mode = MODE_INVALID;
-    /** {@hide} */
-    public int installFlags;
-    /** {@hide} */
-    public int installLocation = PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY;
-    /** {@hide} */
-    public long sizeBytes = -1;
-    /** {@hide} */
-    public String appPackageName;
-    /** {@hide} */
-    public Bitmap appIcon;
-    /** {@hide} */
-    public String appLabel;
-    /** {@hide} */
-    public Uri originatingUri;
-    /** {@hide} */
-    public Uri referrerUri;
-    /** {@hide} */
-    public String abiOverride;
-
-    /**
-     * Construct parameters for a new package install session.
-     *
-     * @param mode one of {@link #MODE_FULL_INSTALL} or
-     *            {@link #MODE_INHERIT_EXISTING} describing how the session
-     *            should interact with an existing app.
-     */
-    public InstallSessionParams(int mode) {
-        this.mode = mode;
-    }
-
-    /** {@hide} */
-    public InstallSessionParams(Parcel source) {
-        mode = source.readInt();
-        installFlags = source.readInt();
-        installLocation = source.readInt();
-        sizeBytes = source.readLong();
-        appPackageName = source.readString();
-        appIcon = source.readParcelable(null);
-        appLabel = source.readString();
-        originatingUri = source.readParcelable(null);
-        referrerUri = source.readParcelable(null);
-        abiOverride = source.readString();
-    }
-
-    /**
-     * Provide value of {@link PackageInfo#installLocation}, which may be used
-     * to determine where the app will be staged. Defaults to
-     * {@link PackageInfo#INSTALL_LOCATION_INTERNAL_ONLY}.
-     */
-    public void setInstallLocation(int installLocation) {
-        this.installLocation = installLocation;
-    }
-
-    /**
-     * @deprecated use {@link PackageInstaller.Session#openRead(String)} to
-     *             calculate message digest instead.
-     * @hide
-     */
-    @Deprecated
-    public void setSignatures(@Nullable Signature[] signatures) {
-        throw new UnsupportedOperationException();
-    }
-
-    /**
-     * Optionally indicate the total size (in bytes) of all APKs that will be
-     * delivered in this session. The system may use this to ensure enough disk
-     * space exists before proceeding, or to estimate container size for
-     * installations living on external storage.
-     *
-     * @see PackageInfo#INSTALL_LOCATION_AUTO
-     * @see PackageInfo#INSTALL_LOCATION_PREFER_EXTERNAL
-     */
-    public void setSize(long sizeBytes) {
-        this.sizeBytes = sizeBytes;
-    }
-
-    /**
-     * Optionally set the package name of the app being installed. It's strongly
-     * recommended that you provide this value when known, so that observers can
-     * communicate installing apps to users.
-     * <p>
-     * If the APKs staged in the session aren't consistent with this package
-     * name, the install will fail. Regardless of this value, all APKs in the
-     * app must have the same package name.
-     */
-    public void setAppPackageName(@Nullable String appPackageName) {
-        this.appPackageName = appPackageName;
-    }
-
-    /**
-     * Optionally set an icon representing the app being installed. This should
-     * be roughly {@link ActivityManager#getLauncherLargeIconSize()} in both
-     * dimensions.
-     */
-    public void setAppIcon(@Nullable Bitmap appIcon) {
-        this.appIcon = appIcon;
-    }
-
-    /**
-     * Optionally set a label representing the app being installed.
-     */
-    public void setAppLabel(@Nullable CharSequence appLabel) {
-        this.appLabel = (appLabel != null) ? appLabel.toString() : null;
-    }
-
-    /**
-     * Optionally set the URI where this package was downloaded from. Used for
-     * verification purposes.
-     *
-     * @see Intent#EXTRA_ORIGINATING_URI
-     */
-    public void setOriginatingUri(@Nullable Uri originatingUri) {
-        this.originatingUri = originatingUri;
-    }
-
-    /**
-     * Optionally set the URI that referred you to install this package. Used
-     * for verification purposes.
-     *
-     * @see Intent#EXTRA_REFERRER
-     */
-    public void setReferrerUri(@Nullable Uri referrerUri) {
-        this.referrerUri = referrerUri;
-    }
-
-    /** {@hide} */
-    public void dump(IndentingPrintWriter pw) {
-        pw.printPair("mode", mode);
-        pw.printHexPair("installFlags", installFlags);
-        pw.printPair("installLocation", installLocation);
-        pw.printPair("sizeBytes", sizeBytes);
-        pw.printPair("appPackageName", appPackageName);
-        pw.printPair("appIcon", (appIcon != null));
-        pw.printPair("appLabel", appLabel);
-        pw.printPair("originatingUri", originatingUri);
-        pw.printPair("referrerUri", referrerUri);
-        pw.printPair("abiOverride", abiOverride);
-        pw.println();
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeInt(mode);
-        dest.writeInt(installFlags);
-        dest.writeInt(installLocation);
-        dest.writeLong(sizeBytes);
-        dest.writeString(appPackageName);
-        dest.writeParcelable(appIcon, flags);
-        dest.writeString(appLabel);
-        dest.writeParcelable(originatingUri, flags);
-        dest.writeParcelable(referrerUri, flags);
-        dest.writeString(abiOverride);
-    }
-
-    public static final Parcelable.Creator<InstallSessionParams>
-            CREATOR = new Parcelable.Creator<InstallSessionParams>() {
-                @Override
-                public InstallSessionParams createFromParcel(Parcel p) {
-                    return new InstallSessionParams(p);
-                }
-
-                @Override
-                public InstallSessionParams[] newArray(int size) {
-                    return new InstallSessionParams[size];
-                }
-            };
-}
diff --git a/core/java/android/content/pm/PackageInfo.java b/core/java/android/content/pm/PackageInfo.java
index 49ffef2..a0e3c4a 100644
--- a/core/java/android/content/pm/PackageInfo.java
+++ b/core/java/android/content/pm/PackageInfo.java
@@ -180,7 +180,7 @@
      * {@link android.R.styleable#AndroidManifestUsesConfiguration
      * &lt;uses-configuration&gt;} tags included under &lt;manifest&gt;,
      * or null if there were none. This is only filled in if the flag
-     * {@link PackageManager#GET_CONFIGURATIONS} was set.  
+     * {@link PackageManager#GET_CONFIGURATIONS} was set.
      */
     public ConfigurationInfo[] configPreferences;
 
@@ -192,6 +192,16 @@
     public FeatureInfo[] reqFeatures;
 
     /**
+     * Groups of features that this application has requested.
+     * Each group contains a set of features that are required.
+     * A device must match the features listed in {@link #reqFeatures} and one
+     * or more FeatureGroups in order to have satisfied the feature requirement.
+     *
+     * @see FeatureInfo#FLAG_REQUIRED
+     */
+    public FeatureGroupInfo[] featureGroups;
+
+    /**
      * Constant corresponding to <code>auto</code> in
      * the {@link android.R.attr#installLocation} attribute.
      * @hide
@@ -300,6 +310,7 @@
         dest.writeTypedArray(signatures, parcelableFlags);
         dest.writeTypedArray(configPreferences, parcelableFlags);
         dest.writeTypedArray(reqFeatures, parcelableFlags);
+        dest.writeTypedArray(featureGroups, parcelableFlags);
         dest.writeInt(installLocation);
         dest.writeInt(requiredForAllUsers ? 1 : 0);
         dest.writeInt(requiredForProfile);
@@ -344,6 +355,7 @@
         signatures = source.createTypedArray(Signature.CREATOR);
         configPreferences = source.createTypedArray(ConfigurationInfo.CREATOR);
         reqFeatures = source.createTypedArray(FeatureInfo.CREATOR);
+        featureGroups = source.createTypedArray(FeatureGroupInfo.CREATOR);
         installLocation = source.readInt();
         requiredForAllUsers = source.readInt() != 0;
         requiredForProfile = source.readInt();
diff --git a/core/java/android/content/pm/PackageInstallerParams.aidl b/core/java/android/content/pm/PackageInstaller.aidl
similarity index 88%
rename from core/java/android/content/pm/PackageInstallerParams.aidl
rename to core/java/android/content/pm/PackageInstaller.aidl
index b3dde21..270f870 100644
--- a/core/java/android/content/pm/PackageInstallerParams.aidl
+++ b/core/java/android/content/pm/PackageInstaller.aidl
@@ -16,4 +16,5 @@
 
 package android.content.pm;
 
-parcelable PackageInstallerParams;
+parcelable PackageInstaller.SessionParams;
+parcelable PackageInstaller.SessionInfo;
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index d70e22c..aa4ea45 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -20,17 +20,24 @@
 import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
-import android.app.PackageDeleteObserver;
-import android.app.PackageInstallObserver;
+import android.app.ActivityManager;
+import android.content.Context;
 import android.content.Intent;
-import android.os.Bundle;
+import android.content.IntentSender;
+import android.graphics.Bitmap;
+import android.net.Uri;
 import android.os.FileBridge;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.os.Parcel;
 import android.os.ParcelFileDescriptor;
+import android.os.Parcelable;
 import android.os.RemoteException;
 import android.util.ExceptionUtils;
+import android.util.Log;
+
+import com.android.internal.util.IndentingPrintWriter;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -67,13 +74,15 @@
  * </ul>
  */
 public class PackageInstaller {
+    private static final String TAG = "PackageInstaller";
+
     /**
      * Activity Action: Show details about a particular install session. This
      * may surface actions such as pause, resume, or cancel.
      * <p>
      * This should always be scoped to the installer package that owns the
-     * session. Clients should use {@link InstallSessionInfo#getDetailsIntent()}
-     * to build this intent correctly.
+     * session. Clients should use {@link SessionInfo#getDetailsIntent()} to
+     * build this intent correctly.
      * <p>
      * In some cases, a matching Activity may not exist, so ensure you safeguard
      * against this.
@@ -92,9 +101,110 @@
      */
     public static final String EXTRA_SESSION_ID = "android.content.pm.extra.SESSION_ID";
 
+    public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS";
+    public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE";
+
+    /**
+     * List of package names that are relevant to a status.
+     *
+     * @see Intent#getStringArrayExtra(String)
+     */
+    public static final String EXTRA_PACKAGE_NAMES = "android.content.pm.extra.PACKAGE_NAMES";
+
+    /** {@hide} */
+    public static final String EXTRA_LEGACY_STATUS = "android.content.pm.extra.LEGACY_STATUS";
+    /** {@hide} */
+    public static final String EXTRA_LEGACY_BUNDLE = "android.content.pm.extra.LEGACY_BUNDLE";
     /** {@hide} */
     public static final String EXTRA_CALLBACK = "android.content.pm.extra.CALLBACK";
 
+    /**
+     * User action is currently required to proceed. You can launch the intent
+     * activity described by {@link Intent#EXTRA_INTENT} to involve the user and
+     * continue.
+     * <p>
+     * You may choose to immediately launch the intent if the user is actively
+     * using your app. Otherwise, you should use a notification to guide the
+     * user back into your app before launching.
+     *
+     * @see Intent#getParcelableExtra(String)
+     */
+    public static final int STATUS_USER_ACTION_REQUIRED = -1;
+
+    /**
+     * The operation succeeded.
+     */
+    public static final int STATUS_SUCCESS = 0;
+
+    /**
+     * The operation failed in a generic way. The system will always try to
+     * provide a more specific failure reason, but in some rare cases this may
+     * be delivered.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE = 1;
+
+    /**
+     * The operation failed because it was blocked. For example, a device policy
+     * may be blocking the operation, a package verifier may have blocked the
+     * operation, or the app may be required for core system operation.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_BLOCKED = 1;
+
+    /**
+     * The operation failed because it was actively aborted. For example, the
+     * user actively declined requested permissions, or the session was
+     * abandoned.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_ABORTED = 2;
+
+    /**
+     * The operation failed because one or more of the APKs was invalid. For
+     * example, they might be malformed, corrupt, incorrectly signed,
+     * mismatched, etc.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_INVALID = 3;
+
+    /**
+     * The operation failed because it conflicts (or is inconsistent with) with
+     * another package already installed on the device. For example, an existing
+     * permission, incompatible certificates, etc. The user may be able to
+     * uninstall another app to fix the issue.
+     * <p>
+     * The result may also contain {@link #EXTRA_PACKAGE_NAMES} with the
+     * specific packages identified as the cause of the conflict.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_CONFLICT = 4;
+
+    /**
+     * The operation failed because of storage issues. For example, the device
+     * may be running low on space, or external media may be unavailable. The
+     * user may be able to help free space or insert different external media.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_STORAGE = 5;
+
+    /**
+     * The operation failed because it is fundamentally incompatible with this
+     * device. For example, the app may require a hardware feature that doesn't
+     * exist, it may be missing native code for the ABIs supported by the
+     * device, or it requires a newer SDK version, etc.
+     *
+     * @see #EXTRA_STATUS_MESSAGE
+     */
+    public static final int STATUS_FAILURE_INCOMPATIBLE = 6;
+
+    private final Context mContext;
     private final PackageManager mPm;
     private final IPackageInstaller mInstaller;
     private final int mUserId;
@@ -103,8 +213,9 @@
     private final ArrayList<SessionCallbackDelegate> mDelegates = new ArrayList<>();
 
     /** {@hide} */
-    public PackageInstaller(PackageManager pm, IPackageInstaller installer,
+    public PackageInstaller(Context context, PackageManager pm, IPackageInstaller installer,
             String installerPackageName, int userId) {
+        mContext = context;
         mPm = pm;
         mInstaller = installer;
         mInstallerPackageName = installerPackageName;
@@ -126,7 +237,7 @@
      *         This ID remains consistent across device reboots until the
      *         session is finalized. IDs are not reused during a given boot.
      */
-    public int createSession(@NonNull InstallSessionParams params) throws IOException {
+    public int createSession(@NonNull SessionParams params) throws IOException {
         try {
             return mInstaller.createSession(params, mInstallerPackageName, mUserId);
         } catch (RuntimeException e) {
@@ -153,7 +264,7 @@
      * Return details for a specific session. To succeed, the caller must either
      * own this session, or be the current home app.
      */
-    public @Nullable InstallSessionInfo getSessionInfo(int sessionId) {
+    public @Nullable SessionInfo getSessionInfo(int sessionId) {
         try {
             return mInstaller.getSessionInfo(sessionId);
         } catch (RemoteException e) {
@@ -165,7 +276,7 @@
      * Return list of all active install sessions, regardless of the installer.
      * To succeed, the caller must be the current home app.
      */
-    public @NonNull List<InstallSessionInfo> getAllSessions() {
+    public @NonNull List<SessionInfo> getAllSessions() {
         try {
             return mInstaller.getAllSessions(mUserId);
         } catch (RemoteException e) {
@@ -176,7 +287,7 @@
     /**
      * Return list of all install sessions owned by the calling app.
      */
-    public @NonNull List<InstallSessionInfo> getMySessions() {
+    public @NonNull List<SessionInfo> getMySessions() {
         try {
             return mInstaller.getMySessions(mInstallerPackageName, mUserId);
         } catch (RemoteException e) {
@@ -189,25 +300,9 @@
      * method is only available to the current "installer of record" for the
      * package.
      */
-    public void uninstall(@NonNull String packageName, @NonNull UninstallCallback callback) {
+    public void uninstall(@NonNull String packageName, @NonNull IntentSender statusReceiver) {
         try {
-            mInstaller.uninstall(packageName, 0,
-                    new UninstallCallbackDelegate(callback).getBinder(), mUserId);
-        } catch (RemoteException e) {
-            throw e.rethrowAsRuntimeException();
-        }
-    }
-
-    /**
-     * Uninstall only a specific split from the given package.
-     *
-     * @hide
-     */
-    public void uninstall(@NonNull String packageName, @NonNull String splitName,
-            @NonNull UninstallCallback callback) {
-        try {
-            mInstaller.uninstallSplit(packageName, splitName, 0,
-                    new UninstallCallbackDelegate(callback).getBinder(), mUserId);
+            mInstaller.uninstall(packageName, 0, statusReceiver, mUserId);
         } catch (RemoteException e) {
             throw e.rethrowAsRuntimeException();
         }
@@ -353,6 +448,14 @@
      *            calling thread.
      */
     public void addSessionCallback(@NonNull SessionCallback callback, @NonNull Handler handler) {
+        // TODO: remove this temporary guard once we have new prebuilts
+        final ApplicationInfo info = mContext.getApplicationInfo();
+        if ("com.google.android.googlequicksearchbox".equals(info.packageName)
+                && info.versionCode <= 300400070) {
+            Log.d(TAG, "Ignoring callback request from old prebuilt");
+            return;
+        }
+
         synchronized (mDelegates) {
             final SessionCallbackDelegate delegate = new SessionCallbackDelegate(callback,
                     handler.getLooper());
@@ -436,7 +539,7 @@
          * You can write data into the returned stream, optionally call
          * {@link #fsync(OutputStream)} as needed to ensure bytes have been
          * persisted to disk, and then close when finished. All streams must be
-         * closed before calling {@link #commit(CommitCallback)}.
+         * closed before calling {@link #commit(IntentSender)}.
          *
          * @param name arbitrary, unique name of your choosing to identify the
          *            APK being written. You can open a file again for
@@ -476,14 +579,14 @@
         }
 
         /**
-         * List all APK names contained in this session.
+         * Return all APK names contained in this session.
          * <p>
          * This returns all names which have been previously written through
          * {@link #openWrite(String, long, long)} as part of this session.
          */
-        public @NonNull String[] list() {
+        public @NonNull String[] getNames() {
             try {
-                return mSession.list();
+                return mSession.getNames();
             } catch (RemoteException e) {
                 throw e.rethrowAsRuntimeException();
             }
@@ -518,9 +621,9 @@
          * on the session. If the device reboots before the session has been
          * finalized, you may commit the session again.
          */
-        public void commit(@NonNull CommitCallback callback) {
+        public void commit(@NonNull IntentSender statusReceiver) {
             try {
-                mSession.commit(new CommitCallbackDelegate(callback).getBinder());
+                mSession.commit(statusReceiver);
             } catch (RemoteException e) {
                 throw e.rethrowAsRuntimeException();
             }
@@ -553,169 +656,350 @@
     }
 
     /**
-     * Events for a specific uninstall request.
+     * Parameters for creating a new {@link PackageInstaller.Session}.
      */
-    public static abstract class UninstallCallback {
-        /**
-         * Generic unknown failure. The system will always try to provide a more
-         * specific failure reason, but in some rare cases this may be
-         * delivered.
-         */
-        public static final int FAILURE_UNKNOWN = 0;
+    public static class SessionParams implements Parcelable {
+
+        /** {@hide} */
+        public static final int MODE_INVALID = -1;
 
         /**
-         * This uninstall was blocked. The package may be required for core
-         * system operation, or the user may be restricted. Attempting to
-         * uninstall again will have the same result.
+         * Mode for an install session whose staged APKs should fully replace any
+         * existing APKs for the target app.
          */
-        public static final int FAILURE_BLOCKED = 1;
+        public static final int MODE_FULL_INSTALL = 1;
 
         /**
-         * This uninstall was actively aborted. For example, the user declined
-         * to uninstall. You may try to uninstall again.
-         */
-        public static final int FAILURE_ABORTED = 2;
-
-        /**
-         * User action is required to proceed. You can start the given intent
-         * activity to involve the user and continue.
+         * Mode for an install session that should inherit any existing APKs for the
+         * target app, unless they have been explicitly overridden (based on split
+         * name) by the session. For example, this can be used to add one or more
+         * split APKs to an existing installation.
          * <p>
-         * You may choose to immediately launch the intent if the user is
-         * actively using your app. However, you should use a notification to
-         * guide the user back into your app if not currently active.
+         * If there are no existing APKs for the target app, this behaves like
+         * {@link #MODE_FULL_INSTALL}.
          */
-        public abstract void onUserActionRequired(Intent intent);
+        public static final int MODE_INHERIT_EXISTING = 2;
 
-        public abstract void onSuccess();
-        public abstract void onFailure(int failureReason, String msg, Bundle extras);
-    }
+        /** {@hide} */
+        public int mode = MODE_INVALID;
+        /** {@hide} */
+        public int installFlags;
+        /** {@hide} */
+        public int installLocation = PackageInfo.INSTALL_LOCATION_INTERNAL_ONLY;
+        /** {@hide} */
+        public long sizeBytes = -1;
+        /** {@hide} */
+        public String appPackageName;
+        /** {@hide} */
+        public Bitmap appIcon;
+        /** {@hide} */
+        public String appLabel;
+        /** {@hide} */
+        public Uri originatingUri;
+        /** {@hide} */
+        public Uri referrerUri;
+        /** {@hide} */
+        public String abiOverride;
 
-    /** {@hide} */
-    private static class UninstallCallbackDelegate extends PackageDeleteObserver {
-        private final UninstallCallback target;
+        /**
+         * Construct parameters for a new package install session.
+         *
+         * @param mode one of {@link #MODE_FULL_INSTALL} or
+         *            {@link #MODE_INHERIT_EXISTING} describing how the session
+         *            should interact with an existing app.
+         */
+        public SessionParams(int mode) {
+            this.mode = mode;
+        }
 
-        public UninstallCallbackDelegate(UninstallCallback target) {
-            this.target = target;
+        /** {@hide} */
+        public SessionParams(Parcel source) {
+            mode = source.readInt();
+            installFlags = source.readInt();
+            installLocation = source.readInt();
+            sizeBytes = source.readLong();
+            appPackageName = source.readString();
+            appIcon = source.readParcelable(null);
+            appLabel = source.readString();
+            originatingUri = source.readParcelable(null);
+            referrerUri = source.readParcelable(null);
+            abiOverride = source.readString();
+        }
+
+        /**
+         * Provide value of {@link PackageInfo#installLocation}, which may be used
+         * to determine where the app will be staged. Defaults to
+         * {@link PackageInfo#INSTALL_LOCATION_INTERNAL_ONLY}.
+         */
+        public void setInstallLocation(int installLocation) {
+            this.installLocation = installLocation;
+        }
+
+        /**
+         * Optionally indicate the total size (in bytes) of all APKs that will be
+         * delivered in this session. The system may use this to ensure enough disk
+         * space exists before proceeding, or to estimate container size for
+         * installations living on external storage.
+         *
+         * @see PackageInfo#INSTALL_LOCATION_AUTO
+         * @see PackageInfo#INSTALL_LOCATION_PREFER_EXTERNAL
+         */
+        public void setSize(long sizeBytes) {
+            this.sizeBytes = sizeBytes;
+        }
+
+        /**
+         * Optionally set the package name of the app being installed. It's strongly
+         * recommended that you provide this value when known, so that observers can
+         * communicate installing apps to users.
+         * <p>
+         * If the APKs staged in the session aren't consistent with this package
+         * name, the install will fail. Regardless of this value, all APKs in the
+         * app must have the same package name.
+         */
+        public void setAppPackageName(@Nullable String appPackageName) {
+            this.appPackageName = appPackageName;
+        }
+
+        /**
+         * Optionally set an icon representing the app being installed. This should
+         * be roughly {@link ActivityManager#getLauncherLargeIconSize()} in both
+         * dimensions.
+         */
+        public void setAppIcon(@Nullable Bitmap appIcon) {
+            this.appIcon = appIcon;
+        }
+
+        /**
+         * Optionally set a label representing the app being installed.
+         */
+        public void setAppLabel(@Nullable CharSequence appLabel) {
+            this.appLabel = (appLabel != null) ? appLabel.toString() : null;
+        }
+
+        /**
+         * Optionally set the URI where this package was downloaded from. Used for
+         * verification purposes.
+         *
+         * @see Intent#EXTRA_ORIGINATING_URI
+         */
+        public void setOriginatingUri(@Nullable Uri originatingUri) {
+            this.originatingUri = originatingUri;
+        }
+
+        /**
+         * Optionally set the URI that referred you to install this package. Used
+         * for verification purposes.
+         *
+         * @see Intent#EXTRA_REFERRER
+         */
+        public void setReferrerUri(@Nullable Uri referrerUri) {
+            this.referrerUri = referrerUri;
+        }
+
+        /** {@hide} */
+        public void dump(IndentingPrintWriter pw) {
+            pw.printPair("mode", mode);
+            pw.printHexPair("installFlags", installFlags);
+            pw.printPair("installLocation", installLocation);
+            pw.printPair("sizeBytes", sizeBytes);
+            pw.printPair("appPackageName", appPackageName);
+            pw.printPair("appIcon", (appIcon != null));
+            pw.printPair("appLabel", appLabel);
+            pw.printPair("originatingUri", originatingUri);
+            pw.printPair("referrerUri", referrerUri);
+            pw.printPair("abiOverride", abiOverride);
+            pw.println();
         }
 
         @Override
-        public void onUserActionRequired(Intent intent) {
-            target.onUserActionRequired(intent);
+        public int describeContents() {
+            return 0;
         }
 
         @Override
-        public void onPackageDeleted(String basePackageName, int returnCode, String msg) {
-            if (returnCode == PackageManager.DELETE_SUCCEEDED) {
-                target.onSuccess();
-            } else {
-                final int failureReason = PackageManager.deleteStatusToFailureReason(returnCode);
-                msg = PackageManager.deleteStatusToString(returnCode) + ": " + msg;
-                target.onFailure(failureReason, msg, null);
-            }
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(mode);
+            dest.writeInt(installFlags);
+            dest.writeInt(installLocation);
+            dest.writeLong(sizeBytes);
+            dest.writeString(appPackageName);
+            dest.writeParcelable(appIcon, flags);
+            dest.writeString(appLabel);
+            dest.writeParcelable(originatingUri, flags);
+            dest.writeParcelable(referrerUri, flags);
+            dest.writeString(abiOverride);
         }
+
+        public static final Parcelable.Creator<SessionParams>
+                CREATOR = new Parcelable.Creator<SessionParams>() {
+                    @Override
+                    public SessionParams createFromParcel(Parcel p) {
+                        return new SessionParams(p);
+                    }
+
+                    @Override
+                    public SessionParams[] newArray(int size) {
+                        return new SessionParams[size];
+                    }
+                };
     }
 
     /**
-     * Final result of a session commit request.
+     * Details for an active install session.
      */
-    public static abstract class CommitCallback {
-        /**
-         * Generic unknown failure. The system will always try to provide a more
-         * specific failure reason, but in some rare cases this may be
-         * delivered.
-         */
-        public static final int FAILURE_UNKNOWN = 0;
+    public static class SessionInfo implements Parcelable {
+
+        /** {@hide} */
+        public int sessionId;
+        /** {@hide} */
+        public String installerPackageName;
+        /** {@hide} */
+        public String resolvedBaseCodePath;
+        /** {@hide} */
+        public float progress;
+        /** {@hide} */
+        public boolean sealed;
+        /** {@hide} */
+        public boolean open;
+
+        /** {@hide} */
+        public int mode;
+        /** {@hide} */
+        public long sizeBytes;
+        /** {@hide} */
+        public String appPackageName;
+        /** {@hide} */
+        public Bitmap appIcon;
+        /** {@hide} */
+        public CharSequence appLabel;
+
+        /** {@hide} */
+        public SessionInfo() {
+        }
+
+        /** {@hide} */
+        public SessionInfo(Parcel source) {
+            sessionId = source.readInt();
+            installerPackageName = source.readString();
+            resolvedBaseCodePath = source.readString();
+            progress = source.readFloat();
+            sealed = source.readInt() != 0;
+            open = source.readInt() != 0;
+
+            mode = source.readInt();
+            sizeBytes = source.readLong();
+            appPackageName = source.readString();
+            appIcon = source.readParcelable(null);
+            appLabel = source.readString();
+        }
 
         /**
-         * One or more of the APKs included in the session was invalid. For
-         * example, they might be malformed, corrupt, incorrectly signed,
-         * mismatched, etc. The installer may want to try downloading and
-         * installing again.
+         * Return the ID for this session.
          */
-        public static final int FAILURE_INVALID = 1;
+        public int getSessionId() {
+            return sessionId;
+        }
 
         /**
-         * This install session conflicts (or is inconsistent with) with another
-         * package already installed on the device. For example, an existing
-         * permission, incompatible certificates, etc. The user may be able to
-         * uninstall another app to fix the issue.
+         * Return the package name of the app that owns this session.
+         */
+        public @Nullable String getInstallerPackageName() {
+            return installerPackageName;
+        }
+
+        /**
+         * Return current overall progress of this session, between 0 and 1.
          * <p>
-         * The extras bundle may contain {@link #EXTRA_PACKAGE_NAME} with the
-         * specific packages identified as the cause of the conflict.
+         * Note that this progress may not directly correspond to the value reported
+         * by {@link PackageInstaller.Session#setProgress(float)}, as the system may
+         * carve out a portion of the overall progress to represent its own internal
+         * installation work.
          */
-        public static final int FAILURE_CONFLICT = 2;
+        public float getProgress() {
+            return progress;
+        }
 
         /**
-         * This install session failed due to storage issues. For example,
-         * the device may be running low on space, or the required external
-         * media may be unavailable. The user may be able to help free space
-         * or insert the correct media.
+         * Return if this session is currently open.
          */
-        public static final int FAILURE_STORAGE = 3;
+        public boolean isOpen() {
+            return open;
+        }
 
         /**
-         * This install session is fundamentally incompatible with this
-         * device. For example, the package may require a hardware feature
-         * that doesn't exist, it may be missing native code for the device
-         * ABI, or it requires a newer SDK version, etc. This install would
-         * never succeed.
+         * Return the package name this session is working with. May be {@code null}
+         * if unknown.
          */
-        public static final int FAILURE_INCOMPATIBLE = 4;
+        public @Nullable String getAppPackageName() {
+            return appPackageName;
+        }
 
         /**
-         * This install session failed because it was actively aborted. For
-         * example, the user declined requested permissions, or a verifier
-         * rejected the session.
+         * Return an icon representing the app being installed. May be {@code null}
+         * if unavailable.
+         */
+        public @Nullable Bitmap getAppIcon() {
+            return appIcon;
+        }
+
+        /**
+         * Return a label representing the app being installed. May be {@code null}
+         * if unavailable.
+         */
+        public @Nullable CharSequence getAppLabel() {
+            return appLabel;
+        }
+
+        /**
+         * Return an Intent that can be started to view details about this install
+         * session. This may surface actions such as pause, resume, or cancel.
+         * <p>
+         * In some cases, a matching Activity may not exist, so ensure you safeguard
+         * against this.
          *
-         * @see PackageManager#VERIFICATION_REJECT
+         * @see PackageInstaller#ACTION_SESSION_DETAILS
          */
-        public static final int FAILURE_ABORTED = 5;
-
-        public static final String EXTRA_PACKAGE_NAME = "android.content.pm.extra.PACKAGE_NAME";
-
-        /**
-         * User action is required to proceed. You can start the given intent
-         * activity to involve the user and continue.
-         * <p>
-         * You may choose to immediately launch the intent if the user is
-         * actively using your app. However, you should use a notification to
-         * guide the user back into your app if not currently active.
-         */
-        public abstract void onUserActionRequired(Intent intent);
-
-        public abstract void onSuccess();
-        public abstract void onFailure(int failureReason, String msg, Bundle extras);
-    }
-
-    /** {@hide} */
-    private static class CommitCallbackDelegate extends PackageInstallObserver {
-        private final CommitCallback target;
-
-        public CommitCallbackDelegate(CommitCallback target) {
-            this.target = target;
+        public @Nullable Intent getDetailsIntent() {
+            final Intent intent = new Intent(PackageInstaller.ACTION_SESSION_DETAILS);
+            intent.putExtra(PackageInstaller.EXTRA_SESSION_ID, sessionId);
+            intent.setPackage(installerPackageName);
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            return intent;
         }
 
         @Override
-        public void onUserActionRequired(Intent intent) {
-            target.onUserActionRequired(intent);
+        public int describeContents() {
+            return 0;
         }
 
         @Override
-        public void onPackageInstalled(String basePackageName, int returnCode, String msg,
-                Bundle extras) {
-            if (returnCode == PackageManager.INSTALL_SUCCEEDED) {
-                target.onSuccess();
-            } else {
-                final int failureReason = PackageManager.installStatusToFailureReason(returnCode);
-                msg = PackageManager.installStatusToString(returnCode) + ": " + msg;
+        public void writeToParcel(Parcel dest, int flags) {
+            dest.writeInt(sessionId);
+            dest.writeString(installerPackageName);
+            dest.writeString(resolvedBaseCodePath);
+            dest.writeFloat(progress);
+            dest.writeInt(sealed ? 1 : 0);
+            dest.writeInt(open ? 1 : 0);
 
-                if (extras != null) {
-                    extras.putString(CommitCallback.EXTRA_PACKAGE_NAME,
-                            extras.getString(PackageManager.EXTRA_FAILURE_EXISTING_PACKAGE));
-                }
-
-                target.onFailure(failureReason, msg, extras);
-            }
+            dest.writeInt(mode);
+            dest.writeLong(sizeBytes);
+            dest.writeString(appPackageName);
+            dest.writeParcelable(appIcon, flags);
+            dest.writeString(appLabel != null ? appLabel.toString() : null);
         }
+
+        public static final Parcelable.Creator<SessionInfo>
+                CREATOR = new Parcelable.Creator<SessionInfo>() {
+                    @Override
+                    public SessionInfo createFromParcel(Parcel p) {
+                        return new SessionInfo(p);
+                    }
+
+                    @Override
+                    public SessionInfo[] newArray(int size) {
+                        return new SessionInfo[size];
+                    }
+                };
     }
 }
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index b957a15..56b7164 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -28,8 +28,6 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.IntentSender;
-import android.content.pm.PackageInstaller.CommitCallback;
-import android.content.pm.PackageInstaller.UninstallCallback;
 import android.content.pm.PackageParser.PackageParserException;
 import android.content.res.Resources;
 import android.content.res.XmlResourceParser;
@@ -179,9 +177,9 @@
     /**
      * {@link PackageInfo} flag: return information about
      * hardware preferences in
-     * {@link PackageInfo#configPreferences PackageInfo.configPreferences} and
-     * requested features in {@link PackageInfo#reqFeatures
-     * PackageInfo.reqFeatures}.
+     * {@link PackageInfo#configPreferences PackageInfo.configPreferences},
+     * and requested features in {@link PackageInfo#reqFeatures} and
+     * {@link PackageInfo#featureGroups}.
      */
     public static final int GET_CONFIGURATIONS = 0x00004000;
 
@@ -3797,6 +3795,16 @@
     public abstract boolean isPackageAvailable(String packageName);
 
     /** {@hide} */
+    public static String installStatusToString(int status, String msg) {
+        final String str = installStatusToString(status);
+        if (msg != null) {
+            return str + ": " + msg;
+        } else {
+            return str;
+        }
+    }
+
+    /** {@hide} */
     public static String installStatusToString(int status) {
         switch (status) {
             case INSTALL_SUCCEEDED: return "INSTALL_SUCCEEDED";
@@ -3845,49 +3853,60 @@
     }
 
     /** {@hide} */
-    public static int installStatusToFailureReason(int status) {
+    public static int installStatusToPublicStatus(int status) {
         switch (status) {
-            case INSTALL_FAILED_ALREADY_EXISTS: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_INVALID_APK: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_INVALID_URI: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_INSUFFICIENT_STORAGE: return CommitCallback.FAILURE_STORAGE;
-            case INSTALL_FAILED_DUPLICATE_PACKAGE: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_NO_SHARED_USER: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_UPDATE_INCOMPATIBLE: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_MISSING_SHARED_LIBRARY: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_REPLACE_COULDNT_DELETE: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_DEXOPT: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_OLDER_SDK: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_CONFLICTING_PROVIDER: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_NEWER_SDK: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_TEST_ONLY: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_CPU_ABI_INCOMPATIBLE: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_MISSING_FEATURE: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_CONTAINER_ERROR: return CommitCallback.FAILURE_STORAGE;
-            case INSTALL_FAILED_INVALID_INSTALL_LOCATION: return CommitCallback.FAILURE_STORAGE;
-            case INSTALL_FAILED_MEDIA_UNAVAILABLE: return CommitCallback.FAILURE_STORAGE;
-            case INSTALL_FAILED_VERIFICATION_TIMEOUT: return CommitCallback.FAILURE_ABORTED;
-            case INSTALL_FAILED_VERIFICATION_FAILURE: return CommitCallback.FAILURE_ABORTED;
-            case INSTALL_FAILED_PACKAGE_CHANGED: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_UID_CHANGED: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_VERSION_DOWNGRADE: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_NOT_APK: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_BAD_MANIFEST: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_NO_CERTIFICATES: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_PARSE_FAILED_MANIFEST_EMPTY: return CommitCallback.FAILURE_INVALID;
-            case INSTALL_FAILED_INTERNAL_ERROR: return CommitCallback.FAILURE_UNKNOWN;
-            case INSTALL_FAILED_USER_RESTRICTED: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_DUPLICATE_PERMISSION: return CommitCallback.FAILURE_CONFLICT;
-            case INSTALL_FAILED_NO_MATCHING_ABIS: return CommitCallback.FAILURE_INCOMPATIBLE;
-            case INSTALL_FAILED_ABORTED: return CommitCallback.FAILURE_ABORTED;
-            default: return CommitCallback.FAILURE_UNKNOWN;
+            case INSTALL_SUCCEEDED: return PackageInstaller.STATUS_SUCCESS;
+            case INSTALL_FAILED_ALREADY_EXISTS: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_INVALID_APK: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_INVALID_URI: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_INSUFFICIENT_STORAGE: return PackageInstaller.STATUS_FAILURE_STORAGE;
+            case INSTALL_FAILED_DUPLICATE_PACKAGE: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_NO_SHARED_USER: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_UPDATE_INCOMPATIBLE: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_MISSING_SHARED_LIBRARY: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_REPLACE_COULDNT_DELETE: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_DEXOPT: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_OLDER_SDK: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_CONFLICTING_PROVIDER: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_NEWER_SDK: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_TEST_ONLY: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_CPU_ABI_INCOMPATIBLE: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_MISSING_FEATURE: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_CONTAINER_ERROR: return PackageInstaller.STATUS_FAILURE_STORAGE;
+            case INSTALL_FAILED_INVALID_INSTALL_LOCATION: return PackageInstaller.STATUS_FAILURE_STORAGE;
+            case INSTALL_FAILED_MEDIA_UNAVAILABLE: return PackageInstaller.STATUS_FAILURE_STORAGE;
+            case INSTALL_FAILED_VERIFICATION_TIMEOUT: return PackageInstaller.STATUS_FAILURE_ABORTED;
+            case INSTALL_FAILED_VERIFICATION_FAILURE: return PackageInstaller.STATUS_FAILURE_ABORTED;
+            case INSTALL_FAILED_PACKAGE_CHANGED: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_UID_CHANGED: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_VERSION_DOWNGRADE: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_NOT_APK: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_BAD_MANIFEST: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_NO_CERTIFICATES: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_PARSE_FAILED_MANIFEST_EMPTY: return PackageInstaller.STATUS_FAILURE_INVALID;
+            case INSTALL_FAILED_INTERNAL_ERROR: return PackageInstaller.STATUS_FAILURE;
+            case INSTALL_FAILED_USER_RESTRICTED: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_DUPLICATE_PERMISSION: return PackageInstaller.STATUS_FAILURE_CONFLICT;
+            case INSTALL_FAILED_NO_MATCHING_ABIS: return PackageInstaller.STATUS_FAILURE_INCOMPATIBLE;
+            case INSTALL_FAILED_ABORTED: return PackageInstaller.STATUS_FAILURE_ABORTED;
+            default: return PackageInstaller.STATUS_FAILURE;
+        }
+    }
+
+    /** {@hide} */
+    public static String deleteStatusToString(int status, String msg) {
+        final String str = deleteStatusToString(status);
+        if (msg != null) {
+            return str + ": " + msg;
+        } else {
+            return str;
         }
     }
 
@@ -3905,14 +3924,15 @@
     }
 
     /** {@hide} */
-    public static int deleteStatusToFailureReason(int status) {
+    public static int deleteStatusToPublicStatus(int status) {
         switch (status) {
-            case DELETE_FAILED_INTERNAL_ERROR: return UninstallCallback.FAILURE_UNKNOWN;
-            case DELETE_FAILED_DEVICE_POLICY_MANAGER: return UninstallCallback.FAILURE_BLOCKED;
-            case DELETE_FAILED_USER_RESTRICTED: return UninstallCallback.FAILURE_BLOCKED;
-            case DELETE_FAILED_OWNER_BLOCKED: return UninstallCallback.FAILURE_BLOCKED;
-            case DELETE_FAILED_ABORTED: return UninstallCallback.FAILURE_ABORTED;
-            default: return UninstallCallback.FAILURE_UNKNOWN;
+            case DELETE_SUCCEEDED: return PackageInstaller.STATUS_SUCCESS;
+            case DELETE_FAILED_INTERNAL_ERROR: return PackageInstaller.STATUS_FAILURE;
+            case DELETE_FAILED_DEVICE_POLICY_MANAGER: return PackageInstaller.STATUS_FAILURE_BLOCKED;
+            case DELETE_FAILED_USER_RESTRICTED: return PackageInstaller.STATUS_FAILURE_BLOCKED;
+            case DELETE_FAILED_OWNER_BLOCKED: return PackageInstaller.STATUS_FAILURE_BLOCKED;
+            case DELETE_FAILED_ABORTED: return PackageInstaller.STATUS_FAILURE_ABORTED;
+            default: return PackageInstaller.STATUS_FAILURE;
         }
     }
 
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index db87cf7..cddefb5 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -434,6 +434,11 @@
                 pi.reqFeatures = new FeatureInfo[N];
                 p.reqFeatures.toArray(pi.reqFeatures);
             }
+            N = p.featureGroups != null ? p.featureGroups.size() : 0;
+            if (N > 0) {
+                pi.featureGroups = new FeatureGroupInfo[N];
+                p.featureGroups.toArray(pi.featureGroups);
+            }
         }
         if ((flags&PackageManager.GET_ACTIVITIES) != 0) {
             int N = p.activities.size();
@@ -1502,24 +1507,7 @@
                 XmlUtils.skipCurrentTag(parser);
 
             } else if (tagName.equals("uses-feature")) {
-                FeatureInfo fi = new FeatureInfo();
-                sa = res.obtainAttributes(attrs,
-                        com.android.internal.R.styleable.AndroidManifestUsesFeature);
-                // Note: don't allow this value to be a reference to a resource
-                // that may change.
-                fi.name = sa.getNonResourceString(
-                        com.android.internal.R.styleable.AndroidManifestUsesFeature_name);
-                if (fi.name == null) {
-                    fi.reqGlEsVersion = sa.getInt(
-                            com.android.internal.R.styleable.AndroidManifestUsesFeature_glEsVersion,
-                            FeatureInfo.GL_ES_VERSION_UNDEFINED);
-                }
-                if (sa.getBoolean(
-                        com.android.internal.R.styleable.AndroidManifestUsesFeature_required,
-                        true)) {
-                    fi.flags |= FeatureInfo.FLAG_REQUIRED;
-                }
-                sa.recycle();
+                FeatureInfo fi = parseUsesFeature(res, attrs);
                 pkg.reqFeatures = ArrayUtils.add(pkg.reqFeatures, fi);
 
                 if (fi.name == null) {
@@ -1531,9 +1519,35 @@
                 XmlUtils.skipCurrentTag(parser);
 
             } else if (tagName.equals("feature-group")) {
-                // Skip this for now until we know what to do with it.
+                FeatureGroupInfo group = new FeatureGroupInfo();
+                ArrayList<FeatureInfo> features = null;
+                final int innerDepth = parser.getDepth();
+                while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
+                        && (type != XmlPullParser.END_TAG || parser.getDepth() > innerDepth)) {
+                    if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
+                        continue;
+                    }
 
-                XmlUtils.skipCurrentTag(parser);
+                    final String innerTagName = parser.getName();
+                    if (innerTagName.equals("uses-feature")) {
+                        FeatureInfo featureInfo = parseUsesFeature(res, attrs);
+                        // FeatureGroups are stricter and mandate that
+                        // any <uses-feature> declared are mandatory.
+                        featureInfo.flags |= FeatureInfo.FLAG_REQUIRED;
+                        features = ArrayUtils.add(features, featureInfo);
+                    } else {
+                        Slog.w(TAG, "Unknown element under <feature-group>: " + innerTagName +
+                                " at " + mArchiveSourcePath + " " +
+                                parser.getPositionDescription());
+                    }
+                    XmlUtils.skipCurrentTag(parser);
+                }
+
+                if (features != null) {
+                    group.features = new FeatureInfo[features.size()];
+                    group.features = features.toArray(group.features);
+                }
+                pkg.featureGroups = ArrayUtils.add(pkg.featureGroups, group);
 
             } else if (tagName.equals("uses-sdk")) {
                 if (SDK_VERSION > 0) {
@@ -1851,6 +1865,28 @@
         return pkg;
     }
 
+    private FeatureInfo parseUsesFeature(Resources res, AttributeSet attrs)
+            throws XmlPullParserException, IOException {
+        FeatureInfo fi = new FeatureInfo();
+        TypedArray sa = res.obtainAttributes(attrs,
+                com.android.internal.R.styleable.AndroidManifestUsesFeature);
+        // Note: don't allow this value to be a reference to a resource
+        // that may change.
+        fi.name = sa.getNonResourceString(
+                com.android.internal.R.styleable.AndroidManifestUsesFeature_name);
+        if (fi.name == null) {
+            fi.reqGlEsVersion = sa.getInt(
+                        com.android.internal.R.styleable.AndroidManifestUsesFeature_glEsVersion,
+                        FeatureInfo.GL_ES_VERSION_UNDEFINED);
+        }
+        if (sa.getBoolean(
+                com.android.internal.R.styleable.AndroidManifestUsesFeature_required, true)) {
+            fi.flags |= FeatureInfo.FLAG_REQUIRED;
+        }
+        sa.recycle();
+        return fi;
+    }
+
     private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser,
                                         AttributeSet attrs, String[] outError)
             throws XmlPullParserException, IOException {
@@ -4225,6 +4261,9 @@
         // Applications requested features
         public ArrayList<FeatureInfo> reqFeatures = null;
 
+        // Applications requested feature groups
+        public ArrayList<FeatureGroupInfo> featureGroups = null;
+
         public int installLocation;
 
         /* An app that's required for all users and cannot be uninstalled for a user */
@@ -4256,6 +4295,16 @@
         public ArraySet<String> mUpgradeKeySets;
         public ArrayMap<String, ArraySet<PublicKey>> mKeySetMapping;
 
+        /**
+         * The install time abi override for this package, if any.
+         *
+         * TODO: This seems like a horrible place to put the abiOverride because
+         * this isn't something the packageParser parsers. However, this fits in with
+         * the rest of the PackageManager where package scanning randomly pushes
+         * and prods fields out of {@code this.applicationInfo}.
+         */
+        public String cpuAbiOverride;
+
         public Package(String packageName) {
             this.packageName = packageName;
             applicationInfo.packageName = packageName;
diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java
index af574db..4e7da48 100644
--- a/core/java/android/content/pm/PermissionInfo.java
+++ b/core/java/android/content/pm/PermissionInfo.java
@@ -70,7 +70,7 @@
 
     /**
      * Additional flag for {@link #protectionLevel}, corresponding
-     * to the <code>development</code> value of
+     * to the <code>appop</code> value of
      * {@link android.R.attr#protectionLevel}.
      */
     public static final int PROTECTION_FLAG_APPOP = 0x40;
diff --git a/core/java/android/content/pm/VerificationParams.java b/core/java/android/content/pm/VerificationParams.java
index bf1f77f..e5119b6 100644
--- a/core/java/android/content/pm/VerificationParams.java
+++ b/core/java/android/content/pm/VerificationParams.java
@@ -24,7 +24,7 @@
 /**
  * Represents verification parameters used to verify packages to be installed.
  *
- * @deprecated callers should migrate to {@link PackageInstallerParams}.
+ * @deprecated callers should migrate to {@link PackageInstaller}.
  * @hide
  */
 @Deprecated
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 52d1c79..fff21aa 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -715,7 +715,13 @@
      * @see #getDrawable(int, Theme)
      */
     public Drawable getDrawable(int id) throws NotFoundException {
-        return getDrawable(id, null);
+        final Drawable d = getDrawable(id, null);
+        if (d.canApplyTheme()) {
+            Log.w(TAG, "Drawable " + getResourceName(id) + " has unresolved theme "
+                    + "attributes! Consider using Resources.getDrawable(int, Theme) or "
+                    + "Context.getDrawable(int).", new RuntimeException());
+        }
+        return d;
     }
 
     /**
diff --git a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
index cbf4a3d..1cf7797 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyCameraDevice.java
@@ -510,4 +510,6 @@
             /*out*/int[/*2*/] dimens);
 
     private static native int nativeSetNextTimestamp(Surface surface, long timestamp);
+
+    static native int nativeGetJpegFooterSize();
 }
diff --git a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
index 0337c96..fbe26e5 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java
@@ -33,6 +33,7 @@
 import android.hardware.camera2.utils.ArrayUtils;
 import android.hardware.camera2.utils.ListUtils;
 import android.hardware.camera2.utils.ParamsUtils;
+import android.hardware.camera2.utils.SizeAreaComparator;
 import android.util.Log;
 import android.util.Range;
 import android.util.Size;
@@ -40,6 +41,8 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import static com.android.internal.util.Preconditions.*;
@@ -187,8 +190,10 @@
          * flash.*
          */
         mapFlash(m, p);
-
-        // TODO: map other fields
+        /*
+         * jpeg.*
+         */
+        mapJpeg(m, p);
 
         /*
          * scaler.*
@@ -595,6 +600,16 @@
         m.set(FLASH_INFO_AVAILABLE, flashAvailable);
     }
 
+    private static void mapJpeg(CameraMetadataNative m, Camera.Parameters p) {
+        List<Camera.Size> thumbnailSizes = p.getSupportedJpegThumbnailSizes();
+
+        if (thumbnailSizes != null) {
+            Size[] sizes = convertSizeListToArray(thumbnailSizes);
+            Arrays.sort(sizes, new SizeAreaComparator());
+            m.set(JPEG_AVAILABLE_THUMBNAIL_SIZES, sizes);
+        }
+    }
+
     private static void mapRequest(CameraMetadataNative m, Parameters p) {
         /*
          * request.availableCapabilities
diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java
index 35646fe..4c4ad0d 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java
@@ -24,6 +24,7 @@
 import android.hardware.camera2.params.MeteringRectangle;
 import android.hardware.camera2.utils.ListUtils;
 import android.hardware.camera2.utils.ParamsUtils;
+import android.location.Location;
 import android.util.Log;
 import android.util.Range;
 import android.util.Size;
@@ -44,6 +45,8 @@
     private static final String TAG = "LegacyRequestMapper";
     private static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
 
+    private static final byte DEFAULT_JPEG_QUALITY = 85;
+
     /**
      * Set the legacy parameters using the {@link LegacyRequest legacy request}.
      *
@@ -350,6 +353,70 @@
                         + testPatternMode + "; only OFF is supported");
             }
         }
+
+        /*
+         * jpeg.*
+         */
+
+        // jpeg.gpsLocation
+        {
+            Location location = request.get(JPEG_GPS_LOCATION);
+            if (location != null) {
+                if (checkForCompleteGpsData(location)) {
+                    params.setGpsAltitude(location.getAltitude());
+                    params.setGpsLatitude(location.getLatitude());
+                    params.setGpsLongitude(location.getLongitude());
+                    params.setGpsProcessingMethod(location.getProvider().toUpperCase());
+                    params.setGpsTimestamp(location.getTime());
+                } else {
+                    Log.w(TAG, "Incomplete GPS parameters provided in location " + location);
+                }
+            } else {
+                params.removeGpsData();
+            }
+        }
+
+        // jpeg.orientation
+        {
+            int orientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);
+            params.setRotation(ParamsUtils.getOrDefault(request, JPEG_ORIENTATION, orientation));
+        }
+
+        // jpeg.quality
+        {
+            params.setJpegQuality(0xFF & ParamsUtils.getOrDefault(request, JPEG_QUALITY,
+                    DEFAULT_JPEG_QUALITY));
+        }
+
+        // jpeg.thumbnailQuality
+        {
+            params.setJpegQuality(0xFF & ParamsUtils.getOrDefault(request, JPEG_THUMBNAIL_QUALITY,
+                    DEFAULT_JPEG_QUALITY));
+        }
+
+        // jpeg.thumbnailSize
+        {
+            List<Camera.Size> sizes = params.getSupportedJpegThumbnailSizes();
+
+            if (sizes != null && sizes.size() > 0) {
+                Size s = request.get(JPEG_THUMBNAIL_SIZE);
+                boolean invalidSize = (s == null) ? false : !ParameterUtils.containsSize(sizes,
+                        s.getWidth(), s.getHeight());
+                if (invalidSize) {
+                    Log.w(TAG, "Invalid JPEG thumbnail size set " + s + ", skipping thumbnail...");
+                }
+                if (s == null || invalidSize) {
+                    // (0,0) = "no thumbnail" in Camera API 1
+                    params.setJpegThumbnailSize(/*width*/0, /*height*/0);
+                } else {
+                    params.setJpegThumbnailSize(s.getWidth(), s.getHeight());
+                }
+            }
+        }
+    }
+
+    private static boolean checkForCompleteGpsData(Location location) {
+        return location != null && location.getProvider() != null && location.getTime() != 0;
     }
 
     static int filterSupportedCaptureIntent(int captureIntent) {
diff --git a/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java b/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java
index a2f9b4c..090a822 100644
--- a/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java
+++ b/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java
@@ -28,6 +28,7 @@
 import android.hardware.camera2.params.MeteringRectangle;
 import android.hardware.camera2.utils.ListUtils;
 import android.hardware.camera2.utils.ParamsUtils;
+import android.location.Location;
 import android.util.Log;
 import android.util.Size;
 
@@ -250,6 +251,29 @@
             result.set(SENSOR_TEST_PATTERN_MODE, SENSOR_TEST_PATTERN_MODE_OFF);
         }
 
+        /*
+         * jpeg
+         */
+        // jpeg.gpsLocation
+        result.set(JPEG_GPS_LOCATION, request.get(CaptureRequest.JPEG_GPS_LOCATION));
+
+        // jpeg.orientation
+        result.set(JPEG_ORIENTATION, request.get(CaptureRequest.JPEG_ORIENTATION));
+
+        // jpeg.quality
+        result.set(JPEG_QUALITY, (byte) params.getJpegQuality());
+
+        // jpeg.thumbnailQuality
+        result.set(JPEG_THUMBNAIL_QUALITY, (byte) params.getJpegThumbnailQuality());
+
+        // jpeg.thumbnailSize
+        Camera.Size s = params.getJpegThumbnailSize();
+        if (s != null) {
+            result.set(JPEG_THUMBNAIL_SIZE, ParameterUtils.convertSize(s));
+        } else {
+            Log.w(TAG, "Null thumbnail size received from parameters.");
+        }
+
         // TODO: Remaining result metadata tags conversions.
         return result;
     }
diff --git a/core/java/android/hardware/camera2/legacy/ParameterUtils.java b/core/java/android/hardware/camera2/legacy/ParameterUtils.java
index 385f844..98adcea 100644
--- a/core/java/android/hardware/camera2/legacy/ParameterUtils.java
+++ b/core/java/android/hardware/camera2/legacy/ParameterUtils.java
@@ -253,6 +253,33 @@
     }
 
     /**
+     * Convert a camera API1 list of sizes into an array of sizes
+     */
+    public static Size[] convertSizeListToArray(List<Camera.Size> sizeList) {
+        checkNotNull(sizeList, "sizeList must not be null");
+
+        Size[] array = new Size[sizeList.size()];
+        int ctr = 0;
+        for (Camera.Size s : sizeList) {
+            array[ctr++] = new Size(s.width, s.height);
+        }
+        return array;
+    }
+
+    /**
+     * Check if the camera API1 list of sizes contains a size with the given dimens.
+     */
+    public static boolean containsSize(List<Camera.Size> sizeList, int width, int height) {
+        checkNotNull(sizeList, "sizeList must not be null");
+        for (Camera.Size s : sizeList) {
+            if (s.height == height && s.width == width) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
      * Returns the largest supported picture size, as compared by its area.
      */
     public static Size getLargestSupportedJpegSizeByArea(Camera.Parameters params) {
diff --git a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
index 5c66753..eb8debb 100644
--- a/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
+++ b/core/java/android/hardware/camera2/legacy/RequestThreadManager.java
@@ -190,7 +190,8 @@
                 try {
                     if (RequestHolder.jpegType(s)) {
                         Log.i(TAG, "Producing jpeg buffer...");
-                        LegacyCameraDevice.setSurfaceDimens(s, data.length, /*height*/1);
+                        LegacyCameraDevice.setSurfaceDimens(s, data.length +
+                                LegacyCameraDevice.nativeGetJpegFooterSize(), /*height*/1);
                         LegacyCameraDevice.setNextTimestamp(s, timestamp);
                         LegacyCameraDevice.produceFrame(s, data, data.length, /*height*/1,
                                 CameraMetadataNative.NATIVE_JPEG_FORMAT);
@@ -665,10 +666,6 @@
                                 }
                                 mReceivedJpeg.close();
                                 doJpegCapturePrepare(holder);
-                                if (!mReceivedJpeg.block(JPEG_FRAME_TIMEOUT)) {
-                                    // TODO: report error to CameraDevice
-                                    Log.e(TAG, "Hit timeout for jpeg callback!");
-                                }
                             }
 
                             /*
diff --git a/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java b/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java
index 3f24b2c..b1b0f9b 100644
--- a/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java
+++ b/core/java/android/hardware/camera2/legacy/SurfaceTextureRenderer.java
@@ -16,6 +16,7 @@
 package android.hardware.camera2.legacy;
 
 import android.graphics.ImageFormat;
+import android.graphics.RectF;
 import android.graphics.SurfaceTexture;
 import android.os.Environment;
 import android.opengl.EGL14;
@@ -194,6 +195,9 @@
         checkGlError("onDrawFrame start");
         st.getTransformMatrix(mSTMatrix);
 
+        Matrix.setIdentityM(mMVPMatrix, /*smOffset*/0);
+
+        // Find intermediate buffer dimensions
         Size dimens;
         try {
             dimens = LegacyCameraDevice.getTextureSize(st);
@@ -201,9 +205,6 @@
             // Should never hit this.
             throw new IllegalStateException("Surface abandoned, skipping drawFrame...", e);
         }
-
-        Matrix.setIdentityM(mMVPMatrix, /*smOffset*/0);
-
         float texWidth = dimens.getWidth();
         float texHeight = dimens.getHeight();
 
@@ -211,32 +212,30 @@
             throw new IllegalStateException("Illegal intermediate texture with dimension of 0");
         }
 
-        // Find largest scaling factor from the intermediate texture dimension to the
-        // output surface dimension.  Scaling the intermediate texture by this allows
-        // us to letterbox/pillerbox the output surface into the intermediate texture.
-        float widthRatio = width / texWidth;
-        float heightRatio = height / texHeight;
-        float actual = (widthRatio < heightRatio) ? heightRatio : widthRatio;
+        // Letterbox or pillerbox output dimensions into intermediate dimensions.
+        RectF intermediate = new RectF(/*left*/0, /*top*/0, /*right*/texWidth, /*bottom*/texHeight);
+        RectF output = new RectF(/*left*/0, /*top*/0, /*right*/width, /*bottom*/height);
+        android.graphics.Matrix boxingXform = new android.graphics.Matrix();
+        boxingXform.setRectToRect(output, intermediate, android.graphics.Matrix.ScaleToFit.CENTER);
+        boxingXform.mapRect(output);
+
+        // Find scaling factor from pillerboxed/letterboxed output dimensions to intermediate
+        // buffer dimensions.
+        float scaleX = intermediate.width() / output.width();
+        float scaleY = intermediate.height() / output.height();
+
+        // Scale opposite dimension in clip coordinates so output is letterboxed/pillerboxed into
+        // the intermediate dimensions (rather than vice-versa).
+        Matrix.scaleM(mMVPMatrix, /*offset*/0, /*x*/scaleY, /*y*/scaleX, /*z*/1);
 
         if (DEBUG) {
-            Log.d(TAG, "Scaling factor " + actual + " used for " + width + "x" + height +
-                    " surface, intermediate buffer size is " + texWidth + "x" + texHeight);
+            Log.d(TAG, "Scaling factors (S_x = " + scaleX + ",S_y = " + scaleY + ") used for " +
+                    width + "x" + height + " surface, intermediate buffer size is " + texWidth +
+                    "x" + texHeight);
         }
 
-        // Set the viewport height and width to be the scaled intermediate texture dimensions.
-        int viewportW = (int) (actual * texWidth);
-        int viewportH = (int) (actual * texHeight);
-
-        // Set the offset of the viewport so that the output surface is centered in the viewport.
-        float dx = (width - viewportW) / 2f;
-        float dy = (height - viewportH) / 2f;
-
-        if (DEBUG) {
-            Log.d(TAG, "Translation " + dx + "," + dy + " used for " + width + "x" + height +
-                    " surface");
-        }
-
-        GLES20.glViewport((int) dx, (int) dy, viewportW, viewportH);
+        // Set viewport to be output buffer dimensions
+        GLES20.glViewport(0, 0, width, height);
 
         if (DEBUG) {
             GLES20.glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
@@ -251,7 +250,7 @@
 
         mTriangleVertices.position(TRIANGLE_VERTICES_DATA_POS_OFFSET);
         GLES20.glVertexAttribPointer(maPositionHandle, VERTEX_POS_SIZE, GLES20.GL_FLOAT,
-                /*normalized*/ false,TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
+                /*normalized*/ false, TRIANGLE_VERTICES_DATA_STRIDE_BYTES, mTriangleVertices);
         checkGlError("glVertexAttribPointer maPosition");
         GLES20.glEnableVertexAttribArray(maPositionHandle);
         checkGlError("glEnableVertexAttribArray maPositionHandle");
@@ -654,6 +653,8 @@
             if (LegacyCameraDevice.containsSurfaceId(holder.surface, targetSurfaceIds)) {
                 makeCurrent(holder.eglSurface);
                 try {
+                    LegacyCameraDevice.setSurfaceDimens(holder.surface, holder.width,
+                            holder.height);
                     LegacyCameraDevice.setNextTimestamp(holder.surface, captureHolder.second);
                     drawFrame(mSurfaceTexture, holder.width, holder.height);
                     swapBuffers(holder.eglSurface);
diff --git a/core/java/android/hardware/hdmi/HdmiDeviceInfo.java b/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
index 2391d3a..97da3a2 100644
--- a/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
+++ b/core/java/android/hardware/hdmi/HdmiDeviceInfo.java
@@ -77,11 +77,18 @@
     /** Invalid port ID */
     public static final int PORT_INVALID = -1;
 
-    private static final int HDMI_DEVICE_TYPE_OTHER = 0;
-    private static final int HDMI_DEVICE_TYPE_CEC = 1;
-    private static final int HDMI_DEVICE_TYPE_MHL = 2;
+    private static final int HDMI_DEVICE_TYPE_CEC = 0;
+    private static final int HDMI_DEVICE_TYPE_MHL = 1;
+    private static final int HDMI_DEVICE_TYPE_HARDWARE = 2;
+
+    // Offset used for id value. MHL devices, for instance, will be assigned the value from
+    // ID_OFFSET_MHL.
+    private static final int ID_OFFSET_CEC = 0x0;
+    private static final int ID_OFFSET_MHL = 0x80;
+    private static final int ID_OFFSET_HARDWARE = 0xC0;
 
     // Common parameters for all device.
+    private final int mId;
     private final int mHdmiDeviceType;
     private final int mPhysicalAddress;
     private final int mPortId;
@@ -121,7 +128,7 @@
                             int deviceId = source.readInt();
                             int adopterId = source.readInt();
                             return new HdmiDeviceInfo(physicalAddress, portId, adopterId, deviceId);
-                        case HDMI_DEVICE_TYPE_OTHER:
+                        case HDMI_DEVICE_TYPE_HARDWARE:
                             return new HdmiDeviceInfo(physicalAddress, portId);
                         default:
                             return null;
@@ -152,6 +159,7 @@
         mPhysicalAddress = physicalAddress;
         mPortId = portId;
 
+        mId = idForCecDevice(logicalAddress);
         mLogicalAddress = logicalAddress;
         mDeviceType = deviceType;
         mVendorId = vendorId;
@@ -180,17 +188,18 @@
     }
 
     /**
-     * Constructor. Used to initialize the instance for other device.
+     * Constructor. Used to initialize the instance for device representing hardware port.
      *
-     * @param physicalAddress physical address of HDMI device
+     * @param physicalAddress physical address of the port
      * @param portId HDMI port ID (1 for HDMI1)
      * @hide
      */
     public HdmiDeviceInfo(int physicalAddress, int portId) {
-        mHdmiDeviceType = HDMI_DEVICE_TYPE_OTHER;
+        mHdmiDeviceType = HDMI_DEVICE_TYPE_HARDWARE;
         mPhysicalAddress = physicalAddress;
         mPortId = portId;
 
+        mId = idForHardware(portId);
         mLogicalAddress = -1;
         mDeviceType = DEVICE_RESERVED;
         mVendorId = 0;
@@ -216,6 +225,7 @@
         mPhysicalAddress = physicalAddress;
         mPortId = portId;
 
+        mId = idForMhlDevice(portId);
         mLogicalAddress = -1;
         mDeviceType = DEVICE_RESERVED;
         mVendorId = 0;
@@ -227,6 +237,45 @@
     }
 
     /**
+     * Return the id of the device.
+     */
+    public int getId() {
+        return mId;
+    }
+
+    /**
+     * Return the id to be used for CEC device.
+     *
+     * @param address logical address of CEC device
+     * @return id for CEC device
+     */
+    public static int idForCecDevice(int address) {
+        // The id is generated based on the logical address.
+        return ID_OFFSET_CEC + address;
+    }
+
+    /**
+     * Return the id to be used for MHL device.
+     *
+     * @param portId port which the MHL device is connected to
+     * @return id for MHL device
+     */
+    public static int idForMhlDevice(int portId) {
+        // The id is generated based on the port id since there can be only one MHL device per port.
+        return ID_OFFSET_MHL + portId;
+    }
+
+    /**
+     * Return the id to be used for hardware port.
+     *
+     * @param portId port id
+     * @return id for hardware port
+     */
+    public static int idForHardware(int portId) {
+        return ID_OFFSET_HARDWARE + portId;
+    }
+
+    /**
      * Return the CEC logical address of the device.
      */
     public int getLogicalAddress() {
@@ -367,25 +416,25 @@
         switch (mHdmiDeviceType) {
             case HDMI_DEVICE_TYPE_CEC:
                 s.append("CEC: ");
-                s.append("logical_address: ").append(mLogicalAddress).append(", ");
-                s.append("device_type: ").append(mDeviceType).append(", ");
-                s.append("vendor_id: ").append(mVendorId).append(", ");
-                s.append("display_name: ").append(mDisplayName).append(", ");
-                s.append("power_status: ").append(mDevicePowerStatus).append(", ");
+                s.append("logical_address: ").append(mLogicalAddress).append(" ");
+                s.append("device_type: ").append(mDeviceType).append(" ");
+                s.append("vendor_id: ").append(mVendorId).append(" ");
+                s.append("display_name: ").append(mDisplayName).append(" ");
+                s.append("power_status: ").append(mDevicePowerStatus).append(" ");
                 break;
             case HDMI_DEVICE_TYPE_MHL:
                 s.append("MHL: ");
+                s.append("device_id: ").append(mDeviceId).append(" ");
+                s.append("adopter_id: ").append(mAdopterId).append(" ");
                 break;
 
-            case HDMI_DEVICE_TYPE_OTHER:
-                s.append("Other: ");
-                s.append("device_id: ").append(mDeviceId).append(", ");
-                s.append("adopter_id: ").append(mAdopterId).append(", ");
+            case HDMI_DEVICE_TYPE_HARDWARE:
+                s.append("Hardware: ");
                 break;
             default:
                 return "";
         }
-        s.append("physical_address: ").append(mPhysicalAddress).append(", ");
+        s.append("physical_address: ").append(String.format("0x04X", mPhysicalAddress)).append(" ");
         s.append("port_id: ").append(mPortId);
         return s.toString();
     }
diff --git a/core/java/android/hardware/hdmi/IHdmiControlService.aidl b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
index 5422bc2..17f290b 100644
--- a/core/java/android/hardware/hdmi/IHdmiControlService.aidl
+++ b/core/java/android/hardware/hdmi/IHdmiControlService.aidl
@@ -43,7 +43,7 @@
     void addHotplugEventListener(IHdmiHotplugEventListener listener);
     void removeHotplugEventListener(IHdmiHotplugEventListener listener);
     void addDeviceEventListener(IHdmiDeviceEventListener listener);
-    void deviceSelect(int logicalAddress, IHdmiControlCallback callback);
+    void deviceSelect(int deviceId, IHdmiControlCallback callback);
     void portSelect(int portId, IHdmiControlCallback callback);
     void sendKeyEvent(int deviceType, int keyCode, boolean isPressed);
     List<HdmiPortInfo> getPortInfo();
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 8423d09..ba811b7 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -640,10 +640,13 @@
      * You can call this to try to enable hardware accelerated drawing for
      * your IME. This must be set before {@link #onCreate}, so you
      * will typically call it in your constructor.  It is not always possible
-     * to use hardware acclerated drawing in an IME (for example on low-end
+     * to use hardware accelerated drawing in an IME (for example on low-end
      * devices that do not have the resources to support this), so the call
      * returns true if it succeeds otherwise false if you will need to draw
      * in software.  You must be able to handle either case.
+     *
+     * @deprecated Starting in API 21, hardware acceleration is always enabled
+     *             on capable devices.
      */
     public boolean enableHardwareAcceleration() {
         if (mWindow != null) {
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 47b74ab..3d6a132 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -17,6 +17,7 @@
 package android.net;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.net.ProxyInfo;
 import android.os.Parcelable;
 import android.os.Parcel;
@@ -54,6 +55,12 @@
     private ArrayList<RouteInfo> mRoutes = new ArrayList<RouteInfo>();
     private ProxyInfo mHttpProxy;
     private int mMtu;
+    // in the format "rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max"
+    private String mTcpBufferSizes;
+
+    private static final int MIN_MTU    = 68;
+    private static final int MIN_MTU_V6 = 1280;
+    private static final int MAX_MTU    = 10000;
 
     // Stores the properties of links that are "stacked" above this link.
     // Indexed by interface name to allow modification and to prevent duplicates being added.
@@ -100,6 +107,7 @@
                 addStackedLink(l);
             }
             setMtu(source.getMtu());
+            mTcpBufferSizes = source.mTcpBufferSizes;
         }
     }
 
@@ -124,7 +132,7 @@
      *
      * @return The interface name set for this link or {@code null}.
      */
-    public String getInterfaceName() {
+    public @Nullable String getInterfaceName() {
         return mIfaceName;
     }
 
@@ -346,6 +354,29 @@
         return mMtu;
     }
 
+    /**
+     * Sets the tcp buffers sizes to be used when this link is the system default.
+     * Should be of the form "rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max".
+     *
+     * @param tcpBufferSizes The tcp buffers sizes to use.
+     *
+     * @hide
+     */
+    public void setTcpBufferSizes(String tcpBufferSizes) {
+        mTcpBufferSizes = tcpBufferSizes;
+    }
+
+    /**
+     * Gets the tcp buffer sizes.
+     *
+     * @return the tcp buffer sizes to use when this link is the system default.
+     *
+     * @hide
+     */
+    public String getTcpBufferSizes() {
+        return mTcpBufferSizes;
+    }
+
     private RouteInfo routeWithInterface(RouteInfo route) {
         return new RouteInfo(
             route.getDestination(),
@@ -504,6 +535,7 @@
         mHttpProxy = null;
         mStackedLinks.clear();
         mMtu = 0;
+        mTcpBufferSizes = null;
     }
 
     /**
@@ -529,6 +561,11 @@
 
         String mtu = " MTU: " + mMtu;
 
+        String tcpBuffSizes = "";
+        if (mTcpBufferSizes != null) {
+            tcpBuffSizes = " TcpBufferSizes: " + mTcpBufferSizes;
+        }
+
         String routes = " Routes: [";
         for (RouteInfo route : mRoutes) routes += route.toString() + ",";
         routes += "] ";
@@ -543,7 +580,7 @@
             stacked += "] ";
         }
         return "{" + ifaceName + linkAddresses + routes + dns + domainName + mtu
-            + proxy + stacked + "}";
+            + tcpBuffSizes + proxy + stacked + "}";
     }
 
     /**
@@ -751,6 +788,17 @@
         return getMtu() == target.getMtu();
     }
 
+    /**
+     * Compares this {@code LinkProperties} Tcp buffer sizes against the target.
+     *
+     * @param target LinkProperties to compare.
+     * @return {@code true} if both are identical, {@code false} otherwise.
+     * @hide
+     */
+    public boolean isIdenticalTcpBufferSizes(LinkProperties target) {
+        return Objects.equals(mTcpBufferSizes, target.mTcpBufferSizes);
+    }
+
     @Override
     /**
      * Compares this {@code LinkProperties} instance against the target
@@ -783,7 +831,8 @@
                 isIdenticalRoutes(target) &&
                 isIdenticalHttpProxy(target) &&
                 isIdenticalStackedLinks(target) &&
-                isIdenticalMtu(target);
+                isIdenticalMtu(target) &&
+                isIdenticalTcpBufferSizes(target);
     }
 
     /**
@@ -918,7 +967,8 @@
                 + mRoutes.size() * 41
                 + ((null == mHttpProxy) ? 0 : mHttpProxy.hashCode())
                 + mStackedLinks.hashCode() * 47)
-                + mMtu * 51;
+                + mMtu * 51
+                + ((null == mTcpBufferSizes) ? 0 : mTcpBufferSizes.hashCode());
     }
 
     /**
@@ -937,6 +987,7 @@
         }
         dest.writeString(mDomains);
         dest.writeInt(mMtu);
+        dest.writeString(mTcpBufferSizes);
         dest.writeInt(mRoutes.size());
         for(RouteInfo route : mRoutes) {
             dest.writeParcelable(route, flags);
@@ -976,6 +1027,7 @@
                 }
                 netProp.setDomains(in.readString());
                 netProp.setMtu(in.readInt());
+                netProp.setTcpBufferSizes(in.readString());
                 addressCount = in.readInt();
                 for (int i=0; i<addressCount; i++) {
                     netProp.addRoute((RouteInfo)in.readParcelable(null));
@@ -995,4 +1047,17 @@
                 return new LinkProperties[size];
             }
         };
+
+        /**
+         * Check the valid MTU range based on IPv4 or IPv6.
+         * @hide
+         */
+        public static boolean isValidMtu(int mtu, boolean ipv6) {
+            if (ipv6) {
+                if ((mtu >= MIN_MTU_V6 && mtu <= MAX_MTU)) return true;
+            } else {
+                if ((mtu >= MIN_MTU && mtu <= MAX_MTU)) return true;
+            }
+            return false;
+        }
 }
diff --git a/core/java/android/net/RouteInfo.java b/core/java/android/net/RouteInfo.java
index 129248c..a4ec80c 100644
--- a/core/java/android/net/RouteInfo.java
+++ b/core/java/android/net/RouteInfo.java
@@ -49,9 +49,8 @@
 public final class RouteInfo implements Parcelable {
     /**
      * The IP destination address for this route.
-     * TODO: Make this an IpPrefix.
      */
-    private final LinkAddress mDestination;
+    private final IpPrefix mDestination;
 
     /**
      * The gateway address for this route.
@@ -81,26 +80,15 @@
      * @param gateway the IP address to route packets through
      * @param iface the interface name to send packets on
      *
-     * TODO: Convert to use IpPrefix.
-     *
      * @hide
      */
     public RouteInfo(IpPrefix destination, InetAddress gateway, String iface) {
-        this(destination == null ? null :
-                new LinkAddress(destination.getAddress(), destination.getPrefixLength()),
-                gateway, iface);
-    }
-
-    /**
-     * @hide
-     */
-    public RouteInfo(LinkAddress destination, InetAddress gateway, String iface) {
         if (destination == null) {
             if (gateway != null) {
                 if (gateway instanceof Inet4Address) {
-                    destination = new LinkAddress(Inet4Address.ANY, 0);
+                    destination = new IpPrefix(Inet4Address.ANY, 0);
                 } else {
-                    destination = new LinkAddress(Inet6Address.ANY, 0);
+                    destination = new IpPrefix(Inet6Address.ANY, 0);
                 }
             } else {
                 // no destination, no gateway. invalid.
@@ -108,6 +96,9 @@
                                                    destination);
             }
         }
+        // TODO: set mGateway to null if there is no gateway. This is more correct, saves space, and
+        // matches the documented behaviour. Before we can do this we need to fix all callers (e.g.,
+        // ConnectivityService) to stop doing things like r.getGateway().equals(), ... .
         if (gateway == null) {
             if (destination.getAddress() instanceof Inet4Address) {
                 gateway = Inet4Address.ANY;
@@ -117,20 +108,28 @@
         }
         mHasGateway = (!gateway.isAnyLocalAddress());
 
-        mDestination = new LinkAddress(NetworkUtils.getNetworkPart(destination.getAddress(),
-                destination.getPrefixLength()), destination.getPrefixLength());
         if ((destination.getAddress() instanceof Inet4Address &&
                  (gateway instanceof Inet4Address == false)) ||
                 (destination.getAddress() instanceof Inet6Address &&
                  (gateway instanceof Inet6Address == false))) {
             throw new IllegalArgumentException("address family mismatch in RouteInfo constructor");
         }
-        mGateway = gateway;
-        mInterface = iface;
+        mDestination = destination;  // IpPrefix objects are immutable.
+        mGateway = gateway;          // InetAddress objects are immutable.
+        mInterface = iface;          // Strings are immutable.
         mIsHost = isHost();
     }
 
     /**
+     * @hide
+     */
+    public RouteInfo(LinkAddress destination, InetAddress gateway, String iface) {
+        this(destination == null ? null :
+                new IpPrefix(destination.getAddress(), destination.getPrefixLength()),
+                gateway, iface);
+    }
+
+    /**
      * Constructs a {@code RouteInfo} object.
      *
      * If destination is null, then gateway must be specified and the
@@ -164,7 +163,7 @@
      * @hide
      */
     public RouteInfo(InetAddress gateway) {
-        this((LinkAddress) null, gateway, null);
+        this((IpPrefix) null, gateway, null);
     }
 
     /**
@@ -200,9 +199,9 @@
         if (host == null) return null;
 
         if (host instanceof Inet4Address) {
-            return new RouteInfo(new LinkAddress(host, 32), gateway, iface);
+            return new RouteInfo(new IpPrefix(host, 32), gateway, iface);
         } else {
-            return new RouteInfo(new LinkAddress(host, 128), gateway, iface);
+            return new RouteInfo(new IpPrefix(host, 128), gateway, iface);
         }
     }
 
@@ -219,7 +218,7 @@
      * @return {@link IpPrefix} specifying the destination.  This is never {@code null}.
      */
     public IpPrefix getDestination() {
-        return new IpPrefix(mDestination.getAddress(), mDestination.getPrefixLength());
+        return mDestination;
     }
 
     /**
@@ -227,7 +226,7 @@
      * @hide
      */
     public LinkAddress getDestinationLinkAddress() {
-        return mDestination;
+        return new LinkAddress(mDestination.getAddress(), mDestination.getPrefixLength());
     }
 
     /**
@@ -363,7 +362,7 @@
 
         RouteInfo target = (RouteInfo) obj;
 
-        return Objects.equals(mDestination, target.getDestinationLinkAddress()) &&
+        return Objects.equals(mDestination, target.getDestination()) &&
                 Objects.equals(mGateway, target.getGateway()) &&
                 Objects.equals(mInterface, target.getInterface());
     }
@@ -388,16 +387,9 @@
      * Implement the Parcelable interface
      */
     public void writeToParcel(Parcel dest, int flags) {
-        dest.writeByteArray(mDestination.getAddress().getAddress());
-        dest.writeInt(mDestination.getPrefixLength());
-
-        if (mGateway == null) {
-            dest.writeByte((byte) 0);
-        } else {
-            dest.writeByte((byte) 1);
-            dest.writeByteArray(mGateway.getAddress());
-        }
-
+        dest.writeParcelable(mDestination, flags);
+        byte[] gatewayBytes = (mGateway == null) ? null : mGateway.getAddress();
+        dest.writeByteArray(gatewayBytes);
         dest.writeString(mInterface);
     }
 
@@ -407,33 +399,16 @@
     public static final Creator<RouteInfo> CREATOR =
         new Creator<RouteInfo>() {
         public RouteInfo createFromParcel(Parcel in) {
-            InetAddress destAddr = null;
-            int prefix = 0;
+            IpPrefix dest = in.readParcelable(null);
+
             InetAddress gateway = null;
-
             byte[] addr = in.createByteArray();
-            prefix = in.readInt();
-
             try {
-                destAddr = InetAddress.getByAddress(addr);
+                gateway = InetAddress.getByAddress(addr);
             } catch (UnknownHostException e) {}
 
-            if (in.readByte() == 1) {
-                addr = in.createByteArray();
-
-                try {
-                    gateway = InetAddress.getByAddress(addr);
-                } catch (UnknownHostException e) {}
-            }
-
             String iface = in.readString();
 
-            LinkAddress dest = null;
-
-            if (destAddr != null) {
-                dest = new LinkAddress(destAddr, prefix);
-            }
-
             return new RouteInfo(dest, gateway, iface);
         }
 
diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl
index ee4d45e..5815fa6 100644
--- a/core/java/android/nfc/INfcAdapter.aidl
+++ b/core/java/android/nfc/INfcAdapter.aidl
@@ -59,5 +59,5 @@
 
     void registerLockscreenDispatch(INfcLockscreenDispatch lockscreenDispatch, in int[] techList);
     void addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList);
-    void removeNfcUnlockHandler(IBinder b);
+    void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
 }
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java
index dde2cf1..6bd5a32 100644
--- a/core/java/android/nfc/NfcAdapter.java
+++ b/core/java/android/nfc/NfcAdapter.java
@@ -311,7 +311,7 @@
 
     final NfcActivityManager mNfcActivityManager;
     final Context mContext;
-    final HashMap<NfcUnlockHandler, IBinder> mNfcUnlockHandlers;
+    final HashMap<NfcUnlockHandler, INfcUnlockHandler> mNfcUnlockHandlers;
     final Object mLock;
 
     /**
@@ -542,7 +542,7 @@
     NfcAdapter(Context context) {
         mContext = context;
         mNfcActivityManager = new NfcActivityManager(this);
-        mNfcUnlockHandlers = new HashMap<NfcUnlockHandler, IBinder>();
+        mNfcUnlockHandlers = new HashMap<NfcUnlockHandler, INfcUnlockHandler>();
         mLock = new Object();
     }
 
@@ -1498,27 +1498,37 @@
      * <p /> The parameter {@code tagTechnologies} determines which Tag technologies will be polled for
      * at the lockscreen. Polling for less tag technologies reduces latency, and so it is
      * strongly recommended to only provide the Tag technologies that the handler is expected to
-     * receive.
+     * receive. There must be at least one tag technology provided, otherwise the unlock handler
+     * is ignored.
      *
      * @hide
      */
     @SystemApi
     public boolean addNfcUnlockHandler(final NfcUnlockHandler unlockHandler,
                                        String[] tagTechnologies) {
-        try {
-            INfcUnlockHandler.Stub iHandler = new INfcUnlockHandler.Stub() {
-                @Override
-                public boolean onUnlockAttempted(Tag tag) throws RemoteException {
-                    return unlockHandler.onUnlockAttempted(tag);
-                }
-            };
+        // If there are no tag technologies, don't bother adding unlock handler
+        if (tagTechnologies.length == 0) {
+            return false;
+        }
 
+        try {
             synchronized (mLock) {
                 if (mNfcUnlockHandlers.containsKey(unlockHandler)) {
-                    return true;
+                    // update the tag technologies
+                    sService.removeNfcUnlockHandler(mNfcUnlockHandlers.get(unlockHandler));
+                    mNfcUnlockHandlers.remove(unlockHandler);
                 }
-                sService.addNfcUnlockHandler(iHandler, Tag.getTechCodesFromStrings(tagTechnologies));
-                mNfcUnlockHandlers.put(unlockHandler, iHandler.asBinder());
+
+                INfcUnlockHandler.Stub iHandler = new INfcUnlockHandler.Stub() {
+                    @Override
+                    public boolean onUnlockAttempted(Tag tag) throws RemoteException {
+                        return unlockHandler.onUnlockAttempted(tag);
+                    }
+                };
+
+                sService.addNfcUnlockHandler(iHandler,
+                        Tag.getTechCodesFromStrings(tagTechnologies));
+                mNfcUnlockHandlers.put(unlockHandler, iHandler);
             }
         } catch (RemoteException e) {
             attemptDeadServiceRecovery(e);
@@ -1542,8 +1552,7 @@
         try {
             synchronized (mLock) {
                 if (mNfcUnlockHandlers.containsKey(unlockHandler)) {
-                    sService.removeNfcUnlockHandler(mNfcUnlockHandlers.get(unlockHandler));
-                    mNfcUnlockHandlers.remove(unlockHandler);
+                    sService.removeNfcUnlockHandler(mNfcUnlockHandlers.remove(unlockHandler));
                 }
 
                 return true;
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index a1c2aa1..645d510 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -614,7 +614,7 @@
      * Flatten an ArrayMap into the parcel at the current dataPosition(),
      * growing dataCapacity() if needed.  The Map keys must be String objects.
      */
-    /* package */ void writeArrayMapInternal(ArrayMap<String,Object> val) {
+    /* package */ void writeArrayMapInternal(ArrayMap<String, Object> val) {
         if (val == null) {
             writeInt(-1);
             return;
@@ -629,7 +629,7 @@
         int startPos;
         for (int i=0; i<N; i++) {
             if (DEBUG_ARRAY_MAP) startPos = dataPosition();
-            writeValue(val.keyAt(i));
+            writeString(val.keyAt(i));
             writeValue(val.valueAt(i));
             if (DEBUG_ARRAY_MAP) Log.d(TAG, "  Write #" + i + " "
                     + (dataPosition()-startPos) + " bytes: key=0x"
@@ -639,6 +639,13 @@
     }
 
     /**
+     * @hide For testing only.
+     */
+    public void writeArrayMap(ArrayMap<String, Object> val) {
+        writeArrayMapInternal(val);
+    }
+
+    /**
      * Flatten a Bundle into the parcel at the current dataPosition(),
      * growing dataCapacity() if needed.
      */
@@ -2411,7 +2418,7 @@
         int startPos;
         while (N > 0) {
             if (DEBUG_ARRAY_MAP) startPos = dataPosition();
-            Object key = readValue(loader);
+            String key = readString();
             Object value = readValue(loader);
             if (DEBUG_ARRAY_MAP) Log.d(TAG, "  Read #" + (N-1) + " "
                     + (dataPosition()-startPos) + " bytes: key=0x"
@@ -2419,6 +2426,7 @@
             outVal.append(key, value);
             N--;
         }
+        outVal.validate();
     }
 
     /* package */ void readArrayMapSafelyInternal(ArrayMap outVal, int N,
@@ -2429,7 +2437,7 @@
             Log.d(TAG, "Reading safely " + N + " ArrayMap entries", here);
         }
         while (N > 0) {
-            Object key = readValue(loader);
+            String key = readString();
             if (DEBUG_ARRAY_MAP) Log.d(TAG, "  Read safe #" + (N-1) + ": key=0x"
                     + (key != null ? key.hashCode() : 0) + " " + key);
             Object value = readValue(loader);
@@ -2438,6 +2446,17 @@
         }
     }
 
+    /**
+     * @hide For testing only.
+     */
+    public void readArrayMap(ArrayMap outVal, ClassLoader loader) {
+        final int N = readInt();
+        if (N < 0) {
+            return;
+        }
+        readArrayMapInternal(outVal, N, loader);
+    }
+
     private void readListInternal(List outVal, int N,
         ClassLoader loader) {
         while (N > 0) {
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 6334f76..75f8279 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -298,10 +298,10 @@
     public static final int USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS = 1 << 0;
 
     /**
-     * Go to sleep reason code: Going to sleep due by user request.
+     * Go to sleep reason code: Going to sleep due by application request.
      * @hide
      */
-    public static final int GO_TO_SLEEP_REASON_USER = 0;
+    public static final int GO_TO_SLEEP_REASON_APPLICATION = 0;
 
     /**
      * Go to sleep reason code: Going to sleep due by request of the
@@ -317,6 +317,24 @@
     public static final int GO_TO_SLEEP_REASON_TIMEOUT = 2;
 
     /**
+     * Go to sleep reason code: Going to sleep due to the lid switch being closed.
+     * @hide
+     */
+    public static final int GO_TO_SLEEP_REASON_LID_SWITCH = 3;
+
+    /**
+     * Go to sleep reason code: Going to sleep due to the power button being pressed.
+     * @hide
+     */
+    public static final int GO_TO_SLEEP_REASON_POWER_BUTTON = 4;
+
+    /**
+     * Go to sleep reason code: Going to sleep due to HDMI.
+     * @hide
+     */
+    public static final int GO_TO_SLEEP_REASON_HDMI = 5;
+
+    /**
      * The value to pass as the 'reason' argument to reboot() to
      * reboot into recovery mode (for applying system updates, doing
      * factory resets, etc.).
@@ -325,6 +343,7 @@
      * permission (in addition to
      * {@link android.Manifest.permission#REBOOT}).
      * </p>
+     * @hide
      */
     public static final String REBOOT_RECOVERY = "recovery";
     
@@ -513,7 +532,7 @@
      * @see #wakeUp
      */
     public void goToSleep(long time) {
-        goToSleep(time, GO_TO_SLEEP_REASON_USER, 0);
+        goToSleep(time, GO_TO_SLEEP_REASON_APPLICATION, 0);
     }
 
     /**
@@ -754,6 +773,7 @@
         private boolean mHeld;
         private WorkSource mWorkSource;
         private String mHistoryTag;
+        private final String mTraceName;
 
         private final Runnable mReleaser = new Runnable() {
             public void run() {
@@ -766,6 +786,7 @@
             mTag = tag;
             mPackageName = packageName;
             mToken = new Binder();
+            mTraceName = "WakeLock (" + mTag + ")";
         }
 
         @Override
@@ -773,6 +794,7 @@
             synchronized (mToken) {
                 if (mHeld) {
                     Log.wtf(TAG, "WakeLock finalized while still held: " + mTag);
+                    Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
                     try {
                         mService.releaseWakeLock(mToken, 0);
                     } catch (RemoteException e) {
@@ -839,6 +861,7 @@
                 // should immediately acquire the wake lock once again despite never having
                 // been explicitly released by the keyguard.
                 mHandler.removeCallbacks(mReleaser);
+                Trace.asyncTraceBegin(Trace.TRACE_TAG_POWER, mTraceName, 0);
                 try {
                     mService.acquireWakeLock(mToken, mFlags, mTag, mPackageName, mWorkSource,
                             mHistoryTag);
@@ -878,6 +901,7 @@
                 if (!mRefCounted || --mCount == 0) {
                     mHandler.removeCallbacks(mReleaser);
                     if (mHeld) {
+                        Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
                         try {
                             mService.releaseWakeLock(mToken, flags);
                         } catch (RemoteException e) {
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java
index 7aee455..7a46e40 100644
--- a/core/java/android/os/RecoverySystem.java
+++ b/core/java/android/os/RecoverySystem.java
@@ -432,7 +432,7 @@
 
         // Having written the command file, go ahead and reboot
         PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
-        pm.reboot("recovery");
+        pm.reboot(PowerManager.REBOOT_RECOVERY);
 
         throw new IOException("Reboot failed (no permissions?)");
     }
diff --git a/core/java/android/os/Trace.java b/core/java/android/os/Trace.java
index 474192f..31b5849 100644
--- a/core/java/android/os/Trace.java
+++ b/core/java/android/os/Trace.java
@@ -36,6 +36,7 @@
     private static final String TAG = "Trace";
 
     // These tags must be kept in sync with system/core/include/cutils/trace.h.
+    // They should also be added to frameworks/native/cmds/atrace/atrace.cpp.
     /** @hide */
     public static final long TRACE_TAG_NEVER = 0;
     /** @hide */
@@ -72,6 +73,8 @@
     public static final long TRACE_TAG_RS = 1L << 15;
     /** @hide */
     public static final long TRACE_TAG_BIONIC = 1L << 16;
+    /** @hide */
+    public static final long TRACE_TAG_POWER = 1L << 17;
 
     private static final long TRACE_TAG_NOT_READY = 1L << 63;
     private static final int MAX_SECTION_NAME_LEN = 127;
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 3087506..9d1a7bc 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -499,7 +499,12 @@
      * Sets all the user-wide restrictions for this user.
      * Requires the MANAGE_USERS permission.
      * @param restrictions the Bundle containing all the restrictions.
+     * @deprecated use {@link android.app.admin.DevicePolicyManager#addUserRestriction(
+     * android.content.ComponentName, String)} or
+     * {@link android.app.admin.DevicePolicyManager#clearUserRestriction(
+     * android.content.ComponentName, String)} instead.
      */
+    @Deprecated
     public void setUserRestrictions(Bundle restrictions) {
         setUserRestrictions(restrictions, Process.myUserHandle());
     }
@@ -509,7 +514,12 @@
      * Requires the MANAGE_USERS permission.
      * @param restrictions the Bundle containing all the restrictions.
      * @param userHandle the UserHandle of the user for whom to set the restrictions.
+     * @deprecated use {@link android.app.admin.DevicePolicyManager#addUserRestriction(
+     * android.content.ComponentName, String)} or
+     * {@link android.app.admin.DevicePolicyManager#clearUserRestriction(
+     * android.content.ComponentName, String)} instead.
      */
+    @Deprecated
     public void setUserRestrictions(Bundle restrictions, UserHandle userHandle) {
         try {
             mService.setUserRestrictions(restrictions, userHandle.getIdentifier());
@@ -523,7 +533,12 @@
      * Requires the MANAGE_USERS permission.
      * @param key the key of the restriction
      * @param value the value for the restriction
+     * @deprecated use {@link android.app.admin.DevicePolicyManager#addUserRestriction(
+     * android.content.ComponentName, String)} or
+     * {@link android.app.admin.DevicePolicyManager#clearUserRestriction(
+     * android.content.ComponentName, String)} instead.
      */
+    @Deprecated
     public void setUserRestriction(String key, boolean value) {
         Bundle bundle = getUserRestrictions();
         bundle.putBoolean(key, value);
@@ -537,7 +552,12 @@
      * @param key the key of the restriction
      * @param value the value for the restriction
      * @param userHandle the user whose restriction is to be changed.
+     * @deprecated use {@link android.app.admin.DevicePolicyManager#addUserRestriction(
+     * android.content.ComponentName, String)} or
+     * {@link android.app.admin.DevicePolicyManager#clearUserRestriction(
+     * android.content.ComponentName, String)} instead.
      */
+    @Deprecated
     public void setUserRestriction(String key, boolean value, UserHandle userHandle) {
         Bundle bundle = getUserRestrictions(userHandle);
         bundle.putBoolean(key, value);
@@ -696,9 +716,29 @@
     }
 
     /**
+     * Checks whether it's possible to add more users. Caller must hold the MANAGE_USERS
+     * permission.
+     *
+     * @return true if more users can be added, false if limit has been reached.
+     * @hide
+     */
+    public boolean canAddMoreUsers() {
+        final List<UserInfo> users = getUsers(true);
+        final int totalUserCount = users.size();
+        int aliveUserCount = 0;
+        for (int i = 0; i < totalUserCount; i++) {
+            UserInfo user = users.get(i);
+            if (!user.isGuest()) {
+                aliveUserCount++;
+            }
+        }
+        return aliveUserCount < getMaxSupportedUsers();
+    }
+
+    /**
      * Returns list of the profiles of userHandle including
      * userHandle itself.
-     * Note that it this returns both enabled and not enabled profiles. See
+     * Note that this returns both enabled and not enabled profiles. See
      * {@link #getUserProfiles()} if you need only the enabled ones.
      *
      * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.
diff --git a/core/java/android/preference/PreferenceFragment.java b/core/java/android/preference/PreferenceFragment.java
index acd7942..e95e6e2 100644
--- a/core/java/android/preference/PreferenceFragment.java
+++ b/core/java/android/preference/PreferenceFragment.java
@@ -258,6 +258,7 @@
      */
     public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
         if (mPreferenceManager.setPreferences(preferenceScreen) && preferenceScreen != null) {
+            onUnbindPreferences();
             mHavePrefs = true;
             if (mInitDone) {
                 postBindPreferences();
@@ -350,6 +351,10 @@
     }
 
     /** @hide */
+    protected void onUnbindPreferences() {
+    }
+
+    /** @hide */
     public ListView getListView() {
         ensureList();
         return mList;
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 7e1c069..4f35b16 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -8164,8 +8164,10 @@
                     && !(actualContext instanceof Activity)) {
                 actualContext = ((ContextWrapper) actualContext).getBaseContext();
             }
-            final int intentFlags = (actualContext instanceof Activity)
-                    ? 0 : Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK;
+            final int intentFlags = ((actualContext instanceof Activity)
+                    ? 0 : Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
+                    // Workaround for b/16898764. Declaring singleTop in manifest doesn't work.
+                    | Intent.FLAG_ACTIVITY_SINGLE_TOP;
 
             // Launch pivot dialog through intent for now
             final Intent intent = new Intent(ACTION_QUICK_CONTACT).addFlags(intentFlags);
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 55ba9e9..cfa7ae7 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -170,6 +170,20 @@
             "android.settings.ACCESSIBILITY_SETTINGS";
 
     /**
+     * Activity Action: Show settings to control access to usage information.
+     * <p>
+     * In some cases, a matching Activity may not exist, so ensure you
+     * safeguard against this.
+     * <p>
+     * Input: Nothing.
+     * <p>
+     * Output: Nothing.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_USAGE_ACCESS_SETTINGS =
+            "android.settings.USAGE_ACCESS_SETTINGS";
+
+    /**
      * Activity Action: Show settings to allow configuration of security and
      * location privacy.
      * <p>
@@ -372,6 +386,21 @@
      * Output: Nothing.
      */
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_VOICE_INPUT_SETTINGS =
+            "android.settings.VOICE_INPUT_SETTINGS";
+
+    /**
+     * Activity Action: Show settings to configure input methods, in particular
+     * allowing the user to enable input methods.
+     * <p>
+     * In some cases, a matching Activity may not exist, so ensure you
+     * safeguard against this.
+     * <p>
+     * Input: Nothing.
+     * <p>
+     * Output: Nothing.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_INPUT_METHOD_SETTINGS =
             "android.settings.INPUT_METHOD_SETTINGS";
 
@@ -2302,7 +2331,7 @@
          * preference, this rotation value will be used. Must be one of the
          * {@link android.view.Surface#ROTATION_0 Surface rotation constants}.
          *
-         * @see Display#getRotation
+         * @see android.view.Display#getRotation
          */
         public static final String USER_ROTATION = "user_rotation";
 
@@ -2335,16 +2364,6 @@
         public static final String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
 
         /**
-         * Whether automatic routing of system audio to USB audio peripheral is disabled.
-         * The value is boolean (1 or 0), where 1 means automatic routing is disabled,
-         * and 0 means automatic routing is enabled.
-         *
-         * @hide
-         */
-        public static final String USB_AUDIO_AUTOMATIC_ROUTING_DISABLED =
-                "usb_audio_automatic_routing_disabled";
-
-        /**
          * Whether the audible DTMF tones are played by the dialer when dialing. The value is
          * boolean (1 or 0).
          */
@@ -2420,7 +2439,8 @@
         public static final String SHOW_TOUCHES = "show_touches";
 
         /**
-         * Log raw orientation data from {@link WindowOrientationListener} for use with the
+         * Log raw orientation data from
+         * {@link com.android.internal.policy.impl.WindowOrientationListener} for use with the
          * orientationplot.py tool.
          * 0 = no
          * 1 = yes
@@ -2648,6 +2668,16 @@
         };
 
         /**
+         * These entries are considered common between the personal and the managed profile,
+         * since the managed profile doesn't get to change them.
+         * @hide
+         */
+        public static final String[] CLONE_TO_MANAGED_PROFILE = {
+            DATE_FORMAT,
+            TIME_12_24
+        };
+
+        /**
          * When to use Wi-Fi calling
          *
          * @see android.telephony.TelephonyManager.WifiCallingChoices
@@ -4716,6 +4746,16 @@
         public static final String TV_INPUT_CUSTOM_LABELS = "tv_input_custom_labels";
 
         /**
+         * Whether automatic routing of system audio to USB audio peripheral is disabled.
+         * The value is boolean (1 or 0), where 1 means automatic routing is disabled,
+         * and 0 means automatic routing is enabled.
+         *
+         * @hide
+         */
+        public static final String USB_AUDIO_AUTOMATIC_ROUTING_DISABLED =
+                "usb_audio_automatic_routing_disabled";
+
+        /**
          * This are the settings to be backed up.
          *
          * NOTE: Settings are backed up and restored in the order they appear
@@ -4768,6 +4808,26 @@
         };
 
         /**
+         * These entries are considered common between the personal and the managed profile,
+         * since the managed profile doesn't get to change them.
+         * @hide
+         */
+        public static final String[] CLONE_TO_MANAGED_PROFILE = {
+            ACCESSIBILITY_ENABLED,
+            ALLOW_MOCK_LOCATION,
+            ALLOWED_GEOLOCATION_ORIGINS,
+            DEFAULT_INPUT_METHOD,
+            ENABLED_ACCESSIBILITY_SERVICES,
+            ENABLED_INPUT_METHODS,
+            LOCATION_MODE,
+            LOCATION_PROVIDERS_ALLOWED,
+            LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,
+            SELECTED_INPUT_METHOD_SUBTYPE,
+            SELECTED_SPELL_CHECKER,
+            SELECTED_SPELL_CHECKER_SUBTYPE
+        };
+
+        /**
          * Helper method for determining if a location provider is enabled.
          *
          * @param cr the content resolver to use
@@ -6343,7 +6403,7 @@
 
         /**
          * Milliseconds to wait before bouncing Wi-Fi after settings is restored. Note that after
-         * the caller is done with this, they should call {@link ContentResolver#delete(Uri)} to
+         * the caller is done with this, they should call {@link ContentResolver#delete} to
          * clean up any value that they may have written.
          *
          * @hide
@@ -6411,6 +6471,14 @@
         public static final String GUEST_USER_ENABLED = "guest_user_enabled";
 
         /**
+         * Whether the NetworkScoringService has been first initialized.
+         * <p>
+         * Type: int (0 for false, 1 for true)
+         * @hide
+         */
+        public static final String NETWORK_SCORING_PROVISIONED = "network_scoring_provisioned";
+
+        /**
          * Settings to backup. This is here so that it's in the same place as the settings
          * keys and easy to update.
          *
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index cc09653..872f911 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -73,9 +73,14 @@
     private static final String CONDITION_TAG = "condition";
     private static final String CONDITION_ATT_COMPONENT = "component";
     private static final String CONDITION_ATT_ID = "id";
+    private static final String CONDITION_ATT_SUMMARY = "summary";
+    private static final String CONDITION_ATT_LINE1 = "line1";
+    private static final String CONDITION_ATT_LINE2 = "line2";
+    private static final String CONDITION_ATT_ICON = "icon";
+    private static final String CONDITION_ATT_STATE = "state";
+    private static final String CONDITION_ATT_FLAGS = "flags";
 
     private static final String EXIT_CONDITION_TAG = "exitCondition";
-    private static final String EXIT_CONDITION_ATT_ID = "id";
     private static final String EXIT_CONDITION_ATT_COMPONENT = "component";
 
     public boolean allowCalls;
@@ -83,13 +88,13 @@
     public int allowFrom = SOURCE_ANYONE;
 
     public String sleepMode;
-    public int sleepStartHour;
-    public int sleepStartMinute;
+    public int sleepStartHour;   // 0-23
+    public int sleepStartMinute; // 0-59
     public int sleepEndHour;
     public int sleepEndMinute;
     public ComponentName[] conditionComponents;
     public Uri[] conditionIds;
-    public Uri exitConditionId;
+    public Condition exitCondition;
     public ComponentName exitConditionComponent;
 
     public ZenModeConfig() { }
@@ -115,7 +120,7 @@
             source.readTypedArray(conditionIds, Uri.CREATOR);
         }
         allowFrom = source.readInt();
-        exitConditionId = source.readParcelable(null);
+        exitCondition = source.readParcelable(null);
         exitConditionComponent = source.readParcelable(null);
     }
 
@@ -146,7 +151,7 @@
             dest.writeInt(0);
         }
         dest.writeInt(allowFrom);
-        dest.writeParcelable(exitConditionId, 0);
+        dest.writeParcelable(exitCondition, 0);
         dest.writeParcelable(exitConditionComponent, 0);
     }
 
@@ -163,7 +168,7 @@
             .append(conditionComponents == null ? null : TextUtils.join(",", conditionComponents))
             .append(",conditionIds=")
             .append(conditionIds == null ? null : TextUtils.join(",", conditionIds))
-            .append(",exitConditionId=").append(exitConditionId)
+            .append(",exitCondition=").append(exitCondition)
             .append(",exitConditionComponent=").append(exitConditionComponent)
             .append(']').toString();
     }
@@ -196,7 +201,7 @@
                 && other.sleepEndMinute == sleepEndMinute
                 && Objects.deepEquals(other.conditionComponents, conditionComponents)
                 && Objects.deepEquals(other.conditionIds, conditionIds)
-                && Objects.equals(other.exitConditionId, exitConditionId)
+                && Objects.equals(other.exitCondition, exitCondition)
                 && Objects.equals(other.exitConditionComponent, exitConditionComponent);
     }
 
@@ -205,7 +210,7 @@
         return Objects.hash(allowCalls, allowMessages, allowFrom, sleepMode,
                 sleepStartHour, sleepStartMinute, sleepEndHour, sleepEndMinute,
                 Arrays.hashCode(conditionComponents), Arrays.hashCode(conditionIds),
-                exitConditionId, exitConditionComponent);
+                exitCondition, exitConditionComponent);
     }
 
     public boolean isValid() {
@@ -294,9 +299,11 @@
                         conditionIds.add(conditionId);
                     }
                 } else if (EXIT_CONDITION_TAG.equals(tag)) {
-                    rt.exitConditionId = safeUri(parser, EXIT_CONDITION_ATT_ID);
-                    rt.exitConditionComponent =
-                            safeComponentName(parser, EXIT_CONDITION_ATT_COMPONENT);
+                    rt.exitCondition = readConditionXml(parser);
+                    if (rt.exitCondition != null) {
+                        rt.exitConditionComponent =
+                                safeComponentName(parser, EXIT_CONDITION_ATT_COMPONENT);
+                    }
                 }
             }
         }
@@ -333,16 +340,42 @@
                 out.endTag(null, CONDITION_TAG);
             }
         }
-        if (exitConditionId != null && exitConditionComponent != null) {
+        if (exitCondition != null && exitConditionComponent != null) {
             out.startTag(null, EXIT_CONDITION_TAG);
-            out.attribute(null, EXIT_CONDITION_ATT_ID, exitConditionId.toString());
             out.attribute(null, EXIT_CONDITION_ATT_COMPONENT,
                     exitConditionComponent.flattenToString());
+            writeConditionXml(exitCondition, out);
             out.endTag(null, EXIT_CONDITION_TAG);
         }
         out.endTag(null, ZEN_TAG);
     }
 
+    public static Condition readConditionXml(XmlPullParser parser) {
+        final Uri id = safeUri(parser, CONDITION_ATT_ID);
+        final String summary = parser.getAttributeValue(null, CONDITION_ATT_SUMMARY);
+        final String line1 = parser.getAttributeValue(null, CONDITION_ATT_LINE1);
+        final String line2 = parser.getAttributeValue(null, CONDITION_ATT_LINE2);
+        final int icon = safeInt(parser, CONDITION_ATT_ICON, -1);
+        final int state = safeInt(parser, CONDITION_ATT_STATE, -1);
+        final int flags = safeInt(parser, CONDITION_ATT_FLAGS, -1);
+        try {
+            return new Condition(id, summary, line1, line2, icon, state, flags);
+        } catch (IllegalArgumentException e) {
+            Slog.w(TAG, "Unable to read condition xml", e);
+            return null;
+        }
+    }
+
+    public static void writeConditionXml(Condition c, XmlSerializer out) throws IOException {
+        out.attribute(null, CONDITION_ATT_ID, c.id.toString());
+        out.attribute(null, CONDITION_ATT_SUMMARY, c.summary);
+        out.attribute(null, CONDITION_ATT_LINE1, c.line1);
+        out.attribute(null, CONDITION_ATT_LINE2, c.line2);
+        out.attribute(null, CONDITION_ATT_ICON, Integer.toString(c.icon));
+        out.attribute(null, CONDITION_ATT_STATE, Integer.toString(c.state));
+        out.attribute(null, CONDITION_ATT_FLAGS, Integer.toString(c.flags));
+    }
+
     public static boolean isValidHour(int val) {
         return val >= 0 && val < 24;
     }
@@ -403,21 +436,31 @@
         }
     };
 
-    // Built-in countdown conditions, e.g. condition://android/countdown/1399917958951
+    public DowntimeInfo toDowntimeInfo() {
+        final DowntimeInfo downtime = new DowntimeInfo();
+        downtime.startHour = sleepStartHour;
+        downtime.startMinute = sleepStartMinute;
+        downtime.endHour = sleepEndHour;
+        downtime.endMinute = sleepEndMinute;
+        return downtime;
+    }
 
-    private static final String COUNTDOWN_AUTHORITY = "android";
+    // For built-in conditions
+    private static final String SYSTEM_AUTHORITY = "android";
+
+    // Built-in countdown conditions, e.g. condition://android/countdown/1399917958951
     private static final String COUNTDOWN_PATH = "countdown";
 
     public static Uri toCountdownConditionId(long time) {
         return new Uri.Builder().scheme(Condition.SCHEME)
-                .authority(COUNTDOWN_AUTHORITY)
+                .authority(SYSTEM_AUTHORITY)
                 .appendPath(COUNTDOWN_PATH)
                 .appendPath(Long.toString(time))
                 .build();
     }
 
     public static long tryParseCountdownConditionId(Uri conditionId) {
-        if (!Condition.isValidId(conditionId, COUNTDOWN_AUTHORITY)) return 0;
+        if (!Condition.isValidId(conditionId, SYSTEM_AUTHORITY)) return 0;
         if (conditionId.getPathSegments().size() != 2
                 || !COUNTDOWN_PATH.equals(conditionId.getPathSegments().get(0))) return 0;
         try {
@@ -431,4 +474,68 @@
     public static boolean isValidCountdownConditionId(Uri conditionId) {
         return tryParseCountdownConditionId(conditionId) != 0;
     }
+
+    // Built-in downtime conditions, e.g. condition://android/downtime?start=10.00&end=7.00
+    private static final String DOWNTIME_PATH = "downtime";
+
+    public static Uri toDowntimeConditionId(DowntimeInfo downtime) {
+        return new Uri.Builder().scheme(Condition.SCHEME)
+                .authority(SYSTEM_AUTHORITY)
+                .appendPath(DOWNTIME_PATH)
+                .appendQueryParameter("start", downtime.startHour + "." + downtime.startMinute)
+                .appendQueryParameter("end", downtime.endHour + "." + downtime.endMinute)
+                .build();
+    }
+
+    public static DowntimeInfo tryParseDowntimeConditionId(Uri conditionId) {
+        if (!Condition.isValidId(conditionId, SYSTEM_AUTHORITY)
+                || conditionId.getPathSegments().size() != 1
+                || !DOWNTIME_PATH.equals(conditionId.getPathSegments().get(0))) {
+            return null;
+        }
+        final int[] start = tryParseHourAndMinute(conditionId.getQueryParameter("start"));
+        final int[] end = tryParseHourAndMinute(conditionId.getQueryParameter("end"));
+        if (start == null || end == null) return null;
+        final DowntimeInfo downtime = new DowntimeInfo();
+        downtime.startHour = start[0];
+        downtime.startMinute = start[1];
+        downtime.endHour = end[0];
+        downtime.endMinute = end[1];
+        return downtime;
+    }
+
+    private static int[] tryParseHourAndMinute(String value) {
+        if (TextUtils.isEmpty(value)) return null;
+        final int i = value.indexOf('.');
+        if (i < 1 || i >= value.length() - 1) return null;
+        final int hour = tryParseInt(value.substring(0, i), -1);
+        final int minute = tryParseInt(value.substring(i + 1), -1);
+        return isValidHour(hour) && isValidMinute(minute) ? new int[] { hour, minute } : null;
+    }
+
+    public static boolean isValidDowntimeConditionId(Uri conditionId) {
+        return tryParseDowntimeConditionId(conditionId) != null;
+    }
+
+    public static class DowntimeInfo {
+        public int startHour;   // 0-23
+        public int startMinute; // 0-59
+        public int endHour;
+        public int endMinute;
+
+        @Override
+        public int hashCode() {
+            return 0;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (!(o instanceof DowntimeInfo)) return false;
+            final DowntimeInfo other = (DowntimeInfo) o;
+            return startHour == other.startHour
+                    && startMinute == other.startMinute
+                    && endHour == other.endHour
+                    && endMinute == other.endMinute;
+        }
+    }
 }
diff --git a/core/java/android/service/persistentdata/PersistentDataBlockManager.java b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
index 42a2e57..0ffdf68 100644
--- a/core/java/android/service/persistentdata/PersistentDataBlockManager.java
+++ b/core/java/android/service/persistentdata/PersistentDataBlockManager.java
@@ -16,6 +16,7 @@
 
 package android.service.persistentdata;
 
+import android.annotation.SystemApi;
 import android.os.RemoteException;
 import android.util.Slog;
 
@@ -30,12 +31,14 @@
  * {@link PersistentDataBlockManager#getDataBlockSize()}.
  *
  * Clients can query the maximum size for a block via
+ * {@link PersistentDataBlockManager#getMaximumDataBlockSize()}
  *
  * Clients can read the currently written block by invoking
  * {@link PersistentDataBlockManager#read()}.
  *
  * @hide
  */
+@SystemApi
 public class PersistentDataBlockManager {
     private static final String TAG = PersistentDataBlockManager.class.getSimpleName();
     private IPersistentDataBlockService sService;
diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java
index 51f07ec..5fe9194 100644
--- a/core/java/android/service/trust/TrustAgentService.java
+++ b/core/java/android/service/trust/TrustAgentService.java
@@ -69,12 +69,6 @@
             "[" + getClass().getSimpleName() + "]";
     private static final boolean DEBUG = false;
 
-    // Temporary workaround to allow current trust agent implementations to continue working.
-    // This and the code guarded by this should be removed before shipping.
-    // If true, calls setManagingTrust(true) after onCreate, if it wasn't already set.
-    // TODO: Remove this once all agents are updated.
-    private static final boolean SET_MANAGED_FOR_LEGACY_AGENTS = true;
-
     /**
      * The {@link Intent} that must be declared as handled by the service.
      */
@@ -130,11 +124,6 @@
 
     @Override
     public void onCreate() {
-        // TODO: Remove this once all agents are updated.
-        if (SET_MANAGED_FOR_LEGACY_AGENTS) {
-            setManagingTrust(true);
-        }
-
         super.onCreate();
         ComponentName component = new ComponentName(this, getClass());
         try {
@@ -175,7 +164,7 @@
      * set.
      *
      * @param options Option feature bundle.
-     * @return true if the {@link #TrustAgentService()} supports this feature.
+     * @return true if the {@link TrustAgentService} supports this feature.
      */
     public boolean onSetTrustAgentFeaturesEnabled(Bundle options) {
         return false;
diff --git a/core/java/android/service/voice/VoiceInteractionServiceInfo.java b/core/java/android/service/voice/VoiceInteractionServiceInfo.java
index bacda04..e6e9413 100644
--- a/core/java/android/service/voice/VoiceInteractionServiceInfo.java
+++ b/core/java/android/service/voice/VoiceInteractionServiceInfo.java
@@ -99,6 +99,11 @@
                 mParseError = "No sessionService specified";
                 return;
             }
+            /* Not yet time
+            if (mRecognitionService == null) {
+                mParseError = "No recogitionService specified";
+                return;
+            } */
         } catch (XmlPullParserException e) {
             mParseError = "Error parsing voice interation service meta-data: " + e;
             Log.w(TAG, "error parsing voice interaction service meta-data", e);
diff --git a/core/java/android/text/InputFilter.java b/core/java/android/text/InputFilter.java
index 8d4b08e..bff09a2 100644
--- a/core/java/android/text/InputFilter.java
+++ b/core/java/android/text/InputFilter.java
@@ -75,14 +75,15 @@
      * greater than the specified length.
      */
     public static class LengthFilter implements InputFilter {
+        private final int mMax;
+
         public LengthFilter(int max) {
             mMax = max;
         }
 
-        public CharSequence filter(CharSequence source, int start, int end,
-                                   Spanned dest, int dstart, int dend) {
+        public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
+                int dstart, int dend) {
             int keep = mMax - (dest.length() - (dend - dstart));
-
             if (keep <= 0) {
                 return "";
             } else if (keep >= end - start) {
@@ -99,6 +100,11 @@
             }
         }
 
-        private int mMax;
+        /**
+         * @return the maximum length enforced by this input filter
+         */
+        public int getMax() {
+            return mMax;
+        }
     }
 }
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index a36f06c..7dce348 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -273,16 +273,22 @@
                 // Draw all leading margin spans.  Adjust left or right according
                 // to the paragraph direction of the line.
                 final int length = spans.length;
+                boolean useFirstLineMargin = isFirstParaLine;
+                for (int n = 0; n < length; n++) {
+                    if (spans[n] instanceof LeadingMarginSpan2) {
+                        int count = ((LeadingMarginSpan2) spans[n]).getLeadingMarginLineCount();
+                        int startLine = getLineForOffset(sp.getSpanStart(spans[n]));
+                        // if there is more than one LeadingMarginSpan2, use
+                        // the count that is greatest
+                        if (i < startLine + count) {
+                            useFirstLineMargin = true;
+                            break;
+                        }
+                    }
+                }
                 for (int n = 0; n < length; n++) {
                     if (spans[n] instanceof LeadingMarginSpan) {
                         LeadingMarginSpan margin = (LeadingMarginSpan) spans[n];
-                        boolean useFirstLineMargin = isFirstParaLine;
-                        if (margin instanceof LeadingMarginSpan2) {
-                            int count = ((LeadingMarginSpan2) margin).getLeadingMarginLineCount();
-                            int startLine = getLineForOffset(sp.getSpanStart(margin));
-                            useFirstLineMargin = i < startLine + count;
-                        }
-
                         if (dir == DIR_RIGHT_TO_LEFT) {
                             margin.drawLeadingMargin(canvas, paint, right, dir, ltop,
                                                      lbaseline, lbottom, buf,
@@ -1535,15 +1541,18 @@
         boolean isFirstParaLine = lineStart == 0 ||
             spanned.charAt(lineStart - 1) == '\n';
 
+        boolean useFirstLineMargin = isFirstParaLine;
+        for (int i = 0; i < spans.length; i++) {
+            if (spans[i] instanceof LeadingMarginSpan2) {
+                int spStart = spanned.getSpanStart(spans[i]);
+                int spanLine = getLineForOffset(spStart);
+                int count = ((LeadingMarginSpan2) spans[i]).getLeadingMarginLineCount();
+                // if there is more than one LeadingMarginSpan2, use the count that is greatest
+                useFirstLineMargin |= line < spanLine + count;
+            }
+        }
         for (int i = 0; i < spans.length; i++) {
             LeadingMarginSpan span = spans[i];
-            boolean useFirstLineMargin = isFirstParaLine;
-            if (span instanceof LeadingMarginSpan2) {
-                int spStart = spanned.getSpanStart(span);
-                int spanLine = getLineForOffset(spStart);
-                int count = ((LeadingMarginSpan2)span).getLeadingMarginLineCount();
-                useFirstLineMargin = line < spanLine + count;
-            }
             margin += span.getLeadingMargin(useFirstLineMargin);
         }
 
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 4144a75..aecf488 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -201,13 +201,12 @@
                     restWidth -= sp[i].getLeadingMargin(false);
 
                     // LeadingMarginSpan2 is odd.  The count affects all
-                    // leading margin spans, not just this particular one,
-                    // and start from the top of the span, not the top of the
-                    // paragraph.
+                    // leading margin spans, not just this particular one
                     if (lms instanceof LeadingMarginSpan2) {
                         LeadingMarginSpan2 lms2 = (LeadingMarginSpan2) lms;
                         int lmsFirstLine = getLineForOffset(spanned.getSpanStart(lms2));
-                        firstWidthLineLimit = lmsFirstLine + lms2.getLeadingMarginLineCount();
+                        firstWidthLineLimit = Math.max(firstWidthLineLimit,
+                                lmsFirstLine + lms2.getLeadingMarginLineCount());
                     }
                 }
 
diff --git a/core/java/android/text/style/LeadingMarginSpan.java b/core/java/android/text/style/LeadingMarginSpan.java
index 2f429ff..96a7cd9 100644
--- a/core/java/android/text/style/LeadingMarginSpan.java
+++ b/core/java/android/text/style/LeadingMarginSpan.java
@@ -28,6 +28,9 @@
  * margin spans on a single paragraph; they will be rendered in order, each
  * adding its margin to the ones before it. The leading margin is on the right
  * for lines in a right-to-left paragraph.
+ * <p>
+ * LeadingMarginSpans should be attached from the first character to the last
+ * character of a single paragraph.
  */
 public interface LeadingMarginSpan
 extends ParagraphStyle
@@ -69,18 +72,22 @@
 
 
     /**
-     * An extended version of {@link LeadingMarginSpan}, which allows
-     * the implementor to specify the number of lines of text to which
-     * this object is attached that the "first line of paragraph" margin
-     * width will be applied to.
+     * An extended version of {@link LeadingMarginSpan}, which allows the
+     * implementor to specify the number of lines of the paragraph to which
+     * this object is attached that the "first line of paragraph" margin width
+     * will be applied to.
+     * <p>
+     * There should only be one LeadingMarginSpan2 per paragraph. The leading
+     * margin line count affects all LeadingMarginSpans in the paragraph,
+     * adjusting the number of lines to which the first line margin is applied.
+     * <p>
+     * As with LeadingMarginSpans, LeadingMarginSpan2s should be attached from
+     * the beginning to the end of a paragraph.
      */
     public interface LeadingMarginSpan2 extends LeadingMarginSpan, WrapTogetherSpan {
         /**
-         * Returns the number of lines of text to which this object is
+         * Returns the number of lines of the paragraph to which this object is
          * attached that the "first line" margin will apply to.
-         * Note that if this returns N, the first N lines of the region,
-         * not the first N lines of each paragraph, will be given the
-         * special margin width.
          */
         public int getLeadingMarginLineCount();
     };
diff --git a/core/java/android/util/ArrayMap.java b/core/java/android/util/ArrayMap.java
index 9a0b7fc..3889cb6 100644
--- a/core/java/android/util/ArrayMap.java
+++ b/core/java/android/util/ArrayMap.java
@@ -410,7 +410,7 @@
 
     /**
      * Add a new value to the array map.
-     * @param key The key under which to store the value.  <b>Must not be null.</b>  If
+     * @param key The key under which to store the value.  If
      * this key already exists in the array, its value will be replaced.
      * @param value The value to store for the given key.
      * @return Returns the old value that was stored for the given key, or null if there
@@ -496,6 +496,44 @@
     }
 
     /**
+     * The use of the {@link #append} function can result in invalid array maps, in particular
+     * an array map where the same key appears multiple times.  This function verifies that
+     * the array map is valid, throwing IllegalArgumentException if a problem is found.  The
+     * main use for this method is validating an array map after unpacking from an IPC, to
+     * protect against malicious callers.
+     * @hide
+     */
+    public void validate() {
+        final int N = mSize;
+        if (N <= 1) {
+            // There can't be dups.
+            return;
+        }
+        int basehash = mHashes[0];
+        int basei = 0;
+        for (int i=1; i<N; i++) {
+            int hash = mHashes[i];
+            if (hash != basehash) {
+                basehash = hash;
+                basei = i;
+                continue;
+            }
+            // We are in a run of entries with the same hash code.  Go backwards through
+            // the array to see if any keys are the same.
+            final Object cur = mArray[i<<1];
+            for (int j=i-1; j>=basei; j--) {
+                final Object prev = mArray[j<<1];
+                if (cur == prev) {
+                    throw new IllegalArgumentException("Duplicate key in ArrayMap: " + cur);
+                }
+                if (cur != null && prev != null && cur.equals(prev)) {
+                    throw new IllegalArgumentException("Duplicate key in ArrayMap: " + cur);
+                }
+            }
+        }
+    }
+
+    /**
      * Perform a {@link #put(Object, Object)} of all key/value pairs in <var>array</var>
      * @param array The array whose contents are to be retrieved.
      */
diff --git a/core/java/android/util/DisplayMetrics.java b/core/java/android/util/DisplayMetrics.java
index 3f10b92..946a3f7 100644
--- a/core/java/android/util/DisplayMetrics.java
+++ b/core/java/android/util/DisplayMetrics.java
@@ -68,7 +68,7 @@
 
     /**
      * Intermediate density for screens that sit somewhere between
-     * {@link #DENSITY_XHIGH} (320dpi) and {@link #DENSITY_XXHIGH} (480 dpi).
+     * {@link #DENSITY_XHIGH} (320 dpi) and {@link #DENSITY_XXHIGH} (480 dpi).
      * This is not a density that applications should target, instead relying
      * on the system to scale their {@link #DENSITY_XXHIGH} assets for them.
      */
@@ -80,6 +80,14 @@
     public static final int DENSITY_XXHIGH = 480;
 
     /**
+     * Intermediate density for screens that sit somewhere between
+     * {@link #DENSITY_XXHIGH} (480 dpi) and {@link #DENSITY_XXXHIGH} (560 dpi).
+     * This is not a density that applications should target, instead relying
+     * on the system to scale their {@link #DENSITY_XXXHIGH} assets for them.
+     */
+    public static final int DENSITY_560 = 560;
+
+    /**
      * Standard quantized DPI for extra-extra-extra-high-density screens.  Applications
      * should not generally worry about this density; relying on XHIGH graphics
      * being scaled up to it should be sufficient for almost all cases.  A typical
diff --git a/core/java/android/view/GhostView.java b/core/java/android/view/GhostView.java
index a79838f..3cbaf60 100644
--- a/core/java/android/view/GhostView.java
+++ b/core/java/android/view/GhostView.java
@@ -17,6 +17,7 @@
 
 import android.graphics.Canvas;
 import android.graphics.Matrix;
+import android.widget.FrameLayout;
 
 /**
  * This view draws another View in an Overlay without changing the parent. It will not be drawn
@@ -28,17 +29,13 @@
  */
 public class GhostView extends View {
     private final View mView;
+    private int mReferences;
 
-    private GhostView(View view, ViewGroup host, Matrix matrix) {
+    private GhostView(View view) {
         super(view.getContext());
         mView = view;
         mView.mGhostView = this;
-        mRenderNode.setAnimationMatrix(matrix);
         final ViewGroup parent = (ViewGroup) mView.getParent();
-        setLeft(0);
-        setTop(0);
-        setRight(host.getWidth());
-        setBottom(host.getHeight());
         setGhostedVisibility(View.INVISIBLE);
         parent.mRecreateDisplayList = true;
         parent.getDisplayList();
@@ -100,10 +97,13 @@
         ViewGroupOverlay overlay = viewGroup.getOverlay();
         ViewOverlay.OverlayViewGroup overlayViewGroup = overlay.mOverlayViewGroup;
         GhostView ghostView = view.mGhostView;
+        int previousRefCount = 0;
         if (ghostView != null) {
-            ViewGroup oldParent = (ViewGroup) ghostView.getParent();
-            if (oldParent != overlayViewGroup) {
-                oldParent.removeView(ghostView);
+            View oldParent = (View) ghostView.getParent();
+            ViewGroup oldGrandParent = (ViewGroup) oldParent.getParent();
+            if (oldGrandParent != overlayViewGroup) {
+                previousRefCount = ghostView.mReferences;
+                oldGrandParent.removeView(oldParent);
                 ghostView = null;
             }
         }
@@ -112,9 +112,19 @@
                 matrix = new Matrix();
                 calculateMatrix(view, viewGroup, matrix);
             }
-            ghostView = new GhostView(view, (ViewGroup) overlayViewGroup.mHostView, matrix);
-            overlay.add(ghostView);
+            ghostView = new GhostView(view);
+            ghostView.setMatrix(matrix);
+            FrameLayout parent = new FrameLayout(view.getContext());
+            parent.setClipChildren(false);
+            copySize(viewGroup, parent);
+            copySize(viewGroup, ghostView);
+            parent.addView(ghostView);
+            overlay.add(parent);
+            ghostView.mReferences = previousRefCount;
+        } else if (matrix != null) {
+            ghostView.setMatrix(matrix);
         }
+        ghostView.mReferences++;
         return ghostView;
     }
 
@@ -125,12 +135,23 @@
     public static void removeGhost(View view) {
         GhostView ghostView = view.mGhostView;
         if (ghostView != null) {
-            ViewGroup parent = (ViewGroup) ghostView.getParent();
-            parent.removeView(ghostView);
+            ghostView.mReferences--;
+            if (ghostView.mReferences == 0) {
+                ViewGroup parent = (ViewGroup) ghostView.getParent();
+                ViewGroup grandParent = (ViewGroup) parent.getParent();
+                grandParent.removeView(parent);
+            }
         }
     }
 
     public static GhostView getGhost(View view) {
         return view.mGhostView;
     }
+
+    private static void copySize(View from, View to) {
+        to.setLeft(0);
+        to.setTop(0);
+        to.setRight(from.getWidth());
+        to.setBottom(from.getHeight());
+    }
 }
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 83767cb..7deb9c8 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -121,7 +121,8 @@
     boolean isKeyguardSecure();
     boolean inKeyguardRestrictedInputMode();
     void dismissKeyguard();
-    void keyguardGoingAway();
+    void keyguardGoingAway(boolean disableWindowAnimations,
+            boolean keyguardGoingToNotificationShade);
 
     void closeSystemDialogs(String reason);
 
diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java
index 0b15ba7..4d9a8cc 100644
--- a/core/java/android/view/ViewDebug.java
+++ b/core/java/android/view/ViewDebug.java
@@ -1107,8 +1107,7 @@
 
                     exportUnrolledArray(context, out, property, array, valuePrefix, suffix);
 
-                    // Probably want to return here, same as for fields.
-                    return;
+                    continue;
                 } else if (!returnType.isPrimitive()) {
                     if (property.deepExport()) {
                         dumpViewProperties(context, methodValue, out, prefix + property.prefix());
@@ -1187,8 +1186,7 @@
 
                     exportUnrolledArray(context, out, property, array, valuePrefix, suffix);
 
-                    // We exit here!
-                    return;
+                    continue;
                 } else if (!type.isPrimitive()) {
                     if (property.deepExport()) {
                         dumpViewProperties(context, field.get(view), out, prefix +
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index a326aad..92e0245 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -701,8 +701,13 @@
             final boolean forceHwAccelerated = (attrs.privateFlags &
                     WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_HARDWARE_ACCELERATED) != 0;
 
-            if (!HardwareRenderer.sRendererDisabled || (HardwareRenderer.sSystemRendererDisabled
-                    && forceHwAccelerated)) {
+            if (fakeHwAccelerated) {
+                // This is exclusively for the preview windows the window manager
+                // shows for launching applications, so they will look more like
+                // the app being launched.
+                mAttachInfo.mHardwareAccelerationRequested = true;
+            } else if (!HardwareRenderer.sRendererDisabled
+                    || (HardwareRenderer.sSystemRendererDisabled && forceHwAccelerated)) {
                 if (mAttachInfo.mHardwareRenderer != null) {
                     mAttachInfo.mHardwareRenderer.destroy();
                 }
@@ -714,13 +719,6 @@
                     mAttachInfo.mHardwareAccelerated =
                             mAttachInfo.mHardwareAccelerationRequested = true;
                 }
-            } else if (fakeHwAccelerated) {
-                // The window had wanted to use hardware acceleration, but this
-                // is not allowed in its process.  By setting this flag, it can
-                // still render as if it was accelerated.  This is basically for
-                // the preview windows the window manager shows for launching
-                // applications, so they will look more like the app being launched.
-                mAttachInfo.mHardwareAccelerationRequested = true;
             }
         }
     }
@@ -2460,13 +2458,30 @@
             if (mAttachInfo.mHardwareRenderer != null && mAttachInfo.mHardwareRenderer.isEnabled()) {
                 // Draw with hardware renderer.
                 mIsAnimating = false;
+                boolean invalidateRoot = false;
                 if (mHardwareYOffset != yOffset || mHardwareXOffset != xOffset) {
                     mHardwareYOffset = yOffset;
                     mHardwareXOffset = xOffset;
-                    mAttachInfo.mHardwareRenderer.invalidateRoot();
+                    invalidateRoot = true;
                 }
                 mResizeAlpha = resizeAlpha;
 
+                if (!invalidateRoot) {
+                    // If accessibility focus moved, invalidate the root.
+                    final Drawable drawable = mAttachInfo.mAccessibilityFocusDrawable;
+                    if (drawable != null) {
+                        final Rect bounds = mAttachInfo.mTmpInvalRect;
+                        if (getAccessibilityFocusedRect(bounds)
+                                && !bounds.equals(drawable.getBounds())) {
+                            invalidateRoot = true;
+                        }
+                    }
+                }
+
+                if (invalidateRoot) {
+                    mAttachInfo.mHardwareRenderer.invalidateRoot();
+                }
+
                 dirty.setEmpty();
 
                 mBlockResizeBuffer = false;
@@ -2621,41 +2636,46 @@
      * @param canvas The canvas on which to draw.
      */
     private void drawAccessibilityFocusedDrawableIfNeeded(Canvas canvas) {
+        final Rect bounds = mAttachInfo.mTmpInvalRect;
+        if (getAccessibilityFocusedRect(bounds)) {
+            final Drawable drawable = getAccessibilityFocusedDrawable();
+            if (drawable != null) {
+                drawable.setBounds(bounds);
+                drawable.draw(canvas);
+            }
+        }
+    }
+
+    private boolean getAccessibilityFocusedRect(Rect bounds) {
         final AccessibilityManager manager = AccessibilityManager.getInstance(mView.mContext);
         if (!manager.isEnabled() || !manager.isTouchExplorationEnabled()) {
-            return;
+            return false;
         }
 
         final View host = mAccessibilityFocusedHost;
         if (host == null || host.mAttachInfo == null) {
-            return;
-        }
-
-        final Drawable drawable = getAccessibilityFocusedDrawable();
-        if (drawable == null) {
-            return;
+            return false;
         }
 
         final AccessibilityNodeProvider provider = host.getAccessibilityNodeProvider();
-        final Rect bounds = mAttachInfo.mTmpInvalRect;
         if (provider == null) {
             host.getBoundsOnScreen(bounds);
         } else if (mAccessibilityFocusedVirtualView != null) {
             mAccessibilityFocusedVirtualView.getBoundsInScreen(bounds);
         } else {
-            return;
+            return false;
         }
 
-        bounds.offset(-mAttachInfo.mWindowLeft, -mAttachInfo.mWindowTop);
-        bounds.intersect(0, 0, mAttachInfo.mViewRootImpl.mWidth, mAttachInfo.mViewRootImpl.mHeight);
-        drawable.setBounds(bounds);
-        drawable.draw(canvas);
+        final AttachInfo attachInfo = mAttachInfo;
+        bounds.offset(-attachInfo.mWindowLeft, -attachInfo.mWindowTop);
+        bounds.intersect(0, 0, attachInfo.mViewRootImpl.mWidth, attachInfo.mViewRootImpl.mHeight);
+        return true;
     }
 
     private Drawable getAccessibilityFocusedDrawable() {
         // Lazily load the accessibility focus drawable.
         if (mAttachInfo.mAccessibilityFocusDrawable == null) {
-            TypedValue value = new TypedValue();
+            final TypedValue value = new TypedValue();
             final boolean resolved = mView.mContext.getTheme().resolveAttribute(
                     R.attr.accessibilityFocusedDrawable, value, true);
             if (resolved) {
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 5f0fa18..053fdd0 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -737,8 +737,15 @@
     /**
      * Create and return an animation to re-display a force hidden window.
      */
-    public Animation createForceHideEnterAnimation(boolean onWallpaper);
-    
+    public Animation createForceHideEnterAnimation(boolean onWallpaper,
+            boolean goingToNotificationShade);
+
+    /**
+     * Create and return an animation to let the wallpaper disappear after being shown on a force
+     * hiding window.
+     */
+    public Animation createForceHideWallpaperExitAnimation(boolean goingToNotificationShade);
+
     /**
      * Called from the input reader thread before a key is enqueued.
      *
@@ -1008,6 +1015,11 @@
     public void dismissKeyguardLw();
 
     /**
+     * Notifies the keyguard that the activity has drawn it was waiting for.
+     */
+    public void notifyActivityDrawnForKeyguardLw();
+
+    /**
      * Ask the policy whether the Keyguard has drawn. If the Keyguard is disabled, this method
      * returns true as soon as we know that Keyguard is disabled.
      *
diff --git a/core/java/android/view/accessibility/AccessibilityCache.java b/core/java/android/view/accessibility/AccessibilityCache.java
index 4f34231..ca6437a 100644
--- a/core/java/android/view/accessibility/AccessibilityCache.java
+++ b/core/java/android/view/accessibility/AccessibilityCache.java
@@ -36,7 +36,7 @@
 
     private static final boolean DEBUG = false;
 
-    private static final boolean CHECK_INTEGRITY = Build.IS_DEBUGGABLE;
+    private static final boolean CHECK_INTEGRITY = "eng".equals(Build.TYPE);
 
     private final Object mLock = new Object();
 
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index 1bf4639..3987fbc 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -562,6 +562,7 @@
     private LongArray mChildNodeIds;
     private ArrayList<AccessibilityAction> mActions;
 
+    private int mMaxTextLength = -1;
     private int mMovementGranularities;
 
     private int mTextSelectionStart = UNDEFINED_SELECTION_INDEX;
@@ -1045,6 +1046,36 @@
     }
 
     /**
+     * Sets the maximum text length, or -1 for no limit.
+     * <p>
+     * Typically used to indicate that an editable text field has a limit on
+     * the number of characters entered.
+     * <p>
+     * <strong>Note:</strong> Cannot be called from an
+     * {@link android.accessibilityservice.AccessibilityService}.
+     * This class is made immutable before being delivered to an AccessibilityService.
+     *
+     * @param max The maximum text length.
+     * @see #getMaxTextLength()
+     *
+     * @throws IllegalStateException If called from an AccessibilityService.
+     */
+    public void setMaxTextLength(int max) {
+        enforceNotSealed();
+        mMaxTextLength = max;
+    }
+
+    /**
+     * Returns the maximum text length for this node.
+     *
+     * @return The maximum text length, or -1 for no limit.
+     * @see #setMaxTextLength(int)
+     */
+    public int getMaxTextLength() {
+        return mMaxTextLength;
+    }
+
+    /**
      * Sets the movement granularities for traversing the text of this node.
      * <p>
      *   <strong>Note:</strong> Cannot be called from an
@@ -2469,8 +2500,8 @@
             parcel.writeInt(0);
         }
 
+        parcel.writeInt(mMaxTextLength);
         parcel.writeInt(mMovementGranularities);
-
         parcel.writeInt(mBooleanProperties);
 
         parcel.writeCharSequence(mPackageName);
@@ -2562,6 +2593,7 @@
         }
 
         mBooleanProperties = other.mBooleanProperties;
+        mMaxTextLength = other.mMaxTextLength;
         mMovementGranularities = other.mMovementGranularities;
 
         final LongArray otherChildNodeIds = other.mChildNodeIds;
@@ -2636,8 +2668,8 @@
             }
         }
 
+        mMaxTextLength = parcel.readInt();
         mMovementGranularities = parcel.readInt();
-
         mBooleanProperties = parcel.readInt();
 
         mPackageName = parcel.readCharSequence();
@@ -2695,6 +2727,7 @@
         mLabeledById = ROOT_NODE_ID;
         mWindowId = UNDEFINED_ITEM_ID;
         mConnectionId = UNDEFINED_CONNECTION_ID;
+        mMaxTextLength = -1;
         mMovementGranularities = 0;
         if (mChildNodeIds != null) {
             mChildNodeIds.clear();
@@ -2911,6 +2944,7 @@
         builder.append("; className: ").append(mClassName);
         builder.append("; text: ").append(mText);
         builder.append("; error: ").append(mError);
+        builder.append("; maxTextLength: ").append(mMaxTextLength);
         builder.append("; contentDescription: ").append(mContentDescription);
         builder.append("; viewIdResName: ").append(mViewIdResourceName);
 
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index 623b5f9..eec3570 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -1655,7 +1655,12 @@
             final boolean isImmediate = (mCursorAnchorInfoMonitorMode &
                     CursorAnchorInfoRequest.FLAG_CURSOR_ANCHOR_INFO_IMMEDIATE) != 0;
             if (!isImmediate && Objects.equals(mCursorAnchorInfo, cursorAnchorInfo)) {
-                Log.w(TAG, "Ignoring redundant updateCursorAnchorInfo: info=" + cursorAnchorInfo);
+                // TODO: Consider always emitting this message once we have addressed redundant
+                // calls of this method from android.widget.Editor.
+                if (DEBUG) {
+                    Log.w(TAG, "Ignoring redundant updateCursorAnchorInfo: info="
+                            + cursorAnchorInfo);
+                }
                 return;
             }
             if (DEBUG) Log.v(TAG, "updateCursorAnchorInfo: " + cursorAnchorInfo);
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index e07a6e3..1b0cb3d 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1730,9 +1730,12 @@
      * <ul>
      * <li> This method can be used to allow JavaScript to control the host
      * application. This is a powerful feature, but also presents a security
-     * risk for applications targeted to API level
-     * {@link android.os.Build.VERSION_CODES#JELLY_BEAN} or below, because
-     * JavaScript could use reflection to access an
+     * risk for apps targeting {@link android.os.Build.VERSION_CODES#JELLY_BEAN} or earlier.
+     * Apps that target a version later than {@link android.os.Build.VERSION_CODES#JELLY_BEAN}
+     * are still vulnerable if the app runs on a device running Android earlier than 4.2.
+     * The most secure way to use this method is to target {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}
+     * and to ensure the method is called only when running on Android 4.2 or later.
+     * With these older versions, JavaScript could use reflection to access an
      * injected object's public fields. Use of this method in a WebView
      * containing untrusted content could allow an attacker to manipulate the
      * host application in unintended ways, executing Java code with the
@@ -1740,7 +1743,8 @@
      * method in a WebView which could contain untrusted content.</li>
      * <li> JavaScript interacts with Java object on a private, background
      * thread of this WebView. Care is therefore required to maintain thread
-     * safety.</li>
+     * safety.
+     * </li>
      * <li> The Java object's fields are not accessible.</li>
      * <li> For applications targeted to API level {@link android.os.Build.VERSION_CODES#L}
      * and above, methods of injected Java objects are enumerable from
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java
index 23894ee..c7ffedc 100644
--- a/core/java/android/webkit/WebViewFactory.java
+++ b/core/java/android/webkit/WebViewFactory.java
@@ -29,6 +29,7 @@
 import android.os.ServiceManager;
 import android.os.StrictMode;
 import android.os.SystemProperties;
+import android.os.Trace;
 import android.text.TextUtils;
 import android.util.AndroidRuntimeException;
 import android.util.Log;
@@ -71,38 +72,55 @@
     private static WebViewFactoryProvider sProviderInstance;
     private static final Object sProviderLock = new Object();
     private static boolean sAddressSpaceReserved = false;
+    private static PackageInfo sPackageInfo;
 
     public static String getWebViewPackageName() {
         return AppGlobals.getInitialApplication().getString(
                 com.android.internal.R.string.config_webViewPackageName);
     }
 
+    public static PackageInfo getLoadedPackageInfo() {
+        return sPackageInfo;
+    }
+
     static WebViewFactoryProvider getProvider() {
         synchronized (sProviderLock) {
             // For now the main purpose of this function (and the factory abstraction) is to keep
             // us honest and minimize usage of WebView internals when binding the proxy.
             if (sProviderInstance != null) return sProviderInstance;
 
-            loadNativeLibrary();
-
-            Class<WebViewFactoryProvider> providerClass;
+            Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.getProvider()");
             try {
-                providerClass = getFactoryClass();
-            } catch (ClassNotFoundException e) {
-                Log.e(LOGTAG, "error loading provider", e);
-                throw new AndroidRuntimeException(e);
-            }
+                Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.loadNativeLibrary()");
+                loadNativeLibrary();
+                Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
 
-            StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-            try {
-                sProviderInstance = providerClass.newInstance();
-                if (DEBUG) Log.v(LOGTAG, "Loaded provider: " + sProviderInstance);
-                return sProviderInstance;
-            } catch (Exception e) {
-                Log.e(LOGTAG, "error instantiating provider", e);
-                throw new AndroidRuntimeException(e);
+                Class<WebViewFactoryProvider> providerClass;
+                Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.getFactoryClass()");
+                try {
+                    providerClass = getFactoryClass();
+                } catch (ClassNotFoundException e) {
+                    Log.e(LOGTAG, "error loading provider", e);
+                    throw new AndroidRuntimeException(e);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
+                }
+
+                StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
+                Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "providerClass.newInstance()");
+                try {
+                    sProviderInstance = providerClass.newInstance();
+                    if (DEBUG) Log.v(LOGTAG, "Loaded provider: " + sProviderInstance);
+                    return sProviderInstance;
+                } catch (Exception e) {
+                    Log.e(LOGTAG, "error instantiating provider", e);
+                    throw new AndroidRuntimeException(e);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
+                    StrictMode.setThreadPolicy(oldPolicy);
+                }
             } finally {
-                StrictMode.setThreadPolicy(oldPolicy);
+                Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
             }
         }
     }
@@ -112,9 +130,9 @@
         try {
             // First fetch the package info so we can log the webview package version.
             String packageName = getWebViewPackageName();
-            PackageInfo pi = initialApplication.getPackageManager().getPackageInfo(packageName, 0);
-            Log.i(LOGTAG, "Loading " + packageName + " version " + pi.versionName +
-                          " (code " + pi.versionCode + ")");
+            sPackageInfo = initialApplication.getPackageManager().getPackageInfo(packageName, 0);
+            Log.i(LOGTAG, "Loading " + packageName + " version " + sPackageInfo.versionName +
+                          " (code " + sPackageInfo.versionCode + ")");
 
             // Construct a package context to load the Java code into the current app.
             Context webViewContext = initialApplication.createPackageContext(packageName,
@@ -122,8 +140,13 @@
             initialApplication.getAssets().addAssetPath(
                     webViewContext.getApplicationInfo().sourceDir);
             ClassLoader clazzLoader = webViewContext.getClassLoader();
-            return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, true,
-                                                                 clazzLoader);
+            Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()");
+            try {
+                return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, true,
+                                                                     clazzLoader);
+            } finally {
+                Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW);
+            }
         } catch (PackageManager.NameNotFoundException e) {
             // If the package doesn't exist, then try loading the null WebView instead.
             // If that succeeds, then this is a device without WebView support; if it fails then
diff --git a/core/java/android/widget/CheckedTextView.java b/core/java/android/widget/CheckedTextView.java
index ccd0480..29a6a7d 100644
--- a/core/java/android/widget/CheckedTextView.java
+++ b/core/java/android/widget/CheckedTextView.java
@@ -53,6 +53,8 @@
 
     private int mBasePadding;
     private int mCheckMarkWidth;
+    private int mCheckMarkGravity = Gravity.END;
+
     private boolean mNeedRequestlayout;
 
     private static final int[] CHECKED_STATE_SET = {
@@ -83,15 +85,17 @@
         }
 
         mCheckMarkTintMode = Drawable.parseTintMode(a.getInt(
-                R.styleable.CompoundButton_buttonTintMode, -1), mCheckMarkTintMode);
+                R.styleable.CheckedTextView_checkMarkTintMode, -1), mCheckMarkTintMode);
 
-        if (a.hasValue(R.styleable.CompoundButton_buttonTint)) {
-            mCheckMarkTintList = a.getColorStateList(R.styleable.CompoundButton_buttonTint);
+        if (a.hasValue(R.styleable.CheckedTextView_checkMarkTint)) {
+            mCheckMarkTintList = a.getColorStateList(R.styleable.CheckedTextView_checkMarkTint);
             mHasCheckMarkTint = true;
 
             applyCheckMarkTint();
         }
 
+        mCheckMarkGravity = a.getInt(R.styleable.CheckedTextView_checkMarkGravity, Gravity.END);
+
         boolean checked = a.getBoolean(R.styleable.CheckedTextView_checked, false);
         setChecked(checked);
 
@@ -293,7 +297,7 @@
     @Override
     protected void internalSetPadding(int left, int top, int right, int bottom) {
         super.internalSetPadding(left, top, right, bottom);
-        setBasePadding(isLayoutRtl());
+        setBasePadding(isCheckMarkAtStart());
     }
 
     @Override
@@ -306,7 +310,7 @@
         resetPaddingToInitialValues();
         int newPadding = (mCheckMarkDrawable != null) ?
                 mCheckMarkWidth + mBasePadding : mBasePadding;
-        if (isLayoutRtl()) {
+        if (isCheckMarkAtStart()) {
             mNeedRequestlayout |= (mPaddingLeft != newPadding);
             mPaddingLeft = newPadding;
         } else {
@@ -319,14 +323,20 @@
         }
     }
 
-    private void setBasePadding(boolean isLayoutRtl) {
-        if (isLayoutRtl) {
+    private void setBasePadding(boolean checkmarkAtStart) {
+        if (checkmarkAtStart) {
             mBasePadding = mPaddingLeft;
         } else {
             mBasePadding = mPaddingRight;
         }
     }
 
+    private boolean isCheckMarkAtStart() {
+        final int gravity = Gravity.getAbsoluteGravity(mCheckMarkGravity, getLayoutDirection());
+        final int hgrav = gravity & Gravity.HORIZONTAL_GRAVITY_MASK;
+        return hgrav == Gravity.LEFT;
+    }
+
     @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
@@ -347,13 +357,13 @@
                     break;
             }
             
-            final boolean isLayoutRtl = isLayoutRtl();
+            final boolean checkMarkAtStart = isCheckMarkAtStart();
             final int width = getWidth();
             final int top = y;
             final int bottom = top + height;
             final int left;
             final int right;
-            if (isLayoutRtl) {
+            if (checkMarkAtStart) {
                 left = mBasePadding;
                 right = left + mCheckMarkWidth;
             } else {
diff --git a/core/java/android/widget/DatePicker.java b/core/java/android/widget/DatePicker.java
index d0a2eab..26c1f96 100644
--- a/core/java/android/widget/DatePicker.java
+++ b/core/java/android/widget/DatePicker.java
@@ -16,6 +16,7 @@
 
 package android.widget;
 
+import android.annotation.Nullable;
 import android.annotation.Widget;
 import android.content.Context;
 import android.content.res.Configuration;
@@ -123,7 +124,7 @@
 
         final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.DatePicker,
                 defStyleAttr, defStyleRes);
-        int mode = a.getInt(R.styleable.DatePicker_datePickerMode, MODE_SPINNER);
+        final int mode = a.getInt(R.styleable.DatePicker_datePickerMode, MODE_SPINNER);
         a.recycle();
 
         switch (mode) {
@@ -149,20 +150,6 @@
     }
 
     /**
-     * @hide
-     */
-    public void setShowDoneButton(boolean showDoneButton) {
-        mDelegate.setShowDoneButton(showDoneButton);
-    }
-
-    /**
-     * @hide
-     */
-    public void setDismissCallback(DatePickerDismissCallback callback) {
-        mDelegate.setDismissCallback(callback);
-    }
-
-    /**
      * Initialize the state. If the provided values designate an inconsistent
      * date the values are normalized before updating the spinners.
      *
@@ -259,6 +246,16 @@
         mDelegate.setMaxDate(maxDate);
     }
 
+    /**
+     * Sets the callback that indicates the current date is valid.
+     *
+     * @param callback the callback, may be null
+     * @hide
+     */
+    public void setValidationCallback(@Nullable ValidationCallback callback) {
+        mDelegate.setValidationCallback(callback);
+    }
+
     @Override
     public void setEnabled(boolean enabled) {
         if (mDelegate.isEnabled() == enabled) {
@@ -402,8 +399,7 @@
         void setSpinnersShown(boolean shown);
         boolean getSpinnersShown();
 
-        void setShowDoneButton(boolean showDoneButton);
-        void setDismissCallback(DatePickerDismissCallback callback);
+        void setValidationCallback(ValidationCallback callback);
 
         void onConfigurationChanged(Configuration newConfig);
 
@@ -431,7 +427,8 @@
         protected Locale mCurrentLocale;
 
         // Callbacks
-        protected  OnDateChangedListener mOnDateChangedListener;
+        protected OnDateChangedListener mOnDateChangedListener;
+        protected ValidationCallback mValidationCallback;
 
         public AbstractDatePickerDelegate(DatePicker delegator, Context context) {
             mDelegator = delegator;
@@ -447,15 +444,27 @@
             }
             mCurrentLocale = locale;
         }
+
+        @Override
+        public void setValidationCallback(ValidationCallback callback) {
+            mValidationCallback = callback;
+        }
+
+        protected void onValidationChanged(boolean valid) {
+            if (mValidationCallback != null) {
+                mValidationCallback.onValidationChanged(valid);
+            }
+        }
     }
 
     /**
-     * A callback interface for dismissing the DatePicker when included into a Dialog
+     * A callback interface for updating input validity when the date picker
+     * when included into a dialog.
      *
      * @hide
      */
-    public static interface DatePickerDismissCallback {
-        void dismiss(DatePicker view, boolean isCancel, int year, int month, int dayOfMonth);
+    public static interface ValidationCallback {
+        void onValidationChanged(boolean valid);
     }
 
     /**
@@ -775,16 +784,6 @@
         }
 
         @Override
-        public void setShowDoneButton(boolean showDoneButton) {
-            // Nothing to do
-        }
-
-        @Override
-        public void setDismissCallback(DatePickerDismissCallback callback) {
-            // Nothing to do
-        }
-
-        @Override
         public void onConfigurationChanged(Configuration newConfig) {
             setCurrentLocale(newConfig.locale);
         }
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java
index c0c76ac..f4a478a 100644
--- a/core/java/android/widget/DatePickerCalendarDelegate.java
+++ b/core/java/android/widget/DatePickerCalendarDelegate.java
@@ -31,11 +31,9 @@
 import android.text.format.DateUtils;
 import android.util.AttributeSet;
 import android.util.SparseArray;
-import android.util.StateSet;
 import android.view.HapticFeedbackConstants;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.animation.AlphaAnimation;
@@ -83,8 +81,6 @@
     private DayPickerView mDayPickerView;
     private YearPickerView mYearPickerView;
 
-    private ViewGroup mLayoutButtons;
-
     private boolean mIsEnabled = true;
 
     // Accessibility strings.
@@ -106,11 +102,6 @@
     private Calendar mMinDate;
     private Calendar mMaxDate;
 
-    // For showing the done button when in a Dialog
-    private Button mDoneButton;
-    private boolean mShowDoneButton;
-    private DatePicker.DatePickerDismissCallback mDismissCallback;
-
     private HashSet<OnDateChangedListener> mListeners = new HashSet<OnDateChangedListener>();
 
     public DatePickerCalendarDelegate(DatePicker delegator, Context context, AttributeSet attrs,
@@ -165,7 +156,7 @@
                 R.styleable.DatePicker_headerSelectedTextColor, defaultHighlightColor);
         final int headerBackgroundColor = a.getColor(R.styleable.DatePicker_headerBackgroundColor,
                 Color.TRANSPARENT);
-        mMonthAndDayLayout.setBackgroundColor(headerBackgroundColor);
+        mDateLayout.setBackgroundColor(headerBackgroundColor);
 
         final int monthTextAppearanceResId = a.getResourceId(
                 R.styleable.DatePicker_headerMonthTextAppearance, -1);
@@ -221,20 +212,6 @@
         animation2.setDuration(ANIMATION_DURATION);
         mAnimator.setOutAnimation(animation2);
 
-        mLayoutButtons = (ViewGroup) mainView.findViewById(R.id.layout_buttons);
-        mDoneButton = (Button) mainView.findViewById(R.id.done);
-        mDoneButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                tryVibrate();
-                if (mDismissCallback != null) {
-                    mDismissCallback.dismiss(mDelegator, false, mCurrentDate.get(Calendar.YEAR),
-                            mCurrentDate.get(Calendar.MONTH),
-                            mCurrentDate.get(Calendar.DAY_OF_MONTH));
-                }
-            }
-        });
-
         updateDisplay(false);
         setCurrentView(MONTH_AND_DAY_VIEW);
     }
@@ -311,9 +288,9 @@
 
         // Position the Year View at the correct location
         if (viewIndices[YEAR_INDEX] == 0) {
-            mDateLayout.addView(mHeaderYearTextView, 0);
-        } else {
             mDateLayout.addView(mHeaderYearTextView, 1);
+        } else {
+            mDateLayout.addView(mHeaderYearTextView, 2);
         }
 
         // Position Day and Month Views
@@ -545,21 +522,6 @@
     }
 
     @Override
-    public void setShowDoneButton(boolean showDoneButton) {
-        mShowDoneButton = showDoneButton;
-        updateDoneButtonVisibility();
-    }
-
-    private void updateDoneButtonVisibility() {
-        mLayoutButtons.setVisibility(mShowDoneButton ? View.VISIBLE : View.GONE);
-    }
-
-    @Override
-    public void setDismissCallback(DatePicker.DatePickerDismissCallback callback) {
-        mDismissCallback = callback;
-    }
-
-    @Override
     public void onConfigurationChanged(Configuration newConfig) {
         mYearFormat = new SimpleDateFormat("y", newConfig.locale);
         mDayFormat = new SimpleDateFormat("d", newConfig.locale);
@@ -640,7 +602,6 @@
         updatePickers();
         setCurrentView(MONTH_AND_DAY_VIEW);
         updateDisplay(true);
-        updateDoneButtonEnableState();
     }
 
     // If the newly selected month / year does not contain the currently selected day number,
@@ -684,16 +645,6 @@
         mCurrentDate.set(Calendar.DAY_OF_MONTH, day);
         updatePickers();
         updateDisplay(true);
-        updateDoneButtonEnableState();
-    }
-
-    private void updateDoneButtonEnableState() {
-        if (mShowDoneButton) {
-            final boolean enabled = mCurrentDate.equals(mMinDate) ||
-                    mCurrentDate.equals(mMaxDate) ||
-                    (mCurrentDate.after(mMinDate) && mCurrentDate.before(mMaxDate));
-            mDoneButton.setEnabled(enabled);
-        }
     }
 
     private void updatePickers() {
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 9db1e05..1368cd3 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -1161,7 +1161,7 @@
 
             if (recycleOnMeasure() && mRecycler.shouldRecycleViewType(
                     ((LayoutParams) child.getLayoutParams()).viewType)) {
-                mRecycler.addScrapView(child, -1);
+                mRecycler.addScrapView(child, 0);
             }
         }
 
diff --git a/core/java/android/widget/RadialTimePickerView.java b/core/java/android/widget/RadialTimePickerView.java
index 3d2f67f..adca4cc 100644
--- a/core/java/android/widget/RadialTimePickerView.java
+++ b/core/java/android/widget/RadialTimePickerView.java
@@ -85,7 +85,7 @@
     private static final int ALPHA_TRANSPARENT = 0;
 
     // Alpha level of color for selector.
-    private static final int ALPHA_SELECTOR = 255; // was 51
+    private static final int ALPHA_SELECTOR = 60; // was 51
 
     // Alpha level of color for selected circle.
     private static final int ALPHA_AMPM_SELECTED = ALPHA_SELECTOR;
@@ -105,7 +105,7 @@
 
     private static final int CENTER_RADIUS = 2;
 
-    private static final int[] STATE_SET_SELECTED = new int[] { R.attr.state_selected };
+    private static final int[] STATE_SET_SELECTED = new int[] {R.attr.state_selected};
 
     private static int[] sSnapPrefer30sMap = new int[361];
 
@@ -337,6 +337,9 @@
         // list doesn't have a state for selected, we'll use this color.
         final int amPmSelectedColor = a.getColor(R.styleable.TimePicker_amPmSelectedBackgroundColor,
                 res.getColor(R.color.timepicker_default_ampm_selected_background_color_material));
+        amPmBackgroundColor = ColorStateList.addFirstIfMissing(
+                amPmBackgroundColor, R.attr.state_selected, amPmSelectedColor);
+
         mAmPmSelectedColor = amPmBackgroundColor.getColorForState(
                 STATE_SET_SELECTED, amPmSelectedColor);
         mAmPmUnselectedColor = amPmBackgroundColor.getDefaultColor();
diff --git a/core/java/android/widget/SimpleMonthView.java b/core/java/android/widget/SimpleMonthView.java
index ab6da7c..a0d9475 100644
--- a/core/java/android/widget/SimpleMonthView.java
+++ b/core/java/android/widget/SimpleMonthView.java
@@ -38,10 +38,8 @@
 import com.android.internal.R;
 import com.android.internal.widget.ExploreByTouchHelper;
 
-import java.security.InvalidParameterException;
 import java.util.Calendar;
 import java.util.Formatter;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 
@@ -52,8 +50,8 @@
 class SimpleMonthView extends View {
     private static final String TAG = "SimpleMonthView";
 
-    private static int DEFAULT_HEIGHT = 32;
-    private static int MIN_HEIGHT = 10;
+    private static final int DEFAULT_HEIGHT = 32;
+    private static final int MIN_HEIGHT = 10;
 
     private static final int DEFAULT_SELECTED_DAY = -1;
     private static final int DEFAULT_WEEK_START = Calendar.SUNDAY;
@@ -63,13 +61,13 @@
 
     private static final int SELECTED_CIRCLE_ALPHA = 60;
 
-    private static int DAY_SEPARATOR_WIDTH = 1;
+    private static final int DAY_SEPARATOR_WIDTH = 1;
 
-    private int mMiniDayNumberTextSize;
-    private int mMonthLabelTextSize;
-    private int mMonthDayLabelTextSize;
-    private int mMonthHeaderSize;
-    private int mDaySelectedCircleSize;
+    private final int mMiniDayNumberTextSize;
+    private final int mMonthLabelTextSize;
+    private final int mMonthDayLabelTextSize;
+    private final int mMonthHeaderSize;
+    private final int mDaySelectedCircleSize;
 
     // used for scaling to the device density
     private static float mScale = 0;
@@ -289,7 +287,7 @@
         drawDays(canvas);
     }
 
-    private static boolean isValidDay(int day) {
+    private static boolean isValidDayOfWeek(int day) {
         return (day >= Time.SUNDAY && day <= Time.SATURDAY);
     }
 
@@ -299,7 +297,7 @@
      * default to no focus month if no value is passed in. The only required parameter is the
      * week start.
      *
-     * @param selectedDay the selected day.
+     * @param selectedDay the selected day of the month, or -1 for no selection.
      * @param month the month.
      * @param year the year.
      * @param weekStart which day the week should start on. {@link Time#SUNDAY} through
@@ -313,9 +311,7 @@
             mRowHeight = MIN_HEIGHT;
         }
 
-        if (isValidDay(selectedDay)) {
-            mSelectedDay = selectedDay;
-        }
+        mSelectedDay = selectedDay;
 
         if (month >= Calendar.JANUARY && month <= Calendar.DECEMBER) {
             mMonth = month;
@@ -333,7 +329,7 @@
         mCalendar.set(Calendar.DAY_OF_MONTH, 1);
         mDayOfWeekStart = mCalendar.get(Calendar.DAY_OF_WEEK);
 
-        if (isValidDay(weekStart)) {
+        if (isValidDayOfWeek(weekStart)) {
             mWeekStart = weekStart;
         } else {
             mWeekStart = mCalendar.getFirstDayOfWeek();
@@ -424,8 +420,8 @@
     }
 
     private void drawMonthTitle(Canvas canvas) {
-        int x = (mWidth + 2 * mPadding) / 2;
-        int y = (mMonthHeaderSize - mMonthDayLabelTextSize) / 2 + (mMonthLabelTextSize / 3);
+        final float x = (mWidth + 2 * mPadding) / 2f;
+        final float y = (mMonthHeaderSize - mMonthDayLabelTextSize) / 2f;
         canvas.drawText(getMonthAndYearString(), x, y, mMonthTitlePaint);
     }
 
@@ -437,9 +433,9 @@
             int calendarDay = (i + mWeekStart) % mNumDays;
             int x = (2 * i + 1) * dayWidthHalf + mPadding;
             mDayLabelCalendar.set(Calendar.DAY_OF_WEEK, calendarDay);
-            canvas.drawText(mDayLabelCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT,
-                    Locale.getDefault()).toUpperCase(Locale.getDefault()), x, y,
-                    mMonthDayLabelPaint);
+            canvas.drawText("" + mDayLabelCalendar.getDisplayName(Calendar.DAY_OF_WEEK,
+                    Calendar.SHORT, Locale.getDefault()).toUpperCase(Locale.getDefault()).charAt(0),
+                    x, y, mMonthDayLabelPaint);
         }
     }
 
diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java
index 682f2ae..8b97329 100644
--- a/core/java/android/widget/Switch.java
+++ b/core/java/android/widget/Switch.java
@@ -833,6 +833,10 @@
     public void setChecked(boolean checked) {
         super.setChecked(checked);
 
+        // Calling the super method may result in setChecked() getting called
+        // recursively with a different value, so load the REAL value...
+        checked = isChecked();
+
         if (isAttachedToWindow() && isLaidOut()) {
             animateThumbToCheckedState(checked);
         } else {
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index b162e54..a82fa65 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -1320,8 +1320,8 @@
                 attrs, com.android.internal.R.styleable.View, defStyleAttr, defStyleRes);
 
         boolean focusable = mMovement != null || getKeyListener() != null;
-        boolean clickable = focusable;
-        boolean longClickable = focusable;
+        boolean clickable = focusable || isClickable();
+        boolean longClickable = focusable || isLongClickable();
 
         n = a.getIndexCount();
         for (int i = 0; i < n; i++) {
@@ -8392,6 +8392,15 @@
             }
         }
 
+        // Check for known input filter types.
+        final int numFilters = mFilters.length;
+        for (int i = 0; i < numFilters; i++) {
+            final InputFilter filter = mFilters[i];
+            if (filter instanceof InputFilter.LengthFilter) {
+                info.setMaxTextLength(((InputFilter.LengthFilter) filter).getMax());
+            }
+        }
+
         if (!isSingleLine()) {
             info.setMultiLine(true);
         }
diff --git a/core/java/android/widget/TimePicker.java b/core/java/android/widget/TimePicker.java
index c488666..85cf67b 100644
--- a/core/java/android/widget/TimePicker.java
+++ b/core/java/android/widget/TimePicker.java
@@ -16,6 +16,7 @@
 
 package android.widget;
 
+import android.annotation.Nullable;
 import android.annotation.Widget;
 import android.content.Context;
 import android.content.res.Configuration;
@@ -80,7 +81,7 @@
 
         final TypedArray a = context.obtainStyledAttributes(
                 attrs, R.styleable.TimePicker, defStyleAttr, defStyleRes);
-        int mode = a.getInt(R.styleable.TimePicker_timePickerMode, MODE_SPINNER);
+        final int mode = a.getInt(R.styleable.TimePicker_timePickerMode, MODE_SPINNER);
         a.recycle();
 
         switch (mode) {
@@ -149,6 +150,16 @@
         mDelegate.setOnTimeChangedListener(onTimeChangedListener);
     }
 
+    /**
+     * Sets the callback that indicates the current time is valid.
+     *
+     * @param callback the callback, may be null
+     * @hide
+     */
+    public void setValidationCallback(@Nullable ValidationCallback callback) {
+        mDelegate.setValidationCallback(callback);
+    }
+
     @Override
     public void setEnabled(boolean enabled) {
         super.setEnabled(enabled);
@@ -160,27 +171,6 @@
         return mDelegate.isEnabled();
     }
 
-    /**
-     * @hide
-     */
-    public void setShowDoneButton(boolean showDoneButton) {
-        mDelegate.setShowDoneButton(showDoneButton);
-    }
-
-    /**
-     * @hide
-     */
-    public boolean isShowDoneButton() {
-        return mDelegate.isShowDoneButton();
-    }
-
-    /**
-     * @hide
-     */
-    public void setDismissCallback(TimePickerDismissCallback callback) {
-        mDelegate.setDismissCallback(callback);
-    }
-
     @Override
     public int getBaseline() {
         return mDelegate.getBaseline();
@@ -244,14 +234,11 @@
         boolean is24HourView();
 
         void setOnTimeChangedListener(OnTimeChangedListener onTimeChangedListener);
+        void setValidationCallback(ValidationCallback callback);
 
         void setEnabled(boolean enabled);
         boolean isEnabled();
 
-        boolean isShowDoneButton();
-        void setShowDoneButton(boolean showDoneButton);
-        void setDismissCallback(TimePickerDismissCallback callback);
-
         int getBaseline();
 
         void onConfigurationChanged(Configuration newConfig);
@@ -266,12 +253,13 @@
     }
 
     /**
-     * A callback interface for dismissing the TimePicker when included into a Dialog
+     * A callback interface for updating input validity when the TimePicker
+     * when included into a Dialog.
      *
      * @hide
      */
-    public static interface TimePickerDismissCallback {
-        void dismiss(TimePicker view, boolean isCancel, int hourOfDay, int minute);
+    public static interface ValidationCallback {
+        void onValidationChanged(boolean valid);
     }
 
     /**
@@ -288,7 +276,8 @@
         protected Locale mCurrentLocale;
 
         // Callbacks
-        protected  OnTimeChangedListener mOnTimeChangedListener;
+        protected OnTimeChangedListener mOnTimeChangedListener;
+        protected ValidationCallback mValidationCallback;
 
         public AbstractTimePickerDelegate(TimePicker delegator, Context context) {
             mDelegator = delegator;
@@ -304,5 +293,16 @@
             }
             mCurrentLocale = locale;
         }
+
+        @Override
+        public void setValidationCallback(ValidationCallback callback) {
+            mValidationCallback = callback;
+        }
+
+        protected void onValidationChanged(boolean valid) {
+            if (mValidationCallback != null) {
+                mValidationCallback.onValidationChanged(valid);
+            }
+        }
     }
 }
diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java
index 8102c4a..376e5b4 100644
--- a/core/java/android/widget/TimePickerClockDelegate.java
+++ b/core/java/android/widget/TimePickerClockDelegate.java
@@ -20,7 +20,6 @@
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
-import android.graphics.Color;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.format.DateFormat;
@@ -35,7 +34,6 @@
 import android.view.inputmethod.InputMethodManager;
 import com.android.internal.R;
 
-import java.text.DateFormatSymbols;
 import java.util.Calendar;
 import java.util.Locale;
 
@@ -46,29 +44,20 @@
  * A delegate implementing the basic TimePicker
  */
 class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate {
-
     private static final boolean DEFAULT_ENABLED_STATE = true;
-
     private static final int HOURS_IN_HALF_DAY = 12;
 
     // state
     private boolean mIs24HourView;
-
     private boolean mIsAm;
 
     // ui components
     private final NumberPicker mHourSpinner;
-
     private final NumberPicker mMinuteSpinner;
-
     private final NumberPicker mAmPmSpinner;
-
     private final EditText mHourSpinnerInput;
-
     private final EditText mMinuteSpinnerInput;
-
     private final EditText mAmPmSpinnerInput;
-
     private final TextView mDivider;
 
     // Note that the legacy implementation of the TimePicker is
@@ -77,17 +66,10 @@
     // accommodates these two cases to be backwards compatible.
     private final Button mAmPmButton;
 
-    // May be null if layout has no done button
-    private final View mDoneButton;
-    private boolean mShowDoneButton;
-    private TimePicker.TimePickerDismissCallback mDismissCallback;
-
     private final String[] mAmPmStrings;
 
     private boolean mIsEnabled = DEFAULT_ENABLED_STATE;
-
     private Calendar mTempCalendar;
-
     private boolean mHourWithTwoDigit;
     private char mHourFormat;
 
@@ -227,20 +209,6 @@
             }
         }
 
-        mDoneButton = delegator.findViewById(R.id.done_button);
-        mShowDoneButton = (mDoneButton != null);
-        if (mShowDoneButton) {
-            mDoneButton.setOnClickListener(new View.OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    if (mDismissCallback != null) {
-                        mDismissCallback.dismiss(mDelegator, false, getCurrentHour(),
-                                                 getCurrentMinute());
-                    }
-                }
-            });
-        }
-
         getHourFormatData();
 
         // update controls to initial state
@@ -265,8 +233,6 @@
         if (mDelegator.getImportantForAccessibility() == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
             mDelegator.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
         }
-
-        updateDoneButton();
     }
 
     private void getHourFormatData() {
@@ -432,30 +398,6 @@
     }
 
     @Override
-    public void setShowDoneButton(boolean showDoneButton) {
-        if (mDoneButton != null) {
-            mShowDoneButton = showDoneButton;
-            updateDoneButton();
-        }
-    }
-
-    @Override
-    public boolean isShowDoneButton() {
-        return mShowDoneButton;
-    }
-
-    private void updateDoneButton() {
-        if (mDoneButton != null) {
-            mDoneButton.setVisibility(mShowDoneButton ? View.VISIBLE : View.GONE);
-        }
-    }
-
-    @Override
-    public void setDismissCallback(TimePicker.TimePickerDismissCallback callback) {
-        mDismissCallback = callback;
-    }
-
-    @Override
     public int getBaseline() {
         return mHourSpinner.getBaseline();
     }
@@ -467,8 +409,7 @@
 
     @Override
     public Parcelable onSaveInstanceState(Parcelable superState) {
-        return new SavedState(superState, getCurrentHour(), getCurrentMinute(),
-                isShowDoneButton());
+        return new SavedState(superState, getCurrentHour(), getCurrentMinute());
     }
 
     @Override
@@ -476,7 +417,6 @@
         SavedState ss = (SavedState) state;
         setCurrentHour(ss.getHour());
         setCurrentMinute(ss.getMinute());
-        setShowDoneButton(ss.isShowDoneButton());
     }
 
     @Override
@@ -632,25 +572,19 @@
      * Used to save / restore state of time picker
      */
     private static class SavedState extends View.BaseSavedState {
-
         private final int mHour;
-
         private final int mMinute;
 
-        private final boolean mShowDoneButton;
-
-        private SavedState(Parcelable superState, int hour, int minute, boolean showDoneButton) {
+        private SavedState(Parcelable superState, int hour, int minute) {
             super(superState);
             mHour = hour;
             mMinute = minute;
-            mShowDoneButton = showDoneButton;
         }
 
         private SavedState(Parcel in) {
             super(in);
             mHour = in.readInt();
             mMinute = in.readInt();
-            mShowDoneButton = (in.readInt() == 1);
         }
 
         public int getHour() {
@@ -661,16 +595,11 @@
             return mMinute;
         }
 
-        public boolean isShowDoneButton() {
-            return mShowDoneButton;
-        }
-
         @Override
         public void writeToParcel(Parcel dest, int flags) {
             super.writeToParcel(dest, flags);
             dest.writeInt(mHour);
             dest.writeInt(mMinute);
-            dest.writeInt(mShowDoneButton ? 1 : 0);
         }
 
         @SuppressWarnings({"unused", "hiding"})
diff --git a/core/java/android/widget/TimePickerSpinnerDelegate.java b/core/java/android/widget/TimePickerSpinnerDelegate.java
index 523965c..9a50250 100644
--- a/core/java/android/widget/TimePickerSpinnerDelegate.java
+++ b/core/java/android/widget/TimePickerSpinnerDelegate.java
@@ -43,7 +43,6 @@
 
 import com.android.internal.R;
 
-import java.text.DateFormatSymbols;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Locale;
@@ -86,8 +85,6 @@
     private RadialTimePickerView mRadialTimePickerView;
     private TextView mSeparatorView;
 
-    private ViewGroup mLayoutButtons;
-
     private String mAmText;
     private String mPmText;
 
@@ -101,16 +98,12 @@
     private String mDoublePlaceholderText;
     private String mDeletedKeyFormat;
     private boolean mInKbMode;
+    private boolean mIsTimeValid = true;
     private ArrayList<Integer> mTypedTimes = new ArrayList<Integer>();
     private Node mLegalTimesTree;
     private int mAmKeyCode;
     private int mPmKeyCode;
 
-    // For showing the done button when in a Dialog
-    private Button mDoneButton;
-    private boolean mShowDoneButton;
-    private TimePicker.TimePickerDismissCallback mDismissCallback;
-
     // Accessibility strings.
     private String mHourPickerDescription;
     private String mSelectHours;
@@ -146,7 +139,6 @@
         mSeparatorView = (TextView) mainView.findViewById(R.id.separator);
         mMinuteView = (TextView) mainView.findViewById(R.id.minutes);
         mAmPmTextView = (TextView) mainView.findViewById(R.id.ampm_label);
-        mLayoutButtons = (ViewGroup) mainView.findViewById(R.id.layout_buttons);
 
         // Set up text appearances from style.
         final int headerTimeTextAppearance = a.getResourceId(
@@ -174,7 +166,6 @@
         final int headerBackgroundColor = a.getColor(
                 R.styleable.TimePicker_headerBackgroundColor, Color.TRANSPARENT);
         if (headerBackgroundColor != Color.TRANSPARENT) {
-            mLayoutButtons.setBackgroundColor(headerBackgroundColor);
             mainView.findViewById(R.id.time_header).setBackgroundColor(headerBackgroundColor);
         }
 
@@ -182,7 +173,6 @@
 
         mRadialTimePickerView = (RadialTimePickerView) mainView.findViewById(
                 R.id.radial_picker);
-        mDoneButton = (Button) mainView.findViewById(R.id.done_button);
 
         setupListeners();
 
@@ -199,16 +189,14 @@
         final Calendar calendar = Calendar.getInstance(mCurrentLocale);
         final int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
         final int currentMinute = calendar.get(Calendar.MINUTE);
-        initialize(currentHour, currentMinute, false /* 12h */, HOUR_INDEX, false);
+        initialize(currentHour, currentMinute, false /* 12h */, HOUR_INDEX);
     }
 
-    private void initialize(int hourOfDay, int minute, boolean is24HourView, int index,
-                            boolean showDoneButton) {
+    private void initialize(int hourOfDay, int minute, boolean is24HourView, int index) {
         mInitialHourOfDay = hourOfDay;
         mInitialMinute = minute;
         mIs24HourView = is24HourView;
         mInKbMode = false;
-        mShowDoneButton = showDoneButton;
         updateUI(index);
     }
 
@@ -236,21 +224,6 @@
                 tryVibrate();
             }
         });
-        mDoneButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mInKbMode && isTypedTimeFullyLegal()) {
-                    finishKbMode(false);
-                } else {
-                    tryVibrate();
-                }
-                if (mDismissCallback != null) {
-                    mDismissCallback.dismiss(mDelegator, false, getCurrentHour(),
-                            getCurrentMinute());
-                }
-            }
-        });
-        mDoneButton.setOnKeyListener(keyboardListener);
     }
 
     private void updateUI(int index) {
@@ -258,8 +231,6 @@
         updateRadialPicker(index);
         // Enable or disable the AM/PM view.
         updateHeaderAmPm();
-        // Show or hide Done button
-        updateDoneButton();
         // Update Hour and Minutes
         updateHeaderHour(mInitialHourOfDay, true);
         // Update time separator
@@ -336,10 +307,6 @@
         }
     }
 
-    private void updateDoneButton() {
-        mLayoutButtons.setVisibility(mShowDoneButton ? View.VISIBLE : View.GONE);
-    }
-
     /**
      * Set the current hour.
      */
@@ -447,17 +414,6 @@
     }
 
     @Override
-    public void setShowDoneButton(boolean showDoneButton) {
-        mShowDoneButton = showDoneButton;
-        updateDoneButton();
-    }
-
-    @Override
-    public void setDismissCallback(TimePicker.TimePickerDismissCallback callback) {
-        mDismissCallback = callback;
-    }
-
-    @Override
     public int getBaseline() {
         // does not support baseline alignment
         return -1;
@@ -471,8 +427,7 @@
     @Override
     public Parcelable onSaveInstanceState(Parcelable superState) {
         return new SavedState(superState, getCurrentHour(), getCurrentMinute(),
-                is24HourView(), inKbMode(), getTypedTimes(), getCurrentItemShowing(),
-                isShowDoneButton());
+                is24HourView(), inKbMode(), getTypedTimes(), getCurrentItemShowing());
     }
 
     @Override
@@ -480,8 +435,7 @@
         SavedState ss = (SavedState) state;
         setInKbMode(ss.inKbMode());
         setTypedTimes(ss.getTypesTimes());
-        initialize(ss.getHour(), ss.getMinute(), ss.is24HourMode(), ss.getCurrentItemShowing(),
-                ss.isShowDoneButton());
+        initialize(ss.getHour(), ss.getMinute(), ss.is24HourMode(), ss.getCurrentItemShowing());
         mRadialTimePickerView.invalidate();
         if (mInKbMode) {
             tryStartingKbMode(-1);
@@ -560,11 +514,6 @@
         return mRadialTimePickerView.getCurrentItemShowing();
     }
 
-    @Override
-    public boolean isShowDoneButton() {
-        return mShowDoneButton;
-    }
-
     /**
      * Propagate the time change
      */
@@ -587,11 +536,10 @@
         private final boolean mInKbMode;
         private final ArrayList<Integer> mTypedTimes;
         private final int mCurrentItemShowing;
-        private final boolean mShowDoneButton;
 
         private SavedState(Parcelable superState, int hour, int minute, boolean is24HourMode,
                            boolean isKbMode, ArrayList<Integer> typedTimes,
-                           int currentItemShowing, boolean showDoneButton) {
+                           int currentItemShowing) {
             super(superState);
             mHour = hour;
             mMinute = minute;
@@ -599,7 +547,6 @@
             mInKbMode = isKbMode;
             mTypedTimes = typedTimes;
             mCurrentItemShowing = currentItemShowing;
-            mShowDoneButton = showDoneButton;
         }
 
         private SavedState(Parcel in) {
@@ -610,7 +557,6 @@
             mInKbMode = (in.readInt() == 1);
             mTypedTimes = in.readArrayList(getClass().getClassLoader());
             mCurrentItemShowing = in.readInt();
-            mShowDoneButton = (in.readInt() == 1);
         }
 
         public int getHour() {
@@ -637,10 +583,6 @@
             return mCurrentItemShowing;
         }
 
-        public boolean isShowDoneButton() {
-            return mShowDoneButton;
-        }
-
         @Override
         public void writeToParcel(Parcel dest, int flags) {
             super.writeToParcel(dest, flags);
@@ -650,7 +592,6 @@
             dest.writeInt(mInKbMode ? 1 : 0);
             dest.writeList(mTypedTimes);
             dest.writeInt(mCurrentItemShowing);
-            dest.writeInt(mShowDoneButton ? 1 : 0);
         }
 
         @SuppressWarnings({"unused", "hiding"})
@@ -852,12 +793,7 @@
      * @return true if the key was successfully processed, false otherwise.
      */
     private boolean processKeyUp(int keyCode) {
-        if (keyCode == KeyEvent.KEYCODE_ESCAPE || keyCode == KeyEvent.KEYCODE_BACK) {
-            if (mDismissCallback != null) {
-                mDismissCallback.dismiss(mDelegator, true, getCurrentHour(), getCurrentMinute());
-            }
-            return true;
-        } else if (keyCode == KeyEvent.KEYCODE_TAB) {
+        if (keyCode == KeyEvent.KEYCODE_ESCAPE || keyCode == KeyEvent.KEYCODE_TAB) {
             if(mInKbMode) {
                 if (isTypedTimeFullyLegal()) {
                     finishKbMode(true);
@@ -876,9 +812,6 @@
                         mRadialTimePickerView.getCurrentHour(),
                         mRadialTimePickerView.getCurrentMinute());
             }
-            if (mDismissCallback != null) {
-                mDismissCallback.dismiss(mDelegator, false, getCurrentHour(), getCurrentMinute());
-            }
             return true;
         } else if (keyCode == KeyEvent.KEYCODE_DEL) {
             if (mInKbMode) {
@@ -933,7 +866,7 @@
     private void tryStartingKbMode(int keyCode) {
         if (keyCode == -1 || addKeyIfLegal(keyCode)) {
             mInKbMode = true;
-            mDoneButton.setEnabled(false);
+            onValidationChanged(false);
             updateDisplay(false);
             mRadialTimePickerView.setInputEnabled(false);
         }
@@ -961,7 +894,7 @@
                 mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
                 mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
             }
-            mDoneButton.setEnabled(true);
+            onValidationChanged(true);
         }
 
         return true;
@@ -1002,7 +935,7 @@
     private int deleteLastTypedKey() {
         int deleted = mTypedTimes.remove(mTypedTimes.size() - 1);
         if (!isTypedTimeFullyLegal()) {
-            mDoneButton.setEnabled(false);
+            onValidationChanged(false);
         }
         return deleted;
     }
@@ -1046,7 +979,7 @@
                 updateAmPmDisplay(hour < 12 ? AM : PM);
             }
             setCurrentItemShowing(mRadialTimePickerView.getCurrentItemShowing(), true, true, true);
-            mDoneButton.setEnabled(true);
+            onValidationChanged(true);
         } else {
             boolean[] enteredZeros = {false, false};
             int[] values = getEnteredTime(enteredZeros);
diff --git a/core/java/android/widget/YearPickerView.java b/core/java/android/widget/YearPickerView.java
index b67fa55..94c21dc 100644
--- a/core/java/android/widget/YearPickerView.java
+++ b/core/java/android/widget/YearPickerView.java
@@ -45,7 +45,7 @@
     }
 
     public YearPickerView(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
+        this(context, attrs, R.attr.listViewStyle);
     }
 
     public YearPickerView(Context context, AttributeSet attrs, int defStyleAttr) {
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index ee0d14b..a745b20 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -45,6 +45,7 @@
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.LogWriter;
@@ -3744,6 +3745,7 @@
     }
 
     public void noteNetworkInterfaceTypeLocked(String iface, int networkType) {
+        if (TextUtils.isEmpty(iface)) return;
         if (ConnectivityManager.isNetworkTypeMobile(networkType)) {
             mMobileIfaces = includeInStringArray(mMobileIfaces, iface);
             if (DEBUG) Slog.d(TAG, "Note mobile iface " + iface + ": " + mMobileIfaces);
diff --git a/core/java/com/android/internal/os/InstallerConnection.java b/core/java/com/android/internal/os/InstallerConnection.java
new file mode 100644
index 0000000..e3f229f
--- /dev/null
+++ b/core/java/com/android/internal/os/InstallerConnection.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.internal.os;
+
+import android.net.LocalSocket;
+import android.net.LocalSocketAddress;
+import android.util.Slog;
+import libcore.io.IoUtils;
+import libcore.io.Streams;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * Represents a connection to {@code installd}. Allows multiple connect and
+ * disconnect cycles.
+ *
+ * @hide for internal use only
+ */
+public class InstallerConnection {
+    private static final String TAG = "InstallerConnection";
+    private static final boolean LOCAL_DEBUG = false;
+
+    private InputStream mIn;
+    private OutputStream mOut;
+    private LocalSocket mSocket;
+
+    private final byte buf[] = new byte[1024];
+
+    public InstallerConnection() {
+    }
+
+    public synchronized String transact(String cmd) {
+        if (!connect()) {
+            Slog.e(TAG, "connection failed");
+            return "-1";
+        }
+
+        if (!writeCommand(cmd)) {
+            /*
+             * If installd died and restarted in the background (unlikely but
+             * possible) we'll fail on the next write (this one). Try to
+             * reconnect and write the command one more time before giving up.
+             */
+            Slog.e(TAG, "write command failed? reconnect!");
+            if (!connect() || !writeCommand(cmd)) {
+                return "-1";
+            }
+        }
+        if (LOCAL_DEBUG) {
+            Slog.i(TAG, "send: '" + cmd + "'");
+        }
+
+        final int replyLength = readReply();
+        if (replyLength > 0) {
+            String s = new String(buf, 0, replyLength);
+            if (LOCAL_DEBUG) {
+                Slog.i(TAG, "recv: '" + s + "'");
+            }
+            return s;
+        } else {
+            if (LOCAL_DEBUG) {
+                Slog.i(TAG, "fail");
+            }
+            return "-1";
+        }
+    }
+
+    public int execute(String cmd) {
+        String res = transact(cmd);
+        try {
+            return Integer.parseInt(res);
+        } catch (NumberFormatException ex) {
+            return -1;
+        }
+    }
+
+    public int dexopt(String apkPath, int uid, boolean isPublic, String instructionSet) {
+        StringBuilder builder = new StringBuilder("dexopt");
+        builder.append(' ');
+        builder.append(apkPath);
+        builder.append(' ');
+        builder.append(uid);
+        builder.append(isPublic ? " 1" : " 0");
+        builder.append(" *");         // No pkgName arg present
+        builder.append(' ');
+        builder.append(instructionSet);
+        return execute(builder.toString());
+    }
+
+    public int patchoat(String apkPath, int uid, boolean isPublic, String instructionSet) {
+        StringBuilder builder = new StringBuilder("patchoat");
+        builder.append(' ');
+        builder.append(apkPath);
+        builder.append(' ');
+        builder.append(uid);
+        builder.append(isPublic ? " 1" : " 0");
+        builder.append(" *");         // No pkgName arg present
+        builder.append(' ');
+        builder.append(instructionSet);
+        return execute(builder.toString());
+    }
+
+    private boolean connect() {
+        if (mSocket != null) {
+            return true;
+        }
+        Slog.i(TAG, "connecting...");
+        try {
+            mSocket = new LocalSocket();
+
+            LocalSocketAddress address = new LocalSocketAddress("installd",
+                    LocalSocketAddress.Namespace.RESERVED);
+
+            mSocket.connect(address);
+
+            mIn = mSocket.getInputStream();
+            mOut = mSocket.getOutputStream();
+        } catch (IOException ex) {
+            disconnect();
+            return false;
+        }
+        return true;
+    }
+
+    public void disconnect() {
+        Slog.i(TAG, "disconnecting...");
+        IoUtils.closeQuietly(mSocket);
+        IoUtils.closeQuietly(mIn);
+        IoUtils.closeQuietly(mOut);
+
+        mSocket = null;
+        mIn = null;
+        mOut = null;
+    }
+
+
+    private boolean readFully(byte[] buffer, int len) {
+        try {
+            Streams.readFully(mIn, buffer, 0, len);
+        } catch (IOException ioe) {
+            Slog.e(TAG, "read exception");
+            disconnect();
+            return false;
+        }
+
+        if (LOCAL_DEBUG) {
+            Slog.i(TAG, "read " + len + " bytes");
+        }
+
+        return true;
+    }
+
+    private int readReply() {
+        if (!readFully(buf, 2)) {
+            return -1;
+        }
+
+        final int len = (((int) buf[0]) & 0xff) | ((((int) buf[1]) & 0xff) << 8);
+        if ((len < 1) || (len > buf.length)) {
+            Slog.e(TAG, "invalid reply length (" + len + ")");
+            disconnect();
+            return -1;
+        }
+
+        if (!readFully(buf, len)) {
+            return -1;
+        }
+
+        return len;
+    }
+
+    private boolean writeCommand(String cmdString) {
+        final byte[] cmd = cmdString.getBytes();
+        final int len = cmd.length;
+        if ((len < 1) || (len > buf.length)) {
+            return false;
+        }
+
+        buf[0] = (byte) (len & 0xff);
+        buf[1] = (byte) ((len >> 8) & 0xff);
+        try {
+            mOut.write(buf, 0, 2);
+            mOut.write(cmd, 0, len);
+        } catch (IOException ex) {
+            Slog.e(TAG, "write error");
+            disconnect();
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/core/java/com/android/internal/os/RuntimeInit.java b/core/java/com/android/internal/os/RuntimeInit.java
index 4a26b4b..d35fce4 100644
--- a/core/java/com/android/internal/os/RuntimeInit.java
+++ b/core/java/com/android/internal/os/RuntimeInit.java
@@ -192,13 +192,14 @@
      *
      * @param className Fully-qualified class name
      * @param argv Argument vector for main()
+     * @param classLoader the classLoader to load {@className} with
      */
-    private static void invokeStaticMain(String className, String[] argv)
+    private static void invokeStaticMain(String className, String[] argv, ClassLoader classLoader)
             throws ZygoteInit.MethodAndArgsCaller {
         Class<?> cl;
 
         try {
-            cl = Class.forName(className);
+            cl = Class.forName(className, true, classLoader);
         } catch (ClassNotFoundException ex) {
             throw new RuntimeException(
                     "Missing class when invoking static main " + className,
@@ -263,7 +264,7 @@
      * @param targetSdkVersion target SDK version
      * @param argv arg strings
      */
-    public static final void zygoteInit(int targetSdkVersion, String[] argv)
+    public static final void zygoteInit(int targetSdkVersion, String[] argv, ClassLoader classLoader)
             throws ZygoteInit.MethodAndArgsCaller {
         if (DEBUG) Slog.d(TAG, "RuntimeInit: Starting application from zygote");
 
@@ -272,7 +273,7 @@
         commonInit();
         nativeZygoteInit();
 
-        applicationInit(targetSdkVersion, argv);
+        applicationInit(targetSdkVersion, argv, classLoader);
     }
 
     /**
@@ -290,10 +291,10 @@
             throws ZygoteInit.MethodAndArgsCaller {
         if (DEBUG) Slog.d(TAG, "RuntimeInit: Starting application from wrapper");
 
-        applicationInit(targetSdkVersion, argv);
+        applicationInit(targetSdkVersion, argv, null);
     }
 
-    private static void applicationInit(int targetSdkVersion, String[] argv)
+    private static void applicationInit(int targetSdkVersion, String[] argv, ClassLoader classLoader)
             throws ZygoteInit.MethodAndArgsCaller {
         // If the application calls System.exit(), terminate the process
         // immediately without running any shutdown hooks.  It is not possible to
@@ -317,7 +318,7 @@
         }
 
         // Remaining arguments are passed to the start class's static main
-        invokeStaticMain(args.startClass, args.startArgs);
+        invokeStaticMain(args.startClass, args.startArgs, classLoader);
     }
 
     /**
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java
index 0c48368..43ebb3d 100644
--- a/core/java/com/android/internal/os/ZygoteConnection.java
+++ b/core/java/com/android/internal/os/ZygoteConnection.java
@@ -863,7 +863,7 @@
                         pipeFd, parsedArgs.remainingArgs);
             } else {
                 RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion,
-                        parsedArgs.remainingArgs);
+                        parsedArgs.remainingArgs, null /* classLoader */);
             }
         } else {
             String className;
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index eea4201..051de6e 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -34,8 +34,11 @@
 import android.system.OsConstants;
 import android.util.EventLog;
 import android.util.Log;
+import android.util.Slog;
 import android.webkit.WebViewFactory;
 
+import dalvik.system.DexFile;
+import dalvik.system.PathClassLoader;
 import dalvik.system.VMRuntime;
 
 import libcore.io.IoUtils;
@@ -493,21 +496,69 @@
             Process.setArgV0(parsedArgs.niceName);
         }
 
+        final String systemServerClasspath = Os.getenv("SYSTEMSERVERCLASSPATH");
+        if (systemServerClasspath != null) {
+            performSystemServerDexOpt(systemServerClasspath);
+        }
+
         if (parsedArgs.invokeWith != null) {
+            String[] args = parsedArgs.remainingArgs;
+            // If we have a non-null system server class path, we'll have to duplicate the
+            // existing arguments and append the classpath to it. ART will handle the classpath
+            // correctly when we exec a new process.
+            if (systemServerClasspath != null) {
+                String[] amendedArgs = new String[args.length + 2];
+                amendedArgs[0] = "-cp";
+                amendedArgs[1] = systemServerClasspath;
+                System.arraycopy(parsedArgs.remainingArgs, 0, amendedArgs, 2, parsedArgs.remainingArgs.length);
+            }
+
             WrapperInit.execApplication(parsedArgs.invokeWith,
                     parsedArgs.niceName, parsedArgs.targetSdkVersion,
-                    null, parsedArgs.remainingArgs);
+                    null, args);
         } else {
+            ClassLoader cl = null;
+            if (systemServerClasspath != null) {
+                cl = new PathClassLoader(systemServerClasspath, ClassLoader.getSystemClassLoader());
+                Thread.currentThread().setContextClassLoader(cl);
+            }
+
             /*
              * Pass the remaining arguments to SystemServer.
              */
-            RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion, parsedArgs.remainingArgs);
+            RuntimeInit.zygoteInit(parsedArgs.targetSdkVersion, parsedArgs.remainingArgs, cl);
         }
 
         /* should never reach here */
     }
 
     /**
+     * Performs dex-opt on the elements of {@code classPath}, if needed. We
+     * choose the instruction set of the current runtime.
+     */
+    private static void performSystemServerDexOpt(String classPath) {
+        final String[] classPathElements = classPath.split(":");
+        final InstallerConnection installer = new InstallerConnection();
+        final String instructionSet = VMRuntime.getRuntime().vmInstructionSet();
+
+        try {
+            for (String classPathElement : classPathElements) {
+                final byte dexopt = DexFile.isDexOptNeededInternal(classPathElement, "*", instructionSet,
+                        false /* defer */);
+                if (dexopt == DexFile.DEXOPT_NEEDED) {
+                    installer.dexopt(classPathElement, Process.SYSTEM_UID, false, instructionSet);
+                } else if (dexopt == DexFile.PATCHOAT_NEEDED) {
+                    installer.patchoat(classPathElement, Process.SYSTEM_UID, false, instructionSet);
+                }
+            }
+        } catch (IOException ioe) {
+            throw new RuntimeException("Error starting system_server", ioe);
+        } finally {
+            installer.disconnect();
+        }
+    }
+
+    /**
      * Prepare the arguments and fork for the system server process.
      */
     private static boolean startSystemServer(String abiList, String socketName)
diff --git a/core/java/com/android/internal/policy/IKeyguardService.aidl b/core/java/com/android/internal/policy/IKeyguardService.aidl
index a5421f5..64f3bea 100644
--- a/core/java/com/android/internal/policy/IKeyguardService.aidl
+++ b/core/java/com/android/internal/policy/IKeyguardService.aidl
@@ -65,4 +65,10 @@
      * @param fadeoutDuration the duration of the exit animation, in milliseconds
      */
     oneway void startKeyguardExitAnimation(long startTime, long fadeoutDuration);
+
+    /**
+     * Notifies the Keyguard that the activity that was starting has now been drawn and it's safe
+     * to start the keyguard dismiss sequence.
+     */
+    oneway void onActivityDrawn();
 }
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 69ffbfe..57472f8 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -32,7 +32,6 @@
     void topAppWindowChanged(boolean menuVisible);
     void setImeWindowStatus(in IBinder token, int vis, int backDisposition,
             boolean showImeSwitcher);
-    void setHardKeyboardStatus(boolean available, boolean enabled);
     void setWindowState(int window, int state);
     void buzzBeepBlinked();
     void notificationLightOff();
diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
index 50c82bb..8794d31 100644
--- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl
@@ -51,7 +51,6 @@
             in String[] newlyVisibleKeys, in String[] noLongerVisibleKeys);
     void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded);
     void setSystemUiVisibility(int vis, int mask);
-    void setHardKeyboardEnabled(boolean enabled);
     void setWindowState(int window, int state);
 
     void showRecentApps(boolean triggeredFromAltTab);
diff --git a/core/java/com/android/internal/widget/ActionBarContainer.java b/core/java/com/android/internal/widget/ActionBarContainer.java
index 9e24844..254f602 100644
--- a/core/java/com/android/internal/widget/ActionBarContainer.java
+++ b/core/java/com/android/internal/widget/ActionBarContainer.java
@@ -253,7 +253,7 @@
         return null;
     }
 
-    private boolean isCollapsed(View view) {
+    private static boolean isCollapsed(View view) {
         return view == null || view.getVisibility() == GONE || view.getMeasuredHeight() == 0;
     }
 
@@ -326,35 +326,33 @@
      * projection surfaces.
      */
     private class ActionBarBackgroundDrawable extends Drawable {
-        private Drawable getDrawable() {
+        @Override
+        public void draw(Canvas canvas) {
             if (mIsSplit) {
                 if (mSplitBackground != null) {
-                    return mSplitBackground;
+                    mSplitBackground.draw(canvas);
                 }
             } else {
                 if (mBackground != null) {
-                    return mBackground;
+                    mBackground.draw(canvas);
                 }
                 if (mStackedBackground != null && mIsStacked) {
-                    return mStackedBackground;
+                    mStackedBackground.draw(canvas);
                 }
             }
-            return null;
-        }
-
-        @Override
-        public void draw(Canvas canvas) {
-            final Drawable drawable = getDrawable();
-            if (drawable != null) {
-                drawable.draw(canvas);
-            }
         }
 
         @Override
         public void getOutline(@NonNull Outline outline) {
-            final Drawable drawable = getDrawable();
-            if (drawable != null) {
-                drawable.getOutline(outline);
+            if (mIsSplit) {
+                if (mSplitBackground != null) {
+                    mSplitBackground.getOutline(outline);
+                }
+            } else {
+                // ignore the stacked background for shadow casting
+                if (mBackground != null) {
+                    mBackground.getOutline(outline);
+                }
             }
         }
 
diff --git a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
index ea36e37..5709f65 100644
--- a/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
+++ b/core/java/com/android/internal/widget/ActionBarOverlayLayout.java
@@ -184,6 +184,8 @@
                 Build.VERSION_CODES.KITKAT;
 
         mFlingEstimator = new OverScroller(context);
+
+        setFocusableInTouchMode(true);
     }
 
     @Override
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 7e8d828..ece3e9d 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -18,7 +18,6 @@
 
 import android.Manifest;
 import android.app.ActivityManagerNative;
-import android.app.AlarmClockInfo;
 import android.app.AlarmManager;
 import android.app.admin.DevicePolicyManager;
 import android.app.trust.TrustManager;
@@ -1169,7 +1168,7 @@
      * @return A formatted string of the next alarm (for showing on the lock screen),
      *   or null if there is no next alarm.
      */
-    public AlarmClockInfo getNextAlarm() {
+    public AlarmManager.AlarmClockInfo getNextAlarm() {
         AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
         return alarmManager.getNextAlarmClock(UserHandle.USER_CURRENT);
     }
diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java
index 60e649b..9fa6882 100644
--- a/core/java/com/android/internal/widget/LockPatternView.java
+++ b/core/java/com/android/internal/widget/LockPatternView.java
@@ -17,17 +17,14 @@
 package com.android.internal.widget;
 
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
 import android.content.Context;
 import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Path;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
 import android.graphics.Rect;
 import android.os.Debug;
 import android.os.Parcel;
@@ -38,6 +35,8 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.accessibility.AccessibilityManager;
+import android.view.animation.AnimationUtils;
+import android.view.animation.Interpolator;
 
 import com.android.internal.R;
 
@@ -59,6 +58,11 @@
 
     private static final boolean PROFILE_DRAWING = false;
     private final CellState[][] mCellStates;
+
+    private final int mDotSize;
+    private final int mDotSizeActivated;
+    private final int mPathWidth;
+
     private boolean mDrawingProfilingStarted = false;
 
     private Paint mPaint = new Paint();
@@ -104,33 +108,22 @@
     private boolean mEnableHapticFeedback = true;
     private boolean mPatternInProgress = false;
 
-    private float mDiameterFactor = 0.10f; // TODO: move to attrs
-    private final int mStrokeAlpha = 128;
     private float mHitFactor = 0.6f;
 
     private float mSquareWidth;
     private float mSquareHeight;
 
-    private final Bitmap mBitmapBtnDefault;
-    private final Bitmap mBitmapBtnTouched;
-    private final Bitmap mBitmapCircleDefault;
-    private final Bitmap mBitmapCircleAlpha;
-    private final Bitmap mBitmapArrowAlphaUp;
-
     private final Path mCurrentPath = new Path();
     private final Rect mInvalidate = new Rect();
     private final Rect mTmpInvalidateRect = new Rect();
 
-    private int mBitmapWidth;
-    private int mBitmapHeight;
-
     private int mAspect;
-    private final Matrix mArrowMatrix = new Matrix();
-    private final Matrix mCircleMatrix = new Matrix();
-    private final PorterDuffColorFilter mRegularColorFilter;
-    private final PorterDuffColorFilter mErrorColorFilter;
-    private final PorterDuffColorFilter mSuccessColorFilter;
+    private int mRegularColor;
+    private int mErrorColor;
+    private int mSuccessColor;
 
+    private Interpolator mFastOutSlowInInterpolator;
+    private Interpolator mLinearOutSlowInInterpolator;
 
     /**
      * Represents a cell in the 3 X 3 matrix of the unlock pattern view.
@@ -194,6 +187,10 @@
         public float scale = 1.0f;
         public float translateY = 0.0f;
         public float alpha = 1.0f;
+        public float size;
+        public float lineEndX = Float.MIN_VALUE;
+        public float lineEndY = Float.MIN_VALUE;
+        public ValueAnimator lineAnimator;
      }
 
     /**
@@ -272,63 +269,48 @@
         mPathPaint.setAntiAlias(true);
         mPathPaint.setDither(true);
 
-        int regularColor = getResources().getColor(R.color.lock_pattern_view_regular_color);
-        int errorColor = getResources().getColor(R.color.lock_pattern_view_error_color);
-        int successColor = getResources().getColor(R.color.lock_pattern_view_success_color);
-        regularColor = a.getColor(R.styleable.LockPatternView_regularColor, regularColor);
-        errorColor = a.getColor(R.styleable.LockPatternView_errorColor, errorColor);
-        successColor = a.getColor(R.styleable.LockPatternView_successColor, successColor);
-        mRegularColorFilter = new PorterDuffColorFilter(regularColor, PorterDuff.Mode.SRC_ATOP);
-        mErrorColorFilter = new PorterDuffColorFilter(errorColor, PorterDuff.Mode.SRC_ATOP);
-        mSuccessColorFilter = new PorterDuffColorFilter(successColor, PorterDuff.Mode.SRC_ATOP);
+        mRegularColor = getResources().getColor(R.color.lock_pattern_view_regular_color);
+        mErrorColor = getResources().getColor(R.color.lock_pattern_view_error_color);
+        mSuccessColor = getResources().getColor(R.color.lock_pattern_view_success_color);
+        mRegularColor = a.getColor(R.styleable.LockPatternView_regularColor, mRegularColor);
+        mErrorColor = a.getColor(R.styleable.LockPatternView_errorColor, mErrorColor);
+        mSuccessColor = a.getColor(R.styleable.LockPatternView_successColor, mSuccessColor);
 
-        int pathColor = a.getColor(R.styleable.LockPatternView_pathColor, regularColor);
+        int pathColor = a.getColor(R.styleable.LockPatternView_pathColor, mRegularColor);
         mPathPaint.setColor(pathColor);
 
-        mPathPaint.setAlpha(mStrokeAlpha);
         mPathPaint.setStyle(Paint.Style.STROKE);
         mPathPaint.setStrokeJoin(Paint.Join.ROUND);
         mPathPaint.setStrokeCap(Paint.Cap.ROUND);
 
-        // lot's of bitmaps!
-        // TODO: those bitmaps are hardcoded to the Material Theme which should not be the case!
-        mBitmapBtnDefault = getBitmapFor(R.drawable.btn_code_lock_default_mtrl_alpha);
-        mBitmapBtnTouched = getBitmapFor(R.drawable.btn_code_lock_touched_mtrl_alpha);
-        mBitmapCircleDefault = getBitmapFor(
-                R.drawable.indicator_code_lock_point_area_default_mtrl_alpha);
-        mBitmapCircleAlpha = getBitmapFor(R.drawable.indicator_code_lock_point_area_mtrl_alpha);
-        mBitmapArrowAlphaUp = getBitmapFor(
-                R.drawable.indicator_code_lock_drag_direction_up_mtrl_alpha);
+        mPathWidth = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_line_width);
+        mPathPaint.setStrokeWidth(mPathWidth);
 
-        // bitmaps have the size of the largest bitmap in this group
-        final Bitmap bitmaps[] = { mBitmapBtnDefault, mBitmapBtnTouched, mBitmapCircleDefault,
-                mBitmapCircleAlpha};
-
-        for (Bitmap bitmap : bitmaps) {
-            mBitmapWidth = Math.max(mBitmapWidth, bitmap.getWidth());
-            mBitmapHeight = Math.max(mBitmapHeight, bitmap.getHeight());
-        }
+        mDotSize = getResources().getDimensionPixelSize(R.dimen.lock_pattern_dot_size);
+        mDotSizeActivated = getResources().getDimensionPixelSize(
+                R.dimen.lock_pattern_dot_size_activated);
 
         mPaint.setAntiAlias(true);
         mPaint.setDither(true);
-        mPaint.setFilterBitmap(true);
 
         mCellStates = new CellState[3][3];
         for (int i = 0; i < 3; i++) {
             for (int j = 0; j < 3; j++) {
                 mCellStates[i][j] = new CellState();
+                mCellStates[i][j].size = mDotSize;
             }
         }
+
+        mFastOutSlowInInterpolator =
+                AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_slow_in);
+        mLinearOutSlowInInterpolator =
+                AnimationUtils.loadInterpolator(context, android.R.interpolator.linear_out_slow_in);
     }
 
     public CellState[][] getCellStates() {
         return mCellStates;
     }
 
-    private Bitmap getBitmapFor(int resId) {
-        return BitmapFactory.decodeResource(getContext().getResources(), resId);
-    }
-
     /**
      * @return Whether the view is in stealth mode.
      */
@@ -510,18 +492,6 @@
     }
 
     @Override
-    protected int getSuggestedMinimumWidth() {
-        // View should be large enough to contain 3 side-by-side target bitmaps
-        return 3 * mBitmapWidth;
-    }
-
-    @Override
-    protected int getSuggestedMinimumHeight() {
-        // View should be large enough to contain 3 side-by-side target bitmaps
-        return 3 * mBitmapWidth;
-    }
-
-    @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         final int minimumWidth = getSuggestedMinimumWidth();
         final int minimumHeight = getSuggestedMinimumHeight();
@@ -594,9 +564,73 @@
     private void addCellToPattern(Cell newCell) {
         mPatternDrawLookup[newCell.getRow()][newCell.getColumn()] = true;
         mPattern.add(newCell);
+        if (!mInStealthMode) {
+            startCellActivatedAnimation(newCell);
+        }
         notifyCellAdded();
     }
 
+    private void startCellActivatedAnimation(Cell cell) {
+        final CellState cellState = mCellStates[cell.row][cell.column];
+        startSizeAnimation(mDotSize, mDotSizeActivated, 96, mLinearOutSlowInInterpolator,
+                cellState, new Runnable() {
+            @Override
+            public void run() {
+                startSizeAnimation(mDotSizeActivated, mDotSize, 192, mFastOutSlowInInterpolator,
+                        cellState, null);
+            }
+        });
+        startLineEndAnimation(cellState, mInProgressX, mInProgressY,
+                getCenterXForColumn(cell.column), getCenterYForRow(cell.row));
+    }
+
+    private void startLineEndAnimation(final CellState state,
+            final float startX, final float startY, final float targetX, final float targetY) {
+        ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 1);
+        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                float t = (float) animation.getAnimatedValue();
+                state.lineEndX = (1 - t) * startX + t * targetX;
+                state.lineEndY = (1 - t) * startY + t * targetY;
+                invalidate();
+            }
+        });
+        valueAnimator.addListener(new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                state.lineAnimator = null;
+            }
+        });
+        valueAnimator.setInterpolator(mFastOutSlowInInterpolator);
+        valueAnimator.setDuration(100);
+        valueAnimator.start();
+        state.lineAnimator = valueAnimator;
+    }
+
+    private void startSizeAnimation(float start, float end, long duration, Interpolator interpolator,
+            final CellState state, final Runnable endRunnable) {
+        ValueAnimator valueAnimator = ValueAnimator.ofFloat(start, end);
+        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+            @Override
+            public void onAnimationUpdate(ValueAnimator animation) {
+                state.size = (float) animation.getAnimatedValue();
+                invalidate();
+            }
+        });
+        if (endRunnable != null) {
+            valueAnimator.addListener(new AnimatorListenerAdapter() {
+                @Override
+                public void onAnimationEnd(Animator animation) {
+                    endRunnable.run();
+                }
+            });
+        }
+        valueAnimator.setInterpolator(interpolator);
+        valueAnimator.setDuration(duration);
+        valueAnimator.start();
+    }
+
     // helper method to find which cell a point maps to
     private Cell checkForNewHit(float x, float y) {
 
@@ -713,7 +747,7 @@
     private void handleActionMove(MotionEvent event) {
         // Handle all recent motion events so we don't skip any cells even when the device
         // is busy...
-        final float radius = (mSquareWidth * mDiameterFactor * 0.5f);
+        final float radius = mPathWidth;
         final int historySize = event.getHistorySize();
         mTmpInvalidateRect.setEmpty();
         boolean invalidateNow = false;
@@ -782,6 +816,7 @@
         // report pattern detected
         if (!mPattern.isEmpty()) {
             mPatternInProgress = false;
+            cancelLineAnimations();
             notifyPatternDetected();
             invalidate();
         }
@@ -793,6 +828,18 @@
         }
     }
 
+    private void cancelLineAnimations() {
+        for (int i = 0; i < 3; i++) {
+            for (int j = 0; j < 3; j++) {
+                CellState state = mCellStates[i][j];
+                if (state.lineAnimator != null) {
+                    state.lineAnimator.cancel();
+                    state.lineEndX = Float.MIN_VALUE;
+                    state.lineEndY = Float.MIN_VALUE;
+                }
+            }
+        }
+    }
     private void handleActionDown(MotionEvent event) {
         resetPattern();
         final float x = event.getX();
@@ -882,62 +929,33 @@
             invalidate();
         }
 
-        final float squareWidth = mSquareWidth;
-        final float squareHeight = mSquareHeight;
-
-        float radius = (squareWidth * mDiameterFactor * 0.5f);
-        mPathPaint.setStrokeWidth(radius);
-
         final Path currentPath = mCurrentPath;
         currentPath.rewind();
 
         // draw the circles
-        final int paddingTop = mPaddingTop;
-        final int paddingLeft = mPaddingLeft;
-
         for (int i = 0; i < 3; i++) {
-            float topY = paddingTop + i * squareHeight;
-            //float centerY = mPaddingTop + i * mSquareHeight + (mSquareHeight / 2);
+            float centerY = getCenterYForRow(i);
             for (int j = 0; j < 3; j++) {
-                float leftX = paddingLeft + j * squareWidth;
-                float scale = mCellStates[i][j].scale;
-                mPaint.setAlpha((int) (mCellStates[i][j].alpha * 255));
-                float translationY = mCellStates[i][j].translateY;
-                drawCircle(canvas, (int) leftX, (int) topY + translationY, scale, drawLookup[i][j]);
+                CellState cellState = mCellStates[i][j];
+                float centerX = getCenterXForColumn(j);
+                float size = cellState.size * cellState.scale;
+                float translationY = cellState.translateY;
+                drawCircle(canvas, (int) centerX, (int) centerY + translationY,
+                        size, drawLookup[i][j], cellState.alpha);
             }
         }
 
-        // Reset the alpha to draw normally
-        mPaint.setAlpha(255);
-
         // TODO: the path should be created and cached every time we hit-detect a cell
         // only the last segment of the path should be computed here
         // draw the path of the pattern (unless we are in stealth mode)
         final boolean drawPath = !mInStealthMode;
 
-        // draw the arrows associated with the path (unless we are in stealth mode)
         if (drawPath) {
-            for (int i = 0; i < count - 1; i++) {
-                Cell cell = pattern.get(i);
-                Cell next = pattern.get(i + 1);
+            mPathPaint.setColor(getCurrentColor(true /* partOfPattern */));
 
-                // only draw the part of the pattern stored in
-                // the lookup table (this is only different in the case
-                // of animation).
-                if (!drawLookup[next.row][next.column]) {
-                    break;
-                }
-
-                float leftX = paddingLeft + cell.column * squareWidth;
-                float topY = paddingTop + cell.row * squareHeight
-                        + mCellStates[cell.row][cell.column].translateY;
-
-                drawArrow(canvas, leftX, topY, cell, next);
-            }
-        }
-
-        if (drawPath) {
             boolean anyCircles = false;
+            float lastX = 0f;
+            float lastY = 0f;
             for (int i = 0; i < count; i++) {
                 Cell cell = pattern.get(i);
 
@@ -951,123 +969,66 @@
 
                 float centerX = getCenterXForColumn(cell.column);
                 float centerY = getCenterYForRow(cell.row);
-
-                // Respect translation in animation
-                centerY += mCellStates[cell.row][cell.column].translateY;
-                if (i == 0) {
-                    currentPath.moveTo(centerX, centerY);
-                } else {
-                    currentPath.lineTo(centerX, centerY);
+                if (i != 0) {
+                    CellState state = mCellStates[cell.row][cell.column];
+                    currentPath.rewind();
+                    currentPath.moveTo(lastX, lastY);
+                    if (state.lineEndX != Float.MIN_VALUE && state.lineEndY != Float.MIN_VALUE) {
+                        currentPath.lineTo(state.lineEndX, state.lineEndY);
+                    } else {
+                        currentPath.lineTo(centerX, centerY);
+                    }
+                    canvas.drawPath(currentPath, mPathPaint);
                 }
+                lastX = centerX;
+                lastY = centerY;
             }
 
-            // add last in progress section
+            // draw last in progress section
             if ((mPatternInProgress || mPatternDisplayMode == DisplayMode.Animate)
                     && anyCircles) {
+                currentPath.rewind();
+                currentPath.moveTo(lastX, lastY);
                 currentPath.lineTo(mInProgressX, mInProgressY);
+
+                mPathPaint.setAlpha((int) (calculateLastSegmentAlpha(
+                        mInProgressX, mInProgressY, lastX, lastY) * 255f));
+                canvas.drawPath(currentPath, mPathPaint);
             }
-            canvas.drawPath(currentPath, mPathPaint);
         }
     }
 
-    private void drawArrow(Canvas canvas, float leftX, float topY, Cell start, Cell end) {
-        if (mPatternInProgress) {
-            mPaint.setColorFilter(mRegularColorFilter);
-        } else {
-            boolean success = mPatternDisplayMode != DisplayMode.Wrong;
-            mPaint.setColorFilter(success ? mSuccessColorFilter : mErrorColorFilter);
-        }
-
-        final int endRow = end.row;
-        final int startRow = start.row;
-        final int endColumn = end.column;
-        final int startColumn = start.column;
-
-        // offsets for centering the bitmap in the cell
-        final int offsetX = ((int) mSquareWidth - mBitmapWidth) / 2;
-        final int offsetY = ((int) mSquareHeight - mBitmapHeight) / 2;
-
-        // compute transform to place arrow bitmaps at correct angle inside circle.
-        // This assumes that the arrow image is drawn at 12:00 with it's top edge
-        // coincident with the circle bitmap's top edge.
-        final int cellWidth = mBitmapWidth;
-        final int cellHeight = mBitmapHeight;
-
-        // the up arrow bitmap is at 12:00, so find the rotation from x axis and add 90 degrees.
-        final float theta = (float) Math.atan2(
-                (double) (endRow - startRow), (double) (endColumn - startColumn));
-        final float angle = (float) Math.toDegrees(theta) + 90.0f;
-
-        // compose matrix
-        float sx = Math.min(mSquareWidth / mBitmapWidth, 1.0f);
-        float sy = Math.min(mSquareHeight / mBitmapHeight, 1.0f);
-        mArrowMatrix.setTranslate(leftX + offsetX, topY + offsetY); // transform to cell position
-        mArrowMatrix.preTranslate(mBitmapWidth/2, mBitmapHeight/2);
-        mArrowMatrix.preScale(sx, sy);
-        mArrowMatrix.preTranslate(-mBitmapWidth/2, -mBitmapHeight/2);
-        mArrowMatrix.preRotate(angle, cellWidth / 2.0f, cellHeight / 2.0f);  // rotate about cell center
-        mArrowMatrix.preTranslate((cellWidth - mBitmapArrowAlphaUp.getWidth()) / 2.0f, 0.0f); // translate to 12:00 pos
-        canvas.drawBitmap(mBitmapArrowAlphaUp, mArrowMatrix, mPaint);
+    private float calculateLastSegmentAlpha(float x, float y, float lastX, float lastY) {
+        float diffX = x - lastX;
+        float diffY = y - lastY;
+        float dist = (float) Math.sqrt(diffX*diffX + diffY*diffY);
+        float frac = dist/mSquareWidth;
+        return Math.min(1f, Math.max(0f, (frac - 0.3f) * 4f));
     }
 
-    /**
-     * @param canvas
-     * @param leftX
-     * @param topY
-     * @param partOfPattern Whether this circle is part of the pattern.
-     */
-    private void drawCircle(Canvas canvas, float leftX, float topY, float scale,
-            boolean partOfPattern) {
-        Bitmap outerCircle;
-        Bitmap innerCircle;
-        ColorFilter outerFilter;
-        if (!partOfPattern || mInStealthMode) {
+    private int getCurrentColor(boolean partOfPattern) {
+        if (!partOfPattern || mInStealthMode || mPatternInProgress) {
             // unselected circle
-            outerCircle = mBitmapCircleDefault;
-            innerCircle = mBitmapBtnDefault;
-            outerFilter = mRegularColorFilter;
-        } else if (mPatternInProgress) {
-            // user is in middle of drawing a pattern
-            outerCircle = mBitmapCircleAlpha;
-            innerCircle = mBitmapBtnTouched;
-            outerFilter = mRegularColorFilter;
+            return mRegularColor;
         } else if (mPatternDisplayMode == DisplayMode.Wrong) {
             // the pattern is wrong
-            outerCircle = mBitmapCircleAlpha;
-            innerCircle = mBitmapBtnDefault;
-            outerFilter = mErrorColorFilter;
+            return mErrorColor;
         } else if (mPatternDisplayMode == DisplayMode.Correct ||
                 mPatternDisplayMode == DisplayMode.Animate) {
-            // the pattern is correct
-            outerCircle = mBitmapCircleAlpha;
-            innerCircle = mBitmapBtnDefault;
-            outerFilter = mSuccessColorFilter;
+            return mSuccessColor;
         } else {
             throw new IllegalStateException("unknown display mode " + mPatternDisplayMode);
         }
+    }
 
-        final int width = mBitmapWidth;
-        final int height = mBitmapHeight;
-
-        final float squareWidth = mSquareWidth;
-        final float squareHeight = mSquareHeight;
-
-        int offsetX = (int) ((squareWidth - width) / 2f);
-        int offsetY = (int) ((squareHeight - height) / 2f);
-
-        // Allow circles to shrink if the view is too small to hold them.
-        float sx = Math.min(mSquareWidth / mBitmapWidth, 1.0f);
-        float sy = Math.min(mSquareHeight / mBitmapHeight, 1.0f);
-
-        mCircleMatrix.setTranslate(leftX + offsetX, topY + offsetY);
-        mCircleMatrix.preTranslate(mBitmapWidth/2, mBitmapHeight/2);
-        mCircleMatrix.preScale(sx * scale, sy * scale);
-        mCircleMatrix.preTranslate(-mBitmapWidth/2, -mBitmapHeight/2);
-
-        mPaint.setColorFilter(outerFilter);
-        canvas.drawBitmap(outerCircle, mCircleMatrix, mPaint);
-        mPaint.setColorFilter(mRegularColorFilter);
-        canvas.drawBitmap(innerCircle, mCircleMatrix, mPaint);
+    /**
+     * @param partOfPattern Whether this circle is part of the pattern.
+     */
+    private void drawCircle(Canvas canvas, float centerX, float centerY, float size,
+            boolean partOfPattern, float alpha) {
+        mPaint.setColor(getCurrentColor(partOfPattern));
+        mPaint.setAlpha((int) (alpha * 255));
+        canvas.drawCircle(centerX, centerY, size/2, mPaint);
     }
 
     @Override
diff --git a/services/core/java/com/android/server/BootReceiver.java b/core/java/com/android/server/BootReceiver.java
similarity index 100%
rename from services/core/java/com/android/server/BootReceiver.java
rename to core/java/com/android/server/BootReceiver.java
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index 480383b..2106d38 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -246,6 +246,7 @@
 	libminikin \
 	libstlport \
 	libprocessgroup \
+	libnativebridge \
 
 ifeq ($(USE_OPENGL_RENDERER),true)
 	LOCAL_SHARED_LIBRARIES += libhwui
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 90c66d7..79b8542 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -161,10 +161,8 @@
 extern int register_android_text_StaticLayout(JNIEnv *env);
 extern int register_android_text_AndroidBidi(JNIEnv *env);
 extern int register_android_opengl_classes(JNIEnv *env);
-extern int register_android_server_fingerprint_FingerprintService(JNIEnv* env);
-extern int register_android_server_NetworkManagementSocketTagger(JNIEnv* env);
-extern int register_android_server_Watchdog(JNIEnv* env);
 extern int register_android_ddm_DdmHandleNativeHeap(JNIEnv *env);
+extern int register_android_server_NetworkManagementSocketTagger(JNIEnv* env);
 extern int register_com_android_internal_os_ZygoteInit(JNIEnv* env);
 extern int register_android_backup_BackupDataInput(JNIEnv *env);
 extern int register_android_backup_BackupDataOutput(JNIEnv *env);
@@ -804,7 +802,7 @@
                                    "-Xmx", "-Xcompiler-option");
         if (skip_compilation) {
             addOption("-Xcompiler-option");
-            addOption("--compiler-filter=interpret-only");
+            addOption("--compiler-filter=verify-none");
         } else {
             parseCompilerOption("dalvik.vm.dex2oat-filter", dex2oatCompilerFilterBuf,
                                 "--compiler-filter=", "-Xcompiler-option");
@@ -1338,9 +1336,7 @@
     REG_JNI(register_android_media_ToneGenerator),
 
     REG_JNI(register_android_opengl_classes),
-	REG_JNI(register_android_server_fingerprint_FingerprintService),
     REG_JNI(register_android_server_NetworkManagementSocketTagger),
-    REG_JNI(register_android_server_Watchdog),
     REG_JNI(register_android_ddm_DdmHandleNativeHeap),
     REG_JNI(register_android_backup_BackupDataInput),
     REG_JNI(register_android_backup_BackupDataOutput),
diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp
index 9c44093..633a207 100644
--- a/core/jni/android_app_NativeActivity.cpp
+++ b/core/jni/android_app_NativeActivity.cpp
@@ -38,6 +38,8 @@
 #include "android_view_InputChannel.h"
 #include "android_view_KeyEvent.h"
 
+#include "nativebridge/native_bridge.h"
+
 #define LOG_TRACE(...)
 //#define LOG_TRACE(...) ALOG(LOG_DEBUG, LOG_TAG, __VA_ARGS__)
 
@@ -251,17 +253,29 @@
 
     const char* pathStr = env->GetStringUTFChars(path, NULL);
     NativeCode* code = NULL;
-    
+    bool needNativeBridge = false;
+
     void* handle = dlopen(pathStr, RTLD_LAZY);
-    
+    if (handle == NULL) {
+        if (NativeBridgeIsSupported(pathStr)) {
+            handle = NativeBridgeLoadLibrary(pathStr, RTLD_LAZY);
+            needNativeBridge = true;
+        }
+    }
     env->ReleaseStringUTFChars(path, pathStr);
-    
+
     if (handle != NULL) {
+        void* funcPtr = NULL;
         const char* funcStr = env->GetStringUTFChars(funcName, NULL);
-        code = new NativeCode(handle, (ANativeActivity_createFunc*)
-                dlsym(handle, funcStr));
+        if (needNativeBridge) {
+            funcPtr = NativeBridgeGetTrampoline(handle, funcStr, NULL, 0);
+        } else {
+            funcPtr = dlsym(handle, funcStr);
+        }
+
+        code = new NativeCode(handle, (ANativeActivity_createFunc*)funcPtr);
         env->ReleaseStringUTFChars(funcName, funcStr);
-        
+
         if (code->createActivityFunc == NULL) {
             ALOGW("ANativeActivity_onCreate not found");
             delete code;
diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp
index eaadfb2..a728455 100644
--- a/core/jni/android_hardware_camera2_DngCreator.cpp
+++ b/core/jni/android_hardware_camera2_DngCreator.cpp
@@ -428,7 +428,7 @@
 
 status_t InputStripSource::writeToStream(Output& stream, uint32_t count) {
     status_t err = OK;
-    uint32_t fullSize = mRowStride * mHeight;
+    uint32_t fullSize = mWidth * mHeight * mBytesPerSample * mSamplesPerPixel;
     jlong offset = mOffset;
 
     if (fullSize != count) {
@@ -560,7 +560,7 @@
 DirectStripSource::~DirectStripSource() {}
 
 status_t DirectStripSource::writeToStream(Output& stream, uint32_t count) {
-    uint32_t fullSize = mRowStride * mHeight;
+    uint32_t fullSize = mWidth * mHeight * mBytesPerSample * mSamplesPerPixel;
 
     if (fullSize != count) {
         ALOGE("%s: Amount to write %u doesn't match image size %u", __FUNCTION__, count,
diff --git a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
index 697cdc6..980ead0 100644
--- a/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
+++ b/core/jni/android_hardware_camera2_legacy_LegacyCameraDevice.cpp
@@ -541,6 +541,15 @@
         ALOGE("%s: Error while setting surface dimens %s (%d).", __FUNCTION__, strerror(-err), err);
         return err;
     }
+
+    // WAR - Set user dimensions also to avoid incorrect scaling after TextureView orientation
+    // change.
+    err = native_window_set_buffers_user_dimensions(anw.get(), width, height);
+    if (err != NO_ERROR) {
+        ALOGE("%s: Error while setting surface user dimens %s (%d).", __FUNCTION__, strerror(-err),
+                err);
+        return err;
+    }
     return NO_ERROR;
 }
 
@@ -624,6 +633,11 @@
     return NO_ERROR;
 }
 
+static jint LegacyCameraDevice_nativeGetJpegFooterSize(JNIEnv* env, jobject thiz) {
+    ALOGV("nativeGetJpegFooterSize");
+    return static_cast<jint>(sizeof(struct camera3_jpeg_blob));
+}
+
 } // extern "C"
 
 static JNINativeMethod gCameraDeviceMethods[] = {
@@ -657,6 +671,9 @@
     { "nativeSetNextTimestamp",
     "(Landroid/view/Surface;J)I",
     (void *)LegacyCameraDevice_nativeSetNextTimestamp },
+    { "nativeGetJpegFooterSize",
+    "()I",
+    (void *)LegacyCameraDevice_nativeGetJpegFooterSize },
 };
 
 // Get all the required offsets in java class and register native functions
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index ff483ce..aee3090 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1257,6 +1257,14 @@
         android:description="@string/permdesc_bind_call_service"
         android:label="@string/permlab_bind_call_service" />
 
+    <!-- @SystemApi Allows an application to bind to ConnectionService implementations.
+         @hide -->
+    <permission android:name="android.permission.BIND_CONNECTION_SERVICE"
+                android:permissionGroup="android.permission-group.PHONE_CALLS"
+                android:protectionLevel="system|signature"
+                android:description="@string/permdesc_bind_connection_service"
+                android:label="@string/permlab_bind_connection_service" />
+
     <!-- ================================== -->
     <!-- Permissions for sdcard interaction -->
     <!-- ================================== -->
@@ -1852,7 +1860,8 @@
         android:description="@string/permdesc_manageCaCertificates" />
 
     <!-- @SystemApi Allows an application to do certain operations needed for
-         interacting with the recovery (system update) system. -->
+         interacting with the recovery (system update) system.
+         @hide -->
     <permission android:name="android.permission.RECOVERY"
         android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
         android:protectionLevel="signature|system"
diff --git a/core/res/res/anim/lock_screen_behind_enter.xml b/core/res/res/anim/lock_screen_behind_enter.xml
index ace17ae..e8afada 100644
--- a/core/res/res/anim/lock_screen_behind_enter.xml
+++ b/core/res/res/anim/lock_screen_behind_enter.xml
@@ -1,34 +1,28 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/*
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 
 <set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:detachWallpaper="true" android:shareInterpolator="false" android:startOffset="100">
-    <alpha
-        android:fromAlpha="0.0" android:toAlpha="1.0"
-        android:fillEnabled="true" android:fillBefore="true"
-        android:interpolator="@interpolator/linear_out_slow_in"
-        android:duration="@integer/config_shortAnimTime"/>
-    <scale
-        android:fromXScale="0.95" android:toXScale="1.0"
-        android:fromYScale="0.95" android:toYScale="1.0"
-        android:pivotX="50%" android:pivotY="50%"
-        android:fillEnabled="true" android:fillBefore="true"
-        android:interpolator="@interpolator/linear_out_slow_in"
-        android:duration="@integer/config_shortAnimTime" />
+        android:background="#ff000000"
+        android:detachWallpaper="true"
+        android:shareInterpolator="false"
+        android:startOffset="100">
+
+    <translate android:fromYDelta="110%" android:toYDelta="0"
+            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+            android:interpolator="@interpolator/decelerate_quint"
+            android:duration="300" />
 </set>
\ No newline at end of file
diff --git a/core/res/res/anim/lock_screen_behind_enter_fade_in.xml b/core/res/res/anim/lock_screen_behind_enter_fade_in.xml
new file mode 100644
index 0000000..94e40a8
--- /dev/null
+++ b/core/res/res/anim/lock_screen_behind_enter_fade_in.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<alpha xmlns:android="http://schemas.android.com/apk/res/android"
+    android:background="#ff000000"
+    android:detachWallpaper="true"
+    android:shareInterpolator="false"
+    android:interpolator="@interpolator/linear"
+    android:fromAlpha="0" android:toAlpha="1"
+    android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+    android:duration="250"
+    android:startOffset="100">
+</alpha>
\ No newline at end of file
diff --git a/core/res/res/anim/lock_screen_behind_enter_wallpaper.xml b/core/res/res/anim/lock_screen_behind_enter_wallpaper.xml
new file mode 100644
index 0000000..ce974dc
--- /dev/null
+++ b/core/res/res/anim/lock_screen_behind_enter_wallpaper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:detachWallpaper="true" android:shareInterpolator="false" android:startOffset="100">
+    <alpha
+        android:fromAlpha="0.0" android:toAlpha="1.0"
+        android:fillEnabled="true" android:fillBefore="true"
+        android:interpolator="@interpolator/decelerate_quint"
+        android:duration="400"/>
+
+    <translate android:fromYDelta="11%" android:toYDelta="0"
+        android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+        android:interpolator="@interpolator/decelerate_quint"
+        android:duration="300" />
+</set>
\ No newline at end of file
diff --git a/core/res/res/anim/lock_screen_wallpaper_exit.xml b/core/res/res/anim/lock_screen_wallpaper_exit.xml
new file mode 100644
index 0000000..49d0327
--- /dev/null
+++ b/core/res/res/anim/lock_screen_wallpaper_exit.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+        android:shareInterpolator="false" android:startOffset="100">
+    <alpha
+        android:fromAlpha="1.0" android:toAlpha="0.0"
+        android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+        android:interpolator="@interpolator/fast_out_linear_in"
+        android:duration="150"/>
+
+    <!-- Empty animation so the animation has same duration as lock_screen_behind_enter animation
+         -->
+    <translate android:fromYDelta="0" android:toYDelta="0"
+        android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+        android:interpolator="@interpolator/linear"
+        android:duration="300" />
+</set>
\ No newline at end of file
diff --git a/core/res/res/anim/wallpaper_close_enter.xml b/core/res/res/anim/wallpaper_close_enter.xml
index 981923a..a189813 100644
--- a/core/res/res/anim/wallpaper_close_enter.xml
+++ b/core/res/res/anim/wallpaper_close_enter.xml
@@ -18,15 +18,17 @@
 -->
 
 <set xmlns:android="http://schemas.android.com/apk/res/android"
-        android:shareInterpolator="false" android:zAdjustment="top">
-    <scale android:fromXScale=".2" android:toXScale="1.0"
-            android:fromYScale=".2" android:toYScale="1.0"
-            android:pivotX="50%p" android:pivotY="50%p"
-            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
-            android:interpolator="@interpolator/decelerate_cubic"
-            android:duration="300" />
+    android:background="#ff000000" android:shareInterpolator="false" android:zAdjustment="top">
+
     <alpha android:fromAlpha="0" android:toAlpha="1.0"
-            android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
-            android:interpolator="@interpolator/decelerate_cubic"
-            android:duration="300"/>
+        android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+        android:interpolator="@interpolator/decelerate_quart"
+        android:startOffset="300"
+        android:duration="167"/>
+
+    <translate android:fromYDelta="110%" android:toYDelta="0"
+        android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+        android:interpolator="@interpolator/decelerate_quint"
+        android:startOffset="300"
+        android:duration="417" />
 </set>
\ No newline at end of file
diff --git a/core/res/res/anim/wallpaper_close_exit.xml b/core/res/res/anim/wallpaper_close_exit.xml
index a91eb49..12b31ae 100644
--- a/core/res/res/anim/wallpaper_close_exit.xml
+++ b/core/res/res/anim/wallpaper_close_exit.xml
@@ -20,5 +20,5 @@
 <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:detachWallpaper="true" android:shareInterpolator="false" android:zAdjustment="normal">
     <alpha android:fromAlpha="1.0" android:toAlpha="1.0"
-            android:duration="300" />
+            android:duration="417" />
 </set>
\ No newline at end of file
diff --git a/core/res/res/animator/leanback_setup_fragment_close_enter.xml b/core/res/res/animator/leanback_setup_fragment_close_enter.xml
new file mode 100644
index 0000000..1626dd3
--- /dev/null
+++ b/core/res/res/animator/leanback_setup_fragment_close_enter.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <objectAnimator
+        android:propertyName="alpha"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_alpha_backward_in_content_start"
+        android:valueTo="@dimen/leanback_setup_alpha_backward_in_content_end"
+        android:duration="@integer/leanback_setup_alpha_backward_in_content_duration"
+        android:startOffset="@integer/leanback_setup_alpha_backward_in_content_delay"/>
+</set>
diff --git a/core/res/res/animator/leanback_setup_fragment_close_exit.xml b/core/res/res/animator/leanback_setup_fragment_close_exit.xml
new file mode 100644
index 0000000..a827df4
--- /dev/null
+++ b/core/res/res/animator/leanback_setup_fragment_close_exit.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <objectAnimator
+        android:propertyName="alpha"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_alpha_backward_out_content_start"
+        android:valueTo="@dimen/leanback_setup_alpha_backward_out_content_end"
+        android:duration="@integer/leanback_setup_alpha_backward_out_content_duration"
+        android:startOffset="@integer/leanback_setup_alpha_backward_out_content_delay"/>
+    <objectAnimator
+        android:propertyName="x"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_translation_backward_out_content_start"
+        android:valueTo="@dimen/leanback_setup_translation_backward_out_content_end"
+        android:duration="@integer/leanback_setup_translation_backward_out_content_duration"
+        android:startOffset="@integer/leanback_setup_translation_backward_out_content_delay"/>
+</set>
diff --git a/core/res/res/animator/leanback_setup_fragment_open_enter.xml b/core/res/res/animator/leanback_setup_fragment_open_enter.xml
new file mode 100644
index 0000000..34b9a57
--- /dev/null
+++ b/core/res/res/animator/leanback_setup_fragment_open_enter.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android" >
+   <objectAnimator
+        android:propertyName="alpha"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_alpha_forward_in_content_start"
+        android:valueTo="@dimen/leanback_setup_alpha_forward_in_content_end"
+        android:duration="@integer/leanback_setup_alpha_forward_in_content_duration"
+        android:startOffset="@integer/leanback_setup_alpha_forward_in_content_delay"/>
+    <objectAnimator
+        android:propertyName="x"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_translation_forward_in_content_start"
+        android:valueTo="@dimen/leanback_setup_translation_forward_in_content_end"
+        android:duration="@integer/leanback_setup_translation_forward_in_content_duration"
+        android:startOffset="@integer/leanback_setup_translation_forward_in_content_delay" />
+</set>
diff --git a/core/res/res/animator/leanback_setup_fragment_open_exit.xml b/core/res/res/animator/leanback_setup_fragment_open_exit.xml
new file mode 100644
index 0000000..5622db4
--- /dev/null
+++ b/core/res/res/animator/leanback_setup_fragment_open_exit.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <objectAnimator
+        android:propertyName="alpha"
+        android:valueType="floatType"
+        android:valueFrom="@dimen/leanback_setup_alpha_forward_out_content_start"
+        android:valueTo="@dimen/leanback_setup_alpha_forward_out_content_end"
+        android:duration="@integer/leanback_setup_alpha_forward_out_content_duration"
+        android:startOffset="@integer/leanback_setup_alpha_forward_out_content_delay"/>
+</set>
diff --git a/core/res/res/color/primary_text_leanback_formwizard_dark.xml b/core/res/res/color/primary_text_leanback_formwizard_dark.xml
new file mode 100644
index 0000000..8fe02b2
--- /dev/null
+++ b/core/res/res/color/primary_text_leanback_formwizard_dark.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false"
+        android:alpha="@dimen/disabled_alpha_leanback_formwizard"
+        android:color="@color/primary_text_leanback_formwizard_default_dark"/>
+    <item android:color="@color/primary_text_leanback_formwizard_default_dark"/>
+</selector>
diff --git a/core/res/res/drawable-hdpi/btn_code_lock_default_mtrl_alpha.png b/core/res/res/drawable-hdpi/btn_code_lock_default_mtrl_alpha.png
deleted file mode 100644
index 7cc3c11..0000000
--- a/core/res/res/drawable-hdpi/btn_code_lock_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_code_lock_touched_mtrl_alpha.png b/core/res/res/drawable-hdpi/btn_code_lock_touched_mtrl_alpha.png
deleted file mode 100644
index 70397d2..0000000
--- a/core/res/res/drawable-hdpi/btn_code_lock_touched_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png b/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
deleted file mode 100644
index b9b400f..0000000
--- a/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_mtrl_alpha.png b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
deleted file mode 100644
index b1601f4..0000000
--- a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_mtrl_alpha.png b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_mtrl_alpha.png
deleted file mode 100644
index a038a13..0000000
--- a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_textfield_activated_mtrl_alpha.9.png b/core/res/res/drawable-hdpi/spinner_textfield_activated_mtrl_alpha.9.png
new file mode 100644
index 0000000..8af9ceb
--- /dev/null
+++ b/core/res/res/drawable-hdpi/spinner_textfield_activated_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_textfield_default_mtrl_alpha.9.png b/core/res/res/drawable-hdpi/spinner_textfield_default_mtrl_alpha.9.png
new file mode 100644
index 0000000..81c78c6
--- /dev/null
+++ b/core/res/res/drawable-hdpi/spinner_textfield_default_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_code_lock_default_mtrl_alpha.png b/core/res/res/drawable-mdpi/btn_code_lock_default_mtrl_alpha.png
deleted file mode 100644
index 14d0b32..0000000
--- a/core/res/res/drawable-mdpi/btn_code_lock_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_code_lock_touched_mtrl_alpha.png b/core/res/res/drawable-mdpi/btn_code_lock_touched_mtrl_alpha.png
deleted file mode 100644
index 9cfbdf9..0000000
--- a/core/res/res/drawable-mdpi/btn_code_lock_touched_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
deleted file mode 100644
index 2fb1325..0000000
--- a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_mtrl_alpha.png b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
deleted file mode 100644
index 07d4afd..0000000
--- a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_mtrl_alpha.png b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_mtrl_alpha.png
deleted file mode 100644
index ea8c2b4..0000000
--- a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_textfield_activated_mtrl_alpha.9.png b/core/res/res/drawable-mdpi/spinner_textfield_activated_mtrl_alpha.9.png
new file mode 100644
index 0000000..22992c0
--- /dev/null
+++ b/core/res/res/drawable-mdpi/spinner_textfield_activated_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_textfield_default_mtrl_alpha.9.png b/core/res/res/drawable-mdpi/spinner_textfield_default_mtrl_alpha.9.png
new file mode 100644
index 0000000..f44a2c2
--- /dev/null
+++ b/core/res/res/drawable-mdpi/spinner_textfield_default_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_code_lock_default_mtrl_alpha.png b/core/res/res/drawable-xhdpi/btn_code_lock_default_mtrl_alpha.png
deleted file mode 100644
index 0c457b4..0000000
--- a/core/res/res/drawable-xhdpi/btn_code_lock_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_code_lock_touched_mtrl_alpha.png b/core/res/res/drawable-xhdpi/btn_code_lock_touched_mtrl_alpha.png
deleted file mode 100644
index 020d699..0000000
--- a/core/res/res/drawable-xhdpi/btn_code_lock_touched_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png b/core/res/res/drawable-xhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
deleted file mode 100644
index fda5e37..0000000
--- a/core/res/res/drawable-xhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
deleted file mode 100644
index 75d0221..0000000
--- a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_mtrl_alpha.png b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_mtrl_alpha.png
deleted file mode 100644
index 225799b..0000000
--- a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_textfield_activated_mtrl_alpha.9.png b/core/res/res/drawable-xhdpi/spinner_textfield_activated_mtrl_alpha.9.png
new file mode 100644
index 0000000..2d79d59
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/spinner_textfield_activated_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_textfield_default_mtrl_alpha.9.png b/core/res/res/drawable-xhdpi/spinner_textfield_default_mtrl_alpha.9.png
new file mode 100644
index 0000000..36f9753
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/spinner_textfield_default_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_code_lock_default_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/btn_code_lock_default_mtrl_alpha.png
deleted file mode 100755
index 1b6c9b5..0000000
--- a/core/res/res/drawable-xxhdpi/btn_code_lock_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_code_lock_touched_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/btn_code_lock_touched_mtrl_alpha.png
deleted file mode 100755
index dd13af8..0000000
--- a/core/res/res/drawable-xxhdpi/btn_code_lock_touched_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
deleted file mode 100644
index d3e80be..0000000
--- a/core/res/res/drawable-xxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
deleted file mode 100644
index a11b6dd..0000000
--- a/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_default_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_mtrl_alpha.png
deleted file mode 100644
index eae7ea8..0000000
--- a/core/res/res/drawable-xxhdpi/indicator_code_lock_point_area_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_textfield_activated_mtrl_alpha.9.png b/core/res/res/drawable-xxhdpi/spinner_textfield_activated_mtrl_alpha.9.png
new file mode 100644
index 0000000..9c0b19e
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/spinner_textfield_activated_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_textfield_default_mtrl_alpha.9.png b/core/res/res/drawable-xxhdpi/spinner_textfield_default_mtrl_alpha.9.png
new file mode 100644
index 0000000..0edb4b8
--- /dev/null
+++ b/core/res/res/drawable-xxhdpi/spinner_textfield_default_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png b/core/res/res/drawable-xxxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
deleted file mode 100644
index 23214fa..0000000
--- a/core/res/res/drawable-xxxhdpi/indicator_code_lock_drag_direction_up_mtrl_alpha.png
+++ /dev/null
Binary files differ
diff --git a/core/res/res/drawable-xxxhdpi/spinner_textfield_activated_mtrl_alpha.9.png b/core/res/res/drawable-xxxhdpi/spinner_textfield_activated_mtrl_alpha.9.png
new file mode 100644
index 0000000..78c5ebd
--- /dev/null
+++ b/core/res/res/drawable-xxxhdpi/spinner_textfield_activated_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxxhdpi/spinner_textfield_default_mtrl_alpha.9.png b/core/res/res/drawable-xxxhdpi/spinner_textfield_default_mtrl_alpha.9.png
new file mode 100644
index 0000000..36974b7
--- /dev/null
+++ b/core/res/res/drawable-xxxhdpi/spinner_textfield_default_mtrl_alpha.9.png
Binary files differ
diff --git a/core/res/res/drawable/spinner_textfield_background_material.xml b/core/res/res/drawable/spinner_textfield_background_material.xml
new file mode 100644
index 0000000..f818baf
--- /dev/null
+++ b/core/res/res/drawable/spinner_textfield_background_material.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:autoMirrored="true">
+    <item android:state_checked="true">
+        <nine-patch android:src="@drawable/spinner_textfield_activated_mtrl_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item android:state_pressed="true">
+        <nine-patch android:src="@drawable/spinner_textfield_activated_mtrl_alpha"
+            android:tint="?attr/colorControlActivated" />
+    </item>
+    <item>
+        <nine-patch android:src="@drawable/spinner_textfield_default_mtrl_alpha"
+            android:tint="?attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/core/res/res/layout-land/date_picker_holo.xml b/core/res/res/layout-land/date_picker_holo.xml
index af8f598..9a9b8b0 100644
--- a/core/res/res/layout-land/date_picker_holo.xml
+++ b/core/res/res/layout-land/date_picker_holo.xml
@@ -20,26 +20,11 @@
               android:gravity="center"
               android:orientation="horizontal" >
 
-    <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_gravity="center"
-            android:orientation="vertical" >
-
-        <LinearLayout
-                android:layout_width="wrap_content"
-                android:layout_height="0dip"
-                android:layout_weight="1"
-                android:orientation="vertical" >
-
-            <include layout="@layout/date_picker_header_view" />
-
-            <include layout="@layout/date_picker_selected_date" />
-        </LinearLayout>
-
-        <include layout="@layout/date_picker_done_button" />
-    </LinearLayout>
+    <include
+        layout="@layout/date_picker_selected_date"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent" />
 
     <include layout="@layout/date_picker_view_animator" />
 
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/core/res/res/layout-land/time_picker_holo.xml b/core/res/res/layout-land/time_picker_holo.xml
index 1725ddc..3b3d63c 100644
--- a/core/res/res/layout-land/time_picker_holo.xml
+++ b/core/res/res/layout-land/time_picker_holo.xml
@@ -30,39 +30,18 @@
             android:layout_width="@dimen/timepicker_left_side_width"
             android:layout_height="match_parent"
             android:orientation="vertical">
-        <FrameLayout
+        <include
+                layout="@layout/time_header_label"
                 android:layout_width="match_parent"
                 android:layout_height="0dip"
-                android:layout_weight="1">
-            <include
-                    layout="@layout/time_header_label"
-                    android:layout_width="match_parent"
-                    android:layout_height="@dimen/timepicker_header_height"
-                    android:layout_gravity="center" />
-        </FrameLayout>
-        <LinearLayout
-                android:id="@+id/layout_buttons"
-                style="?android:attr/buttonBarStyle"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="vertical"
-                android:divider="?android:attr/dividerHorizontal"
-                android:showDividers="beginning">
-            <Button
-                    android:id="@+id/done_button"
-                    style="?android:attr/buttonBarButtonStyle"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:minHeight="48dp"
-                    android:text="@string/done_label"
-                    android:textSize="@dimen/timepicker_done_label_size" />
-        </LinearLayout>
+                android:layout_weight="1"
+                android:layout_gravity="center" />
     </LinearLayout>
     <android.widget.RadialTimePickerView
-            android:id="@+id/radial_picker"
-            android:layout_width="@dimen/timepicker_radial_picker_dimen"
-            android:layout_height="match_parent"
-            android:layout_gravity="center"
-            android:focusable="true"
-            android:focusableInTouchMode="true" />
-</LinearLayout>
\ No newline at end of file
+        android:id="@+id/radial_picker"
+        android:layout_width="@dimen/timepicker_radial_picker_dimen"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:focusable="true"
+        android:focusableInTouchMode="true" />
+</LinearLayout>
diff --git a/core/res/res/layout-sw600dp/date_picker_holo.xml b/core/res/res/layout-sw600dp/date_picker_holo.xml
index 847aa32..e5c886b 100644
--- a/core/res/res/layout-sw600dp/date_picker_holo.xml
+++ b/core/res/res/layout-sw600dp/date_picker_holo.xml
@@ -17,22 +17,14 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="wrap_content"
               android:layout_height="match_parent"
-              android:background="@color/datepicker_default_view_animator_color_holo_light"
               android:gravity="center"
               android:orientation="vertical" >
 
-    <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="@dimen/datepicker_selected_calendar_layout_height"
-            android:orientation="vertical" >
-
-        <include layout="@layout/date_picker_header_view" />
-
-        <include layout="@layout/date_picker_selected_date" />
-    </LinearLayout>
+    <include
+        layout="@layout/date_picker_selected_date"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/datepicker_selected_calendar_layout_height" />
 
     <include layout="@layout/date_picker_view_animator" />
 
-    <include layout="@layout/date_picker_done_button" />
-
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/core/res/res/layout/alert_dialog_material.xml b/core/res/res/layout/alert_dialog_material.xml
index 6a435b2..c3f9c76 100644
--- a/core/res/res/layout/alert_dialog_material.xml
+++ b/core/res/res/layout/alert_dialog_material.xml
@@ -68,7 +68,8 @@
                 android:layout_height="wrap_content"
                 android:paddingStart="16dip"
                 android:paddingEnd="16dip"
-                android:paddingTop="16dip" />
+                android:paddingTop="16dip"
+                android:paddingBottom="16dip" />
         </ScrollView>
     </LinearLayout>
 
@@ -83,14 +84,12 @@
     </FrameLayout>
 
     <LinearLayout android:id="@+id/buttonPanel"
+        style="?attr/buttonBarStyle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:minHeight="@dimen/alert_dialog_button_bar_height"
         android:orientation="vertical"
-        android:gravity="end"
-        android:padding="16dip">
+        android:gravity="end">
         <LinearLayout
-            style="?attr/buttonBarStyle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layoutDirection="locale">
diff --git a/core/res/res/layout/date_picker_done_button.xml b/core/res/res/layout/date_picker_done_button.xml
deleted file mode 100644
index b8e8c03..0000000
--- a/core/res/res/layout/date_picker_done_button.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:id="@+id/layout_buttons"
-              style="?android:attr/buttonBarStyle"
-              android:layout_width="@dimen/datepicker_component_width"
-              android:layout_height="wrap_content"
-              android:orientation="vertical"
-              android:divider="?android:attr/dividerHorizontal"
-              android:showDividers="beginning" >
-
-    <Button
-            android:id="@+id/done"
-            style="?android:attr/buttonBarButtonStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="48dp"
-            android:text="@string/done_label"
-            android:textSize="@dimen/datepicker_done_label_size" />
-</LinearLayout>
diff --git a/core/res/res/layout/date_picker_header_view.xml b/core/res/res/layout/date_picker_header_view.xml
deleted file mode 100644
index 66d5e1b..0000000
--- a/core/res/res/layout/date_picker_header_view.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<TextView xmlns:android="http://schemas.android.com/apk/res/android"
-          android:id="@+id/date_picker_header"
-          android:layout_width="@dimen/datepicker_component_width"
-          android:layout_height="@dimen/datepicker_header_height"
-          android:gravity="center"
-          android:importantForAccessibility="no"
-          android:textAllCaps="true" />
diff --git a/core/res/res/layout/date_picker_holo.xml b/core/res/res/layout/date_picker_holo.xml
index 1199a72..72030ea 100644
--- a/core/res/res/layout/date_picker_holo.xml
+++ b/core/res/res/layout/date_picker_holo.xml
@@ -20,18 +20,11 @@
               android:gravity="center"
               android:orientation="vertical">
 
-    <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-
-        <include layout="@layout/date_picker_header_view" />
-
-        <include layout="@layout/date_picker_selected_date" />
-    </LinearLayout>
+    <include
+        layout="@layout/date_picker_selected_date"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
 
     <include layout="@layout/date_picker_view_animator" />
 
-    <include layout="@layout/date_picker_done_button" />
-
 </LinearLayout>
diff --git a/core/res/res/layout/date_picker_selected_date.xml b/core/res/res/layout/date_picker_selected_date.xml
index c5afddc..23ae08f 100644
--- a/core/res/res/layout/date_picker_selected_date.xml
+++ b/core/res/res/layout/date_picker_selected_date.xml
@@ -16,46 +16,53 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:id="@+id/day_picker_selector_layout"
-              android:layout_width="@dimen/datepicker_component_width"
-              android:layout_height="0dip"
-              android:layout_weight="1"
-              android:paddingTop="8dip"
-              android:paddingBottom="8dip"
-              android:gravity="center"
-              android:orientation="vertical">
+    android:id="@+id/day_picker_selector_layout"
+    android:layout_width="@dimen/datepicker_component_width"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:paddingBottom="8dp"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/date_picker_header"
+        android:layout_width="@dimen/datepicker_component_width"
+        android:layout_height="@dimen/datepicker_header_height"
+        android:gravity="center"
+        android:importantForAccessibility="no"
+        android:layout_marginBottom="8dp" />
 
     <LinearLayout
-            android:id="@+id/date_picker_month_and_day_layout"
+        android:id="@+id/date_picker_month_and_day_layout"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:layout_gravity="center"
+        android:clickable="true"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/date_picker_month"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:duplicateParentState="true"
+            android:gravity="center_horizontal|bottom" />
+
+        <TextView
+            android:id="@+id/date_picker_day"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center"
-            android:clickable="true"
-            android:orientation="vertical">
-
-        <TextView
-                android:id="@+id/date_picker_month"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:duplicateParentState="true"
-                android:gravity="center_horizontal|bottom" />
-
-        <TextView
-                android:id="@+id/date_picker_day"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_marginBottom="-10dip"
-                android:layout_marginTop="-10dip"
-                android:duplicateParentState="true"
-                android:gravity="center" />
+            android:layout_marginBottom="-10dip"
+            android:layout_marginTop="-10dip"
+            android:duplicateParentState="true"
+            android:gravity="center" />
     </LinearLayout>
 
     <TextView
-            android:id="@+id/date_picker_year"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            android:gravity="center_horizontal|top" />
+        android:id="@+id/date_picker_year"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:gravity="center_horizontal|top" />
 
 </LinearLayout>
diff --git a/core/res/res/layout/input_method_switch_dialog_title.xml b/core/res/res/layout/input_method_switch_dialog_title.xml
index d498d23..37bceb6 100644
--- a/core/res/res/layout/input_method_switch_dialog_title.xml
+++ b/core/res/res/layout/input_method_switch_dialog_title.xml
@@ -80,7 +80,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:singleLine="true"
-                    android:text="@string/use_physical_keyboard"
+                    android:text="@string/show_ime"
                     android:textAppearance="?android:attr/textAppearanceSmall"
                     android:textColor="?android:attr/textColorAlertDialogListItem" />
             </LinearLayout>
diff --git a/core/res/res/layout/notification_material_action.xml b/core/res/res/layout/notification_material_action.xml
index 7ccaad5..8f8c4fb 100644
--- a/core/res/res/layout/notification_material_action.xml
+++ b/core/res/res/layout/notification_material_action.xml
@@ -21,11 +21,12 @@
     android:layout_width="0dp"
     android:layout_height="48dp"
     android:layout_weight="1"
+    android:layout_margin="0dp"
     android:gravity="start|center_vertical"
     android:drawablePadding="8dp"
     android:paddingStart="8dp"
     android:textColor="#555555"
-    android:textSize="14dp"
+    android:textSize="@dimen/notification_text_size"
     android:singleLine="true"
     android:ellipsize="end"
     />
diff --git a/core/res/res/layout/notification_material_action_tombstone.xml b/core/res/res/layout/notification_material_action_tombstone.xml
index 8bf456e..976448b 100644
--- a/core/res/res/layout/notification_material_action_tombstone.xml
+++ b/core/res/res/layout/notification_material_action_tombstone.xml
@@ -25,7 +25,7 @@
     android:drawablePadding="8dp"
     android:paddingStart="8dp"
     android:textColor="#555555"
-    android:textSize="14dp"
+    android:textSize="@dimen/notification_text_size"
     android:singleLine="true"
     android:ellipsize="end"
     android:alpha="0.5"
diff --git a/core/res/res/layout/notification_template_material_base.xml b/core/res/res/layout/notification_template_material_base.xml
index ab13b98..5e51db9 100644
--- a/core/res/res/layout/notification_template_material_base.xml
+++ b/core/res/res/layout/notification_template_material_base.xml
@@ -29,106 +29,27 @@
         />
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-
-        android:layout_gravity="fill_vertical"
+        android:layout_height="match_parent"
+        android:layout_gravity="top"
+        android:layout_marginEnd="8dp"
         android:layout_marginStart="@dimen/notification_large_icon_width"
         android:minHeight="@dimen/notification_large_icon_height"
         android:orientation="vertical"
-        android:paddingEnd="8dp"
-        android:paddingTop="2dp"
-        android:paddingBottom="2dp"
-        android:gravity="top"
         >
-        <LinearLayout
-            android:id="@+id/line1"
+        <include layout="@layout/notification_template_part_line1"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingTop="6dp"
-            android:layout_marginStart="8dp"
-            android:orientation="horizontal"
-            >
-            <TextView android:id="@+id/title"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Title"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"
-                android:layout_weight="1"
-                />
-            <ViewStub android:id="@+id/time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:visibility="gone"
-                android:layout="@layout/notification_template_part_time"
-                />
-            <ViewStub android:id="@+id/chronometer"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="0"
-                android:visibility="gone"
-                android:layout="@layout/notification_template_part_chronometer"
-                />
-        </LinearLayout>
-        <TextView android:id="@+id/text2"
-            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="-2dp"
-            android:layout_marginBottom="-2dp"
-            android:layout_marginStart="8dp"
-            android:singleLine="true"
-            android:fadingEdge="horizontal"
-            android:ellipsize="marquee"
-            android:visibility="gone"
+            android:layout_weight="1"
             />
-        <ProgressBar
-            android:id="@android:id/progress"
-            android:layout_width="match_parent"
-            android:layout_height="12dp"
-            android:layout_marginStart="8dp"
-            android:visibility="gone"
-            style="@style/Widget.StatusBar.Material.ProgressBar"
-            />
-        <LinearLayout
-            android:id="@+id/line3"
+        <include layout="@layout/notification_template_part_line2"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:gravity="center_vertical"
-            android:layout_marginStart="8dp"
-            >
-            <TextView android:id="@+id/text"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:layout_gravity="center"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"
-                />
-            <TextView android:id="@+id/info"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Info"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:singleLine="true"
-                android:gravity="center"
-                android:paddingStart="8dp"
-                />
-            <ImageView android:id="@+id/profile_icon"
-                android:layout_width="24dp"
-                android:layout_height="24dp"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:layout_marginStart="8dp"
-                android:scaleType="centerInside"
-                android:visibility="gone"
-                />
-        </LinearLayout>
+            android:layout_weight="1"
+            />
+        <include layout="@layout/notification_template_part_line3"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            />
     </LinearLayout>
 </FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_big_base.xml b/core/res/res/layout/notification_template_material_big_base.xml
index 0564a8f..2243a09 100644
--- a/core/res/res/layout/notification_template_material_big_base.xml
+++ b/core/res/res/layout/notification_template_material_big_base.xml
@@ -30,124 +30,24 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="fill_vertical"
+        android:layout_gravity="top"
+        android:layout_marginEnd="8dp"
+        android:layout_marginStart="@dimen/notification_large_icon_width"
         android:minHeight="@dimen/notification_large_icon_height"
         android:orientation="vertical"
-        android:gravity="top"
         >
-        <LinearLayout
+        <include layout="@layout/notification_template_part_line1" />
+        <include layout="@layout/notification_template_part_line2" />
+        <TextView android:id="@+id/big_text"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/notification_large_icon_width"
             android:minHeight="@dimen/notification_large_icon_height"
-            android:paddingTop="2dp"
-            android:orientation="vertical"
-            >
-            <LinearLayout
-                android:id="@+id/line1"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingTop="6dp"
-                android:layout_marginEnd="8dp"
-                android:layout_marginStart="8dp"
-                android:orientation="horizontal"
-                >
-                <TextView android:id="@+id/title"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Title"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:singleLine="true"
-                    android:ellipsize="marquee"
-                    android:fadingEdge="horizontal"
-                    android:layout_weight="1"
-                    />
-                <ViewStub android:id="@+id/time"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_time"
-                    />
-                <ViewStub android:id="@+id/chronometer"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_chronometer"
-                    />
-            </LinearLayout>
-            <TextView android:id="@+id/text2"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="-2dp"
-                android:layout_marginBottom="-2dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:fadingEdge="horizontal"
-                android:ellipsize="marquee"
-                android:visibility="gone"
-                />
-            <TextView android:id="@+id/big_text"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="false"
-                android:visibility="gone"
-                />
-            <LinearLayout
-                android:id="@+id/line3"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:orientation="horizontal"
-                android:gravity="center_vertical"
-                >
-                <TextView android:id="@+id/text"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:layout_gravity="center"
-                    android:singleLine="true"
-                    android:ellipsize="marquee"
-                    android:fadingEdge="horizontal"
-                    />
-                <TextView android:id="@+id/info"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Info"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:layout_weight="0"
-                    android:singleLine="true"
-                    android:gravity="center"
-                    android:paddingStart="8dp"
-                    />
-                <ImageView android:id="@+id/profile_icon"
-                    android:layout_width="24dp"
-                    android:layout_height="24dp"
-                    android:layout_gravity="center"
-                    android:layout_weight="0"
-                    android:layout_marginStart="8dp"
-                    android:scaleType="centerInside"
-                    android:visibility="gone"
-                    />
-            </LinearLayout>
-            <ProgressBar
-                android:id="@android:id/progress"
-                android:layout_width="match_parent"
-                android:layout_height="12dp"
-                android:layout_marginBottom="8dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:visibility="gone"
-                style="@style/Widget.StatusBar.Material.ProgressBar"
-                />
-        </LinearLayout>
+            android:layout_weight="1"
+            android:singleLine="false"
+            android:visibility="gone"
+            />
+        <include layout="@layout/notification_template_part_line3" />
         <ImageView
             android:layout_width="match_parent"
             android:layout_height="1dp"
@@ -156,9 +56,10 @@
             android:background="@drawable/list_divider_holo_light" />
         <include
             layout="@layout/notification_material_action_list"
+            android:layout_marginLeft="-8dp"
+            android:layout_marginRight="-8dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/notification_large_icon_width"
             />
     </LinearLayout>
 </FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_big_picture.xml b/core/res/res/layout/notification_template_material_big_picture.xml
index 74819fd..302e651 100644
--- a/core/res/res/layout/notification_template_material_big_picture.xml
+++ b/core/res/res/layout/notification_template_material_big_picture.xml
@@ -40,13 +40,13 @@
         />
     <include layout="@layout/notification_template_material_base"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="64dp"
         />
   <FrameLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="208dp"
-        android:paddingStart="64dp"
+        android:paddingStart="@dimen/notification_large_icon_width"
         android:layout_gravity="bottom"
         android:background="#CCEEEEEE"
         >
diff --git a/core/res/res/layout/notification_template_material_big_text.xml b/core/res/res/layout/notification_template_material_big_text.xml
deleted file mode 100644
index 1de5add..0000000
--- a/core/res/res/layout/notification_template_material_big_text.xml
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2014 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:internal="http://schemas.android.com/apk/prv/res/android"
-    android:id="@+id/status_bar_latest_event_content"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    internal:layout_minHeight="65dp"
-    internal:layout_maxHeight="unbounded"
-    >
-    <include layout="@layout/notification_template_icon_group"
-        android:layout_width="@dimen/notification_large_icon_width"
-        android:layout_height="@dimen/notification_large_icon_height"
-        />
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="fill_vertical"
-        android:layout_marginStart="@dimen/notification_large_icon_width"
-        android:orientation="vertical"
-        android:paddingTop="0dp"
-        android:paddingBottom="2dp"
-        android:gravity="top"
-        >
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="@dimen/notification_large_icon_height"
-            android:orientation="vertical"
-            android:layout_marginStart="8dp"
-            android:layout_marginEnd="8dp"
-            android:layout_weight="1"
-            >
-            <LinearLayout
-                android:id="@+id/line1"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingTop="8dp"
-                android:orientation="horizontal"
-                android:layout_gravity="top"
-                android:layout_weight="0"
-                >
-                <TextView android:id="@+id/title"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Title"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:singleLine="true"
-                    android:ellipsize="marquee"
-                    android:fadingEdge="horizontal"
-                    android:layout_weight="1"
-                    />
-                <ViewStub android:id="@+id/time"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_time"
-                    />
-                <ViewStub android:id="@+id/chronometer"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_chronometer"
-                    />
-            </LinearLayout>
-            <TextView android:id="@+id/text2"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="-2dp"
-                android:layout_marginBottom="-2dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:fadingEdge="horizontal"
-                android:ellipsize="marquee"
-                android:layout_weight="0"
-                android:visibility="gone"
-                />
-            <ProgressBar
-                android:id="@android:id/progress"
-                android:layout_width="match_parent"
-                android:layout_height="12dp"
-                android:layout_marginBottom="8dp"
-                android:layout_marginEnd="8dp"
-                android:visibility="gone"
-                android:layout_weight="0"
-                style="@style/Widget.StatusBar.Material.ProgressBar"
-                />
-            <TextView android:id="@+id/big_text"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginBottom="10dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="false"
-                android:visibility="gone"
-                android:maxLines="8"
-                android:ellipsize="end"
-                android:layout_weight="1"
-                />
-        </LinearLayout>
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="1dip"
-            android:id="@+id/action_divider"
-            android:visibility="gone"
-            android:background="@drawable/list_divider_holo_light" />
-        <include
-            layout="@layout/notification_material_action_list"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:visibility="gone"
-            android:layout_weight="1"
-            />
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="1dp"
-            android:id="@+id/overflow_divider"
-            android:layout_marginBottom="8dp"
-            android:visibility="visible"
-            android:background="@drawable/list_divider_holo_light" />
-        <LinearLayout
-            android:id="@+id/line3"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="8dp"
-            android:layout_marginBottom="8dp"
-            android:layout_marginEnd="8dp"
-            android:orientation="horizontal"
-            android:layout_weight="0"
-            android:gravity="center_vertical"
-            >
-            <TextView android:id="@+id/text"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:layout_gravity="center"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"
-                />
-            <TextView android:id="@+id/info"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Info"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:singleLine="true"
-                android:gravity="center"
-                android:paddingStart="8dp"
-                />
-            <ImageView android:id="@+id/profile_icon"
-                android:layout_width="24dp"
-                android:layout_height="24dp"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:layout_marginStart="8dp"
-                android:scaleType="centerInside"
-                android:visibility="gone"
-                />
-        </LinearLayout>
-    </LinearLayout>
-</FrameLayout>
diff --git a/core/res/res/layout/notification_template_material_inbox.xml b/core/res/res/layout/notification_template_material_inbox.xml
index 8411ff5..6133791 100644
--- a/core/res/res/layout/notification_template_material_inbox.xml
+++ b/core/res/res/layout/notification_template_material_inbox.xml
@@ -30,175 +30,93 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="fill_vertical"
+        android:layout_gravity="top"
         android:layout_marginStart="@dimen/notification_large_icon_width"
         android:minHeight="@dimen/notification_large_icon_height"
         android:orientation="vertical"
-        android:paddingTop="0dp"
-        android:paddingBottom="2dp"
-        android:gravity="top"
         >
-        <LinearLayout
+        <include layout="@layout/notification_template_part_line1" />
+        <include layout="@layout/notification_template_part_line2" />
+        <TextView android:id="@+id/inbox_text0"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="@dimen/notification_large_icon_height"
-            android:paddingTop="2dp"
-            android:orientation="vertical"
-            >
-            <LinearLayout
-                android:id="@+id/line1"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:paddingTop="6dp"
-                android:orientation="horizontal"
-                android:layout_weight="0"
-                >
-                <TextView android:id="@+id/title"
-                    android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Title"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:singleLine="true"
-                    android:ellipsize="marquee"
-                    android:fadingEdge="horizontal"
-                    android:layout_weight="1"
-                    />
-                <ViewStub android:id="@+id/time"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_time"
-                    />
-                <ViewStub android:id="@+id/chronometer"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="0"
-                    android:visibility="gone"
-                    android:layout="@layout/notification_template_part_chronometer"
-                    />
-            </LinearLayout>
-            <TextView android:id="@+id/text2"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="-2dp"
-                android:layout_marginBottom="-2dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:fadingEdge="horizontal"
-                android:ellipsize="marquee"
-                android:visibility="gone"
-                android:layout_weight="0"
-                />
-            <ProgressBar
-                android:id="@android:id/progress"
-                android:layout_width="match_parent"
-                android:layout_height="12dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:visibility="gone"
-                android:layout_weight="0"
-                style="@style/Widget.Material.Light.ProgressBar.Horizontal"
-                />
-            <TextView android:id="@+id/inbox_text0"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text1"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text2"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text3"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text4"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text5"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_text6"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                />
-            <TextView android:id="@+id/inbox_more"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_marginStart="8dp"
-                android:layout_marginEnd="8dp"
-                android:singleLine="true"
-                android:ellipsize="end"
-                android:visibility="gone"
-                android:layout_weight="1"
-                android:text="@android:string/ellipsis"
-                />
-            <FrameLayout
-                android:id="@+id/inbox_end_pad"
-                android:layout_width="match_parent"
-                android:layout_height="8dip"
-                android:visibility="gone"
-                android:layout_weight="0"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
             />
-        </LinearLayout>
+        <TextView android:id="@+id/inbox_text1"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_text2"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_text3"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_text4"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_text5"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_text6"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            />
+        <TextView android:id="@+id/inbox_more"
+            android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:singleLine="true"
+            android:ellipsize="end"
+            android:visibility="gone"
+            android:layout_weight="1"
+            android:text="@android:string/ellipsis"
+            />
+        <FrameLayout
+            android:id="@+id/inbox_end_pad"
+            android:layout_width="match_parent"
+            android:layout_height="8dip"
+            android:visibility="gone"
+            android:layout_weight="0"
+        />
         <ImageView
             android:layout_width="match_parent"
             android:layout_height="1dip"
@@ -209,6 +127,8 @@
             layout="@layout/notification_material_action_list"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginLeft="-8dp"
+            android:layout_marginRight="-8dp"
             android:layout_weight="0"
             />
         <ImageView
@@ -217,47 +137,6 @@
             android:id="@+id/overflow_divider"
             android:visibility="visible"
             android:background="@drawable/list_divider_holo_light" />
-        <LinearLayout
-            android:id="@+id/line3"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginBottom="8dp"
-            android:layout_marginEnd="8dp"
-            android:orientation="horizontal"
-            android:layout_weight="0"
-            android:gravity="center_vertical"
-            >
-            <TextView android:id="@+id/text"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:layout_gravity="center"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"
-                />
-            <TextView android:id="@+id/info"
-                android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Info"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:singleLine="true"
-                android:gravity="center"
-                android:paddingStart="8dp"
-                />
-            <ImageView android:id="@+id/profile_icon"
-                android:layout_width="24dp"
-                android:layout_height="24dp"
-                android:layout_gravity="center"
-                android:layout_weight="0"
-                android:layout_marginStart="8dp"
-                android:scaleType="centerInside"
-                android:visibility="gone"
-                />
-        </LinearLayout>
+        <include layout="@layout/notification_template_part_line3" />
     </LinearLayout>
 </FrameLayout>
diff --git a/core/res/res/layout/notification_template_part_line1.xml b/core/res/res/layout/notification_template_part_line1.xml
new file mode 100644
index 0000000..d652959
--- /dev/null
+++ b/core/res/res/layout/notification_template_part_line1.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/line1"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:paddingTop="@dimen/notification_vert_pad"
+    android:layout_weight="0"
+    >
+    <TextView android:id="@+id/title"
+        android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:singleLine="true"
+        android:ellipsize="marquee"
+        android:fadingEdge="horizontal"
+        android:layout_weight="1"
+        />
+    <ViewStub android:id="@+id/time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="0"
+        android:visibility="gone"
+        android:layout="@layout/notification_template_part_time"
+        />
+    <ViewStub android:id="@+id/chronometer"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="0"
+        android:visibility="gone"
+        android:layout="@layout/notification_template_part_chronometer"
+        />
+</LinearLayout>
diff --git a/core/res/res/layout/notification_template_part_line2.xml b/core/res/res/layout/notification_template_part_line2.xml
new file mode 100644
index 0000000..1e19df1
--- /dev/null
+++ b/core/res/res/layout/notification_template_part_line2.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <TextView 
+        android:id="@+id/text2"
+        android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Line2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="-2dp"
+        android:layout_marginBottom="-2dp"
+        android:singleLine="true"
+        android:fadingEdge="horizontal"
+        android:ellipsize="marquee"
+        android:visibility="gone"
+        android:layout_weight="0"
+        />
+    <ProgressBar
+        android:id="@android:id/progress"
+        android:layout_width="match_parent"
+        android:layout_height="8dp"
+        android:visibility="gone"
+        android:layout_weight="0"
+        style="@style/Widget.Material.Light.ProgressBar.Horizontal"
+        />
+</merge>
diff --git a/core/res/res/layout/notification_template_part_line3.xml b/core/res/res/layout/notification_template_part_line3.xml
new file mode 100644
index 0000000..2c8c704
--- /dev/null
+++ b/core/res/res/layout/notification_template_part_line3.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/line3"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:layout_weight="0"
+    android:gravity="center_vertical"
+    android:paddingBottom="@dimen/notification_vert_pad"
+    >
+    <TextView android:id="@+id/text"
+        android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:layout_gravity="center"
+        android:singleLine="true"
+        android:ellipsize="marquee"
+        android:fadingEdge="horizontal"
+        />
+    <TextView android:id="@+id/info"
+        android:textAppearance="@style/TextAppearance.StatusBar.Material.EventContent.Info"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_weight="0"
+        android:singleLine="true"
+        android:gravity="center"
+        android:paddingStart="8dp"
+        />
+    <ImageView android:id="@+id/profile_icon"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_gravity="center"
+        android:layout_weight="0"
+        android:layout_marginStart="8dp"
+        android:scaleType="centerInside"
+        android:visibility="gone"
+        />
+</LinearLayout>
diff --git a/core/res/res/layout/preference_widget_switch.xml b/core/res/res/layout/preference_widget_switch.xml
index 7395ff2..25e8aa6 100644
--- a/core/res/res/layout/preference_widget_switch.xml
+++ b/core/res/res/layout/preference_widget_switch.xml
@@ -21,4 +21,5 @@
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:focusable="false"
+    android:clickable="false"
     android:background="@null" />
diff --git a/core/res/res/layout/select_dialog_multichoice_material.xml b/core/res/res/layout/select_dialog_multichoice_material.xml
index 8b4c59d..01e4cfa 100644
--- a/core/res/res/layout/select_dialog_multichoice_material.xml
+++ b/core/res/res/layout/select_dialog_multichoice_material.xml
@@ -26,4 +26,5 @@
     android:paddingStart="16dip"
     android:paddingEnd="16dip"
     android:checkMark="?android:attr/listChoiceIndicatorMultiple"
+    android:checkMarkGravity="start"
     android:ellipsize="marquee" />
diff --git a/core/res/res/layout/select_dialog_singlechoice_material.xml b/core/res/res/layout/select_dialog_singlechoice_material.xml
index 27a6648..0f3c277 100644
--- a/core/res/res/layout/select_dialog_singlechoice_material.xml
+++ b/core/res/res/layout/select_dialog_singlechoice_material.xml
@@ -26,4 +26,5 @@
     android:paddingStart="16dip"
     android:paddingEnd="16dip"
     android:checkMark="?android:attr/listChoiceIndicatorSingle"
+    android:checkMarkGravity="start"
     android:ellipsize="marquee" />
diff --git a/core/res/res/layout/time_header_label.xml b/core/res/res/layout/time_header_label.xml
index 45c6241..5c97040 100644
--- a/core/res/res/layout/time_header_label.xml
+++ b/core/res/res/layout/time_header_label.xml
@@ -14,20 +14,21 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:id="@+id/time_header"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_gravity="center" >
-
-    <TextView
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/time_header"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center">
+        <TextView
             android:id="@+id/hours"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_toLeftOf="@+id/separator"
-            android:layout_alignBaseline="@+id/separator"/>
-
-    <TextView
+            android:layout_alignBaseline="@+id/separator" />
+        <TextView
             android:id="@+id/separator"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -35,15 +36,13 @@
             android:paddingRight="@dimen/timepicker_separator_padding"
             android:layout_centerInParent="true"
             android:importantForAccessibility="no" />
-
-    <TextView
+        <TextView
             android:id="@+id/minutes"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_toRightOf="@+id/separator"
             android:layout_alignBaseline="@+id/separator" />
-
-    <TextView
+        <TextView
             android:id="@+id/ampm_label"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -51,5 +50,5 @@
             android:paddingRight="@dimen/timepicker_ampm_left_padding"
             android:layout_toRightOf="@+id/separator"
             android:layout_alignBaseline="@+id/separator" />
-
-</RelativeLayout>
+    </RelativeLayout>
+</FrameLayout>
diff --git a/core/res/res/layout/time_picker_dialog.xml b/core/res/res/layout/time_picker_dialog.xml
index 09326c8..30fe910 100644
--- a/core/res/res/layout/time_picker_dialog.xml
+++ b/core/res/res/layout/time_picker_dialog.xml
@@ -21,5 +21,4 @@
     android:id="@+id/timePicker"
     android:layout_gravity="center_horizontal"
     android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    />
+    android:layout_height="wrap_content" />
diff --git a/core/res/res/layout/time_picker_holo.xml b/core/res/res/layout/time_picker_holo.xml
index 0890fe5..483eb6d 100644
--- a/core/res/res/layout/time_picker_holo.xml
+++ b/core/res/res/layout/time_picker_holo.xml
@@ -34,21 +34,4 @@
             android:layout_gravity="center"
             android:focusable="true"
             android:focusableInTouchMode="true" />
-    <LinearLayout
-            android:id="@+id/layout_buttons"
-            style="?android:attr/buttonBarStyle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:divider="?android:attr/dividerHorizontal"
-            android:showDividers="beginning">
-        <Button
-                android:id="@+id/done_button"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:minHeight="48dp"
-                android:text="@string/done_label"
-                android:textSize="@dimen/timepicker_done_label_size"
-                style="?android:attr/buttonBarButtonStyle" />
-    </LinearLayout>
 </LinearLayout>
diff --git a/core/res/res/layout/time_picker_legacy_leanback.xml b/core/res/res/layout/time_picker_legacy_leanback.xml
index 397f733..b4e5e3e 100644
--- a/core/res/res/layout/time_picker_legacy_leanback.xml
+++ b/core/res/res/layout/time_picker_legacy_leanback.xml
@@ -79,14 +79,4 @@
         android:focusableInTouchMode="true"
         />
 
-    <!-- Width fixed here because TextView doesn't set MEASURED_STATE_TOO_SMALL -->
-    <Button
-        android:id="@+id/done_button"
-        android:layout_width="100dp"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:text="@string/done_label"
-        android:textSize="@dimen/timepicker_done_label_size"
-        style="?android:attr/buttonBarButtonStyle" />
-
 </LinearLayout>
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index a287f6b..45a392b 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Inkomender beller-ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Uitgaande beller-ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID van gekoppelde lyn"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Beperking op ID van gekoppelde lyn"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Oproepaanstuur"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Oproep wag"</string>
     <string name="BaMmi" msgid="455193067926770581">"Oproepblokkering"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Laat die houer toe om bedoelings na \'n toesteladministrateur te stuur. Dit moet nooit vir normale programme nodig wees nie."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind aan \'n TV-invoer"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Laat die houer toe om aan die topvlak-koppelvlak van \'n TV-invoer te bind. Behoort nooit vir gewone programme nodig te wees nie."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"wysig ouerkontroles"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Laat die houer toe om die stelsel se ouerbeheerdata te wysig. Behoort nooit vir gewone programme nodig te wees nie."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"voeg \'n toesteladministrateur by of verwyder een"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Laat die houer aktiewe toesteladministrateurs byvoeg of verwyder. Behoort nooit nodig te wees vir normale programme nie."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"verander skermoriëntasie"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"laat program saambind deur Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Laat die program sonder gebruikerinteraksie met afgeleë toestelle saambind."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Laat die program sonder gebruikerinteraksie met afgeleë toestelle saambind."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"gaan by Bluetooth-kaartdata in"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Gee die program toegang tot Bluetooth-kaartdata."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Gee die program toegang tot Bluetooth-kaartdata."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"koppel aan en ontkoppel van WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Laat die program toe om te bepaal of WiMAX geaktiveer is en of enige WiMAX-netwerke gekoppel is."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Verander WiMAX-status"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Laat die program toe om toegang tot eksterne berging vir alle gebruikers te verkry."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"lees die kaslêerstelsel"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Laat die program toe om die kaslêerstelsel te lees en skryf."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"maak/ontvang internetoproepe"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Laat die program toe om die SIP-diens te gebruik om internetoproepe te maak of te ontvang."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"maak en/of ontvang SIP-oproepe"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Laat die program toe om SIP-oproepe te maak en te ontvang."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"beleef interaksie met in-oproep-skerm"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Laat die program beheer wanneer en hoe die gebruiker die in-oproep-skerm sien."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lees netwerkgebruik-geskiedenis"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Laat die program toe om historiese netwerkgebruik vir spesifieke netwerke en programme te lees."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"bestuur netwerkbeleid"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Laat \'n program toe om DRM-sertifikate op te stel en te gebruik. Behoort nooit vir normale programme nodig te wees nie."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Ontvang Android Straal-oordragstatus"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Laat hierdie program toe om inligting oor huidige Android Straal-oordragte te ontvang."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"verwyder DRM-sertifikate"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Laat \'n program toe om DRM-sertifikate te verwyder. Behoort nooit vir gewone programme nodig te wees nie."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Stel wagwoordreëls"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Beheer lengte en watter karakters wat in die skermontsluit-wagwoorde gebruik word."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor pogings om skerm te ontsluit"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Die SIM-kaart is weg of nie leesbaar nie. Steek \'n SIM-kaart in."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Onbruikbare SIM-kaart."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Jou SIM-kaart is permanent gedeaktiveer.\n Kontak jou draadlose diensverskaffer vir \'n ander SIM-kaart."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Vorigesnit-knoppie"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Volgendesnit-knoppie"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Laatwag-knoppie"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Speel-knoppie"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stop-knoppie"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Vorige snit"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Volgende snit"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Wag"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Speel"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stop"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Spoel terug"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Vinnig vorentoe"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Net noodoproepe"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Netwerk gesluit"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kaart is PUK-geslote."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formaat"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-ontfouter gekoppel"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Raak om USB-ontfouting te deaktiveer."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Verander sleutelbord"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Kies sleutelborde"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fisiese sleutelbord"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardeware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Kies sleutelborduitleg"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Verminder uur"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Stel NM."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Stel VM."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"nm"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"vm"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Vermeerder maand"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Verminder maand"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Vermeerder dag"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Aanvaar oproep?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Altyd"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Net een keer"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s steun nie werkprofiel nie."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Foon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Oorfone"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> gekies"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> uitgevee"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Werk-<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Jy is in sluit-na-program-modus. Raak en hou die knoppie vir onlangse programme om uit te gaan"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Jy is in Sluit-na-program-modus."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Gebruik Sluit-na-program?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Sluit-na-program sluit die skerm in \'n enkele program.\n\nRaak en hou die knoppie vir onlangse programme om uit te gaan."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEE, DANKIE"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"BEGIN"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Gesluit na program"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Nie meer gesluit na program nie"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Vra om %1$s voordat uitgegaan word"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ontsluitpatroon"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"wagwoord"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 9cad23a..91f777d 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"የገቢ ደዋይID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"የወጪ ጥሪID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"የተገናኘ መስመር መታወቂያ"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"የተገናኘ መስመር መታወቂያ ገደብ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"ጥሪ ማስተላለፍ"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ጥሪ በመጠበቅ ላይ"</string>
     <string name="BaMmi" msgid="455193067926770581">"ጥሪ ከልክል"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ያዡ በይነመረብን ለመሣሪያ አስተዳዳሪ ለመላክ ይፈቅዳሉ። ለመደበኛ መተግበሪያዎች በፍፁም አያስፈልግም።"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ከአንድ የቴሌቪዥን ግብዓት ጋር እሰር"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"ባለቤቱ ከአንድ የቴሌቪዥን ግብዓት ከፍተኛ-ደረጃ በይነገጽ ጋር እንዲያስር ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ አያስፈልግም።"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"የወላጅ መቆጣጠሪያዎችን ይቀይራል"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"ያዢው የስርዓቱ የወላጅ መቆጣጠሪያዎች ውሂብ እንዲቀይር ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ ሊያስፈልግ አይገባም።"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"የመሣሪያ አስተዳዳሪ ያክሉ ወይም ያስወግዱ"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ያዢው ንቁ የመሣሪያ አስተዳዳሪዎች እንዲያክል ወይም እንዲያስወግድ ያስችለዋል። ለመደበኛ መተግበሪያዎች ጭራሽ ሊያስፈልግ አይገባም።"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"የማያ ገፀ አቀማመጥን ለውጥ"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"በመተግበሪያ የብሉቱዝ ማጣመር ይፍቀዱ"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"መተግበሪያው ያለተጠቃሚ ጣልቃ-ገብነት ከርቀት መሣሪያዎች ጋር እንዲጣመር ያስችለዋል።"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"መተግበሪያው ያለተጠቃሚ ጣልቃ-ገብነት ከርቀት መሣሪያዎች ጋር እንዲጣመር ያስችለዋል።"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"ብሉቱዝ MAP ውሂብን ይድረሱ"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"መተግበሪያው የብሉቱዝ MAP ውሂብን እንዲደርስ ይፈቅድለታል።"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"መተግበሪያው የብሉቱዝ MAP ውሂብን እንዲደርስ ይፈቅድለታል።"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ከWiMAX ጋር ይገናኙ እና ያላቅቁ"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"መተግበሪያው WiMAX እንደነቃ እና ስለማናቸውም የተገናኙ የWiMAX አውታረ መረቦች መረጃ እንዲወስን ይፈቅድለታል።"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"የWiMAX ሁኔታ ለውጥ"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"መተግበሪያውን የሁሉም ተጠቃሚዎች ውጫዊ ማከማቻውን እንዲደርስ ይፈቅድለታል።"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"የመሸጎጫ ስርዓተ ፋይል ድረስ"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"መሸጎጫ ስርዓተ ፋይል ለማንበብ እና ለመፃፍ ለመተግበሪያው ይፈቅዳሉ።"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"የበይነ መረብ ጥሪዎች አድርግ/ተቀበል"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">" ለSIP ግልጋሎት  የበይነ መረብ ጥሪዎች አድርግ/ተቀበል ለመተግበሪያው ይፈቅዳሉ።"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"የSIP ጥሪዎችን ያድርጉ/ይቀበሉ"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"መተግበሪያው የSIP ጥሪዎችን እንዲያደር እና እንዲቀበል ያስችላል።"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ከጥሪ ውስጥ ማያ ገጽ ጋር ይገናኝ"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"መተግበሪያው ተጠቃሚው በጥሪ ውስጥ ያለውን ማያ ገጽ መቼ እና እንዴት ማየት እንደሚችል እንዲቆጣጠር ይፈቅድለታል።"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"የታሪካዊ አውታረመረብ አጠቃቀም አንብብ"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"የተወሰኑ የአውታረ መረቦች እና ትግበራዎችን ታሪካዊ የአውታረመረብ አጠቃቀም ለማንበብ ለመተግበሪያው ይፈቅዳሉ፡፡"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"የአውታረ መረብ መምሪያ አደራጅ"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"አንድ መተግበሪያ የDRM የምስክር ወረቀቶችን እንዲሰጥና እንዲጠቀም ያስችላል። ለመደበኛ መተግበሪያዎች በፍጹም አስፈላጊ አይሆንም።"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"የAndroid Beam ሽግግር ሁኔታን ይቀበሉ"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ይም መተግበሪያ ስለአሁን የAndroid Beam ሽግግሮች መረጃ እንዲቀበል ይፈቅዳል"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"የDRM እውቅና ማረጋገጫዎችን ያስወግዳል"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"አንድ መተግበሪያ የDRM እውቅና ማረጋገጫዎችን እንዲያስወግድ ያስችለዋል። ለመደበኛ መተግበሪያዎች በጭራሽ ሊያስፈልግ አይገባም።"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"የይለፍ ቃል ደንቦች አዘጋጅ"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"በማያ-መክፈት የተፈቀዱ የይለፍ ቃል ርዝመት እና ቁምፊዎች ተቆጣጠር።"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"የማሳያ-ክፈት ሙከራዎችን አሳይ"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM ካርዱ ጠፍቷል ወይም መነበብ አይችልም።እባክህ SIM ካርድ አስገባ።"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"የማይሰራ ሲም ካርድ።"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM ካርድህ በቋሚነት ቦዝኗል።\n  ለሌላ SIM ካርድ  የገመድ አልባ አገልግሎት አቅራቢህ ጋር ተገናኝ።"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"የቀድሞ ዝርዝር አዝራር"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ቀጣይ ዝርዝር አዝራር"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ለአፍታ አቁም አዝራር"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ማጫወቻ አዝራር።"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"አቁም አዝራር"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"ቀዳሚ ትራክ"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"ቀጣይ ትራክ"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ለአፍታ አቁም"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"አጫውት"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"አቁም"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ወደኋላ አጠንጥን"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"በፍጥነት አሳልፍ"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"የአደጋ ጊዜ ጥሪ ብቻ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"አውታረመረብ ተሸንጉሯል"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM ካርድበPUK ተዘግቷል።"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ቅርጸት"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB አድስ ተያይዟል"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ማረሚያ ላለማንቃት ዳስስ።"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"ቁልፍ ሰሌዳ ይቀይሩ"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"ቁልፍ ሰሌዳዎችን ምረጥ"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"የሚዳሰስ የቁልፍ ሰሌዳ"</string>
     <string name="hardware" msgid="7517821086888990278">"ሃርድዌር"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"የቁልፍ ሰሌዳ አቀማመጥ ምረጥ"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"ሰዓት ቀንስ"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM አዘጋጅ"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM አዘጋጅ"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ከሰዓት"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ጠዋት"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"ወር ጨምር"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ወር ቀንስ"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"ቀን ጨምር"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ጥሪ ተቀበል?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ዘወትር"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"አንዴ ብቻ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s የስራ መገለጫ አይደግፍም።"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ጡባዊ ተኮ"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ስልክ"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"የጆሮ ማዳመጫዎች"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ተመርጧል"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ተሰርዟል"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"ስራ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"ከመተግበሪያ-እዚህ-ቆልፍ ሁነታ ላይ ነው ያሉት። ለመውጣት የቅርብ ጊዜዎች አዝራሩን ተጭነው ይያዙ።"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"ከመተግበሪያ-እዚህ-ቆልፍ ሁነታ ላይ ነው ያሉት።"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"መተግበሪያ-እዚህ-ቆልፍን ይጠቀም?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"መተግበሪያ-ጋር-ቆልፍ ማሳያውን በአንዲት መተግበሪያ ላይ ይቆልፈዋል።\n\nለመውጣት የቅርብ ጊዜዎች አዝራሩን ተጭነው ይያዙት።"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"አይ፣ አመሰግናለሁ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ጀምር"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"ከመተግበሪያ ጋር ተቆልፏል"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"ከአሁን በኋላ ከመተግበሪያው ጋር አልተቆለፈም"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"ከመውጣት በፊት %1$s ጠይቅ"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"ፒን"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"የማስከፈቻ ስርዓተ-ጥለት"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"የይለፍ ቃል"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index c00a883..e0cd94c 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"معرف المتصل الوارد"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"معرف المتصل الصادر"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"معرّف الخط المتصل"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"تقييد معرّف الخط المتصل"</string>
     <string name="CfMmi" msgid="5123218989141573515">"اعادة توجيه المكالمة"</string>
     <string name="CwMmi" msgid="9129678056795016867">"انتظار المكالمة"</string>
     <string name="BaMmi" msgid="455193067926770581">"حظر الاتصال"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"للسماح للمالك بإرسال الأهداف إلى أحد مشرفي الجهاز. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"الالتزام بإدخال التلفزيون"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"للسماح للمالك بالالتزام بواجهة المستوى العلوي لإدخال التلفزيون. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"تعديل عناصر التحكم الأبوي"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"للسماح للمالك بتعديل بيانات عناصر التحكم الأبوي الخاصة بالنظام. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"إضافة مشرف جهاز أو إزالته"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"للسماح بحامل البطاقة بإضافة مشرفي أجهزة نشطين أو إزالتهم. لا يلزم ذلك أبدًا للتطبيقات العادية."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"تغيير اتجاه الشاشة"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"السماح بإقران البلوتوث مع التطبيق"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"للسماح بإقران لتطبيق مع الأجهزة البعيدة بدون تدخل المستخدم."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"للسماح بإقران لتطبيق مع الأجهزة البعيدة بدون تدخل المستخدم."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"‏الدخول إلى بيانات MAP في بلوتوث"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"‏للسماح للتطبيق بالدخول إلى بيانات MAP في بلوتوث."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"‏للسماح للتطبيق بالدخول إلى بيانات MAP في بلوتوث."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"‏الاتصال بـشبكة WiMAX وقطع الاتصال بها"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"‏للسماح للتطبيق بتحديد ما إذا تم تمكين WiMAX وتحديد معلومات حول أية شبكات WiMAX متصلة."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"‏تغيير حالة WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"للسماح للتطبيق بالدخول إلى سعة التخزين الخارجية لجميع المستخدمين."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"الدخول إلى نظام ملفات ذاكرة التخزين المؤقت"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"للسماح للتطبيق بقراءة نظام ملفات ذاكرة التخزين المؤقت والكتابة به."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"إجراء/تلقي مكالمات عبر الإنترنت"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"‏للسماح للتطبيق باستخدام خدمة SIP لإجراء/تلقي مكالمات عبر الإنترنت."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"‏إجراء/تلقي مكالمات SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"‏للسماح للتطبيق بإجراء مكالمات SIP وتلقيها."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"التفاعل مع الشاشة أثناء الاتصال"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"للسماح للتطبيق بالتحكم في وقت وكيفية مشاهدة المستخدم للشاشة أثناء الاتصال."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"قراءة بيانات الاستخدام السابقة للشبكة"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"للسماح للتطبيق بقراءة معلومات سابقة عن استخدام الشبكة لشبكات وتطبيقات محددة."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"إدارة سياسة الشبكة"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏للسماح لأحد التطبيقات بتقديم شهادات DRM واستخدامها. لا يجب أن يكون ذلك لازمًا مطلقًا مع التطبيقات العادية."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"‏تلقي حالة نقل شعاع Android"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"‏السماح لهذا التطبيق بتلقي معلومات حول عمليات نقل شعاع Android الحالية"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"‏إزالة شهادات DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"‏للسماح لأحد التطبيقات بإزالة شهادات DRM. لن تكون هناك حاجة إليه مطلقًا مع التطبيقات العادية."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"تعيين قواعد كلمة المرور"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"يمكنك التحكم في الطول والأحرف المسموح بها في كلمات مرور إلغاء تأمين الشاشة."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"مراقبة محاولات إلغاء قفل الشاشة"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"‏بطاقة SIM مفقودة أو غير قابلة للقراءة. أدخل بطاقة SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"‏بطاقة SIM غير قابلة للاستخدام."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"‏تم تعطيل بطاقة SIM بشكل دائم.\n اتصل بمقدم خدمة اللاسلكي للحصول على بطاقة SIM أخرى."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"زر المقطع الصوتي السابق"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"زر المقطع الصوتي التالي"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"زر الإيقاف المؤقت"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"زر التشغيل"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"زر الإيقاف"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"المقطع الصوتي السابق"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"المقطع الصوتي التالي"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"إيقاف مؤقت"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"تشغيل"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"إيقاف"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"إرجاع"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"تقديم سريع"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"مكالمات طوارئ فقط"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"الشبكة مؤمّنة"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"‏بطاقة SIM مؤمّنة بكود PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"تنسيق"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"‏تم توصيل تصحيح أخطاء USB"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"‏المس لتعطيل تصحيح أخطاء USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"تغيير لوحة المفاتيح"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"اختيار لوحات المفاتيح"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"لوحة مفاتيح فعلية"</string>
     <string name="hardware" msgid="7517821086888990278">"أجهزة"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"تحديد تخطيط لوحة مفاتيح"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"تقليل الساعات"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"تعيين المساء"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"تعيين الصباح"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"م"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ص"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"زيادة الشهور"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"تقليل الشهور"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"زيادة الأيام"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"هل تريد قبول المكالمة؟"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"دومًا"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"مرة واحدة فقط"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"‏لا يدعم %1$s الملفات الشخصية للعمل."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"الجهاز اللوحي"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"الهاتف"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"سماعات رأس"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"تم تحديد <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"تم حذف <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> المخصص للعمل"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"أنت في وضع التقييد بتطبيق. للخروج، المس مع الاستمرار زر \"التطبيقات الأخيرة\""</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"أنت في وضع \"التقييد بتطبيق\"."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"هل تريد استخدام ميزة التقييد بتطبيق؟"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"تؤدي ميزة التقييد بتطبيق إلى قفل الشاشة على تطبيق واحد.\n\nللخروج من هذا الوضع، المس مع الاستمرار زر \"التطبيقات الأخيرة\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"لا، شكرًا"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"بدء"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"تم التقييد بتطبيق"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"لم تعد في وضع التقييد بتطبيق"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"‏المطالبة بـ %1$s قبل الخروج"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"رقم التعريف الشخصي"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"نقش إلغاء القفل"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"كلمة المرور"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 3265f76..51d11c6 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Идентификация на вх. обаждания"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Идентификация на изходящите повиквания"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Идентификация на свързаната линия"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ограничение за идентификацията на свързаната линия"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Пренасочване на повиквания"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Изчакване на повикване"</string>
     <string name="BaMmi" msgid="455193067926770581">"Забрана за повиквания"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Разрешава на притежателя да изпраща намерения до администратор на устройството. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"свързване към вход на телевизор"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Разрешава на притежателя да се свърже към интерфейса от най-високото ниво за вход на телевизор. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"промяна на родителските контроли"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Разрешава на притежателя да променя данните от родителските контроли на системата. Нормалните приложения би трябвало никога да се нуждаят от това."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"добавяне или премахване на администратор на устройства"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Разрешава на притежателя да добавя или премахва администратори на активни устройства. Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"промяна на ориентацията на екрана"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"разрешаване на сдвояване чрез Bluetooth от приложението"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Разрешава на приложението да се сдвоява с отдалечени устройства без потребителско взаимодействие."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Разрешава на приложението да се сдвоява с отдалечени устройства без потребителско взаимодействие."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"достъп до данни чрез Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Разрешава на приложението да осъществява достъп до данни чрез Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Разрешава на приложението да осъществява достъп до данни чрез Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"установяване и прекратяване на връзката с WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Разрешава на приложението да определя дали WiMAX мрежата е активирана, както и информация за всички такива мрежи, които са свързани."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Промяна на състоянието на WiMAX мрежата"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Разрешава на приложението достъп до външното хранилище за всички потребители."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"достъп до файловата система на кеша"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Разрешава на приложението да чете и записва във файловата система на кеша."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"извършване/получаване на интернет обаждания"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Разрешава на приложението да използва услугата SIP за извършване/получаване на интернет обаждания."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"извършване/получаване на обаждания чрез SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Разрешава на приложението да извършва и получава обаждания чрез SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"взаимодействие с екрана за обаждане"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Разрешава на приложението да контролира кога и как потребителят вижда екрана за обаждане."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"четене на употребата на мрежата до момента"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Разрешава на приложението да чете употребата на данни за конкретни мрежи и приложения до момента."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"управление на правилата на мрежата"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Разрешава на приложението да обезпечава и използва сертификатите за управление на цифровите права (DRM). Нормалните приложения би трябвало никога да не се нуждаят от това."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Получаване на състоянието на прехвърлянията чрез Android Лъч"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Разрешава на това приложение да получава информация относно текущите прехвърляния чрез Android Лъч"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"премахване на сертификатите за управление на цифровите права (DRM)"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Разрешава на приложението да премахва сертификатите за управление на цифровите права (DRM). Нормалните приложения би трябвало никога да се нуждаят от това."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Задаване на правила за паролата"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролирайте дължината и разрешените знаци за паролите за отключване на екрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Наблюдаване на опитите за отключване на екрана"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM картата липсва или е нечетлива. Поставете SIM карта."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Неизползваема SIM карта."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картата ви е деактивирана за постоянно.\nСвържете се с оператора на безжичната си връзка, за да получите друга."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Бутон за предишния запис"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Бутон за следващия запис"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Бутон за пауза"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Бутон за пускане"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Бутон за спиране"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Предишен запис"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Следващ запис"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Пауза"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Пускане"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Спиране"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Превъртане назад"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Превъртане напред"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Само спешни обаждания"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Мрежата е заключена"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM картата е заключена с PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Форматиране"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Отстраняването на грешки през USB е свързано"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Докоснете, за да деактивирате отстраняването на грешки през USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Промяна на клавиатурата"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Избиране на клавиатури"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Физическа клавиатура"</string>
     <string name="hardware" msgid="7517821086888990278">"Хардуер"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Избиране на клавиатурна подредба"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Намаляване на часовете"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Задаване на PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Задаване на AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Увеличаване на месеците"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Намаляване на месеците"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Увеличаване на дните"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Да се приеме ли обаждането?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Винаги"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Само веднъж"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s не поддържа служебен потребителски профил."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Таблет"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Слушалки"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Избрахте <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Изтрихте <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> за работа"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Режимът на заключване в приложението е включен. За изход докоснете и задръжте бутона „Скорошни“"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Режимът на заключване в приложението е включен."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Да се използва ли „Заключване в приложението“?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Със „Заключване в приложението“ екранът се заключва в едно приложение.\n\nЗа изход докоснете и задръжте бутона „Скорошни“."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"НЕ, БЛАГОДАРЯ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"СТАРТИРАНЕ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Заключването в приложението е активно"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Заключването в приложението вече не е активно"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Изискване на %1$s преди изход"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"ПИН код"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"фигура за отключване"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"парола"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml
index 7269a4c..c288ab1 100644
--- a/core/res/res/values-bn-rBD/strings.xml
+++ b/core/res/res/values-bn-rBD/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"আগত কলার ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"আউটগোয়িং কলার ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"সংযুক্ত লাইন ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"সংযুক্ত লাইন ID-র বিধিনিষেধ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"কল ফরওয়ার্ড করা"</string>
     <string name="CwMmi" msgid="9129678056795016867">"কল অপেক্ষমান"</string>
     <string name="BaMmi" msgid="455193067926770581">"কল নিষিদ্ধ করা"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ধারককে, একটি ডিভাইস প্রশাসকে ইন্টেন্টগুলি পাঠানোর অনুমতি দেয়৷ সধারণ অ্যাপ্লিকেশানগুলির জন্য কখনই প্রয়োজন হয় না৷"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"টিভি ইনপুট বাঁধাই করে"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"ধারককে, একটি TV ইনপুটের উচ্চ স্তরের ইন্টারফেসে জুড়তে অনুমতি দেয়৷ সধারণ অ্যাপ্লিকেশানগুলির জন্য কখনই প্রয়োজন হয় না৷"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"অভিভাবকদের নিয়ন্ত্রণ সংশোধন করুন"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"ডিভাইস ধারককে সিস্টেমে থাকা অভিভাবকদের দ্বারা নিয়ন্ত্রণের ডেটা সংশোধন করতে দেয়। সাধারণ অ্যাপ্লিকেশানগুলির জন্য কখনো প্রয়োজন হয় না।"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"একটি ডিভাইস প্রশাসক যোগ করুন বা সরায়"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ধারককে, সক্রিয় ডিভাইস প্রশাসকগুলিকে যোগ করার বা সরানোর অনুমতি দেয়৷ সধারণ অ্যাপ্লিকেশানগুলির জন্য কখনই প্রয়োজন হয় না৷"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"স্ক্রীণের সজ্জা পরিবর্তন করে"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth কে অ্যাপ্লিকেশানের দ্বারা যুক্ত করতে অনুমতি দেয়"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ব্যবহারকারীর হস্তক্ষেপ ছাড়াই অ্যাপ্লিকেশানটিকে দূরবর্তী ডিভাইসের সাথে যুক্ত করার অনুমতি দেয়৷"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ব্যবহারকারীর হস্তক্ষেপ ছাড়াই অ্যাপ্লিকেশানটিকে দূরবর্তী ডিভাইসের সাথে যুক্ত করার অনুমতি দেয়৷"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP ডেটা অ্যাক্সেস করুন"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"অ্যাপ্লিকেশানকে Bluetooth MAP ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"অ্যাপ্লিকেশানকে Bluetooth MAP ডেটা অ্যাক্সেস করার অনুমতি দেয়।"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX এর সাথে সংযুক্ত হন বা সংযোগ বিচ্ছিন্ন করুন"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"অ্যাপ্লিকেশানটিকে WiMAX সক্ষম করা আছে কিনা সে বিষয়ে নিশ্চিত হতে এবং সংযুক্ত যেকোনো WiMAX নেটওয়ার্ক সম্পর্কিত তথ্য সম্বন্ধে নিশ্চিত হওয়ার অনুমতি প্রদান করে৷"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX এর স্থিতি পরিবর্তন করুন"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"অ্যাপ্লিকেশানটিকে সমস্ত ব্যবহারকারীর জন্য বহিরাগত সংগ্রহস্থল অ্যাক্সেস করার অনুমতি দেয়৷"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"ক্যাশে ফাইল সিস্টেম অ্যাক্সেস করে"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ক্যাশে ফাইল সিস্টেম পড়তে ও লিখতে অ্যাপ্লিকেশানকে অনুমতি দেয়৷"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ইন্টারনেট কলগুলি করে/গ্রহণ করে"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"অ্যাপ্লিকেশানকে ইন্টারনেট কলগুলি করতে/ গ্রহণ করতে SIP পরিষেবাগুলি ব্যবহার করতে দেয়৷"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP কল করুন/গ্রহণ করুন"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"অ্যাপ্লিকেশানকে SIP কল করতে ও গ্রহণ করতে অনুমতি দেয়।"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"কলে-থাকা স্ক্রীণের সাথে ইন্টারঅ্যাক্ট করে"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"কখন এবং কীভাবে ব্যবহারকারী কলে-থাকা স্ক্রীণটিকে দেখতে পাবেন অ্যাপ্লিকেশানটিকে তা নিয়ন্ত্রণ করতে দেয়৷"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"তারিখ অনুযায়ী নেটওয়ার্কের ব্যবহার পড়ে"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"অ্যাপ্লিকেশানটিকে নিদিষ্ট নেটওয়ার্ক এবং অ্যাপ্লিকেশানগুলির জন্য পূর্বের নেটওয়ার্কের ব্যবহার পড়তে দেয়৷"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"নেটওয়ার্ক নীতি পরিচালনা করে"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM শংসাপত্রগুলির বিধান এবং ব্যবহারা করার অনুমতি দিন৷ সাধারণ অ্যাপ্লিকেশানগুলির জন্য কোনোদিন প্রয়োজন হয় না৷"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android বীম স্থানান্তর স্থিতি গ্রহণ করুন"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"এই অ্যাপ্লিকেশানকে বর্তমান Android বীম স্থানান্তর সম্বন্ধে তথ্য গ্রহণ করার অনুমিত দেয়"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM শংসাপত্রগুলি সরান"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"কোনো অ্যাপ্লিকেশানকে DRM শংসাপত্রগুলি সরানোর অনুমতি দেয়। সাধারণ অ্যাপ্লিকেশানগুলির জন্য কখনো প্রয়োজন হয় না।"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"পাসওয়ার্ড নিয়মগুলি সেট করে"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"স্ক্রীন আনলক করার পাসওয়ার্ডগুলিতে অনুমতিপ্রাপ্ত অক্ষর এবং দৈর্ঘ্য নিয়ন্ত্রণ করে৷"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"স্ক্রীণ আনলক করার প্রচেষ্টাগুলি নিরীক্ষণ করে"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM কার্ডটি অনুপস্থিত বা পাঠযোগ্য নয়৷ একটি SIM কার্ড ঢোকান৷"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ব্যবহার করার অযোগ্য SIM কার্ড৷"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"আপনার SIM কার্ড স্থায়ীভাবে অক্ষম করা হয়েছে৷\n অন্য একটি SIM কার্ড পেতে আপনার ওয়্যারলেস পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন৷"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"পূর্ববর্তী ট্র্যাকে যাওয়ার বোতাম"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"পরবর্তী ট্র্যাকে যাওয়ার বোতাম"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"বিরাম বোতাম"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"প্লে বোতাম"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"বন্ধ করার বোতাম"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"পূর্ববর্তী ট্র্যাক"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"পরবর্তী ট্র্যাক"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"বিরাম দিন"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"প্লে করুন"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"থামান"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"গুটিয়ে নিন"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"দ্রুত সামনে এগোন"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"শুধুমাত্র জরুরী কল"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"নেটওয়ার্ক লক হয়েছে"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM কার্ডটি PUK কোড দিয়ে লক করা আছে৷"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ফর্ম্যাট করুন"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB ডিবাগিং সংযুক্ত হয়েছে"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ডিবাগিং অক্ষম করতে স্পর্শ করুন৷"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"কীবোর্ড পরিবর্তন করুন"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"কীবোর্ড চয়ন করুন"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ফিজিক্যাল কীবোর্ড"</string>
     <string name="hardware" msgid="7517821086888990278">"হার্ডওয়্যার"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"কীবোর্ডের লেআউট নির্বাচন করুন"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"ঘন্টা কমান"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM সেট করুন"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM সেট করুন"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"মাস বাড়ান"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"মাস কম করুন"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"দিন বাড়ান"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"কল গ্রহণ করবেন?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"সবসময়"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"শুধু একবার"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s কর্মস্থলের প্রোফাইল সমর্থন করে না।"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ট্যাবলেট"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ফোন"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"হেডফোন"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> নির্বাচন করা হয়েছে"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> মুছে ফেলা হয়েছে"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"কর্মক্ষেত্র <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"আপনি লক-টু-অ্যাপ মোডে আছেন। এটি থেকে বেরিয়ে যেতে ‘সাম্প্রতিকগুলি’ বোতাম স্পর্শ করে ধরে রাখুন"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"আপনি অ্যাপ-এ-লক করুন মোডে রয়েছেন৷"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"অ্যাপ-এ-লক ব্যবহার করতে চান?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"লক-টু-অ্যাপ কোনো একক অ্যাপ্লিকেশানে প্রদর্শন লক করে।\n \nএটি থেকে বেরিয়ে যেতে ‘সাম্প্রতিকগুলি’ বোতাম স্পর্শ করে ধরে রাখুন।"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"না, থাক"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"চালু করুন"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"অ্যাপ্লিকেশানে লক করা আছে"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"আর অ্যাপ্লিকেশানে লক করা নেই"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"প্রস্থান করার পূর্বে %1$s এর কথা জিজ্ঞাসা করুন"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"আনলক প্যাটার্ন"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"পাসওয়ার্ড"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index e920a35..510c772 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Identificació de trucada entrant"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Identificació de trucada de sortida"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Identificador de la línia connectada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restricció de l\'identificador de la línia connectada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Desviació de trucades"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Trucada en espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Restricció de trucades"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet que el titular enviï intents a un administrador del sistema. No s\'hauria de necessitar mai per a les aplicacions normals."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"Vinculació a una entrada de televisor"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permet que el titular es vinculi a la interfície de nivell superior d\'una entrada de televisor. No s\'hauria de necessitar mai per a les aplicacions normals."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar els controls parentals"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permet que el propietari modifiqui les dades de control parental del sistema. No ha de ser mai necessari per a aplicacions normals."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"afegeix un administrador al dispositiu o suprimeix-lo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet que el titular afegeixi administradors actius al dispositiu o en suprimeixi. No s\'hauria de necessitar per a les aplicacions normals."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"canviar l\'orientació de la pantalla"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permet l\'emparellament de l\'aplicació mitjançant Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permet que l\'aplicació s\'emparelli amb dispositius remots sense la interacció de l\'usuari."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permet que l\'aplicació s\'emparelli amb dispositius remots sense la interacció de l\'usuari."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"accedeix a les dades MAP del Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permet que l\'aplicació accedeixi a les dades MAP del Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permet que l\'aplicació accedeixi a les dades MAP del Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"connecta i desconnecta de WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permet que l\'aplicació determini si WiMAX està activat i que vegi la informació sobre totes les xarxes WiMAX que estan connectades."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Canvia l\'estat de WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permet que l\'aplicació accedeixi a l\'emmagatzematge extern per a tots els usuaris."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accedir al sistema de fitxers de la memòria cau"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permet que l\'aplicació llegeixi el sistema de fitxers de la memòria cau i que hi escrigui."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"fer/rebre trucades per Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permet que l\'aplicació utilitzi el servei SIP per fer i per rebre trucades per Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"Fer i rebre trucades de SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permet que l\'aplicació pugui fer i rebre trucades de SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interacciona amb la pantalla de la trucada"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permet que l\'aplicació controli quan i com l\'usuari veu la pantalla de la trucada."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lectura de l\'ús històric de la xarxa"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permet que l\'aplicació llegeixi l\'ús històric de la xarxa per a xarxes i per a aplicacions específiques."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gestió de la política de xarxa"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permet que una aplicació proporcioni i utilitzi certificats de gestió de drets digitals (DRM, Digital Rights Management). No ha de ser mai necessari per a aplicacions normals."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Rep l\'estat de la transferència d\'Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permet que aquesta aplicació rebi informació sobre les transferències d\'Android Beam actuals."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"suprimir els certificats DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permet que una aplicació suprimeixi els certificats DRM. No ha de ser mai necessari per a aplicacions normals."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir les normes de contrasenya"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controla la longitud i els caràcters permesos a les contrasenyes de desbloqueig de pantalla."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Controlar els intents de desbloqueig de pantalla"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la targeta SIM o no es pot llegir. Insereix-ne una."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Targeta SIM no utilitzable."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"La targeta SIM està desactivada permanentment.\n Contacta amb el teu proveïdor de serveis sense fil per obtenir-ne una altra."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botó de pista anterior"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botó de pista següent"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botó de pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botó de reproducció"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botó de parada"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Ruta anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Ruta següent"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Posa en pausa"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reprodueix"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Atura"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rebobina"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avança ràpidament"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Només trucades d\'emergència"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Xarxa bloquejada"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La targeta SIM està bloquejada pel PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formata"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuració USB activada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca per desactivar la depuració USB"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Canviar el teclat"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Tria els teclats"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclat físic"</string>
     <string name="hardware" msgid="7517821086888990278">"Maquinari"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecciona una disposició de teclat"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Fes disminuir l\'hora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Estableix com a p. m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Estableix com a a. m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"pm"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"am"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Fes augmentar el mes"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Fes disminuir el mes"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Fes augmentar el dia"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vols acceptar la trucada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Només una vegada"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s no admet perfils professionals."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tauleta"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telèfon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auriculars"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> seleccionat"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> suprimit"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de la feina"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Estàs en mode de bloqueig d\'aplicació. Per sortir-ne, toca i mantén premut el botó Recents."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Estàs en el mode de Bloqueig d\'aplicació."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Vols fer servir la funció Bloqueig d\'aplicació?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Amb Bloqueig d\'aplicació es bloqueja la pantalla en una única aplicació.\n\nPer sortir-ne, toca i mantén premut el botó Recents."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, GRÀCIES"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INICI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"En Bloqueig d\'aplicació"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Fora del Bloqueig d\'aplicació"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Demana %1$s abans de sortir"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"patró de desbloqueig"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"contrasenya"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index b60ce31..7bab386 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Příchozí identifikace volajícího"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Odchozí identifikace volajícího"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID připojené linky"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Omezení ID připojené linky"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Přesměrování hovorů"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Další hovor na lince"</string>
     <string name="BaMmi" msgid="455193067926770581">"Blokování hovorů"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Umožňuje držiteli oprávnění odesílat informace správci zařízení. Běžné aplikace by toto oprávnění neměly nikdy požadovat."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"navázání na televizní vstup"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Umožňuje držiteli navázat se na nejvyšší úroveň rozhraní televizního vstupu. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"úprava rodičovské kontroly"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Povoluje držiteli upravit data o rodičovské kontrole v systému. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"přidat nebo odebrat správce zařízení"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Opravňuje držitele přidávat nebo odebírat aktivní správce zařízení. Běžné aplikace by toto oprávnění neměly nikdy požadovat."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"změna orientace obrazovky"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"povolit párování Bluetooth prostřednictvím aplikace"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Povoluje aplikaci provést bez zásahu uživatele spárování se vzdálenými zařízeními."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Povoluje aplikaci provést bez zásahu uživatele spárování se vzdálenými zařízeními."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"přístup k datům Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Povoluje aplikaci přístup k datům Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Povoluje aplikaci přístup k datům Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"připojení a odpojení od sítě WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Umožňuje aplikaci zjistit, zda je povoleno připojení WiMAX, a také získat informace o všech připojených sítích WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Změnit stav připojení WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Umožňuje aplikaci přistupovat k externímu úložišti pro všechny uživatele."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"přistupovat do souborového systému mezipaměti"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Umožňuje aplikaci číst a zapisovat do souborového systému mezipaměti."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"uskutečňovat a přijímat internetové hovory"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Umožňuje aplikaci uskutečnit a přijímat internetové hovory pomocí služby SIP."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"uskutečňování/příjem volání SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Povolí aplikaci uskutečňovat a přijímat volání SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakce s obrazovkou příchozího hovoru"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Umožňuje aplikaci řídit, kdy a jak se uživateli zobrazí obrazovka příchozího hovoru."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"číst využití sítě v historii"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Umožňuje aplikaci číst historii využití sítě (u určitých sítí a aplikací)."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"spravovat zásady sítě"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Umožňuje aplikaci vydávat a používat certifikáty DRM. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Příjem stavu přenosů Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Umožňuje této aplikaci přijímat informace o aktuálních přenosech pomocí technologie Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"odstranění certifikátů DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Povoluje aplikaci odstranit certifikáty DRM. Běžné aplikace by toto oprávnění neměly nikdy potřebovat."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastavit pravidla pro heslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Řídit délku hesel pro odemčení obrazovky a povolené znaky."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Sledovat pokusy o odemčení obrazovky"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM karta chybí nebo je nečitelná. Vložte SIM kartu."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Nepoužitelná karta SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaše SIM karta byla natrvalo zablokována.\n Požádejte svého poskytovatele bezdrátových služeb o další SIM kartu."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tlačítko Předchozí stopa"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tlačítko Další stopa"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Tlačítko Pozastavit"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Tlačítko Přehrát"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Tlačítko Zastavit"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Předchozí skladba"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Další skladba"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pozastavit"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Přehrát"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Zastavit"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Přetočit zpět"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Přetočit vpřed"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Pouze tísňová volání"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Síť je blokována"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM karta je zablokována pomocí kódu PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formátovat"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Ladění přes rozhraní USB připojeno"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Dotykem zakážete ladění USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Změna klávesnice"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Vyberte klávesnice"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fyzická klávesnice"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Výběr rozložení klávesnice"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Ubrat hodinu"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Nastavit PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Nastavit AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Přidat měsíc"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Ubrat měsíc"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Přidat den"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Přijmout hovor?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vždy"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Pouze jednou"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s pracovní profily nepodporuje."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Sluchátka"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Vybrána položka <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Číslice <xliff:g id="KEY">%1$s</xliff:g> byla smazána"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Pracovní <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Nacházíte se v režimu Uzamčení v aplikaci. Chcete-li tento režim opustit, stiskněte a podržte tlačítko posledních aplikací."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Nacházíte se v režimu Uzamčení v aplikaci."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Použít Uzamčení v aplikaci?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Funkce Uzamčení v aplikaci uzamkne obrazovku na jedinou aplikaci.\n\nChcete-li tento režim opustit, stiskněte a podržte tlačítko posledních aplikací."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NE, DĚKUJI"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"SPUSTIT"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Uzamčeno v aplikaci"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Uzamčení v aplikaci bylo ukončeno"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Před ukončením požádat o %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"bezpečnostní gesto"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"heslo"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 1b10b77..c0351bc 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Indgående opkalds-id"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Udgående opkalds-id"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Id for opkaldsmodtager"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Id for opkaldsmodtager er skjult"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Viderestilling af opkald"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Ventende opkald"</string>
     <string name="BaMmi" msgid="455193067926770581">"Opkaldsspærring"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Tillader, at brugeren kan sende hensigter til en enhedsadministrator. Dette bør aldrig være nødvendigt for almindelige apps."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"knyt til en tv-indgang"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Giver indehaveren mulighed for at knytte sig til det øverste grænsefladeniveau for en tv-indgang. Dette bør ikke være nødvendigt i normale apps."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"redigere forældrekontrol"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Giver indehaveren mulighed for at ændre systemdataene for forældrekontrol. Dette bør ikke være nødvendigt for almindelige apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"tilføje eller fjerne en enhedsadministrator"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Tillader, at man tilføjer eller fjerner aktive enhedsadministratorer. Dette burde aldrig være nødvendigt til normale apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"skift skærmretning"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"tillader Bluetooth-parring efter applikation"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Tillader, at appen parrer med eksterne enheder uden brugerinteraktion."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Tillader, at appen parrer med eksterne enheder uden brugerinteraktion."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"adgang til Bluetooth-MAP-data"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Tillader, at appen får adgang til Bluetooth-MAP-data."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Tillader, at appen får adgang til Bluetooth-MAP-data."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"tilslut og afbryd fra WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Tillader, at appen kan fastslå, hvorvidt WiMAX er aktiveret, og oplysninger om eventuelle WiMAX-netværk, der er forbundet."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Skift WiMAX-tilstand"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Tillader, at appen får adgang til eksterne lagre for alle brugere."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"få adgang til cache-filsystemet"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Tillader, at appen kan læse og skrive i cachefilsystemet."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"foretage/modtage internetopkald"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Tillader, at appen kan anvende SIP-tjenesten til at foretage/modtage internetopkald."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"foretage/modtage SIP-opkald"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Tillader, at appen foretager og modtager SIP-opkald."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interager med skærmen for indgående opkald"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Tillader, at appen styrer, hvornår og hvordan brugeren ser skærmen for indgående opkald."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"læse oversigt over netværksbrug"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Tillader, at appen kan læse historisk netværksbrug for specifikke netværk og apps."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"administrer netværkspolitik"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillader, at en applikation leverer og anvender DRM-certfikater. Dette bør aldrig være nødvendigt for almindelige apps."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Modtag staus for Android Beam-overførsler"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Tillader, at applikationen modtager oplysninger om aktuelle Android Beam-overførsler"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"fjerne DRM-certifikater"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Tillader, at en app fjerner DRM-certifikater. Dette bør aldrig være nødvendigt for almindelige apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Indstil regler for adgangskode"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontroller længden samt tilladte tegn i adgangskoder til oplåsning af skærmen."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Overvåg forsøg på oplåsning af skærm"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kortet mangler eller kan ikke læses. Indsæt et SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ubrugeligt SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Dit SIM-kort er blevet permanent deaktiveret.\nKontakt din tjenesteudbyder for at få et nyt SIM-kort."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knap til forrige nummer"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knap til næste nummer"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pause-knap"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Afspil-knap"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stop-knap"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Forrige nummer"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Næste nummer"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Afspil"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stop"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Spol tilbage"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Spol frem"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Kun nødopkald"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Netværket er låst"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortet er låst med PUK-koden."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formater"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-fejlretning er tilsluttet"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Tryk for at deaktivere USB-fejlretning."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Skift tastatur"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Vælg tastaturer"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysisk tastatur"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Vælg tastaturlayout"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Sænk timetal"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Indstil PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Indstil AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Senere måned"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Tidligere måned"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Senere dag"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vil du besvare opkaldet?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Altid"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Kun én gang"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s understøtter ikke arbejdsprofilen."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Hovedtelefoner"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> er valgt"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> er slettet"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> – arbejde"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Du er i tilstanden Bliv i app. For at afslutte tilstanden skal du trykke på knappen Seneste og holde knappen nede"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Du bruger tilstanden Lås-til-app."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Vil du bruge Bliv i app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Bliv i app låser skærmen i en enkelt app.\n\nFor at afslutte tilstanden skal du trykke på knappen Seneste og holde den nede."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEJ TAK"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Bliv i app startes"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Bliv i app afsluttes"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Bed om %1$s, før du afslutter"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Pinkode"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"oplåsningsmønster"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"adgangskode"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index fa81a74..e45ce8a 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Anrufer-ID für eingehenden Anruf"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Anrufer-ID für ausgehenden Anruf"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID der verbundenen Leitung"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Beschränkung für ID der verbundenen Leitung"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Rufweiterleitung"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Anklopfen"</string>
     <string name="BaMmi" msgid="455193067926770581">"Anrufsperre"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ermöglicht dem Halter, Intents an einen Geräteadministrator zu senden. Sollte nie für normale Apps benötigt werden."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"An eine TV-Eingabe binden"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ermöglicht dem Inhaber, sich an die Oberfläche einer TV-Eingabe auf oberster Ebene zu binden. Sollte nie für normale Apps benötigt werden."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"Jugendschutzeinstellungen ändern"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Ermöglicht dem Inhaber, die Jugendschutzinformationen des Systems zu ändern. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"Geräteadministrator hinzufügen oder entfernen"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ermöglicht dem Inhaber, aktive Geräteadministratoren hinzuzufügen oder zu entfernen. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Bildschirmausrichtung ändern"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth-Pairing nach jeweiliger App ermöglichen"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Ermöglicht der App, Pairing mit Remote-Geräten ohne Eingriff des Nutzers durchzuführen"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Ermöglicht der App, Pairing mit Remote-Geräten ohne Eingriff des Nutzers durchzuführen"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Auf Bluetooth-MAP-Daten zugreifen"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Ermöglicht der App, auf Bluetooth-MAP-Daten zuzugreifen"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Ermöglicht der App, auf Bluetooth-MAP-Daten zuzugreifen"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-Verbindungen herstellen und trennen"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Ermöglicht der App festzustellen, ob WiMAX aktiviert ist. Zudem kann sie Informationen zu verbundenen WiMAX-Netzwerken abrufen."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX-Status ändern"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Ermöglicht der App, auf externen Speicher aller Nutzer zuzugreifen."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"Auf das Cache-Dateisystem zugreifen"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Ermöglicht der App Lese- und Schreibzugriff auf das Cache-Dateisystem"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Internetanrufe tätigen/annehmen"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Ermöglicht der App die Verwendung des SIP-Dienstes zum Tätigen und Annehmen von Internetanrufen"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP-Anrufe tätigen/empfangen"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ermöglicht der App das Tätigen und Empfangen von SIP-Anrufen"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"Mit Anrufbildschirm interagieren"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Die App kann steuern, wann und wie der Nutzer den Anrufbildschirm sieht."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"Bisherige Netzwerkauslastung lesen"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Ermöglicht der App, Daten zur bisherigen Netzwerkauslastung für bestimmte Netzwerke und Apps zu lesen"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"Netzwerkrichtlinien verwalten"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ermöglicht einer App die Bereitstellung und Nutzung von DRM-Zertifikaten. Sollte für normale Apps nie benötigt werden."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Status von Android Beam-Übertragungen erhalten"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ermöglicht dieser App, Informationen zu aktuellen Android Beam-Übertragungen zu erhalten"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM-Zertifikate entfernen"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Ermöglicht einer App das Entfernen von DRM-Zertifikaten. Sollte für normale Apps nie benötigt werden."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Passwortregeln festlegen"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Zulässige Länge und Zeichen für Passwörter zum Entsperren des Bildschirms festlegen"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Versuche zum Entsperren des Displays überwachen"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-Karte fehlt oder ist nicht lesbar. Bitte legen Sie eine SIM-Karte ein."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM-Karte unbrauchbar"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ihre SIM-Karte wurde dauerhaft deaktiviert.\n Wenden Sie sich an Ihren Mobilfunkanbieter, um eine andere SIM-Karte zu erhalten."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Schaltfläche für vorherigen Track"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Schaltfläche für nächsten Track"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Schaltfläche für Pause"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Schaltfläche für Wiedergabe"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Schaltfläche für Stopp"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Vorheriger Titel"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Nächster Titel"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausieren"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Wiedergabe"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Beenden"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Zurückspulen"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Vorspulen"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Nur Notrufe"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Netzwerk gesperrt"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"PUK-Sperre auf SIM"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-Debugging"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Zum Deaktivieren von USB-Debugging berühren"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Tastatur ändern"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Tastatur auswählen"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Physische Tastatur"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Tastaturlayout auswählen"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Stunden verringern"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Zeit festlegen"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Zeit festlegen"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Monat verlängern"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Monat verringern"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Tag verlängern"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Anruf annehmen?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Immer"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Nur diesmal"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s unterstützt das Arbeitsprofil nicht."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kopfhörer"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ausgewählt"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> gelöscht"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (geschäftlich)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Sie befinden sich im App-Verriegelungsmodus. Um die Funktion zu beenden, berühren und halten Sie die Schaltfläche \"Neueste\"."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Sie befinden sich im App-Verriegelungsmodus."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"App-Verriegelung verwenden?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Die App-Verriegelung sperrt den Bildschirm einer einzelnen App.\n\nUm die Funktion zu beenden, berühren und halten Sie die Schaltfläche \"Neueste\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"Nein danke"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"Starten"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"App-Verriegelung aktiviert"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"App-Verriegelung aufgehoben"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Vor dem Beenden \"%1$s\" fragen"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"Entsperrungsmuster"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"Passwort"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 7a56b29..b3db37d 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Εισερχόμενη αναγνώριση κλήσης"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Εξερχόμενη αναγνώριση κλήσης"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Αναγνωριστικό συνδεδεμένης γραμμής"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Περιορισμός αναγνωριστικού συνδεδεμένης πρόσβασης"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Προώθηση κλήσεων"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Αναμ. κλήσ."</string>
     <string name="BaMmi" msgid="455193067926770581">"Φραγή κλήσεων"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Επιτρέπει στον κάτοχο την αποστολή στόχων σε έναν διαχειριστή συσκευής. Δεν είναι απαραίτητο για συνήθεις εφαρμογές."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"σύνδεση σε μία είσοδο τηλεόρασης"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Επιτρέπει στον κάτοχο τη σύνδεση στη διεπαφή ανώτερου επιπέδου μιας εισόδου τηλεόρασης. Δεν απαιτείται ποτέ για τις συνηθισμένες εφαρμογές."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"τροποποίηση γονικού ελέγχου"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Επιτρέπει στον κάτοχο να τροποποιήσει τα δεδομένα γονικού ελέγχου του συστήματος. Δεν χρειάζεται ποτέ για κανονικές εφαρμογές."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"προσθήκη ή κατάργηση ενός διαχειριστή συσκευής"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Επιτρέπει στον κάτοχο να προσθέτει ή να καταργεί ενεργούς διαχειριστές συσκευών. Δεν θα πρέπει να ζητείται ποτέ για κανονικές εφαρμογές."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"αλλαγή προσανατολισμού οθόνης"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"να επιτρέπεται η σύζευξη Bluetooth ανά εφαρμογή"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Επιτρέπει στην εφαρμογή τη σύζευξη με απομακρυσμένες συσκευές χωρίς αλληλεπίδραση του χρήστη."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Επιτρέπει στην εφαρμογή τη σύζευξη με απομακρυσμένες συσκευές χωρίς αλληλεπίδραση του χρήστη."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Πρόσβαση στα δεδομένα ΧΑΡΤΗ Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση στα δεδομένα ΧΑΡΤΗ Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση στα δεδομένα ΧΑΡΤΗ Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"σύνδεση και αποσύνδεση από το WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Επιτρέπει στην εφαρμογή να προσδιορίζει εάν το WiMAX είναι ενεργοποιημένο και πληροφορίες σχετικά με τυχόν δίκτυα WiMAX που είναι συνδεδεμένα."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Αλλαγή κατάστασης WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Επιτρέπει στην εφαρμογή να αποκτήσει πρόσβαση σε εξωτερικό χώρο αποθήκευσης για όλους τους χρήστες."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"πρόσβαση στο σύστημα αρχείων προσωρινής μνήμης"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Επιτρέπει στην εφαρμογή την ανάγνωση και την εγγραφή του συστήματος αρχείων προσωρινής μνήμης."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"πραγματοποίηση/λήψη κλήσεων μέσω Διαδικτύου"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Επιτρέπει στην εφαρμογή τη χρήση της υπηρεσίας SIP για την πραγματοποίηση/λήψη κλήσεων μέσω Διαδικτύου."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"πραγματοποίηση/λήψη κλήσεων SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Επιτρέπει στην εφαρμογή να πραγματοποιεί και να λαμβάνει κλήσεις SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"αλληλεπίδραση με την οθόνη κατά τη διάρκεια κλήσης"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Επιτρέπει στην εφαρμογή να ελέγχει πότε και πώς βλέπει ο χρήστης την οθόνη κατά τη διάρκεια κλήσης."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ανάγνωση ιστορικών δεδομένων χρήσης δικτύου"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Επιτρέπει στην εφαρμογή την ανάγνωση ιστορικών στοιχείων χρήσης δικτύου για συγκεκριμένα δίκτυα και εφαρμογές."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"διαχείριση πολιτικής δικτύου"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Επιτρέπει σε μια εφαρμογή να παρέχει και να χρησιμοποιεί πιστοποιητικά DRM. Δεν θα χρειαστεί ποτέ για κανονικές εφαρμογές."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Λήψη κατάστασης μεταφοράς Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Επιτρέπει σε αυτήν την εφαρμογή να λαμβάνει πληροφορίες σχετικά με τις τρέχουσες μεταφορές Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"κατάργηση πιστοποιητικών DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Επιτρέπει σε μια εφαρμογή την κατάργηση πιστοποιητικών DRM. Δεν χρειάζεται ποτέ για κανονικές εφαρμογές."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Ορισμός κανόνων κωδικού πρόσβασης"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Έλεγχος του μεγέθους και των χαρακτήρων που επιτρέπονται στους κωδικούς πρόσβασης ξεκλειδώματος οθόνης."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Παρακολούθηση προσπαθειών ξεκλειδώματος οθόνης"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Η κάρτα SIM δεν υπάρχει ή δεν είναι δυνατή η ανάγνωσή της. Τοποθετήστε μια κάρτα SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Η κάρτα SIM δεν μπορεί να χρησιμοποιηθεί."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Η κάρτα SIM έχει απενεργοποιηθεί οριστικά.\n Επικοινωνήστε με τον παροχέα υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Κουμπί προηγούμενου κομματιού"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Κουμπί επόμενου κομματιού"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Κουμπί παύσης"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Κουμπί αναπαραγωγής"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Κουμπί διακοπής"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Προηγούμενο κομμάτι"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Επόμενο κομμάτι"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Παύση"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Αναπαραγωγή"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Διακοπή"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Επαναφορά"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Γρήγορη προώθηση"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Μόνο κλήσεις έκτακτης ανάγκης"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Το δίκτυο κλειδώθηκε"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Η κάρτα SIM είναι κλειδωμένη με κωδικό PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Διαμόρφωση"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Συνδέθηκε ο εντοπισμός σφαλμάτων USB"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Αγγίξτε για απενεργοποίηση του εντοπισμού σφαλμάτων USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Αλλαγή πληκτρολογίου"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Επιλογή πληκτρολογίων"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Φυσικό πληκτρολόγιο"</string>
     <string name="hardware" msgid="7517821086888990278">"Υλικό"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Επιλογή διάταξης πληκτρολογίου"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Μείωση ώρας"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Ορισμός ΜΜ"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Ορισμός ΠΜ"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ΜΜ"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ΠΜ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Αύξηση μήνα"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Μείωση μήνα"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Αύξηση ημέρας"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Αποδοχή κλήσης;"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Πάντα"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Μόνο μία φορά"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"Το %1$s δεν υποστηρίζει προφίλ εργασίας."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Τηλέφωνο"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Ακουστικά"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Επιλέχτηκε το στοιχείο <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> διαγράφηκε"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Εργασία <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Βρίσκεστε στη λειτουργία Lock-to-App. Για έξοδο, πατήστε παρατεταμένα το κουμπί \"Πρόσφατες\""</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Βρίσκεστε στη λειτουργία Lock-to-App."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Χρήση λειτουργίας lock-to-app;"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Η λειτουργία Lock-to-app κλειδώνει την οθόνη σε μία μόνο εφαρμογή.\n\nΓια έξοδο, αγγίξτε παρατεταμένα το κουμπί \"Πρόσφατες\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ΟΧΙ, ΕΥΧΑΡΙΣΤΩ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ΕΝΑΡΞΗ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Η λειτουργία Lock-to-app είναι ενεργή"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Η λειτουργία Lock-to-app δεν είναι ενεργή πλέον"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Να γίνεται ερώτηση για %1$s πριν από την έξοδο"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Αριθμός PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"μοτίβο ξεκλειδώματος"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"κωδικός πρόσβασης"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 01af6a3..3e2d93e 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Incoming Caller ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Outgoing Caller ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Connected Line ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Connected Line ID Restriction"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Call forwarding"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Call waiting"</string>
     <string name="BaMmi" msgid="455193067926770581">"Call barring"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Allows the holder to send intents to a device administrator. Should never be needed for normal apps."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind to a TV input"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Allows the holder to bind to the top-level interface of a TV input. Should never be needed for normal apps."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modify parental controls"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Allows the holder to modify the system\'s parental controls data. Should never be needed for normal apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"add or remove a device admin"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Allows the holder to add or remove active device administrators. Should never be needed for normal apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"change screen orientation"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"allow Bluetooth pairing by Application"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Allows the app to pair with remote devices without user interaction."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Allows the app to pair with remote devices without user interaction."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"access Bluetooth MAP data"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Allows the app to access Bluetooth MAP data."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Allows the app to access Bluetooth MAP data."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"connect and disconnect from WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Allows the app to determine whether WiMAX is enabled and information about any WiMAX networks that are connected."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"change WiMAX state"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Allows the app to access external storage for all users."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"access the cache file system"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Allows the app to read and write the cache file system."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"make/receive Internet calls"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Allows the app to use the SIP service to make/receive Internet calls."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"make/receive SIP calls"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Allows the app to make and receive SIP calls."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interact with in-call screen"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Allows the app to control when and how the user sees the in-call screen."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"read historical network usage"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Allows the app to read historical network usage for specific networks and apps."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"manage network policy"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Allows an application to provision and use DRM certficates. Should never be needed for normal apps."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Receive Android Beam transfer status"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Allows this application to receive information about current Android Beam transfers"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"remove DRM certificates"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Allows an application to remove DRM certficates. Should never be needed for normal apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Set password rules"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Control the length and the characters allowed in screen-unlock passwords."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor screen-unlock attempts"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"The SIM card is missing or not readable. Insert a SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Unusable SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Previous track button"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Next-track button"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pause button"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Play button"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stop button"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Previous track"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Next track"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Play"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stop"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rewind"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Fast-forward"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Emergency calls only"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Network locked"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM card is PUK-locked."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Touch to disable USB debugging."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Change keyboard"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Choose keyboards"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Physical keyboard"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Select keyboard layout"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Decrease hour"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Set p.m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Set a.m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"p.m."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"a.m."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Increase month"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Decrease month"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Increase day"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Accept call?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Always"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Just once"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s doesn\'t support work profile."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Phone"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Headphones"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> selected"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> deleted"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Work <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"You are in lock-to-app mode. To exit, touch and hold the Recents button"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"You are in Lock-to-App mode."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Use Lock-to-app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Lock-to-app locks the display in a single app.\n\nTo exit, touch and hold the Recents button."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, THANKS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Locked to app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"No longer locked to app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Ask for %1$s before exiting"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"unlock pattern"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"password"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 01af6a3..3e2d93e 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Incoming Caller ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Outgoing Caller ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Connected Line ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Connected Line ID Restriction"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Call forwarding"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Call waiting"</string>
     <string name="BaMmi" msgid="455193067926770581">"Call barring"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Allows the holder to send intents to a device administrator. Should never be needed for normal apps."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bind to a TV input"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Allows the holder to bind to the top-level interface of a TV input. Should never be needed for normal apps."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modify parental controls"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Allows the holder to modify the system\'s parental controls data. Should never be needed for normal apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"add or remove a device admin"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Allows the holder to add or remove active device administrators. Should never be needed for normal apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"change screen orientation"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"allow Bluetooth pairing by Application"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Allows the app to pair with remote devices without user interaction."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Allows the app to pair with remote devices without user interaction."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"access Bluetooth MAP data"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Allows the app to access Bluetooth MAP data."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Allows the app to access Bluetooth MAP data."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"connect and disconnect from WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Allows the app to determine whether WiMAX is enabled and information about any WiMAX networks that are connected."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"change WiMAX state"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Allows the app to access external storage for all users."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"access the cache file system"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Allows the app to read and write the cache file system."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"make/receive Internet calls"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Allows the app to use the SIP service to make/receive Internet calls."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"make/receive SIP calls"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Allows the app to make and receive SIP calls."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interact with in-call screen"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Allows the app to control when and how the user sees the in-call screen."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"read historical network usage"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Allows the app to read historical network usage for specific networks and apps."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"manage network policy"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Allows an application to provision and use DRM certficates. Should never be needed for normal apps."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Receive Android Beam transfer status"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Allows this application to receive information about current Android Beam transfers"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"remove DRM certificates"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Allows an application to remove DRM certficates. Should never be needed for normal apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Set password rules"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Control the length and the characters allowed in screen-unlock passwords."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitor screen-unlock attempts"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"The SIM card is missing or not readable. Insert a SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Unusable SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Previous track button"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Next-track button"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pause button"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Play button"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stop button"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Previous track"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Next track"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Play"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stop"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rewind"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Fast-forward"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Emergency calls only"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Network locked"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM card is PUK-locked."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB debugging connected"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Touch to disable USB debugging."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Change keyboard"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Choose keyboards"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Physical keyboard"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Select keyboard layout"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Decrease hour"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Set p.m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Set a.m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"p.m."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"a.m."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Increase month"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Decrease month"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Increase day"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Accept call?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Always"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Just once"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s doesn\'t support work profile."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Phone"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Headphones"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> selected"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> deleted"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Work <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"You are in lock-to-app mode. To exit, touch and hold the Recents button"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"You are in Lock-to-App mode."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Use Lock-to-app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Lock-to-app locks the display in a single app.\n\nTo exit, touch and hold the Recents button."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, THANKS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Locked to app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"No longer locked to app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Ask for %1$s before exiting"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"unlock pattern"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"password"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 941309e..d321412 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Identificador de llamadas entrantes"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Identificador de llamadas salientes"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID de línea conectada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restricción de ID de línea conectada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Desvío de llamadas"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Llamada en espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Restricción de llamadas"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite enviar intentos a un administrador de dispositivos. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"vincular a una entrada de TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite al propietario vincularse a la interfaz de nivel superior de una entrada de TV. Las aplicaciones normales no deberían necesitar este permiso."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar los controles parentales"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite modificar los datos de controles parentales del sistema. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"agregar o eliminar un administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite al propietario agregar o eliminar administradores de dispositivos activos. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar la orientación de la pantalla"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permitir que la aplicación realice la sincronización por Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite que la aplicación se sincronice con dispositivos remotos sin la interacción del usuario."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite que la aplicación se sincronice con dispositivos remotos sin la interacción del usuario."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"acceder a datos de Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite que la aplicación acceda a los datos de Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite que la aplicación acceda a los datos de Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"conectarse y desconectarse de WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite que la aplicación determine si está activada la conexión WiMAX y que obtenga información sobre las redes WiMAX que están conectadas."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Cambiar el estado de WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite que la aplicación acceda al almacenamiento externo de todos los usuarios."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"Acceder al sistema de archivos caché"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite que la aplicación lea y escriba el sistema de archivos almacenado en caché."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"realizar o recibir llamadas por Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permite que la aplicación utilice el servicio SIP para realizar o recibir llamadas por Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"realizar/recibir llamadas SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite que la aplicación realice y reciba llamadas SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interactuar con la pantalla de llamada"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite que la aplicación controle cuándo y cómo el usuario ve la pantalla de llamada."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"leer uso histórico de la red"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite que la aplicación lea el uso histórico de la red en redes y aplicaciones específicas."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gestionar la política de la red"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que una aplicación proporcione y utilice certificados DRM. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Recibir estado de transferencias de Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite que esta aplicación reciba información sobre las transferencias actuales de Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"eliminar certificados DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite que una aplicación elimine certificados DRM. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Establecer reglas de contraseña"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar la longitud y los caracteres permitidos en las contraseñas para desbloquear la pantalla"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Supervisa los intentos para desbloquear la pantalla"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Tarjeta SIM inutilizable"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Tu tarjeta SIM se ha inhabilitado de forma permanente.\n Ponte en contacto con tu proveedor de servicios inalámbricos para obtener otra tarjeta SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botón para pista anterior"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botón para pista siguiente"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botón Pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botón Reproducir"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botón Detener"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Pista anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Siguiente pista"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausar"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproducir"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Detener"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Retroceder"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avanzar"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Solo llamadas de emergencia"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Red bloqueada"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La tarjeta SIM está bloqueada con PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formato"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuración por USB conectada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca para desactivar la depuración por USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Cambiar el teclado"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Seleccionar teclados"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecciona un diseño de teclado"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Reducir hora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Establecer p.m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Establecer a.m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"p. m."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"a. m."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumentar mes"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Reducir mes"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumentar día"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"¿Aceptar la llamada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Siempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Solo una vez"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s no admite perfiles de trabajo."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Dispositivo"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auriculares"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> seleccionado"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> borrado"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabajo"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Estás en el modo de fijar aplicación. Para salir, mantén presionado el botón de aplicaciones recientes."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Estás en el modo de bloqueo de aplicación."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"¿Usar bloqueo de aplicación?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"La función para fijar una aplicación bloquea la pantalla en una sola aplicación.\n\nPara salir, mantén presionado el botón de aplicaciones recientes."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, GRACIAS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INICIAR"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Fijar aplicación"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ya no estás en el modo de fijar aplicación."</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Solicitar %1$s antes de salir"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"patrón de desbloqueo"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"contraseña"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 95984f4..ccbb8d3 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID de emisor de llamada entrante"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID de emisor de llamada saliente"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID de línea conectada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restricción de ID de línea conectada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Desvío de llamada"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Llamada en espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Bloqueo de llamada"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite que se envíen intentos a un administrador de dispositivos. Las aplicaciones normales nunca deberían necesitar este permiso."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"enlazar a una entrada de TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite enlazar con la interfaz de nivel superior de una entrada de TV. Las aplicaciones normales no deberían necesitar este permiso."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar controles parentales"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite modificar los datos de los controles parentales del sistema. Las aplicaciones normales no deberí­an necesitar este permiso."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"añadir o eliminar un administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite añadir o eliminar administradores de dispositivos activos. No debe ser necesario para aplicaciones normales."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar orientación de la pantalla"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Permitir que la aplicación sincronice el Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite que la aplicación se sincronice con dispositivos remotos sin la interacción del usuario."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite que la aplicación se sincronice con dispositivos remotos sin la interacción del usuario."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"acceder a datos de Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite que la aplicación acceda a los datos de Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite que la aplicación acceda a los datos de Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"conectarse a WiMAX y desconectarse de esta red"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite que la aplicación determine si está habilitada la conexión WiMAX y obtenga información sobre las redes WiMAX que están conectadas."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Cambiar estado de WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite que la aplicación acceda al almacenamiento externo de todos los usuarios."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"acceder al sistema de archivos almacenado en caché"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite que la aplicación lea y escriba el sistema de archivos almacenado en caché."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"realizar/recibir llamadas por Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permite que la aplicación utilice el servicio SIP para recibir o realizar llamadas VoIP."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"hacer/recibir llamadas SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite que la aplicación haga y reciba llamadas SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interactuar con la pantalla de llamada"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite que la aplicación controle cómo y cuándo aparece la pantalla de llamada."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"leer uso de red histórico"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite que la aplicación consulte el uso de red histórico de redes y de aplicaciones específicas."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"administrar política de red"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que una aplicación proporcione y utilice certificados DRM. Las aplicaciones normales no deberían necesitar este permiso."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Recibir estado de transferencias de Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite que esta aplicación reciba información sobre las transferencias actuales de Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"eliminar certificados DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite a una aplicación eliminar los certificados DRM. Las aplicaciones normales no deberí­an necesitar este permiso."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Establecimiento de reglas de contraseña"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar la longitud y los caracteres permitidos en las contraseñas de bloqueo de pantalla"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Control de intentos de bloqueo de pantalla"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Tarjeta SIM inutilizable"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Tu tarjeta SIM se ha inhabilitado permanentemente.\n Para obtener otra tarjeta SIM, ponte en contacto con tu proveedor de servicios de telefonía."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botón de canción anterior"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botón de siguiente canción"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botón de pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botón de reproducción"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botón para detener la reproducción"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Canción anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Siguiente canción"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausar"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproducir"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Detener"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rebobinar"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avance rápido"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Solo llamadas de emergencia"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Bloqueada para la red"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La tarjeta SIM está bloqueada con el código PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formato"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuración USB habilitada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca para inhabilitar la depuración USB"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Cambiar teclado"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Seleccionar teclados"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecciona un diseño de teclado"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Reducir horas"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Establecer p.m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Establecer a.m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"pm"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"am"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumentar mes"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Reducir mes"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumentar días"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"¿Aceptar la llamada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Siempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Solo una vez"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s no es compatible con perfiles de trabajo."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Teléfono"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auriculares"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> seleccionado"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabajo"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Estás en el modo de bloqueo de aplicación. Para salir, mantén pulsado el botón de aplicaciones recientes"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Estás en el modo Bloqueo de aplicación."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"¿Usar Bloqueo de aplicación?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"El bloqueo de aplicación bloquea la pantalla en una sola aplicación.\n\nPara salir, mantén pulsado el botón de aplicaciones recientes."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, GRACIAS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INICIAR"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Bloqueado en la aplicación"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ya no utilizas el bloqueo de aplicación"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Solicitar %1$s antes de salir"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"patrón de desbloqueo"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"contraseña"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml
index f3fe8ca..a3820ee 100644
--- a/core/res/res/values-et-rEE/strings.xml
+++ b/core/res/res/values-et-rEE/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Sissetuleva kõne helistaja ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Väljuva kõne helistaja ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Ühendatud liini ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ühendatud liini ID piiramine"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Kõnede suunamine"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Koputus"</string>
     <string name="BaMmi" msgid="455193067926770581">"Kõnepiirang"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Võimaldab omanikul saata kavatsusi seadme administraatorile. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"sidumine TV-sisendiga"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Lubab omanikul siduda TV-sisendi ülataseme liidesega. Tavarakenduste puhul ei peaks seda kunagi vaja minema."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"vanemliku järelevalve muutmine"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Lubab omanikul muuta süsteemi vanemliku järelevalve andmeid. Pole kunagi vajalik tavaliste rakenduste puhul."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"seadme administraatori lisamine või eemaldamine"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Võimaldab omanikul lisada või eemaldada aktiivseid seadme administraatoreid. Tavarakenduste puhul ei tohiks see kunagi vajalik olla."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"muuda ekraani paigutust"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"luba Bluetoothi sidumist rakendusega"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Lubab rakendusel siduda ennast kaugseadmetega kasutaja sekkumiseta."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Lubab rakendusel siduda ennast kaugseadmetega kasutaja sekkumiseta."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"juurdepääs Bluetoothi MAP-andmetele"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Võimaldab rakendusel pääseda juurde Bluetoothi MAP-andmetele."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Võimaldab rakendusel pääseda juurde Bluetoothi MAP-andmetele."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-iga ühenduse loomine ja ühenduse katkestamine"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Võimaldab rakendusel määrata, kas WiMAX on lubatud, ja vaadata teavet kõikide ühendatud WiMAX-võrkude kohta."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX-i oleku muutmine"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Võimaldab rakenduse kõikidel kasutajatel pöörduda välismäluseadme poole."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"juurdepääs vahemälu failisüsteemile"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Võimaldab rakendusel vahemälu failisüsteemi lugeda ja kirjutada."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Interneti-kõnede tegemine/vastuvõtmine"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Võimaldab rakendusel kasutada SIP-teenust Interneti-kõnede valimiseks/vastuvõtmiseks."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP-kõnede tegemine/vastuvõtmine"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Lubab rakendusel teha ja vastu võtta SIP-kõnesid."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ekraani Kõne pooleli kasutamine"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Lubab rakendusel juhtida, millal ja kuidas kasutajale kuvatakse ekraan Kõne pooleli."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"võrgukasutuse ajaloo lugemine"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Võimaldab rakendusel lugeda võrgukasutuse ajalugu teatud võrkude ja rakenduste puhul."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"võrgueeskirjade haldamine"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Lubab rakendusel ette valmistada ja kasutada DRM-i sertifikaate. Tavarakenduste puhul ei tohiks see vajalik olla."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beami ülekande oleku vastuvõtmine"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Lubab rakendusel saada teavet praeguste Android Beami ülekannete kohta"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM-sertifikaatide eemaldamine"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Lubab rakendusel eemaldada DRM-sertifikaate. Pole kunagi vajalik tavaliste rakenduste puhul."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Parooli reeglite määramine"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrollige ekraaniluku avamise paroolide pikkust ja tähemärke."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekraani avamiskatsed"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kaart puudub või on loetamatu. Sisestage SIM-kaart."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Kasutamiskõlbmatu SIM-kaart."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kaart on jäädavalt keelatud.\n Teise SIM-kaardi saamiseks võtke ühendust oma traadita side teenusepakkujaga."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Eelmise loo nupp"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nupp Järgmine rada"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Nupp Peata"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Nupp Esita"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Nupp Peata"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Eelmine lugu"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Järgmine lugu"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Peata"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Esita"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Peata"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Keri tagasi"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Keri edasi"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Ainult hädaabikõned"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Võrk suletud"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kaart on PUK-lukus."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Vorminda"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-silumine ühendatud"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Puudutage USB-silumise keelamiseks."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Klaviatuuri muutmine"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Vali klaviatuurid"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Füüsiline klaviatuur"</string>
     <string name="hardware" msgid="7517821086888990278">"Riistvara"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Klaviatuuri paigutuse valimine"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Tundide vähendamine"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM-i seadmine"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM-i seadmine"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Kuu suurendamine"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Kuu vähendamine"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Päeva suurendamine"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Kas vastata kõnele?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alati"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Ainult üks kord"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ei toeta tööprofiili."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tahvelarvuti"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kõrvaklapid"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> on valitud"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> on kustutatud"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Töö <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Seade on režiimis Rakendusele lukustamine. Väljumiseks vajutage pikalt nuppu Hiljutised."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Seade on režiimis Rakendusele lukustamine."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Kas soovite kasutada Rakendusele lukustamist?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Rakendusele lukustamise funktsioon lukustab kuva ühele rakendusele.\n\nVäljumiseks vajutage pikalt nuppu Hiljutised."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"TÄNAN, EI"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"KÄIVITA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Rakendusele lukustamine"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Pole enam režiimis Rakendusele lukustamine"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Küsi %1$s enne väljumist"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-koodi"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"avamismustrit"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"parooli"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml
index 25dbcbd..a82f4a3 100644
--- a/core/res/res/values-eu-rES/strings.xml
+++ b/core/res/res/values-eu-rES/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Sarrerako deien identifikazio-zerbitzua"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Irteerako deien identifikazio-zerbitzua"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Konektatutako linearen IDa"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Konektatutako linearen ID murrizketa"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Dei-desbideratzea"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Deia zain"</string>
     <string name="BaMmi" msgid="455193067926770581">"Deien debekuak"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Gailu-administratzaileei xedeak bidaltzea baimentzen die titularrei. Aplikazio normalek ez lukete beharko."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"Lotu telebista-sarrerei"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Telebista-sarrera baten goi-mailako interfazeari lotzea baimentzen die titularrei. Aplikazio normalek ez lukete beharko."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"aldatu gurasoen kontrol-aukerak"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Sistemako gurasoen kontrol-aukerak aldatzea baimentzen die titularrei. Aplikazio normalek ez lukete beharko."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"Gehitu edo kendu gailu-administratzaileak"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Gailu-administratzaile aktiboak gehitzeko eta kentzeko aukera ematen die aplikazioei. Aplikazio normalek ez dute baimen hau behar."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"aldatu pantailaren orientazioa"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Baimendu Bluetooth bidez bikotetzea aplikazioen arabera"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Erabiltzailearen interakziorik gabe urruneko gailuekin parekatzeko aukera ematen die aplikazioei."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Erabiltzailearen interakziorik gabe urruneko gailuekin parekatzeko aukera ematen die aplikazioei."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"atzitu Bluetooth MAP datuak"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Bluetooth MAP datuak atzitzea baimentzen die aplikazioei."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Bluetooth MAP datuak atzitzea baimentzen die aplikazioei."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX sarera konektatzea eta deskonektatzea"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX gaituta dagoen zehazteko eta konektatutako WiMAX sareei buruzko informazioa ikusteko baimena ematen die aplikazioei."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX egoera aldatzea"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Erabiltzaile guztiei kanpoko memoriarako sarbidea emateko baimena ematen die aplikazioei."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"atzitu cachearen fitxategi-sistema"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Cachearen fitxategi-sistema irakurtzea eta bertan idaztea baimentzen die aplikazioei."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"egin/jaso Internet bidezko deiak"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Internet bidezko deiak egiteko edo jasotzeko SIP zerbitzua erabiltzea baimentzen die aplikazioei."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"Egin/Jaso SIP deiak"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP deiak egitea eta jasotzea baimentzen die aplikazioei."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"Interaktuatu deiaren pantailarekin"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Erabiltzaileak deiaren pantaila noiz eta nola ikusten duen kontrolatzeko aukera ematen die aplikazioei."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"irakurri sare-erabileraren historia"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Sare eta aplikazio jakin batzuen sare-erabileraren historia irakurtzea baimentzen die aplikazioei."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"kudeatu sare-gidalerroak"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM ziurtagiriak hornitzea eta erabiltzea baimentzen die aplikazioei. Aplikazio normalek ez lukete beharko."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Jaso Android Beam transferentzien egoera"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Uneko Android Beam transferentziei buruzko informazioa jasotzea baimentzen die aplikazioei"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"kendu DRM ziurtagiriak"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM ziurtagiriak kentzea baimentzen die aplikazioei. Aplikazio normalek ez lukete beharko."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Ezarri pasahitzen arauak"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolatu pantaila desblokeatzeko pasahitzen luzera eta onartutako karaktereak."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Kontrolatu pantaila desblokeatzeko saiakerak"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM txartela falta da edo ezin da irakurri. Sartu SIM txartel bat."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM txartela hondatuta dago."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM txartela behin betiko desgaitu zaizu.\n Beste SIM txartel bat lortzeko, jarri zerbitzu-hornitzailearekin harremanetan."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"\"Aurreko pista\" botoia"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"\"Hurrengo pista\" botoia"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"\"Eten\" botoia"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"\"Erreproduzitu\" botoia"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"\"Gelditu\" botoia"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Aurreko pista"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Hurrengo pista"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausatu"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Erreproduzitu"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Gelditu"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Atzeratu"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Aurreratu"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Larrialdi-deiak soilik"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Sarea blokeatuta dago"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM txartela PUK bidez blokeatuta dago."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formateatu"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB arazketa konektatuta"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB arazketa desgaitzeko, ukitu hau."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Aldatu teklatua"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Aukeratu teklatuak"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teklatu fisikoa"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardwarea"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Hautatu teklatuaren diseinua"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Atzeratu ordu bat"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Ezarri PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Ezarri AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aurreratu hilabete"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Atzeratu hilabete"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aurreratu egun bat"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Deia onartu nahi duzu?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Beti"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Behin soilik"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s abiarazleak ez du laneko profila onartzen."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tableta"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefonoa"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Aurikularrak"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> hautatu da"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ezabatu da"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Laneko <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Aplikazio bakarreko moduan zaude. Irteteko, eduki sakatuta Azkenak botoia"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Aplikazio bakarreko moduan zaude."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Aplikazio bakarreko modua erabili nahi duzu?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Aplikazio bakarreko moduak aplikazio bakarrean blokeatzen du pantaila.\n\nIrteteko, eduki sakatuta Azkenak botoia."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"EZ, ESKERRIK ASKO"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"HASI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Aplikazio batean blokeatuta"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Aplikazio bakarreko modutik irten egin da"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Irten aurretik, eskatu %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN kodea"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"desblokeatzeko eredua"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"pasahitza"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 9eed755..bd725ae 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"شناسه تماس گیرنده ورودی"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"شناسه تماس گیرنده خروجی"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"شناسه خط متصل"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"محدودیت شناسه خط متصل"</string>
     <string name="CfMmi" msgid="5123218989141573515">"هدایت تماس"</string>
     <string name="CwMmi" msgid="9129678056795016867">"انتظار تماس"</string>
     <string name="BaMmi" msgid="455193067926770581">"محدودیت تماس"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"‏به دارنده اجازه می‎دهد اهداف خود را به سرپرست دستگاه ارسال کند. برنامه‎های معمولی هیچگاه به این ویژگی نیازی ندارند."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"اتصال به ورودی تلویزیون"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"به برنامه امکان می‌دهد که به رابط سطح بالای ورودی تلویزیون متصل شود. هرگز برای برنامه‌های معمولی مورد نیاز نیست."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"تغییر کنترل‌های مخصوص والدین"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"به دارنده اجازه می‌دهد اطلاعات کنترل‌های مخصوص والدین را در سیستم تغییر دهد. نباید برای برنامه‌های عادی هیچ‌وقت لازم باشد."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"اضافه یا حذف سرپرست دستگاه"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"به دارنده اجازه می‌دهد سرپرستان دستگاه فعال را اضافه یا حذف کند.هرگز نباید برای برنامه‌های عادی مورد نیاز باشد."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"تغییر جهت صفحه"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"اجازه ارتباط با بلوتوث از طریق برنامه"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"به برنامه امکان می‌دهد بدون تعامل کاربر با دستگاه‌های راه دور مرتبط شود."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"به برنامه امکان می‌دهد بدون تعامل کاربر با دستگاه‌های راه دور مرتبط شود."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"‏دسترسی به اطلاعات MAP بلوتوث"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"‏به برنامه امکان می‌دهد به اطلاعات MAP بلوتوث دسترسی یابد."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"‏به برنامه امکان می‌دهد به اطلاعات MAP بلوتوث دسترسی یابد."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"‏اتصال و قطع اتصال از WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"به برنامه امکان می‌دهد فعال بودن وایمکس و اطلاعات مربوط به هر یک از شبکه‌های وایمکس متصل را مشخص کند."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"‏تغییر وضعیت WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"به برنامه اجازه می‌دهد به دستگاه ذخیره خارجی برای همه کاربران دسترسی داشته باشد."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"دسترسی به سیستم فایل حافظهٔ پنهان"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"‏به برنامه اجازه می‎دهد تا سیستم فایل حافظهٔ پنهان را بخواند و بنویسد."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"علامت‌گذاری/دریافت تماس‌های اینترنتی"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"‏به برنامه اجازه می‎دهد تا از خدمات SIP استفاده کند و تماس‌های اینترنتی بگیرد/دریافت کند."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"‏تماس گرفتن/دریافت تماس از طریق SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"‏به برنامه اجازه می‌دهد تماس‌های SIP بگیرد یا دریافت کند."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"تعامل با صفحه‌نمایش هنگام تماس"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"به برنامه امکان می‌دهد کنترل کند که کاربر چه زمانی و چگونه صفحه‌نمایش هنگام تماس را مشاهده کند."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"خواندن سابقه استفاده از شبکه"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"‏به برنامه اجازه می‎دهد تا کاربرد شبکه را در طول زمان برای برنامه‎ها و شبکه‎های خاص بخواند."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"مدیریت خط مشی شبکه"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏به یک برنامه کاربردی اجازه ارائه مجوز و استفاده از گواهی‌های DRM را می‌دهد. هرگز برای برنامه‌های عادی مورد نیاز نیست."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"‏دریافت وضعیت انتقال پرتوی Android"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"‏به برنامه امکان می‌دهد تا اطلاعاتی درباره انتقال‌های کنونی پرتوی Android به دست آورد"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"‏حذف گواهی‌های DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"‏به برنامه امکان می‌دهد گواهی‌های DRM را حذف کند. نباید برای برنامه‌های عادی هیچ‌وقت لازم باشد."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"تنظیم قوانین رمز ورود"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"‏طول و نویسه‎های مجاز در گذرواژه‌های بازکردن قفل صفحه را کنترل کنید."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"نمایش تلاش‌های قفل گشایی صفحه"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"سیم کارت موجود نیست یا قابل خواندن نیست. یک سیم کارت وارد کنید."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"سیم کارت غیرقابل استفاده است."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"‏سیم کارت شما به طور دائم غیر فعال شده است. \nبرای داشتن سیم کارت دیگر با ارائه‎دهنده سرویس بی‎سیم خود تماس بگیرید."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"دکمه تراک قبلی"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"دکمه تراک بعدی"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"دکمه مکث"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"دکمه پخش"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"دکمه توقف"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"آهنگ قبلی"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"آهنگ بعدی"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"توقف موقت"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"پخش"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"توقف"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"عقب بردن"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"جلو بردن سریع"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"فقط تماس‌های اضطراری"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"شبکه قفل شد"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"‏سیم کارت با PUK قفل شده است."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"قالب"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"‏اتصال رفع عیب USB"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"‏برای غیرفعال کردن اشکال زدایی USB لمس کنید."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"تغییر صفحه‌کلید"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"انتخاب صفحه‌کلیدها"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"صفحه‌کلید فیزیکی"</string>
     <string name="hardware" msgid="7517821086888990278">"سخت‌افزار"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"انتخاب طرح‌بندی صفحه‌کلید"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"کاهش ساعت"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"تنظیم ب.ظ"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"تنظیم ق.ظ"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ب‌ظ"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ق‌ظ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"افزایش ماه"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"کاهش ماه"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"افزایش روز"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"تماس را می‌پذیرید؟"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"همیشه"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"فقط این بار"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"‏%1$s نمایه کاری را پشتیبانی نمی‌کند."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"رایانهٔ لوحی"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"تلفن"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"هدفون‌ها"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> انتخاب شد"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> حذف شد"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> محل کار"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"در حالت قفل به برنامه هستید. برای خروج، دکمه موارد اخیر را لمس کرده و نگه‌دارید"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"در حالت «قفل به برنامه» هستید."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"از «قفل به برنامه» استفاده شود؟"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"قفل به برنامه صفحه را در یک برنامه قفل می‌کند.\n\nبرای خروج، دکمه موارد اخیر را لمس کرده و نگه‌دارید."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"نه، سپاسگزارم"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"شروع"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"در حالت قفل به برنامه است"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"دیگر در حالت قفل به برنامه نیست"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"‏قبل از خروج، %1$s درخواست شود"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"پین"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"الگوی بازگشایی"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"گذرواژه"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 4ccc2d6..71e33e9 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Soittajan tunnus"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Soittajan tunnus"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Yhteyslinjan tunnus"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Yhteyslinjan tunnuksen rajoitus"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Soitonsiirto"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Koputus"</string>
     <string name="BaMmi" msgid="455193067926770581">"Puhelujen esto"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Antaa sovelluksen lähettää aikomuksia laitteen järjestelmänvalvojalle. Ei tavallisten sovellusten käyttöön."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"sido TV-tuloon"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Antaa sovelluksen sitoutua TV-tulon ylemmän tason käyttöliittymään. Ei tavallisten sovelluksien käyttöön."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"lapsilukon muokkaus"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Antaa sovelluksen muokata lapsilukkojen tietoja. Ei tavallisten sovellusten käyttöön."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"lisää tai poista laitteen järjestelmänvalvoja"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Haltija voi lisätä tai poistaa aktiivisen laitteen järjestelmänvalvojia. Tätä ei pitäisi tarvita tavallisille sovelluksille."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"muuta näytön suuntaa"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"anna sovelluksen muodostaa Bluetooth-laitepari"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Antaa sovelluksen muodostaa laiteparin etälaitteiden kanssa ilman käyttäjän toimia."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Antaa sovelluksen muodostaa laiteparin etälaitteiden kanssa ilman käyttäjän toimia."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"käytä Bluetooth MAP -tietoja"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Antaa sovelluksen käyttää Bluetooth MAP -tietoja."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Antaa sovelluksen käyttää Bluetooth MAP -tietoja."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"muodosta yhteys WiMAXiin ja katkaise yhteys"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Antaa sovelluksen määrittää, onko WiMAX käytössä, sekä saada selville tietoja WiMAX-verkoista, joihin on muodostettu yhteys."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Vaihda WiMAX-verkon tilaa"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Sallii sovelluksen käyttää ulkoista tallennustilaa kaikille käyttäjille."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"käytä välimuistin tiedostojärjestelmää"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Antaa sovelluksen lukea välimuistin tiedostojärjestelmää ja kirjoittaa siihen."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"soita/vastaanota internetpuheluita"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Antaa sovelluksen käyttää SIP-palvelua internetpuheluiden soittamiseen/vastaanottamiseen."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"soita/vastaanota SIP-puheluja"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Sallii sovelluksen soittaa ja vastaanottaa SIP-puheluja."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interaktiivinen puhelunäyttö"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Sallii sovelluksen hallita, milloin ja miten käyttäjä näkee puhelunäytön."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"verkonkäyttöhistorian lukeminen"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Sallii sovelluksen lukea tiettyjen verkkojen ja sovellusten verkonkäyttöhistoriaa."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"verkkokäytännön hallinnointi"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Antaa sovelluksen käyttää DRM-varmenteita ja hallita niiden käyttäjiä. Ei tavallisten sovellusten käyttöön."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Vastaanota Android Beam -siirron tilatietoja"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Antaa sovelluksen vastaanottaa tietoja nykyisistä Android Beam -siirroista"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM-varmenteiden poistaminen"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Antaa sovelluksen poistaa DRM-varmenteita. Ei tavallisten sovellusten käyttöön."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Aseta salasanasäännöt"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Hallinnoi ruudun lukituksenpoistosalasanoissa sallittuja merkkejä ja salasanan pituutta."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Tarkkaile ruudun lukituksen poistoyrityksiä"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-korttia ei löydy tai ei voi lukea. Kytke SIM-kortti."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM-kortti ei kelpaa."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortti on poistettu pysyvästi käytöstä.\n Ota yhteyttä operaattoriisi ja hanki uusi SIM-kortti."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Edellinen kappale -painike"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Seuraava kappale -painike"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Tauko-painike"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Toista-painike"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Keskeytä-painike"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Edellinen raita"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Seuraava raita"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Tauko"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Toista"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Seis"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Kelaa taakse"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Kelaa eteen"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Vain hätäpuhelut"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Verkko lukittu"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortti on PUK-lukittu."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Muoto"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-vianetsintä yhdistetty"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Poista USB-vianetsintä käytöstä koskettamalla tätä."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Vaihda näppäimistö"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Valitse näppäimistöt"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fyysinen näppäimistö"</string>
     <string name="hardware" msgid="7517821086888990278">"Laitteisto"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Valitse näppäimistöasettelu"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Vähennä tuntien määrää."</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Aseta ip"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Aseta ap"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"IP"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AP"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Lisää kuukausien määrää."</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Vähennä kuukausien määrää."</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Lisää päivien määrää."</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vastataanko puheluun?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Aina"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Vain kerran"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ei tue työprofiileja."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet-laite"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Puhelin"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kuulokkeet"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> on valittu"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> poistettiin"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (työ)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Olet Lukitse sovellukseen -tilassa, poistu painamalla pitkään Viimeaikaiset-painiketta"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Olet Sovellukseen lukitus -tilassa."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Käytetäänkö sovellukseen lukitusta?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Sovellukseen lukitus lukitsee näytön yhteen sovellukseen.\n\nPoistu pitämällä Viimeaikaiset-painiketta painettuna."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"EI KIITOS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ALOITA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Lukittu sovellukseen"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ei enää lukittu sovellukseen"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Kysy %1$s ennen lopettamista"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-koodi"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"lukituksenpoistokuvio"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"salasana"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index c1d5375..4a63f0e 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Numéro de l\'appelant (entrant)"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Numéro de l\'appelant (sortant)"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Identifiant de la ligne connectée"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restriction d\'identifiant de la ligne connectée"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Transfert d\'appel"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Appel en attente"</string>
     <string name="BaMmi" msgid="455193067926770581">"Interdiction d\'appel"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet à l\'application autorisée d\'envoyer des intentions à l\'administrateur de l\'appareil. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"s\'associer à une entrée de téléviseur"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permet à l\'application autorisée de s\'associer à l\'interface de plus haut niveau d\'une entrée de téléviseur. Les applications standards ne devraient pas avoir à utiliser cette fonctionnalité."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modifier les contrôles parentaux"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permet au propriétaire de modifier les données de contrôle parental du système. Cela ne devrait jamais être nécessaire pour des applications normales."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ajouter ou supprimer un administrateur de l\'appareil"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet à l\'application d\'ajouter ou de supprimer des administrateurs actifs de l\'appareil. Les applications standards ne devraient jamais utiliser cette autorisation."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modifier l\'orientation de l\'écran"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"autoriser l\'application à s\'associer par Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permet à l\'application de s\'associer aux appareils à distance sans interaction avec l\'utilisateur."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permet à l\'application de s\'associer aux appareils à distance sans interaction avec l\'utilisateur."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"accéder aux données du profil MAP Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permet à l\'application d\'accéder aux données du profil MAP (Message Access Profile) Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permet à l\'application d\'accéder aux données du profil MAP (Message Access Profile) Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"se connecter au réseau WiMAX et s\'en déconnecter"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permet à l\'application de déterminer si le WiMAX est activé et d\'obtenir des détails sur tous les réseaux WiMAX connectés."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Modifier l\'état du WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permet à l\'application d\'accéder à la mémoire de stockage externe pour tous les utilisateurs."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accéder au système de fichiers en cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permet à l\'application d\'obtenir des droits en lecture et en écriture pour le système de fichiers du cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"faire et recevoir des appels Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permet à l\'application d\'utiliser le service SIP pour faire ou recevoir des appels Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"faire et recevoir des appels SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Autorise l\'application à effectuer et à recevoir des appels SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interagir avec l\'écran d\'appel"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permet à l\'application de contrôler quand et comment l\'écran d\'appel s\'affiche."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lire l\'historique d\'utilisation de réseaux"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permet à l\'application de lire l\'historique d\'utilisation de réseaux et d\'applications particuliers."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gérer les politiques du réseau"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permet à une application de fournir et d\'utiliser les certificats de GDN. Cela ne devrait jamais être nécessaire pour les applications normales."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Recevoir des données sur l\'état du transfert Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Autoriser cette application à recevoir des données sur les transferts Android Beam en cours"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"supprimer des certificats GDN"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permet à une application de supprimer les certificats GDN. Cela ne devrait jamais être nécessaire pour des applications normales."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Définir les règles du mot de passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Choisir le nombre et le type de caractères autorisés dans les mots de passe de déverrouillage de l\'écran"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gérer les tentatives de déverrouillage de l\'écran"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Carte SIM absente ou illisible. Veuillez insérer une carte SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Carte SIM inutilisable."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Votre carte SIM a été définitivement désactivée.\n Veuillez contacter votre opérateur de téléphonie mobile pour en obtenir une autre."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Bouton pour revenir au titre précédent"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Bouton pour atteindre le titre suivant"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Bouton de pause"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Bouton de lecture"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Bouton d\'arrêt"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Chanson précédente"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Chanson suivante"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Lecture"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Arrêter"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Reculer"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avance rapide"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Appels d\'urgence uniquement"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Réseau verrouillé"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La carte SIM est verrouillée par clé PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Mise en forme"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Débogage USB connecté"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Appuyez pour désactiver le débogage USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Changer de clavier"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Choisir les claviers"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Clavier physique"</string>
     <string name="hardware" msgid="7517821086888990278">"Matériel"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Sélectionnez la disposition du clavier"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Heure précédente"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Définir la valeur PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Définir la valeur AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Mois suivant"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Mois précédent"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Jour suivant"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Prendre l\'appel?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Toujours"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Une seule fois"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s n\'est pas compatible avec le profil professionnel."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablette"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Téléphone"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Oreillettes"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"« <xliff:g id="ITEM">%1$s</xliff:g> » a été sélectionné"</string>
     <string name="deleted_key" msgid="7659477886625566590">"« <xliff:g id="KEY">%1$s</xliff:g> » a été supprimé"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (travail)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Vous utilisez la fonctionnalité Verrouiller sur l\'application. Pour quitter ce mode, maintenez le doigt sur le bouton « Récents »."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Vous êtes en mode « Verrouiller sur l\'application »."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Utiliser la fonctionnalité « Verrouiller sur l\'application »?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"La fonctionnalité Verrouiller sur l\'application verrouille l\'écran sur une seule application.\n\nPour quitter ce mode, maintenez le doigt sur le bouton « Récents »."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NON, MERCI"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"COMMENCER"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Verrouillage sur l\'application activé"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Verrouillage sur l\'application désactivé"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Demander le %1$s avant de quitter"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"NIP"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"schéma de déverrouillage"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"mot de passe"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index b5a301b..d300946 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"Code MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Numéro de l\'appelant (entrant)"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Numéro de l\'appelant (sortant)"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Identifiant de la ligne connectée"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restriction d\'identifiant de la ligne connectée"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Transfert d\'appel"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Appel en attente"</string>
     <string name="BaMmi" msgid="455193067926770581">"Interdiction d\'appel"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permet à l\'application autorisée d\'envoyer des intentions à l\'administrateur de l\'appareil. Les applications standards ne doivent jamais avoir recours à cette fonctionnalité."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"s\'associer à une entrée TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permettre à l\'application autorisée de s\'associer à l\'interface de plus haut niveau d\'une entrée TV. Ne devrait pas être nécessaire pour les applications standards."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modifier le contrôle parental"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permet au titulaire de modifier les données du système relatives au contrôle parental. Ne devrait jamais être nécessaire pour les applications classiques."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ajouter ou supprimer un administrateur de l\'appareil"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permet à l\'application autorisée d\'ajouter ou de supprimer des administrateurs actifs de l\'appareil. Les applications standards ne devraient pas nécessiter cette autorisation."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Changement d\'orientation de l\'écran"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"autoriser l\'application à s\'associer via le Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permettre à l\'application de s\'associer aux appareils à distance sans intervention de l\'utilisateur"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permettre à l\'application de s\'associer aux appareils à distance sans intervention de l\'utilisateur"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"accéder aux données du profil MAP du Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permet à l\'application d\'accéder aux données du profil MAP (Message Access Profile) du Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permet à l\'application d\'accéder aux données du profil MAP (Message Access Profile) du Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"se connecter au réseau WiMAX et s\'en déconnecter"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permet à l\'application de déterminer si le WiMAX est activé et d\'obtenir des informations sur tous les réseaux WiMAX connectés."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Modifier l\'état du WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permet à l\'application d\'accéder à la mémoire de stockage externe pour tous les utilisateurs."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accéder au système de fichiers en cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permet à l\'application d\'obtenir des droits en lecture/écriture concernant le système de fichiers du cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"effectuer/recevoir des appels Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permet à l\'application d\'utiliser le service SIP pour émettre ou recevoir des appels Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"effectuer/recevoir des appels SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Autorise l\'application à effectuer et à recevoir des appels SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"contrôler l\'écran d\'appel"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permet à l\'application de contrôler quand et comment l\'écran d\'appel s\'affiche."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lire l\'historique d\'utilisation du réseau"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permet à l\'application de lire l\'historique d\'utilisation de réseaux et d\'applications spécifiques."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gérer les règles du réseau"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permettre à une application de fournir et d\'utiliser des certificats de GDN. Ne devrait jamais être nécessaire pour les applications standards."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Recevoir des informations sur l\'état du transfert Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Autoriser cette application à recevoir des informations sur les transferts Android Beam en cours"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"supprimer les certificats de GDN"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permet à une application de supprimer les certificats de GDN. Ne devrait jamais être nécessaire pour les applications standards."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Définir les règles du mot de passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Choisir le nombre et le type de caractères autorisés dans les mots de passe de déverrouillage de l\'écran"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gérer les tentatives de déverrouillage de l\'écran"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Carte SIM absente ou illisible. Insérez une carte SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Carte SIM inutilisable."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Votre carte SIM a été définitivement désactivée.\n Veuillez contacter votre opérateur de téléphonie mobile pour en obtenir une autre."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Bouton du titre précédent"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Bouton du titre suivant"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Bouton de pause"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Bouton de lecture"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Bouton d\'arrêt"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Piste précédente"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Piste suivante"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Interrompre"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Lire"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Arrêter"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Retour arrière"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avance rapide"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Appels d\'urgence uniquement"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Réseau verrouillé"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La carte SIM est verrouillée par clé PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Débogage USB activé"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Appuyez pour désactiver le débogage USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Changer de clavier"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Sélectionner des claviers"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Clavier physique"</string>
     <string name="hardware" msgid="7517821086888990278">"Matériel"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Sélectionnez la disposition du clavier"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Heure précédente"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Définir la valeur PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Définir la valeur AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"p.m."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"a.m."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Mois suivant"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Mois précédent"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Jour suivant"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Prendre l\'appel ?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Toujours"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Une seule fois"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s n\'est pas compatible avec le profil professionnel."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablette"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Téléphone"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Écouteurs"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"\"<xliff:g id="ITEM">%1$s</xliff:g>\" sélectionné"</string>
     <string name="deleted_key" msgid="7659477886625566590">"\"<xliff:g id="KEY">%1$s</xliff:g>\" supprimé"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (travail)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Vous utilisez la fonctionnalité Verrouiller sur l\'application. Pour quitter ce mode, appuyez de manière prolongée sur le bouton \"Récents\"."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Vous êtes en mode \"Verrouiller sur l\'application\"."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Utiliser la fonctionnalité Verrouiller sur l\'application ?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"La fonctionnalité Verrouiller sur l\'application verrouille l\'écran sur une seule application.\n\nPour quitter ce mode, appuyez de manière prolongée sur le bouton \"Récents\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NON, MERCI"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ACTIVER"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Verrouillage sur l\'application activé"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Verrouillage sur l\'application désactivé"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Demander le %1$s avant de quitter"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"code PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"schéma de déverrouillage"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"mot de passe"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml
index eb3ced4..622d3d0 100644
--- a/core/res/res/values-gl-rES/strings.xml
+++ b/core/res/res/values-gl-rES/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID de chamada entrante"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID de chamada saínte"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID de liña conectada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restrición de ID de liña conectada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Desvío de chamadas"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Chamada en espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Restrición de chamadas"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite ao propietario enviar intentos a un administrador de dispositivos. As aplicacións normais non deberían necesitar este permiso."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"vincular a unha entrada de televisión"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite ao propietario vincularse á interface de nivel superior dunha entrada de televisión. As aplicacións normais non deberían necesitar este permiso."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar controis de restrición de acceso"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite ao titular modificar os datos de control de restrición de acceso do sistema. As aplicacións normais non o deberían precisar nunca."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"engadir ou eliminar un administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite ao propietario engadir ou eliminar administradores de dispositivos activos. Non se debería necesitar nunca para aplicacións normais."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"cambiar a orientación da pantalla"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permitir sincronización Bluetooth por parte da aplicación"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite á aplicación sincronizarse con dispositivos remotos sen interacción do usuario."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite á aplicación sincronizarse con dispositivos remotos sen interacción do usuario."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"acceso aos datos de Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite que a aplicación acceda aos datos de Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite que a aplicación acceda aos datos de Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"conectar e desconectar de WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite á aplicación determinar se WiMAX está activado e obter información acerca das redes WiMAX que están conectadas."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Cambiar estado de WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite á aplicación acceder ao almacenamento externo de todos os usuarios."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"acceder ao sistema de ficheiros da caché"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite á aplicación ler e escribir no sistema de ficheiros da caché."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"facer/recibir chamadas a través de Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permite á aplicación utilizar o servizo SIP para efectuar/recibir chamadas de Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"facer/recibir chamadas SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite que a aplicación faga e reciba chamadas SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interactuar cunha pantalla de chamada"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite á aplicación controlar cando e como ve o usuario a pantalla de chamada."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ler o historial de uso da rede"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite á aplicación ler o uso da rede histórico de redes e aplicacións específicas."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"xestionar a política de rede"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite a unha aplicación fornecer e utilizar certificados DRM. Non se deberían precisar nunca para as aplicacións normais."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Recibir estado das transferencias de Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite a esta aplicación recibir información acerca das transferencias actuais de Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"eliminar certificados DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite a unha aplicación eliminar os certificados DRM. As aplicacións normais non o deberían precisar nunca."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Establecer as normas de contrasinal"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar a lonxitude e os caracteres permitidos nos contrasinais de desbloqueo da pantalla."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Supervisar os intentos de desbloqueo da pantalla"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Falta a tarxeta SIM ou non se pode ler. Insire unha tarxeta SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Tarxeta SIM inutilizable"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"A túa tarxeta SIM desactivouse permanentemente.\n Ponte en contacto co teu provedor de servizos sen fíos para conseguir outra tarxeta SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botón de pista anterior"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botón de pista seguinte"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botón de pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botón de reprodución"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botón para deter a reprodución"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Pista anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Seguinte pista"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausar"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproducir"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Deter"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rebobinar"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avance rápido"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Só chamadas de emerxencia"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Bloqueada pola rede"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"A tarxeta SIM está bloqueada con código PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formato"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuración USB conectada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toca para desactivar a depuración de erros de USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Cambiar teclado"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Seleccionar teclados"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Seleccionar deseño de teclado"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Reducir a hora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Establecer PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Establecer AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumentar mes"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Reducir mes"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumentar día"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Aceptar chamada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Só unha vez"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s non é compatible co perfil de traballo."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Teléfono"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auriculares"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> seleccionado"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> do traballo"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Estás no modo de bloqueo de aplicación. Para saír, mantén premido o botón Recentes"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Estás no modo Bloqueo de aplicación."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Queres utilizar a función Bloqueo de aplicación?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"O bloqueo de aplicación bloquea a pantalla nunha soa aplicación.\n\nPara saír, mantén premido o botón Recentes."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NON, GRAZAS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"SI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Bloqueo de aplicación"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Xa non estás no modo bloqueo de aplicación"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Solicitar %1$s antes de saír"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"deseño de desbloqueo"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"contrasinal"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 1ebf1a3..9662dda 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"इनकमिंग कॉलर ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"आउटगोइंग कॉलर ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"कनेक्ट किया गया लाइन आईडी"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"कनेक्ट किया गया लाइन आईडी प्रतिबंध"</string>
     <string name="CfMmi" msgid="5123218989141573515">"कॉल अग्रेषण"</string>
     <string name="CwMmi" msgid="9129678056795016867">"कॉल प्रतीक्षा"</string>
     <string name="BaMmi" msgid="455193067926770581">"कॉल बाधित करना"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"धारक को किसी उपकरण व्‍यवस्‍थापक को उद्देश्य भेजने देता है. सामान्‍य ऐप्स के लिए कभी भी आवश्‍यक नहीं होना चाहिए."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"टीवी इनपुट से आबद्ध करें"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"धारक को किसी टीवी इनपुट के शीर्ष-स्‍तर इंटरफ़ेस से आबद्ध होने देती है. सामान्‍य ऐप्स के लिए कभी भी आवश्‍यक नहीं होना चाहिए."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"अभिभावकीय नियंत्रणों को बदल सकता है"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"धारक को सिस्‍टम का अभिभावकीय नियंत्रणों वाला डेटा बदलने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होनी चाहिए."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"उपकरण उपकरण सुचारू ढ़ंग से चलाने वाले को जोड़ें या निकालें"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"धारक को सक्रिय डिवाइस व्यवस्थापकों को जोड़ने या निकालने देता है. सामान्य ऐप्स  के लिए कभी भी आवश्यक नहीं होना चाहिए."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"स्‍क्रीन अभिविन्‍यास बदलें"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"एप्‍लिकेशन के द्वारा ब्लूटूथ युग्‍मन करने देती है"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"एप्‍लिकेशन को उपयोगकर्ता के इंटरैक्शन के बिना दूरस्‍थ उपकरणों के साथ युग्‍मित करने देती है."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"एप्‍लिकेशन को उपयोगकर्ता के इंटरैक्शन के बिना दूरस्‍थ उपकरणों के साथ युग्‍मित करने देती है."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth नक्शा डेटा एक्सेस करें"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"ऐप्स को Bluetooth नक्शा डेटा एक्सेस करने दें."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"ऐप्स को Bluetooth नक्शा डेटा एक्सेस करने दें."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX से कनेक्ट और डिस्कनेक्ट करें"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"ऐप्स  को WiMAX सक्षम है या नहीं और कनेक्‍ट किए गए किसी WiMAX नेटवर्क के बारे में जानकारी निर्धारित करने देता है."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX स्‍थिति बदलें"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"ऐप्स  को सभी उपयोगकर्ताओं के बाहरी संग्रहण तक पहुंचने दें."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"कैश फ़ाइल सिस्‍टम में पहंचे"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ऐप्स को संचय फ़ाइल सिस्‍टम पढ़ने और लिखने देता है."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"इंटरनेट कॉल करें/प्राप्त करें"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ऐप्स  को इंटरनेट कॉल करने/प्राप्त करने के लिए SIP सेवा का उपयोग करने देता है."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP कॉल करें/प्राप्‍त करें"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"ऐप्स को SIP कॉल करने और प्राप्‍त करने देती है."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"इन-कॉल स्क्रीन से सहभागिता करें"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ऐप्लिकेशन को यह नियंत्रित करने देती है कि उपयोगकर्ता को इन-कॉल स्क्रीन कब और कैसी दिखाई देती है."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ऐतिहासिक नेटवर्क उपयोग पढें"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"किसी ऐप्स  को विशिष्ट नेटवर्क और ऐप्स के लिए ऐतिहासिक नेटवर्क उपयोग को पढ़ने देता है."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"नेटवर्क नीति प्रबंधित करें"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ऐप्लिकेशन को DRM प्रमाणपत्रों का प्रावधान और उपयोग करने देती है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होना चाहिए."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam स्थानान्तरण स्थिति प्राप्त करें"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"इस ऐप्लिकेशन को वर्तमान Android Beam स्थानान्तरणों के बारे में जानकारी प्राप्त करने देती है."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM प्रमाणपत्रों को निकाल सकता है"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"एप्‍लिकेशन को DRM प्रमाणपत्रों को निकालने देता है. सामान्य ऐप्स के लिए कभी भी आवश्यकता नहीं होनी चाहिए."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"पासवर्ड नियम सेट करें"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"स्‍क्रीन-अनलॉक पासवर्ड में अनुमति प्राप्त लंबाई और वर्णों को नियंत्रित करें."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"स्‍क्रीन-अनलॉक के प्रयासों पर निगरानी रखें"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"सिम कार्ड गुम है या पढ़ने योग्‍य नहीं है. कोई सिम कार्ड डालें."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"अनुपयोगी SIM कार्ड."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"आपका सिम कार्ड स्‍थायी रूप से अक्षम कर दिया गया है.\n दूसरे SIM कार्ड के लिए अपने वायरलेस सेवा प्रदाता से संपर्क करें."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"पिछला ट्रैक बटन"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"अगला ट्रैक बटन"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"पॉज़ करें बटन"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"चलाएं बटन"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"रोकें बटन"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"पिछला ट्रैक"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"अगला ट्रैक"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"रोकें"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"चलाएं"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"बंद करें"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"रिवाइंड करें"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"फ़ास्ट फ़ॉरवर्ड"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"केवल आपातकालीन कॉल"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"नेटवर्क लॉक किया गया"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"सिम कार्ड PUK-लॉक किया हुआ है."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"प्रारूपित करें"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB डीबग करना कनेक्ट किया गया"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB डीबग करना अक्षम करने के लिए स्‍पर्श करें."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"कीबोर्ड बदल सकता है"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"कीबोर्ड चुनें"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"भौतिक कीबोर्ड"</string>
     <string name="hardware" msgid="7517821086888990278">"हार्डवेयर"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"कीबोर्ड लेआउट को चुनें"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"घंटे कम करें"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"सायं सेट करें"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"प्रात: सेट करें"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"अप"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"पू"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"माह बढ़ाएं"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"माह कम करें"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"दिन बढ़ाएं"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"कॉल स्वीकार करें?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"हमेशा"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"केवल एक बार"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s कार्य प्रोफ़ाइल का समर्थन नहीं करता."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"टेबलेट"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"फ़ोन"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"हेडफ़ोन"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> चयनित"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> को हटा दिया गया"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्यस्थल का <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"आप ऐप्स-पर-लॉक मोड में हैं. बाहर निकलने के लिए, हाल ही के बटन को स्पर्श करके रखें"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"आप ऐप्स-पर-लॉक करें मोड में हैं."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"ऐप्स-पर-लॉक करें का उपयोग करें?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"ऐप्स-पर-लॉक करेंं प्रदर्शन को एकल ऐप्स में लॉक कर देता है.\n\nबाहर निकलने के लिए, हाल ही के बटन को स्पर्श करके रखें."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"नहीं, धन्यवाद"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"प्रारंभ करें"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"ऐप्स-पर-लॉक किया गया"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"अब ऐप्स-पर-लॉक नहीं है"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"बाहर निकलने से पहले %1$s के लिए पूछें"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"पिन"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"पैटर्न अनलॉक करें"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"पासवर्ड"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 3737f68..4e434f4 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID dolaznog pozivatelja"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID izlaznog pozivatelja"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID povezane linije"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ograničenje ID-a povezane linije"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Preusmjeravanje poziva"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Poziv na čekanju"</string>
     <string name="BaMmi" msgid="455193067926770581">"Zabrana poziva"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Nositelju omogućuje slanje namjera administratoru uređaja. Ne bi smjelo biti potrebno za normalne aplikacije."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"povezivanje s TV ulazom"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Nositelju omogućuje vezanje uz sučelje najviše razine TV ulaza. Ne bi smjelo biti potrebno za normalne aplikacije."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"izmjena roditeljskog nadzora"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Omogućuje vlasniku izmjenu podataka o roditeljskom nadzoru sustava. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodavanje ili uklanjanje administratora uređaja"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Omogućuje nositelju dodavanje ili uklanjanje administratora aktivnih uređaja. Nikada ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"promjena orijentacije zaslona"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"omogući aplikaciji uparivanje putem Bluetootha"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Aplikaciji se omogućuje uparivanje s udaljenim uređajima bez interakcije korisnika."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Aplikaciji se omogućuje uparivanje s udaljenim uređajima bez interakcije korisnika."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"pristup podacima Bluetooth MAP-a"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Omogućuje aplikaciji pristup podacima Bluetooth MAP-a."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Omogućuje aplikaciji pristup podacima Bluetooth MAP-a."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"uspostavljanje i prekidanje veze s WiMAX-om"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Aplikaciji omogućuje utvrđivanje omogućenosti WiMAX mreže te daje informaciju o tome je li spojena neka WiMAX mreža."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Promjena stanja WiMAX mreže"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Omogućuje aplikaciji pristup vanjskoj pohrani za sve korisnike."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"pristup sustavu datoteka predmemorije"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Aplikaciji omogućuje čitanje i pisanje u datotečnom sustavu privremene memorije."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"zovi/primaj internetske pozive"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Aplikaciji omogućuje upotrebu SIP usluge za nazivanje/primanje internetskih poziva."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"upućivanje/primanje SIP poziva"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Aplikacija može upućivati i primati SIP pozive."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakcija sa zaslonom tijekom poziva"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Omogućuje aplikaciji upravljanje time kada će i kako korisnik vidjeti zaslon tijekom poziva."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"čitanje povijesti upotrebe mreže"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Aplikaciji omogućuje čitanje povijesti upotrebe mreže za određene mreže i aplikacije."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"Upravljanje mrežnim pravilima"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Aplikaciji omogućuje pružanje i korištenje DRM certifikata. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Primanje statusa prijenosa Android Beama"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Omogućuje aplikaciji primanje podataka o trenutačnim prijenosima Android Beama"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"uklanjanje DRM certifikata"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Omogućuje aplikaciji uklanjanje DRM certifikata. Ne bi trebalo biti potrebno za uobičajene aplikacije."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Postavi pravila zaporke"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Upravljajte duljinom zaporki za otključavanje zaslona i dopuštenim znakovima u tim zaporkama."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Nadgledaj pokušaje otključavanja zaslona"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kartica nedostaje ili nije čitljiva. Umetnite SIM karticu."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Neupotrebljiva SIM kartica."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaša SIM kartica trajno je onemogućena.\n Obratite se svom pružatelju bežičnih usluga da biste dobili drugu SIM karticu."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Gumb Prethodni zapis"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Gumb Sljedeći zapis"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Gumb Pauza"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Gumb Reprodukcija"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Gumb Zaustavi"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Prethodna pjesma"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Sljedeća pjesma"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pauziraj"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproduciraj"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Zaustavi"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Unatrag"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Brzo unaprijed"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Samo hitni pozivi"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Mreža je zaključana"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kartica je zaključana PUK-om."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Priključen je alat za uklanjanje programske pogreške USB-a"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Dodirnite da biste onemogućili rješavanje programske pogreške na USB-u."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Promjena tipkovnice"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Odaberi tipkovnice"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fizička tipkovnica"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardver"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Odaberite izgled tipkovnice"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Smanjenje sati"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Postavi PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Postavi AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Povećanje mjeseca"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Smanjenje mjeseca"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Povećanje dana"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Prihvatiti poziv?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Uvijek"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Samo jednom"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ne podržava radni profil."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tabletno računalo"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Slušalice"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Odabrana je stavka <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Izbrisan je broj <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> za posao"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"U načinu ste zaključavanja na aplikaciju. Da biste ga zatvorili, dodirnite i zadržite gumb Najnoviji"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"U načinu ste zaključavanja na aplikaciju."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Želite li upotrijebiti zaključavanje na aplikaciju?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Značajkom zaključavanja na aplikaciju zaključava se prikaz na pojedinačnu aplikaciju.\n\nDa biste je zatvorili, dodirnite i zadržite gumb Najnoviji."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NE, HVALA"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"POKRENI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Zaključano na aplikaciju"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Više nije zaključano na aplikaciju"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Traži %1$s prije zatvaranja"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"uzorak za otključavanje"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"zaporka"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index c43a2a8..d38e841 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Beérkező hívóazonosító"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Kimenő hívóazonosító"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Összekapcsolt sorazonosító"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Összekapcsolt sorazonosító korlátozása"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Hívásátirányítás"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Hívásvárakoztatás"</string>
     <string name="BaMmi" msgid="455193067926770581">"Hívásletiltás"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Lehetővé teszi a tulajdonos számára, hogy célokat küldjön egy eszközkezelőnek. A normál alkalmazásoknak erre soha nincs szüksége."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"csatlakozás tévébemenethez"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Lehetővé teszi, hogy a tulajdonos kapcsolódjon egy tévébemenet legfelső szintű kezelőfelületéhez. A normál alkalmazásoknak erre soha nincs szükségük."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"szülői felügyelet módosítása"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Lehetővé teszi a birtokos számára a rendszer szülői felügyeleti adatainak módosítását. A normál alkalmazásoknak erre soha nincs szükségük."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"eszközrendszergazda hozzáadása vagy eltávolítása"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Lehetővé teszi a tulajdonos számára, hogy aktív eszközrendszergazdákat adjon meg vagy távolítson el. A normál alkalmazásoknál erre soha nincs szükség."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"képernyő irányának módosítása"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth-párosítás engedélyezése az alkalmazás számára"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Lehetővé teszi az alkalmazás számára a távoli eszközök párosítását felhasználói beavatkozás nélkül."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Lehetővé teszi az alkalmazás számára a távoli eszközök párosítását felhasználói beavatkozás nélkül."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"hozzáférés a Bluetooth MAP-adatokhoz"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Lehetővé teszi az alkalmazás számára a Bluetooth MAP-adatokhoz való hozzáférést."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Lehetővé teszi az alkalmazás számára a Bluetooth MAP-adatokhoz való hozzáférést."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-kapcsolódás és a kapcsolat bontása"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Lehetővé teszi az alkalmazás számára, hogy ellenőrizze, a WiMax engedélyezve van-e, valamint hogy információt gyűjtsön a csatlakoztatott WiMax-hálózatokról."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX-állapot módosítása"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Minden felhasználó számára lehetővé teszi, hogy az alkalmazás hozzáférjen külső tárolókhoz."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"hozzáférés a gyorsítótár fájlrendszeréhez"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Lehetővé teszi az alkalmazás számára a gyorsítótár-fájlrendszer olvasását és írását."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"internetes hívások kezdeményezése és fogadása"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Lehetővé teszi az alkalmazás számára a SIP-szolgáltatás használatát internetes hívások kezdeményezésére és fogadására."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP-hívások indítása/fogadása"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP-hívások indításának és fogadásának engedélyezése az alkalmazás számára."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakció a hívás közbeni képernyővel"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Lehetővé teszi, hogy az alkalmazás felügyelje, a felhasználók mikor és hogyan láthatják a hívás közbeni képernyőt."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"hálózathasználati előzmények beolvasása"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Lehetővé teszi az alkalmazás számára a hálózathasználati előzmények beolvasását adott hálózatok és alkalmazások esetében."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"hálózati házirend kezelése"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Engedélyezi egy alkalmazás számára a DRM-tanúsítványokhoz való hozzáférést és azok használatát. Átlagos alkalmazásoknak erre nem lehet szükségük."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam-átviteli állapot fogadása"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Lehetővé teszi az alkalmazás számára a folyamatban lévő Android Beam-átvitelekről szóló információk fogadását"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM-tanúsítványok eltávolítása"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Lehetővé teszi, hogy az alkalmazás eltávolítsa a DRM-tanúsítványokat. A normál alkalmazásoknak erre soha nincs szükségük."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Jelszavakkal kapcsolatos szabályok beállítása"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"A képernyőzár-feloldási jelszavakban engedélyezett karakterek és hosszúság vezérlése."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Képernyőzár-feloldási kísérletek figyelése"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"A SIM kártya hiányzik vagy nem olvasható. Helyezzen be egy SIM kártyát."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"A SIM kártya nem használható."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kártyája véglegesen letiltva.\n Forduljon a vezeték nélküli szolgáltatójához másik SIM kártya beszerzése érdekében."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Előző szám gomb"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Következő szám gomb"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Szünet gomb"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Lejátszás gomb"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Leállítás gomb"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Előző szám"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Következő szám"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Szünet"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Lejátszás"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Leállítás"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Visszatekerés"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Előretekerés"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Csak segélyhívások"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"A hálózat lezárva"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"A SIM kártya le van zárva a PUK kóddal."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formázás"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB hibakereső csatlakoztatva"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Érintse meg az USB hibakeresés kikapcsolásához."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Billentyűzet megváltoztatása"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Billentyűzetek kiválasztása"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fizikai billentyűzet"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardver"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Válasszon billentyűzetkiosztást"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Óra értékének csökkentése"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Állítsa du. értékre"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Állítsa de. értékre"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"DU"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"DE"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Hónap értékének növelése"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Hónap értékének csökkentése"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Dátum értékének növelése"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Fogadja a hívást?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Mindig"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Csak egyszer"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"A(z) %1$s nem támogatja a munkahelyi profilokat."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Táblagép"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Fejhallgató"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> kiválasztva"</string>
     <string name="deleted_key" msgid="7659477886625566590">"A(z) <xliff:g id="KEY">%1$s</xliff:g> érték törölve"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Munkahelyi <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Alkalmazászárolás módban van. A kilépéshez tartsa lenyomva a Legutóbbiak gombot."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Ön alkalmazászárolási módban van."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Használni szeretné az alkalmazászárolást?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Az alkalmazászárolás lezárja a kijelzőt az adott alkalmazásban.\n\nA kilépéshez tartsa lenyomva a Legutóbbiak gombot."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"KÖSZÖNÖM, NEM"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INDÍT"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Alkalmazászárolás aktiválva"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Az alkalmazászárolás megszűnt"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"%1$s kérése kilépés előtt"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN kód"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"feloldási minta"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"jelszó"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml
index 51e6c3a..69c0c60 100644
--- a/core/res/res/values-hy-rAM/strings.xml
+++ b/core/res/res/values-hy-rAM/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Մուտքային զանգողի ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Ելքային զանգողի ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Կապված տողի ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Կապված տողի ID-ի սահմանափակում"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Զանգի վերահասցեավորում"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Զանգի սպասում"</string>
     <string name="BaMmi" msgid="455193067926770581">"Զանգի արգելափակում"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Թույլ է տալիս սեփականատիրոջը ուղարկել մտադրություններ սարքի կառավարչին: Սովորական հավելվածների համար երբևէ չպետք է անհրաժեշտ լինի:"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"միանալ հեռուստացույցի մուտքին"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Թույլ է տալիս սեփականատիրոջը միանալ հեռուստացույցի մուտքի վերին մակարդակի ինտերֆեյսին: Սովորական հավելվածների համար երբևէ չպետք է անհրաժեշտ լինի:"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"փոփոխել ծնողական վերահսկումը"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Սեփականատիրոջը թույլ է տալիս փոփոխել համակարգի Ծնողական վերահսկման տվյալները: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ավելացնել կամ հեռացնել սարքի արդմինիստրատոր"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Թույլ է տալիս սեփականատիրոջը ավելացնել կամ հեռացնել սարքի ակտիվ ադմինիստրատորներ: Երբեք չպետք է անհրաժեշտ լինի սովորական ծրագրերին:"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"փոխել էկրանի դիրքավորումը"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"թույլ տալ Bluetooth զուգավորումը՝ հավելվածի միջոցով"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Թույլ է տալիս, որ հավելվածը զուգավորվի հեռավոր սարքերի հետ՝ առանց օգտվողի փոխազդեցության:"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Թույլ է տալիս, որ հավելվածը զուգավորվի հեռավոր սարքերի հետ՝ առանց օգտվողի փոխազդեցության:"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"մուտք դեպի Bluetooth MAP տվյալներ"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Ծրագրին թույլ է տալիս մուտք գործել դեպի Bluetooth MAP տվյալները:"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Ծրագրին թույլ է տալիս մուտք գործել դեպի Bluetooth MAP տվյալները:"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"միանալ WiMAX-ին և անջատվել դրանից"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Թույլ է տալիս հավելվածին պարզել, արդյոք WiMAX-ը միացված է և ցանկացած միացված WiMAX ցանցի մասին տեղեկություններ:"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Փոխել WiMAX-ի կարգավիճակը"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Թույլ է տալիս հավելվածին մուտք գործել արտաքին պահոց բոլոր օգտվողների համար:"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"մուտք քեշի ֆայլերի համակարգ"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Թույլ է տալիս հավելվածին գրել և կարդալ քեշ ֆայլային համակարգը:"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"կատարել կամ ստանալ ինտերնետային զանգեր"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Թույլ է տալիս հավելվածին օգտագործել SIP ծառայությունը` ինտերնետային զանգեր կատարելու/ստանալու համար:"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"կատարել կամ ստանալ SIP զանգեր"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ծրագրին թույլ է տալիս կատարել և ստանալ SIP զանգեր:"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"փոխազդել մուտքային զանգի էկրանի հետ"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Թույլ է տալիս ծրագրին վերահսկել՝ երբ և ինչպես է օգտվողը տեսնում մուտքային զանգը էկրանին:"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"կարդալ պատմական ցանցի օգտագործումը"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Թույլ է տալիս հավելվածին կարդալ հատուկ ցանցերի և հավելվածների համար ցանցի օգտագործման պատմությունը:"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"կառավարել ցանցի քաղաքականությունը"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ծրագրին թույլ է տալիս տրամադրել և օգտագործել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Ստանալ Android Beam-ով փոխանցման կարգավիճակը"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ծրագրին թույլ է տալիս ստանալ Android Beam-ով ընթացիկ փոխանցումների մասին տեղեկատվություն:"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"հեռացնել DRM վկայագրեր"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Ծրագրին թույլ է տալիս հեռացնել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Սահմանել գաղտնաբառի կանոնները"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Վերահսկել էկրանի ապակողպման գաղտնաբառերի թույլատրելի երկարությունն ու գրանշանները:"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Վերահսկել էկրանի ապակողպման փորձերը"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM քարտը բացակայում է կամ չի կարող կարդացվել: Մտցրեք SIM քարտ:"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Անպիտան SIM քարտ:"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ձեր SIM քարտը ընդմիշտ կասեցված է:\n Կապվեք ձեր անլար ծառայությունների մատակարարի հետ մեկ այլ SIM քարտի համար:"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Նախորդ հետքի կոճակ"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Հաջորդ հետագծի կոճակ"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Դադարի կոճակ"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Նվագարկման կոճակ"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Կանգի կոճակ"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Նախորդը"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Հաջորդը"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Դադարեցնել"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Նվագարկել"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Դադարեցնել"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Հետ փաթաթել"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Արագ առաջ անցնել"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Միայն արտակարգ իրավիճակների զանգեր"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Ցանցը կողպված է"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM քարտը PUK-ով կողպված է:"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Ձևաչափ"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB վրիպազերծումը միացված է"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Հպեք` USB կարգաբերումը կասեցնելու համար:"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Փոխել ստեղնաշարը"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Ընտրել ստեղնաշար"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Ֆիզիկական ստեղնաշար"</string>
     <string name="hardware" msgid="7517821086888990278">"Սարքաշար"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Ընտրեք ստեղնաշարի դիրքը"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Նվազեցնել ժամը"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Դնել PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Դնել AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ԿՀ"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ԿԱ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Աճեցնել ամիսը"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Նվազեցնել ամիսը"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Աճեցնել օրը"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Ընդունե՞լ զանգը:"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Միշտ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Միայն մեկ անգամ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s-ը չի աջակցում աշխատանքային պրոֆիլներ:"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Գրասալիկ"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Հեռախոս"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Ականջակալներ"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Ընտրված է <xliff:g id="ITEM">%1$s</xliff:g> տարրը"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> թիվը ջնջված է"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Աշխատանքային <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Դուք գտնվում եք Lock-to-app ռեժիմում: Սեղմեք և պահեք վերջին ծրագրերի կոճակը՝ դուրս գալու համար"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Դուք գտնվում եք Lock-to-app ռեժիմում:"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Օգտագործե՞լ lock-to-app գործառույթը:"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Lock-to-app գործառույթը արգելափակում է ցուցադրումը առանձին ծրագրերում:\n\nԳործառույթն անջատելու համար սեղմեք և պահեք վերջին ծրագրերի կոճակը:"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ՈՉ, ՇՆՈՐՀԱԿԱԼՈՒԹՅՈՒՆ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"Այո"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Ծրագրի մուտքը կողպված է"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ծրագրի մուտքն այլևս կողպված չէ"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Հայցել %1$s` փակելուց առաջ"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ապակողպող նախշ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"գաղտնաբառ"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index adfdd44..465f9d4 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Nomor Penelepon Masuk"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Nomor Penelepon Keluar"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID Saluran yang Tersambung"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Batasan ID Saluran yang Tersambung"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Penerusan panggilan"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Nada tunggu"</string>
     <string name="BaMmi" msgid="455193067926770581">"Pemblokiran panggilan"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Mengizinkan pemegang mengirimkan tujuan kepada administrator perangkat. Tidak pernah diperlukan oleh apl normal."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"mengikat ke masukan TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Memungkinkan pemegang mengikat ke antarmuka tingkat tinggi dari masukan TV. Tidak pernah diperlukan oleh aplikasi normal."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"mengubah kontrol induk"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Memungkinkan pemegang memodifikasi data kontrol induk sistem. Tidak pernah dibutuhkan untuk aplikasi normal."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"menambah atau menghapus admin perangkat"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Memungkinkan pemegang menambahkan atau menghapus administrator perangkat aktif. Tidak pernah dibutuhkan oleh aplikasi normal."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ubah orientasi layar"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"memungkinkan penyandingan Bluetooth oleh Aplikasi"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Memungkinkan aplikasi disandingkan dengan perangkat jarak jauh tanpa interaksi pengguna."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Memungkinkan aplikasi disandingkan dengan perangkat jarak jauh tanpa interaksi pengguna."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"akses data MAP Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Memungkinkan aplikasi mengakses data MAP Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Memungkinkan aplikasi mengakses data MAP Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"sambungkan dan putuskan dari WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Memungkinkan aplikasi menentukan apakah WiMAX diaktifkan dan informasi tentang jaringan WiMAX apa saja yang tersambung."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Ubah status WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Izinkan aplikasi mengakses penyimpanan eksternal untuk semua pengguna."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"akses sistem file cache."</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Mengizinkan apl membaca dan menulis pada sistem file cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"lakukan//terima panggilan internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Mengizinkan apl menggunakan layanan SIP untuk melakukan/menerima panggilan internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"lakukan/terima panggilan SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Izinkan aplikasi melakukan dan menerima panggilan SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"berinteraksi dengan layar dalam panggilan"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Memungkinkan aplikasi mengontrol kapan dan bagaimana pengguna melihat layar dalam panggilan."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"baca riwayat penggunaan jaringan"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Mengizinkan apl membaca penggunaan jaringan historis untuk apl dan jaringan tertentu."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"kelola kebijakan jaringan"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Memungkinkan aplikasi menyediakan dan menggunakan sertifikat DRM. Tidak pernah dibutuhkan untuk aplikasi normal."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Menerima status transfer Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Memungkinkan aplikasi ini menerima informasi tentang transfer Android Beam saat ini"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"membuang serifikat DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Memungkinkan aplikasi membuang sertifikat DRM. Tidak pernah dibutuhkan untuk aplikasi normal."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Setel aturan sandi"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrol panjang dan karakter yang diizinkan dalam sandi pembuka layar."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Upaya pembukaan kunci layar monitor"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kartu SIM tidak ada atau tidak dapat dibaca. Masukkan kartu SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Kartu SIM tidak dapat digunakan."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kartu SIM Anda telah dinonaktifkan secara permanen.\n Hubungi penyedia layanan nirkabel Anda untuk kartu SIM lain."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tombol trek sebelumnya"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tombol trek berikutnya"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Tombol jeda"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Tombol putar"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Tombol hentikan"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Lagu sebelumnya"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Lagu berikutnya"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Jeda"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Putar"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Berhenti"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Putar Ulang"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Maju cepat"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Panggilan darurat saja"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Jaringan terkunci"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Kartu SIM terkunci PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Debugging USB terhubung"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Sentuh untuk menonaktifkan debugging USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Ubah keyboard"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Pilih keyboard"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Keyboard fisik"</string>
     <string name="hardware" msgid="7517821086888990278">"Perangkat Keras"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pilih tata letak keyboard"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Kurangi jam"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Menyetel PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Setel AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Tambah bulan"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Kurangi bulan"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Tambah hari"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Terima panggilan?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Selalu"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Hanya sekali"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s tidak mendukung profil kerja."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Ponsel"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Headphone"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> dipilih"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> dihapus"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Kantor <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Anda dalam mode kunci ke aplikasi. Untuk keluar, sentuh dan tahan tombol Terkini"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Anda dalam mode Kunci ke Aplikasi."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Gunakan kunci ke aplikasi?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Kunci ke aplikasi mengunci tampilan ke satu aplikasi tunggal.\n\nUntuk keluar, sentuh dan tahan tombol Terkini."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"TIDAK, TERIMA KASIH"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"MULAI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Terkunci ke aplikasi"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Tidak lagi terkunci ke aplikasi"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Minta %1$s sebelum keluar"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"pola pembuka kunci"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"sandi"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml
index d3b86ad..716c789 100644
--- a/core/res/res/values-is-rIS/strings.xml
+++ b/core/res/res/values-is-rIS/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Númerabirting innhringinga"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Númerabirting úthringinga"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Auðkenni tengdrar línu"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Auðkennistakmörkun tengdrar línu"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Símtalsflutningur"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Símtal í bið"</string>
     <string name="BaMmi" msgid="455193067926770581">"Útilokun símtala"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Leyfir handhafa að senda tilgang til stjórnanda tækis. Ætti aldrei að vera nauðsynlegt fyrir venjuleg forrit."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bindast sjónvarpsinntaki"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Leyfir handhafa að bindast efsta viðmótslagi sjónvarpsinntaks. Ætti aldrei að vera nauðsynlegt fyrir venjuleg forrit."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"breyta barnalæsingum"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Leyfir handhafa að breyta barnalæsingargögnum kerfisins. Ætti aldrei að vera nauðsynlegt fyrir venjuleg forrit."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"bæta við eða fjarlægja stjórnanda tækis"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Leyfir forriti að bæta við eða fjarlægja virka stjórnendur tækis. Ætti aldrei að vera nauðsynlegt fyrir venjuleg forrit."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"breyta stefnu skjásins"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"leyfa Bluetooth-pörun forrits"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Leyfir forriti að parast við fjartengd tæki án inngrips notanda."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Leyfir forriti að parast við fjartengd tæki án inngrips notanda."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"fá aðgang að MAP-gögnum Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Veitir forritinu aðgang að MAP-gögnum Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Veitir forritinu aðgang að MAP-gögnum Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"tengjast og aftengja frá WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Leyfir forriti að greina hvort WiMAX er virkt og upplýsingar um tengd WiMAX-net."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Breyta stöðu WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Leyfir forriti að fá aðgang að ytri geymslu allra notenda."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"aðgangur að skráakerfi skyndiminnis"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Leyfir forriti að lesa og skrifa í skráakerfi skyndiminnis."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"hringja/svara netsímtölum"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Leyfir forriti að nota SIP-þjónustuna til að hringja/svara netsímtölum."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"hringja/svara SIP-símtölum"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Leyfir forritinu að hringja og svara SIP-símtölum."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"eiga samskipti við símtalsskjá"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Leyfir forriti að stjórna því hvenær og hvernig notandi sér símtalsskjá."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lesa söguleg gögn um netnotkun"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Leyfir forriti að lesa söguleg gögn um netnotkun fyrir tiltekin net og forrit."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"hafa umsjón með netstefnu"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Leyfir forriti að úthluta og nota DRM-vottorð. Ætti aldrei að þurfa fyrir venjuleg forrit."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Fá flutningsstöðu Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Leyfir þessu forriti að fá upplýsingar um flutning sem fram fer með Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"fjarlægja DRM-vottorð"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Leyfir forriti að fjarlægja DRM-vottorð. Ætti aldrei að vera nauðsynlegt fyrir venjuleg forrit."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Setja reglur um aðgangsorð"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Stjórna lengd aðgangsorða til að taka skjáinn úr lás og leyfðum stöfum."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Fylgjast með tilraunum til að taka skjáinn úr lás"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort vantar eða það er ekki læsilegt. Settu SIM-kort í."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ónothæft SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortið hefur verið gert varanlega óvirkt.\n Hafðu samband við símafyrirtækið þitt til að fá annað SIM-kort."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Hnappur fyrir fyrra lag"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Hnappur fyrir næsta lag"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Hnappur til að gera hlé"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Hnappur til að spila"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Hnappur til að stöðva"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Fyrra lag"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Næsta lag"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Hlé"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Spila"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stöðva"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Spóla til baka"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Spóla áfram"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Aðeins neyðarsímtöl"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Net læst"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortið er PUK-læst."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Forsníða"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-villuleit tengd"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Snertu til að slökkva á USB-villuleit."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Skipta um lyklaborð"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Velja lyklaborð"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Vélbúnaðarlyklaborð"</string>
     <string name="hardware" msgid="7517821086888990278">"Vélbúnaður"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Veldu lyklaskipan"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Niður um klukkustund"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Velja e.h."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Velja f.h."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"eh"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"fh"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Upp um mánuð"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Niður um mánuð"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Upp um dag"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Samþykkja símtal?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alltaf"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Bara einu sinni"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s styður ekki vinnusnið."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Spjaldtölva"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Sími"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Heyrnartól"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> valið"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eytt"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> í vinnu"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Forritslæsing er virk. Til aflétta henni heldurðu inni hnappinum fyrir nýlegt."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Forritslæsing er virk."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Nota forritslæsingu?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Forritslæsing læsir skjánum þannig að hann birti aðeins eitt forrit.\n\nTil aflétta henni heldurðu inni hnappinum fyrir nýlegt."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEI, TAKK"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"RÆSA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Læst í forriti"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ekki lengur læst í forriti"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Biðja um %1$s áður en lokað er"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-númer"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"opnunarmynstur"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"aðgangsorð"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 5e4efa2..13374b7 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID chiamante in entrata"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID chiamante in uscita"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID linea connessa"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Limitazione ID linea connessa"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Deviazione chiamate"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Avviso di chiamata"</string>
     <string name="BaMmi" msgid="455193067926770581">"Blocco chiamate"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Consente l\'invio di intent a un amministratore del dispositivo. L\'autorizzazione non dovrebbe mai essere necessaria per le normali applicazioni."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"collegamento a ingresso TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Consente al titolare di collegarsi all\'interfaccia di primo livello di un ingresso TV. Non dovrebbe essere mai necessario per le normali applicazioni."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modifica dei controlli genitori"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Consente al titolare di modificare i dati relativi ai controlli genitori del sistema. Non dovrebbe mai essere necessaria per le normali applicazioni."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"aggiungere o rimuovere un amministratore del dispositivo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Consente al titolare di aggiungere o rimuovere gli amministratori attivi del dispositivo. Non dovrebbe mai essere necessario per le normali applicazioni."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modifica orientamento dello schermo"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"accoppiamento Bluetooth dall\'applicazione"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Consente l\'accoppiamento dell\'app con dispositivi remoti senza l\'interazione dell\'utente."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Consente l\'accoppiamento dell\'app con dispositivi remoti senza l\'interazione dell\'utente."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"accesso ai dati MAP Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Consente all\'app di accedere ai dati MAP Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Consente all\'app di accedere ai dati MAP Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"connessione e disconnessione da WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Consente all\'applicazione di determinare se WiMAX è abilitato e informazioni su eventuali reti WiMAX che sono connesse."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Modifica stato WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Consente all\'applicazione di accedere alla memoria esterna di tutti gli utenti."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accesso al filesystem nella cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Consente all\'applicazione di leggere e scrivere il filesystem nella cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"effettuazione/ricezione chiamate Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Consente all\'applicazione di utilizzare il servizio SIP per effettuare/ricevere chiamate Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"fare/ricevere chiamate SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Consente all\'app di effettuare e ricevere chiamate SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interazione con lo schermo durante una chiamata"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Consente all\'app di stabilire quando e come l\'utente vede lo schermo durante una chiamata."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lettura dati storici di utilizzo della rete"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Consente all\'applicazione di leggere dati storici di utilizzo della rete per reti e applicazioni specifiche."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gestione norme rete"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Consente a un\'app di fornire e utilizzare ceritificati DRM. Questa opzione non deve essere utilizzata per app normali."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Ricevi lo stato dei trasferimenti Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Consente all\'applicazione di ricevere informazioni sugli attuali trasferimenti Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"rimozione di certificati DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Consente a un\'applicazione di rimuovere certificati DRM. Non dovrebbe mai essere necessaria per le normali applicazioni."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Impostazione regole password"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlla la lunghezza e i caratteri ammessi nelle password di sblocco dello schermo."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Controllo tentativi di sblocco dello schermo"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Scheda SIM mancante o non leggibile. Inserisci una scheda SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Scheda SIM inutilizzabile."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"La scheda SIM è stata disattivata definitivamente.\n Contatta il fornitore del tuo servizio wireless per ricevere un\'altra scheda SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Pulsante traccia precedente"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Pulsante traccia successiva"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pulsante Pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Pulsante Riproduci"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Pulsante di arresto"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Traccia precedente"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Traccia successiva"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Metti in pausa"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Riproduci"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Interrompi"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Riavvolgi"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avanti veloce"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Solo chiamate di emergenza"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Rete bloccata"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"La SIM è bloccata tramite PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatta"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Debug USB collegato"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Tocca per disattivare il debug USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Cambia tastiera"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Scegli tastiere"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Tastiera fisica"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Seleziona layout tastiera"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Riduci ore"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Imposta PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Imposta AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumenta mese"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Riduci mese"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumenta giorno"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Accettare la chiamata?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Solo una volta"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s non supporta il profilo di lavoro."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefono"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Cuffie audio"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Elemento selezionato: <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminato"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> lavoro"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Sei in modalità Blocca su app. Per uscire, tocca e tieni premuto il pulsante Recenti."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Sei in modalità Blocca su app."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Utilizzare Blocca su app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"La funzione Blocca su app consente di bloccare la visualizzazione in un\'unica app.\n\nPer uscire, tocca e tieni premuto il pulsante Recenti."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NO, GRAZIE"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"AVVIA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Avvia Blocca su app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Esci da Blocca su app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Chiedi %1$s prima di uscire"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"sequenza di sblocco"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"password"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 057c105..01444be 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"זיהוי מתקשר של שיחה נכנסת"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"זיהוי מתקשר בשיחה יוצאת"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"מזהה של קו מחובר"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"הגבלה של מזהה קו מחובר"</string>
     <string name="CfMmi" msgid="5123218989141573515">"העברת שיחות"</string>
     <string name="CwMmi" msgid="9129678056795016867">"שיחה ממתינה"</string>
     <string name="BaMmi" msgid="455193067926770581">"חסימת שיחות"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"מאפשר למשתמש לשלוח כוונות למנהל התקנים. הרשאה זו לעולם אינה נחוצה לאפליקציות רגילים."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"איגוד לקלט טלוויזיה"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"הרשאה זו מאפשרת למחזיק בה לבצע איגוד לממשק הרמה העליונה של קלט טלוויזיה. הרשאה זו אף פעם אינה אמורה להיות נחוצה לאפליקציות רגילות."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"שינוי בקרת הורים"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"הרשאה זו מאפשרת למקבל לשנות את נתוני בקרת ההורים של המערכת. באפליקציות רגילות אף פעם לא אמור להיות בה צורך."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"הוספה או הסרה של מנהלי מכשיר"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"מאפשרת לבעלים להוסיף או להסיר מנהלי מכשיר פעילים. לעולם לא אמורה להיות נחוצה עבור אפליקציות רגילות."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"שנה את כיוון המסך"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"‏אפשר התאמת Bluetooth על ידי האפליקציה"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"מאפשרת לאפליקציה לבצע התאמה עם מכשירים מרוחקים ללא התערבות המשתמש."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"מאפשרת לאפליקציה לבצע התאמה עם מכשירים מרוחקים ללא התערבות המשתמש."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"‏גישה אל נתוני Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"‏מאפשר לאפליקציה לגשת אל נתוני Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"‏מאפשר לאפליקציה לגשת אל נתוני Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"‏התחברות והתנתקות מ-WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"‏מאפשר לאפליקציה לדעת האם WiNMAX מופעל, כמו גם לקבל מידע האם רשתות WiNMAX כלשהן מחוברות."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"‏שנה את מצב WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"מאפשר לאפליקציה לגשת לאחסון חיצוני עבור כל המשתמשים."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"גישה למערכת הקבצים בקובץ השמור"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"מאפשר לאפליקציה לקרוא ולכתוב במערכת הקבצים של הקבצים השמורים."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"בצע/קבל שיחות אינטרנט"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"‏מאפשר לאפליקציה להשתמש בשירות SIP כדי לבצע/לקבל שיחות אינטרנט."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"‏ביצוע/קבלה של שיחות SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"‏אפשר לאפליקציה לבצע ולקבל שיחות SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"צור אינטראקציה עם מסך שיחה נכנסת"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"מאפשר לאפליקציה לקבוע מתי ואיך המשתמש יראה שיחה נכנסת על המסך."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"קריאת נתוני שימוש היסטוריים ברשת"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"מאפשר לאפליקציה לקרוא נתוני שימוש היסטוריים ברשת עבור רשתות ואפליקציות ספציפיות."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"נהל מדיניות רשת"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏מאפשרת לאפליקציה לנהל תצורה של אישורי DRM ולהשתמש בהם. לעולם לא אמורה להיות נחוצה עבור אפליקציה רגילה."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"‏קבלת סטטוס העברה של Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"‏מאפשר לאפליקציה הזו לקבל מידע על העברות Android Beam נוכחיות"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"‏הסרת אישורי DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"‏הרשאה זו מאפשרת לאפליקציה להסיר אישורי DRM. באפליקציות רגילות אף פעם לא אמור להיות בה צורך."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"הגדר כללי סיסמה"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"שלוט באורך ובתווים המותרים בסיסמאות לביטול נעילת מסך."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"עקוב אחר ניסיונות לביטול נעילת מסך"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"‏כרטיס ה-SIM חסר או שלא ניתן לקרוא אותו. הכנס כרטיס SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"‏לא ניתן להשתמש בכרטיס SIM זה."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"‏כרטיס ה-SIM שלך הושבת לצמיתות.\nפנה לספק השירות האלחוטי שלך לקבלת כרטיס SIM אחר."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"לחצן הרצועה הקודמת"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"לחצן הרצועה הבאה"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"לחצן ההשהיה"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"לחצן ההפעלה"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"לחצן העצירה"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"הרצועה הקודמת"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"הרצועה הבאה"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"השהה"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"הפעל"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"הפסק"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"הרץ אחורה"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"הרץ קדימה"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"שיחות חירום בלבד"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"רשת נעולה"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"‏כרטיס SIM נעול באמצעות PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"פרמוט"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"‏ניקוי באגים של USB מחובר"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"‏גע כדי להשבית את ניקוי הבאגים בהתקן ה-USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"שינוי מקלדת"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"בחר מקלדות"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"מקלדת פיזית"</string>
     <string name="hardware" msgid="7517821086888990278">"חומרה"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"בחירת פריסת מקלדת"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"הפחת שעה"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"‏הגדר PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"‏הגדר AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"הוסף חודש"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"הפחת חודש"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"הוסף יום"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"האם לקבל את השיחה?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"תמיד"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"רק פעם אחת"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"‏%1$s אינו תומך בפרופיל עבודה."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"טאבלט"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"טלפון"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"אוזניות"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> נבחר"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> נמחק"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"עבודה <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"אתה במצב \'נעילה באפליקציה\'. כדי לצאת, גע נגיעה ממושכת בלחצן \'אחרונים\'"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"אתה במצב \'נעילה באפליקציה\'."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"האם להשתמש ב\'נעילה באפליקציה\'?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"\'נעילה באפליקציה\' נועלת את התצוגה באפליקציה יחידה.\n\nכדי לצאת, גע נגיעה ממושכת בלחצן \'אחרונים\'."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"לא, תודה"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"הפעל"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"נעול באפליקציה"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"הנעילה באפליקציה הסתיימה"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"‏בקש %1$s לפני יציאה"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"‏מספר PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"קו ביטול נעילה"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"סיסמה"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index ac76478..09d51da 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"着信時の発信者番号"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"発信者番号"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"接続回線ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"接続回線IDの制限"</string>
     <string name="CfMmi" msgid="5123218989141573515">"着信転送"</string>
     <string name="CwMmi" msgid="9129678056795016867">"通話中着信"</string>
     <string name="BaMmi" msgid="455193067926770581">"発信制限"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"デバイス管理者へのintentの送信を所有者に許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"テレビの入力へのバインド"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"テレビの入力のトップレベルインターフェースにバインドすることを所有者に許可します。通常のアプリでは不要です。"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ペアレンタルコントロールの変更"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"システムのペアレンタルコントロールデータを変更することを所有者に許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"端末の管理者の追加または削除"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"有効な端末の管理者を追加または削除することを所有者に許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"画面の向きの変更"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"アプリによるBluetoothペア設定を許可"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ユーザーの操作なしでリモート端末とペア設定することをアプリに許可します。"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ユーザーの操作なしでリモート端末とペア設定することをアプリに許可します。"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAPデータへのアクセス"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Bluetooth MAPデータへのアクセスをアプリに許可します。"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Bluetooth MAPデータへのアクセスをアプリに許可します。"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAXへの接続と切断"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAXがONになっているかどうかを識別し、接続されているWiMAXネットワークの情報を表示することをアプリに許可します。"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX状態の変更"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"すべてのユーザーの外部ストレージへのアクセスをアプリに許可します。"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"キャッシュファイルシステムにアクセス"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"キャッシュファイルシステムの読み書きをアプリに許可します。"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"インターネット通話の発着信"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"インターネット通話の発着信にSIPサービスを使用することをアプリに許可します。"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP通話の発着信"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP通話の発着信をアプリに許可します。"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"通話画面とのインタラクション"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"通話画面をユーザーに表示するタイミングと方法の制御をアプリに許可します。"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ネットワーク使用履歴の読み取り"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"特定のネットワークやアプリに関するネットワーク使用履歴の読み取りをアプリに許可します。"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ネットワークポリシーの管理"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM証明書のプロビジョニングと使用をアプリに許可します。通常のアプリでは不要です。"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Androidビーム転送のステータスを受信"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"現在のAndroidビーム転送に関する情報を受信することをこのアプリに許可します。"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM証明書の削除"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM証明書の削除をアプリに許可します。通常のアプリでは不要です。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"パスワードルールの設定"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"画面ロック解除パスワードの長さと使用できる文字を制御します。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"画面ロック解除試行の監視"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIMカードが見つからないか読み取れません。SIMカードを挿入してください。"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIMカードは使用できません。"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"お使いのSIMカードは永久に無効となっています。\nワイヤレスサービスプロバイダに問い合わせて新しいSIMカードを入手してください。"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"前のトラックボタン"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"次のトラックボタン"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"一時停止ボタン"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"再生ボタン"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"停止ボタン"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"前のトラック"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"次のトラック"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"一時停止"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"再生"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"停止"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"巻き戻し"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"早送り"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"緊急通報のみ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ネットワークがロックされました"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIMカードはPUKでロックされています。"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"フォーマット"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USBデバッグが接続されました"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"タップしてUSBデバッグを無効にします。"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"キーボードの変更"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"キーボードの選択"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"物理キーボード"</string>
     <string name="hardware" msgid="7517821086888990278">"ハードウェア"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"キーボードレイアウトの選択"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"1時間戻します"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"午後に設定"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"午前に設定"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"午後"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"午前"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"1か月進めます"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"1か月戻します"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"1日進めます"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"通話を受けますか?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"常時"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"1回のみ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$sはワークプロフィールをサポートしていません。"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"タブレット"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"携帯端末"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ヘッドホン"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g>を選択しました"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g>を削除しました"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"仕事の<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"アプリロックモードです。終了するには、[最近]ボタンを押し続けます。"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"現在アプリロックモードです。"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"アプリロックの使用"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"アプリロックでは表示を単一のアプリにロックします。\n\n終了するには、[最近]ボタンを押し続けます。"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"いいえ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"開始する"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"アプリにロックされています"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"アプリにロックされていません"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"終了する前に%1$sを求める"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ロック解除パターン"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"パスワード"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml
index 454ed0d..9849d9b 100644
--- a/core/res/res/values-ka-rGE/strings.xml
+++ b/core/res/res/values-ka-rGE/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"შემომავალი ზარის აბონენტის ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"გამავალი მრეკავის ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"დაუკავშირდა Line ID-ს"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"დაუკავშირდა Line ID Restriction-ს"</string>
     <string name="CfMmi" msgid="5123218989141573515">"ზარის გადამისამართება"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ზარის ლოდინი"</string>
     <string name="BaMmi" msgid="455193067926770581">"ზარის აკრძალვა"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"აპს შეეძლება მოწყობილობის ადმინისტრატორისთვის intent ობიექტების გაგზავნა. არასდროს გამოიყენება ჩვეულებრივ აპებში."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV შეყვანასთან მიბმა"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"აპს შეეძლება TV შეყვანის ზედა დონის ინტერფეისთან დაკავშირება. არასდროს გამოიყენება ჩვეულებრივ აპებში."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"მშობელთა კონტროლის შეცვლა"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"საშუალებას აძლევს მფლობელს შეცვალოს სისტემის მშობელთა კონტროლის მონაცემები. ეს წესით ჩვეულებრივ აპებს არ უნდა დაჭირდეს."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"მოწყობილობის ადმინისტრატორს დამატება ან ამოშლა"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"საშუალებას აძლევს მფლობელს დაამატოს ან ამოშალოს მოწყობილობის აქტიური ადმინისტრატორები. ჩვეულებრივ აპებს, ალბათ, არასოდეს დაჭირდება"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ეკრანის ორიენტაციის შეცვლა"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"აპლიკაციის მიერ Bluetooth დაწყვილების განხორციელების ნების დართვა"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"უფლებას ანიჭებს აპს დააწყვილოს დისტანციური მოწყობილობები მომხმარებელთან ინტერაქციის გარეშე."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"უფლებას ანიჭებს აპს დააწყვილოს დისტანციური მოწყობილობები მომხმარებელთან ინტერაქციის გარეშე."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP მონაცემებზე წვდომა"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"აპს ანიჭებს Bluetooth MAP მონაცემებზე წვდომის ნებართვას."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"აპს ანიჭებს Bluetooth MAP მონაცემებზე წვდომის ნებართვას."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-თან დაკავშირება და კავშირის გაწყვეტა"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"აპს შეეძლება განსაზღვროს, WiMAX არის თუ არა ჩართული და ასევე ინფორმაცია ნებისმიერი დაკავშირებული WiMAX ქსელის შესახებ."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX მდგომარეობის შეცვლა"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"აპს შეეძლება ყველა მომხმარებლის გარე მეხსიერებასთან წვდომა."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"ქეშის ფაილურ სისტემაზე წვდომა"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"აპებს აძლევს ქეშირებული სისტემური ფაილების წაკითხვისა და მათში ჩანაწერების გაკეთების საშუალებას."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ინტერნეტ-ზარების წამოწყება/მიღება"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"აპს შეეძლება, გამოიყენოს SIP სერვისი ინტერნეტ ზარების განსახორციელებლად / საპასუხოდ."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP ზარების წამოწყება/მიღება"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"ნებას რთავს აპს განახორციელოს და მიიღოს SIP ზარები."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ზარს-შიდა ეკრანთან ინტერაქცია"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"საშუალებას აძლევს აპს აკონტროლოს, თუ როდის და როგორ იხილავს მომხმარებელი ზარს-შიდა ეკრანს."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ქსელის გამოყენების ისტორიის წაკითხვა"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"აპს შეეძლება კონკრეტული ქსელისა და აპების ისტორიული ქსელის გამოყენების წაკითხვას."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ქსელის დებულების მართვა"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"საშუალებას აძლევს აპლიკაციას დანერგოს და გამოიყენოს DRM სერთიფიკატები. ეს უფლება ჩვეულებრივ აპებს არ ჭირდება."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam ტრანსფერის სტატუსის მიღება"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ნებას რთავს ამ აპლიკაციას, მიიღოს ინფორმაცია მიმდინარე Android Beam-ის ტრანსფერების შესახებ"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM სერტიფიკატების ამოშლა"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"საშუალებას აძლევს აპლიკაციას ამოშალოს DRM სერtიფიკატები. ეს წესით ჩვეულებრივ აპებს არ უნდა დაჭირდეს."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"პაროლის წესების დაყენება"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"გააკონტროლეთ ეკრანის განბლოკვის პაროლში დაშვებული სიმბოლოები და მისი სიგრძე."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ეკრანის განბლოკვის მცდელობების გაკონტროლება"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM ბარათი არ არის ან არ იკითხება. ჩადეთ SIM ბარათი."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"არამოხმარებადი SIM ბარათი."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"თქვენი SIM ბარათი გამუდმებით გამორთული იყო.\n დაუკავშირდით თქვენი უკაბელო სერვისის პროვაიდერს სხვა SIM ბარათისთვის."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"წინა ჩანაწერი"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"შემდეგი ჩანაწერი"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"პაუზა"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"დაკვრის ღილაკი"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"შეწყვეტა"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"წინა ჩანაწერი"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"შემდეგი ჩანაწერი"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"პაუზა"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"დაკვრა"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"შეწყვეტა"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"უკან გადახვევა"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"წინ გადახვევა"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"მხოლოდ გადაუდებელი დახმარების ზარები"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ქსელი ჩაკეტილია"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM ბარათი არის PUK-ით დაბლოკილი."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"დაფორმატება"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB გამართვა შეერთებულია"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"შეეხეთ, რათა შეწყვიტოთ USB-ის გამართვა."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"კლავიატურის შეცვლა"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"კლავიატურების არჩევა"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ფიზიკური კლავიატურა"</string>
     <string name="hardware" msgid="7517821086888990278">"მოწყობილობა"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"შეარჩიეთ კლავიატურის განლაგება."</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"საათით უკან"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM-ის დაყენება"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM-ის დაყენება"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"თვის მომატება"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ერთი თვით უკან"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"დღის მომატება"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"უპასუხებთ ზარს?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ყოველთვის"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"მხოლოდ ერთხელ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s-ს სამუშაო პროფილის მხარდაჭერა არ გააჩნია."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ტაბლეტი"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ტელეფონი"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ყურსასმენები"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"არჩეულია <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> წაიშალა"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"სამსახური <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"თქვენ იმყოფებით აპზე ფიქსაციის რეჟიმში. გამოსასვლელად, დააჭირეთ და დააყოვნეთ ბოლო აპების ღილაკზე"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"თქვენ იმყოფებით აპზე ფიქსაციის რეჟიმში."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"გსურთ „აპზე ფიქსაციის“ გამოყენება?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"„აპზე ფიქსაცია“ კეტავს ეკრანს ერთ აპში.\n\nგასასვლელად დააჭირეთ და არ აუშვათ ღილაკს „ბოლო აპები“."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"არა, გმადლობთ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"დაწყება"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"აპზე დაფიქსირებული"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"აპზე დაფიქსირებული აღარ არის"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"გასვლამდე %1$s-ის მოთხოვნა"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-კოდი"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"განბლოკვის ნიმუში"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"პაროლი"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml
index cd5c34c..3c3d15b 100644
--- a/core/res/res/values-kk-rKZ/strings.xml
+++ b/core/res/res/values-kk-rKZ/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID (ұялы құрылғы анықтағыш)"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Келген қоңырау шалушының жеке анықтағышы"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Шыққан қоңырау шалушының жеке анықтағышы"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Қосылған желі идентификаторы"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Қосылған желі идентификаторын шектеу"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Қоңырауды басқа нөмірге бағыттау"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Күтудегі қоңырау"</string>
     <string name="BaMmi" msgid="455193067926770581">"Қоңырауды бөгеу"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Иесіне ниеттерді құрылғы әкімшісіне жіберуге рұқсат береді. Қалыпты қолданбалар үшін ешқашан қажет болмайды."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ТД кірісіне байластыру"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Пайдаланушыға теледидар кірісінің жоғары деңгейлі интерфейсіне байластыруға рұқсат береді. Қалыпты қолданбалар үшін ешқашан қажет болмайды."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ата-аналық бақылау ережелерін өзгерту"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Иесіне жүйенің ата-аналық бақылау ережелерінің деректерін өзгертуге рұқсат етеді. Қалыпты қолданбалар үшін ешқашан қажет болмайды."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"құрылғы әкімшісін қосу немесе алу"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Пайдаланушыға белсенді құрылғы әкімшілерін қосу немесе алу мүмкіндігін береді. Қалыпты қолданбаны қажет етпеуі тиіс."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"экран бағытын өзгерту"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Қолданбаның Bluetooth байланысымен жұпталу мүмкіндігі"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Қолданбаның қашықтан басқарылатын құрылығыларымен пайдаланушының қатысуынсыз жұпталу мүмкіндігін береді."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Қолданбаның қашықтан басқарылатын құрылығыларымен пайдаланушының қатысуынсыз жұпталу мүмкіндігін береді."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP деректеріне қатынасу"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Қолданбаға Bluetooth MAP деректеріне қатынасуға рұқсат етеді."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Қолданбаға Bluetooth MAP деректеріне қатынасуға рұқсат етеді."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX байланысына жалғану және ажырау"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Қолданбаға WiMAX қосылғаны және қосылған қандай да WiMAX желісі жайлы ақпаратты анықтау мүмкіндігін береді."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX күйін өзгерту"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Қолданбаға барлық пайдаланушылардың сыртқы жадына кіру мүмкіндігін береді."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"кэш файл жүйесіне кіру"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Қолданбаға кэш файлдық жүйесін оқуға және оған жазуға рұқсат береді."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Интернет қоңырауларын шалу/қабылдау"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Қолданбаға интернет қоңырауларын шалу/алу үшін SIP қызметін пайдалануға рұқсат береді."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP қоңырауларын шалу/қабылдау"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Қолданбаға SIP қоңырауларын шалуға және қабылдауға рұқсат етеді."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"қоңырау кезінде экранды қолдану"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Қолданбаға пайдаланушының қоңырау кезінде экранды қашан және қалай көретінін басқару мүмкіндігін береді."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"тарихи желі қолданысын оқу"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Қолданбаға белгілі бір желілер және қолданбалар үшін журналдық желіні пайдалануды оқуға рұқсат береді."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"желі саясатын басқару"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Қолданбаға DRM сертификаттарын қамтамасыз етуге және пайдалануға рұқсат береді. Қалыпты қолданбалар үшін ешқашан қажет болмайды."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam тасымалдау күйін алу"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Осы қолданбаға ағымдағы Android Beam тасымалдаулары туралы ақпарат алуға рұқсат ету"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM сертификаттарын жою"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Қолданбаға DRM сертификаттарын жоюға рұқсат етеді. Қалыпты қолданбалар үшін ешқашан қажет болмайды."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Кілтсөз ережелерін тағайындау"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Экранды ашу кілтсөздерінің ұзындығы мен қолдануға болатын таңбаларды басқару."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Экранды ашу әркеттерін бақылау"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM картасы жоқ немесе оны оқу мүмкін емес. SIM картасына салыңыз."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Қолдануға жарамсыз SIM картасы."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картаңыз біржола өшірілді. \n Сымсыз байланыс провайдеріне хабарласып, басқа SIM картасын алыңыз."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Алдыңғы жол түймесі"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Келесі жол түймесі"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Пауза түймесі"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Ойнату түймесі"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Тоқтату түймесі"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Алдыңғы трек"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Келесі трек"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Кідірту"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Ойнату"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Тоқтату"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Кері айналдыру"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Жылдам алға айналдыру"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Төтенше қоңыраулар ғана"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Желі бекітілген"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM картасы PUK арқылы бекітілген."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Формат"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB жөндеу қосылған"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB күйін келтіруді өшіру үшін түртіңіз."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Пернетақтаны өзгерту"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Пернетақталарды таңдау"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Қатты пернетақта"</string>
     <string name="hardware" msgid="7517821086888990278">"Компьютерлік жабдық"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Пернетақта орналасуын таңдау"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Сағат арттыру"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"КЕШКІ уақытты реттеу"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"ТАҢҒЫ уақытты реттеу"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"түстен кейін"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"түске дейін"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Ай арттыру"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Ай азайту"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Күн арттыру"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Қоңырауды қабылдау?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Үнемі"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Бір рет қана"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s жұмыс профилін қолдамайды."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Планшет"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Құлақаспаптар"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> таңдалды"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> жойылды"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Жұмыс <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Сіз қолданбаға бекіту режиміндесіз. Шығу үшін «Жақындағылар» түймесін түртіп, ұстап тұрыңыз"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Сіз қолданбаға бекіту режиміндесіз."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Қолданбаға бекітуді пайдалану керек пе?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Қолданбаға бекіту дисплейді бір қолданбада бекітеді.\n\nШығу үшін «Жақындағылар» түймесін түртіп, ұстап тұрыңыз."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ЖОҚ, РАҚМЕТ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"БАСТАУ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Қолданбаға бекітілді"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Енді қолданбаға бекітілмеген"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Шығу алдында %1$s сұрау"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"бекітпесін ашу әдісі"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"құпия сөз"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml
index 9383134..f2eaf10 100644
--- a/core/res/res/values-km-rKH/strings.xml
+++ b/core/res/res/values-km-rKH/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"លេខ​សម្គាល់​អ្នក​ហៅ​​ចូល"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"លេខ​សម្គាល់​អ្នក​ហៅ​ចេញ"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"បាន​ភ្ជាប់​លេខ​សម្គាល់​បន្ទាត់"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"បាន​ភ្ជាប់​ការ​ដាក់កម្រិត​លេខ​សម្គាល់​បន្ទាត់"</string>
     <string name="CfMmi" msgid="5123218989141573515">"បញ្ជូន​ការ​ហៅ​បន្ត"</string>
     <string name="CwMmi" msgid="9129678056795016867">"រង់ចាំ​ការ​ហៅ"</string>
     <string name="BaMmi" msgid="455193067926770581">"រារាំង​ការ​ហៅ"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ឲ្យ​ម្ចាស់​ផ្ញើ​គោលបំណង​​ទៅ​អ្នក​គ្រប់គ្រង​ឧបករណ៍។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ភ្ជាប់​ទៅ​ការ​បញ្ចូល​ទូរទស្សន៍"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"អនុញ្ញាត​ឲ្យ​ម្ចាស់​ភ្ជាប់​ទៅ​ចំណុចប្រទាក់​កម្រិត​ខ្ពស់​នៃ​ការ​បញ្ចូល​ទូរទស្សន៍។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"កែប្រែ​ការ​ត្រួតពិនិត្យ​មាតាបិតា"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"អនុញ្ញាត​ឲ្យ​ម្ចាស់​​កែប្រែ​ទិន្នន័យ​ការ​ត្រួតពិនិត្យ​មាតាបិតា​​របស់​ប្រព័ន្ធ​។ គួរ​តែ​មិន​ត្រូវការ​សម្រាប់​កម្មវិធី​ធម្មតា​។"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"បន្ថែម​ ឬ​លុប​កម្មវិធី​គ្រប់គ្រង​​​ឧបករណ៍"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"អនុញ្ញាត​​​ឲ្យ​ម្ចាស់​​​បន្ថែម​ ឬ​លុប​កម្មវិធី​គ្រប់គ្រង​ឧបករណ៍​សកម្ម​ចេញ​។ មិន​គួរ​ប្រើ​សម្រាប់​កម្មវិធី​​ធម្មតា​ទេ​។"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ប្ដូរ​ទិស​អេក្រង់"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"ឲ្យ​ប៊្លូធូស​ផ្គូផ្គង​ជា​មួយ​កម្មវិធី"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ឲ្យ​កម្មវិធី​ផ្គូផ្គង​ជា​មួយ​ឧបករណ៍​ពី​ចម្ងាយ​ដោយ​គ្មាន​អំពើ​​ពី​អ្នកប្រើ។"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ឲ្យ​កម្មវិធី​ផ្គូផ្គង​ជា​មួយ​ឧបករណ៍​ពី​ចម្ងាយ​ដោយ​គ្មាន​អំពើ​​ពី​អ្នកប្រើ។"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"ចូល​ប្រើ​ទិន្នន័យ MAP ប៊្លូធូស"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"ឲ្យ​កម្មវិធី​ចូល​ប្រើ​ទិន្នន័យ MAP ប៊្លូធូស។"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"ឲ្យ​កម្មវិធី​ចូល​ប្រើ​ទិន្នន័យ MAP ប៊្លូធូស។"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ភ្ជាប់ និង​ផ្ដាច់​ពី WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"ឲ្យ​កម្មវិធី​កំណត់​ថា​តើ WiMAX ត្រូវ​បាន​បើក និង​ព័ត៌មាន​អំពី​បណ្ដាញ WiMAX ដែល​ត្រូវ​បាន​តភ្ជាប់។"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"ប្ដូរ​ស្ថានភាព WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"ឲ្យ​កម្មវិធី​ចូល​ដំណើរការ​ឧបករណ៍​ផ្ទុក​ខាង​ក្រៅ​សម្រាប់​អ្នកប្រើ​ទាំងអស់។"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"ចូល​ដំណើរការ​ប្រព័ន្ធ​​​ឯកសារ​ឃ្លាំង​សម្ងាត់"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ឲ្យ​កម្មវិធី​អាន និង​សរសេរ​ប្រព័ន្ធ​ឯកសារ​ឃ្លាំង​សម្ងាត់។"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ធ្វើ​ការ​ហៅ/ទទួល​តាម​អ៊ីនធឺណិត"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ឲ្យ​កម្មវិធី​ប្រើ​សេវាកម្ម SIP ដើម្បី​​​ហៅ/ទទួល​​​តាម​អ៊ីនធឺណិត។"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"បង្កើត/ទទួល ការ​ហៅ SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"​ឲ្យ​​កម្មវិធី បង្កើត និង​ទទួល​ការ​ហៅ SIP ។"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ទាក់ទង​ជា​មួយ​អេក្រង់​ហៅ​ចូល"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ឲ្យ​កម្មវិធី​ពិនិត្យ​ពេលវេលា និង​វិធី​ដែល​អ្នកប្រើ​មើល​ឃើញ​អេក្រង់​ហៅ​ចូល។"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"អាន​ការ​ប្រើ​បណ្ដាញ​ពិសេស"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"ឲ្យ​កម្មវិធី​អាន​ការ​ប្រើ​បណ្ដាញ​ជា​ប្រវត្តិ​សាស្ត្រ​សម្រាប់​បណ្ដាញ និង​កម្មវិធី​ជាក់លាក់។"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"គ្រប់គ្រង​គោលនយោបាយ​បណ្ដាញ"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ឲ្យ​កម្មវិធី​ផ្ដល់ និង​ប្រើ​វិញ្ញាបនបត្រ DRM ។ មិន​គួរ​ចាំបាច់​សម្រាប់​កម្មវិធី​ធម្មតា​ទេ។"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"ទទួល​ស្ថានភាព​ផ្ទេរ Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ឲ្យ​កម្មវិធី​ទទួល​ព័ត៌មាន​អំពី​ការ​ផ្ទេរ​​ Android Beam បច្ចុប្បន្ន"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"លុប​​វិញ្ញាបនបត្រ DRM ចេញ"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"អនុញ្ញាត​ឲ្យ​​កម្មវិធី​លុប​ចេញ​វិញ្ញាបនបត្រ DRM ​។ គួរ​តែ​មិន​ត្រូវការ​សម្រាប់​កម្មវិធី​ធម្មតា​។"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"កំណត់​ក្បួន​ពាក្យ​សម្ងាត់"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ពិនិត្យ​ប្រវែង និង​តួអក្សរ​ដែល​បាន​អនុញ្ញាត​ក្នុង​ពាក្យ​សម្ងាត់​ចាក់​សោ​អេក្រង់។"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ពិនិត្យ​ការ​ព្យាយាម​ដោះ​សោ​អេក្រង់"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"បាត់​ ឬ​មិន​អាច​អាន​ស៊ីម​កាត។ បញ្ចូល​ស៊ីម​កាត។"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ស៊ី​ម​កាត​មិន​អាច​ប្រើ​បាន​។"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ស៊ីម​កាត​របស់​អ្នក​ត្រូវ​បាន​បិទ​ជា​អចិន្ត្រៃយ៍។\n ទាក់ទង​ក្រុមហ៊ុន​ផ្ដល់​សេវាកម្ម​ឥត​ខ្សែ​របស់​អ្នក​សម្រាប់​ស៊ីម​កាត​ផ្សេង។"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ប៊ូតុង​បទ​មុន"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ប៊ូតុង​បទ​បន្ទាប់"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ប៊ូតុង​​ផ្អាក"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ប៊ូតុង​ចាក់"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ប៊ូតុង​បញ្ឈប់"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"បទ​មុន"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"បទ​បន្ទាប់"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ផ្អាក"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ចាក់"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"បញ្ឈប់"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ខា​ថយក្រោយ"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"ទៅ​មុខ​​​រហ័ស"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"សម្រាប់​តែ​ហៅ​ពេល​អាសន្ន​ប៉ុណ្ណោះ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"បណ្ដាញ​ជាប់​សោ"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"ស៊ីម​កាត​ជាប់​សោ PUK។"</string>
@@ -1345,10 +1352,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ធ្វើ​ទ្រង់ទ្រាយ"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"បាន​ភ្ជាប់​ការ​កែ​កំហុស​យូអេសប៊ី"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"ប៉ះ ដើម្បី​បិទ​ការ​កែ​កំហុស​យូអេសប៊ី។"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"ប្ដូរ​ក្ដារចុច"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"ជ្រើស​ក្ដារចុច"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ក្ដារ​ចុច​​ពិតប្រាកដ"</string>
     <string name="hardware" msgid="7517821086888990278">"ផ្នែក​រឹង"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"ជ្រើស​ប្លង់​ក្ដារ​ចុច"</string>
@@ -1393,11 +1398,11 @@
     <string name="permlab_trust_listener" msgid="1765718054003704476">"ស្ដាប់​ការ​ផ្លាស់ប្ដូរ​ស្ថានភាព​ដែល​ទុកចិត្ត។"</string>
     <string name="permdesc_trust_listener" msgid="8233895334214716864">"ឲ្យ​កម្មវិធី​ស្ដាប់​ការ​ផ្លាស់ប្ដូរ​ក្នុង​ស្ថានភាព​ដែល​​ទុកចិត្ត។"</string>
     <string name="permlab_provide_trust_agent" msgid="5465587586091358316">"ផ្ដល់​ភ្នាក់ងារ​ដែល​ទុកចិត្ត។"</string>
-    <string name="permdesc_provide_trust_agent" msgid="3865702641053068148">"ឲ្យ​កម្មវិធី​ផ្ដល់​ភ្នាក់ងារ​ដែល​ទុកចិត្ត។"</string>
+    <string name="permdesc_provide_trust_agent" msgid="3865702641053068148">"អនុញ្ញាត​ឲ្យ​កម្មវិធី​ផ្ដល់​​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
     <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"ចាប់ផ្ដើម​ម៉ឺនុយ​ការ​កំណត់​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត"</string>
-    <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"ឲ្យ​កម្មវិធី​ចាប់ផ្ដើម​សកម្មភាព​ដែល​ប្ដូរ​ឥរិយាបថ​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
+    <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"អនុញ្ញាត​ឲ្យ​កម្មវិធី​ចាប់ផ្ដើម​សកម្មភាព​ដែល​ប្ដូរ​ឥរិយាបថ​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
     <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"ភ្ជាប់​ទៅ​សេវាកម្ម​ភ្នាក់ងារ​ដែល​ទុកចិត្ត"</string>
-    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"ឲ្យ​កម្មវិធី​ភ្ជាប់​សេវាកម្ម​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"អនុញ្ញាត​ឲ្យ​កម្មវិធី​ភ្ជាប់​សេវាកម្ម​ភ្នាក់ងារ​ដែល​ទុក​ចិត្ត។"</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"អន្តរកម្ម​ជា​មួយ​បច្ចុប្បន្នភាព និង​ប្រព័ន្ធ​សង្គ្រោះ"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"ឲ្យ​កម្មវិធី​មាន​អន្តរកម្ម​ជា​មួយ​ប្រព័ន្ធ​សង្គ្រោះ និង​បច្ចុប្បន្នភាព​ប្រព័ន្ធ។"</string>
     <string name="permlab_createMediaProjection" msgid="4941338725487978112">"បង្កើត​សម័យ​គម្រោង​មេឌៀ"</string>
@@ -1498,6 +1503,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"បន្ថយ​ម៉ោង"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"កំណត់​ PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"កំណត់ AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ល្ងាច"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ព្រឹក"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"បង្កើន​ខែ"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"បន្ថយ​ខែ"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"បង្កើន​ថ្ងៃ"</string>
@@ -1565,8 +1572,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ទទួល​ការ​ហៅ​?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ជា​និច្ច"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"តែ​ម្ដង"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s មិន​គាំទ្រ​ជីវប្រវត្តិ​ការងារ"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"កុំព្យូទ័រ​បន្ទះ"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ទូរស័ព្ទ"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"កាស"</string>
@@ -1760,116 +1766,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"បាន​ជ្រើស <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"បាន​លុប <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"កន្លែង​ធ្វើការ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"អ្នក​គឺ​​នៅ​ក្នុង​​របៀប​ចាក់សោ​ទៅ​កម្មវិធី​។ ដើម្បី​ចេញ​ពី​, ប៉ះ ​និង​សង្កត់​ប៊ូតុង​ថ្មីៗ"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"អ្នក​ស្ថិត​ក្នុង​របៀប​ចាក់សោ​ទៅ​កម្មវិធី។"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"ប្រើ​ការ​ចាក់សោ​កម្មវិធី?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"ចាក់​សោ​ទៅ​កម្មវិធី​បង្ហាញ​នៅ​ក្នុង​កម្មវិធី​តែ​មួយ​។\n\nដើម្បី​ចេញ​ពី, ប៉ះ ​និង​សង្កត់​ប៊ូតុង​ថ្មីៗ​។"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ទេ, ​​អរគុណ!"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ចាប់ផ្ដើម"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"បាន​ចាក់​សោ​សម្រាប់​កម្មវិធី"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"មិន​បាន​ចាក់សោ​​​សម្រាប់​កម្ម​វិធី​ទៀត​ឡើយ"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"សួរ %1$s មុន​ពេល​ចាកចេញ"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"កូដ PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"លំនាំ​ដោះ​សោ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"ពាក្យ​សម្ងាត់"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml
index b24de8b..2e5fbee 100644
--- a/core/res/res/values-kn-rIN/strings.xml
+++ b/core/res/res/values-kn-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ಒಳಬರುವ ಕರೆಮಾಡುವವರ ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ಹೊರಹೋಗುವ ಕರೆಮಾಡುವವರ ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ಲೈನ್ ID ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"ಲೈನ್ ID ನಿರ್ಬಂಧನೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"ಕರೆಯ ರವಾನೆ"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ಕರೆ ನಿರೀಕ್ಷೆ"</string>
     <string name="BaMmi" msgid="455193067926770581">"ಕರೆ ಬಾರಿಂಗ್"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ಸಾಧನ ನಿರ್ವಾಹಕರಿಗೆ ಉದ್ದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಹೊಂದಿರುವವರಿಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV ಇನ್‌ಪುಟ್‌‌ ಅನ್ನು ಪ್ರತಿಬಂಧಿಸು"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"TV ಇನ್‌ಪುಟ್‌ ಇಂಟರ್ಫೇಸ್‌ಗೆ ಪ್ರತಿಬಂಧಿಸಲು ಹೊಂದಿರುವವರಿಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ಪೋಷಕರ ನಿಯಂತ್ರಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"ಸಿಸ್ಟಮ್‌ನ ಪೋಷಕರ ನಿಯಂತ್ರಣಗಳ ಡೇಟಾವನ್ನು ಮಾರ್ಪಡಿಸಲು ಧಾರಕರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ಸಾಧನ ನಿರ್ವಾಹಕರನ್ನು ಸೇರಿಸಿ ಇಲ್ಲವೇ ತೆಗೆದುಹಾಕಿ"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ಸಕ್ರಿಯ ಸಾಧನ ನಿರ್ವಾಹಕರನ್ನು ಸೇರಿಸಲು ಇಲ್ಲವೇ ತೆಗೆದುಹಾಕಲು ಹೊಂದಿರುವವರಿಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ಪರದೆ ಓರಿಯಂಟೇಶನ್ ಬದಲಾಯಿಸಿ"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ Bluetooth ಜೋಡಣೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ಬಳಕೆದಾರರ ಸಂವಹನವಿಲ್ಲದೆಯೇ ರಿಮೋಟ್ ಸಾಧನಗಳೊಂದಿಗೆ ಜೋಡಿ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ಬಳಕೆದಾರರ ಸಂವಹನವಿಲ್ಲದೆಯೇ ರಿಮೋಟ್ ಸಾಧನಗಳೊಂದಿಗೆ ಜೋಡಿ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"ಬ್ಲೂಟೂತ್‌ MAP ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"ಬ್ಲೂಟೂತ್‌ MAP ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"ಬ್ಲೂಟೂತ್‌ MAP ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX ನಿಂದ ಸಂಪರ್ಕಗೊಳಿಸಿ ಮತ್ತು ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX ಸಕ್ರಿಯಗೊಂಡಿದೆಯೇ ಮತ್ತು ಸಂಪರ್ಕಗೊಂಡಿರುವಂತಹ WiMAX ನೆಟ್‍‍ವರ್ಕ್‌ಗಳ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ನಿರ್ಧರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX ಸ್ಥಿತಿಯನ್ನು ಬದಲಿಸಿ"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗಾಗಿ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ಅಪ್ಲಿಕೇಶನ್‍‍ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"ಸಂಗ್ರಹಿತ ಫೈಲ್‌ ಸಿಸ್ಟಂ ಅನ್ನು ಪ್ರವೇಶಿಸಿ"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ಕ್ಯಾಷ್‌ ಫೈಲ್‌ ವ್ಯವಸ್ಥೆಯನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ಅಪ್ಲಿಕೇಶನ್‌‌ ಅನುಮತಿಸುತ್ತದೆ."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ಇಂಟರ್ನೆಟ್ ಕರೆಗಳನ್ನು ಮಾಡಿ/ಸ್ವೀಕರಿಸಿ"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ಇಂಟರ್ನೆಟ್‌‌ ಕರೆಗಳನ್ನು ಮಾಡಲು/ಸ್ವೀಕರಿಸಲು SIP ಸೇವೆಯನ್ನು ಬಳಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP ಕರೆಗಳನ್ನು ಮಾಡಿ/ಸ್ವೀಕರಿಸಿ"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP ಕರೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಸ್ವೀಕರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ಒಳ-ಕರೆ ಪರದೆಯ ಮೂಲಕ ಸಂವಹನ ನಡೆಸಿ"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ಬಳಕೆದಾರರು ಒಳ-ಕರೆಯ ಪರದೆಯನ್ನು ಯಾವಾಗ ಮತ್ತು ಹೇಗೆ ನೋಡುತ್ತಾರೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ಐತಿಹಾಸಿಕ ನೆಟ್‌ವರ್ಕ್ ಬಳಕೆಯನ್ನು ಓದಿರಿ"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"ನಿರ್ದಿಷ್ಟ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಐತಿಹಾಸಿಕ ನೆಟ್‌ವರ್ಕ್‌ನ ಬಳಕೆಯನ್ನು ಓದಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ನೆಟ್‌ವರ್ಕ್ ನೀತಿಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM ಪ್ರಮಾಣಪತ್ರಗಳಿಗೆ ಅನುಮತಿ ಕಲ್ಪಿಸಲು ಮತ್ತು ಬಳಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam ವರ್ಗಾವಣೆ ಸ್ಥಿತಿಯನ್ನು ಸ್ವೀಕರಿಸಿ"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ಪ್ರಸ್ತುತ Android Beam ವರ್ಗಾವಣೆಗಳ ಕುರಿತ ಮಾಹಿತಿಯನ್ನು ಸ್ವೀಕರಿಸಲು ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸಿ"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಎಂದಿಗೂ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"ಪಾಸ್‌ವರ್ಡ್ ನಿಮಯಗಳನ್ನು ಹೊಂದಿಸಿ"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ಪರದೆ-ಅನ್‍‍ಲಾಕ್ ಪಾಸ್‍‍ವರ್ಡ್‌ಗಳಲ್ಲಿ ಅನುಮತಿಸಿರುವ ಅಳತೆ ಮತ್ತು ಅಕ್ಷರಗಳನ್ನು ನಿಯಂತ್ರಿಸಿ."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ಪರದೆಯ-ಅನ್‌ಲಾಕ್ ಪ್ರಯತ್ನಗಳನ್ನು ಮಾನಿಟರ್ ಮಾಡಿ"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM ಕಾರ್ಡ್ ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ. ಒಂದು SIM ಕಾರ್ಡ್ ಸೇರಿಸಿ."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ನಿಷ್ಪ್ರಯೋಜಕ SIM ಕಾರ್ಡ್."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ನಿಮ್ಮ SIM ಕಾರ್ಡ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.\n ಮತ್ತೊಂದು SIM ಕಾರ್ಡ್‌ಗಾಗಿ ನಿಮ್ಮ ವಯರ್‌ಲೆಸ್ ಸೇವೆಯ ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ಹಿಂದಿನ ಹಾಡು ಬಟನ್"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ಮುಂದಿನ ಹಾಡು ಬಟನ್"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ವಿರಾಮ ಬಟನ್"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ಪ್ಲೇ ಬಟನ್"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ನಿಲ್ಲಿಸು ಬಟನ್"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"ಹಿಂದಿನ ಟ್ರ್ಯಾಕ್"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"ಮುಂದಿನ ಟ್ರ್ಯಾಕ್"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ವಿರಾಮಗೊಳಿಸು"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ಪ್ಲೇ ಮಾಡು"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"ನಿಲ್ಲಿಸು"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ರಿವೈಂಡ್ ಮಾಡು"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"ವೇಗವಾಗಿ ಮುಂದಕ್ಕೆ"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ನೆಟ್‌ವರ್ಕ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM ಕಾರ್ಡ್ PUK-ಲಾಕ್ ಆಗಿದೆ."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ಸ್ವರೂಪಿಸು"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ಡೀಬಗ್‌ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"ಕೀಬೋರ್ಡ್ ಬದಲಿಸಿ"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"ಕೀಬೋರ್ಡ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್"</string>
     <string name="hardware" msgid="7517821086888990278">"ಹಾರ್ಡ್‌ವೇರ್"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"ಕೀಬೋರ್ಡ್ ಲೇಔಟ್ ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"ಗಂಟೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಿ"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM ಹೊಂದಿಸು"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM ಹೊಂದಿಸಿ"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"ತಿಂಗಳನ್ನು ಹೆಚ್ಚಿಸಿ"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ತಿಂಗಳು ಕಡಿಮೆಮಾಡಿ"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"ದಿನವನ್ನು ಹೆಚ್ಚಿಸಿ"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ಕರೆ ಸ್ವೀಕರಿಸುವುದೇ?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ಯಾವಾಗಲೂ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"ಒಮ್ಮೆ ಮಾತ್ರ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ಟ್ಯಾಬ್ಲೆಟ್‌‌"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ಫೋನ್"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ಹೆಡ್‌ಫೋನ್‌ಗಳು"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ಅಳಿಸಲಾಗಿದೆ"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"ಕೆಲಸ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"ನೀವು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಲಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುವಿರಿ. ನಿರ್ಗಮಿಸಲು, ಇತ್ತೀಚಿನವು ಬಟನ್‌ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿಹಿಡಿಯಿರಿ"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"ನೀವು ಅಪ್‌-ಗೆ-ಲಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುವಿರಿ."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"ಅಪ್‌-ಗೆ-ಲಾಕ್ ಬಳಸುವುದೇ?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಲಾಕ್ ಎಂಬುದು ಒಂದು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಪ್ರದರ್ಶನವನ್ನು ಲಾಕ್ ಮಾಡುತ್ತದೆ.\n\nನಿರ್ಗಮಿಸಲು, ಇತ್ತೀಚಿನವು ಬಟನ್‌ ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿಹಿಡಿಯಿರಿ."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ಬೇಡ, ಧನ್ಯವಾದಗಳು"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ಪ್ರಾರಂಭಿಸು"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಇನ್ನು ಮುಂದೆ ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"ನಿರ್ಗಮಿಸುವ ಮೊದಲು %1$s ಗಾಗಿ ಕೇಳಿ"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ಅನ್‌ಲಾಕ್ ನಮೂನೆ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"ಪಾಸ್‌ವರ್ಡ್"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 52f9afc..55ae682 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"발신자 번호"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"내 발신 번호"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"환승편 ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"환승편 ID 제한"</string>
     <string name="CfMmi" msgid="5123218989141573515">"착신전환"</string>
     <string name="CwMmi" msgid="9129678056795016867">"통화중 대기"</string>
     <string name="BaMmi" msgid="455193067926770581">"착발신 제한"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"권한을 가진 프로그램이 기기 관리자에게 인텐트를 보낼 수 있도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV 입력 사용"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"권한을 가진 프로그램이 TV 입력에 대한 최상위 인터페이스를 사용하도록 허용합니다. 일반 앱에는 필요하지 않습니다."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"자녀 보호 데이터 수정"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"권한을 가진 프로그램이 시스템의 자녀 보호 데이터를 수정하도록 허용합니다. 일반 앱에서는 필요하지 않습니다."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"기기 관리자 추가 또는 삭제"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"권한을 가진 프로그램이 활성화된 기기의 관리자를 추가 또는 삭제하도록 합니다. 일반 앱에는 필요하지 않습니다."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"화면 방향 변경"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"애플리케이션에서 블루투스 페어링 허용"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"앱이 사용자 상호작용 없이 원격 기기와 페어링할 수 있도록 허용합니다."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"앱이 사용자 상호작용 없이 원격 기기와 페어링할 수 있도록 허용합니다."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"블루투스 MAP 데이터 액세스"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"앱에서 블루투스 MAP 데이터에 액세스하도록 허용합니다."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"앱에서 블루투스 MAP 데이터에 액세스하도록 허용합니다."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX 연결 및 연결 해제"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"앱이 WiMAX를 사용하도록 설정했는지 여부와 연결된 WiMAX 네트워크에 대한 정보를 결정할 수 있도록 허용합니다."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX 상태 변경"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"앱이 모든 사용자의 외부 저장소에 액세스하도록 허용합니다."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"캐시 파일시스템 액세스"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"앱이 캐시 파일 시스템을 읽고 쓸 수 있도록 허용합니다."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"인터넷 전화 걸기/받기"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"앱이 SIP 서비스를 사용하여 인터넷 전화를 걸거나 받을 수 있도록 허용합니다."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP 통화 발신/수신"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"앱에서 SIP 통화를 발신 및 수신하도록 허용"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"통화 화면과 상호 작용"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"앱에서 사용자가 통화 화면을 보는 시기와 방법을 제어하도록 허용합니다."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"이전 네트워크 사용량 읽기"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"앱이 특정 네트워크 및 앱에 대한 이전 네트워크 사용량을 읽을 수 있도록 허용합니다."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"네트워크 정책 관리"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"애플리케이션이 DRM 인증서를 프로비저닝하고 사용하도록 허용합니다. 일반 앱에서는 필요하지 않습니다."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam 전송 상태 수신"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"이 애플리케이션이 현재 Android Beam 전송 관련 정보를 수신하도록 허용합니다."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM 인증서 삭제"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"애플리케이션이 DRM 인증서를 삭제하도록 허용합니다. 일반 앱에서는 필요하지 않습니다."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"비밀번호 규칙 설정"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"화면 잠금해제 비밀번호에 허용되는 길이 및 문자 수를 제어합니다."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"화면 잠금해제 시도 모니터링"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM 카드가 없거나 읽을 수 없습니다. SIM 카드를 삽입하세요."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"사용할 수 없는 SIM 카드입니다."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM 카드 사용이 영구적으로 사용중지되었습니다.\n다른 SIM 카드를 사용하려면 무선 서비스 제공업체에 문의하시기 바랍니다."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"이전 트랙 버튼"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"다음 트랙 버튼"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"일시중지 버튼"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"재생 버튼"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"중지 버튼"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"이전 트랙"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"다음 트랙"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"일시중지"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"재생"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"중지"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"되감기"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"빨리 감기"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"긴급 통화만"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"네트워크 잠김"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM 카드가 PUK 잠김 상태입니다."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"포맷"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB 디버깅 연결됨"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB 디버깅을 사용하지 않으려면 터치하세요."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"키보드 변경"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"키보드 선택"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"물리적 키보드"</string>
     <string name="hardware" msgid="7517821086888990278">"하드웨어"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"키보드 레이아웃 선택"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"\'시간\'을 줄입니다."</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM 설정"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM 설정"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"오후"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"오전"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"\'월\'을 늘립니다."</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"\'월\'을 줄입니다."</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"\'일\'을 늘립니다."</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"통화를 수락하시겠습니까?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"항상"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"한 번만"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s에서 직장 프로필을 지원하지 않습니다."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"태블릿"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"휴대전화"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"헤드폰"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g>이(가) 선택됨"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> 삭제됨"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"업무용 <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"앱 잠금 기능을 사용 중입니다. 종료하려면 최근 버튼을 길게 터치하세요."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"앱 잠금 기능을 사용 중입니다."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"앱 잠금 기능을 사용하시겠습니까?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"앱 잠금 기능은 단일 앱의 화면을 잠급니다.\n\n종료하려면 최근 버튼을 길게 터치합니다."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"아니요"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"시작"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"앱 잠금 기능 사용"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"앱 잠금 기능 사용 안함"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"종료 전에 %1$s 요청"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"잠금해제 패턴"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"비밀번호"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml
index fa4411e..2b66d13 100644
--- a/core/res/res/values-ky-rKG/strings.xml
+++ b/core/res/res/values-ky-rKG/strings.xml
@@ -96,6 +96,8 @@
     <skip />
     <!-- no translation found for ClirMmi (7784673673446833091) -->
     <skip />
+    <string name="ColpMmi" msgid="3065121483740183974">"Туташкан линия ID-си"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Туташкан линия ID-син Чектөө"</string>
     <!-- no translation found for CfMmi (5123218989141573515) -->
     <skip />
     <!-- no translation found for CwMmi (9129678056795016867) -->
@@ -569,10 +571,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Кармоочуга түзмөк администраторуна ниетин билдирүү мүмкүнчүлүгүн берет. Кадимки колдонмолорго эч качан талап кылынбайт."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV берүүсүнө жалгаштыруу"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Кармоочуга теле сигналдын жогорку деңгээлдеги интерфейсине жалгашуу мүмкүнчүлүгүн берет. Кадимки колдонмолорго эч качан талап кылынбайт."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ата-энелик көзөмөл чараларын өзгөртүү"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Кармоочуга тутумдун ата-энелик көзөмөл дайындарын өзгөртүү мүмкүнчүлүгүн берет. Кадимки колдонмолорго эч качан талап кылынбайт."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"түзмөк админдерин кошуу же алып салуу"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Түзмөктүн ээсине учурдагы администраторлорду кошуу же алып салуу мүмкүнчүлүгүн берет. Жалпыга багышталган колдонмолордо эч качан колдонулбашы керек."</string>
     <!-- no translation found for permlab_setOrientation (3365947717163866844) -->
@@ -867,6 +867,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"колдонмого Bluetooth аркылуу байланышуу уруксатын берүү"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Колдонмого аралыктагы түзмөктөргө колдонуучунун катышуусуз туташуу мүмкүнчүлүгүн берет."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Колдонмого аралыктагы түзмөктөргө колдонуучунун катышуусуз туташуу мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP дайындарын колдонуу мүмкүнчүлүгү"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Колдонмого Bluetooth MAP дайындарын пайдалануу мүмкүнчүлүгүн берет."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Колдонмого Bluetooth MAP дайындарын пайдалануу мүмкүнчүлүгүн берет."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX түйүнүнө туташуу жана андан ажыроо"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Колдонмого WiMAX жандырылгандыгы жана туташкан WiMAX түйүндөрү тууралуу маалыматтарын көрүүгө уруксат берет."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX абалын өзгөртүү"</string>
@@ -919,11 +922,14 @@
     <!-- no translation found for permlab_cache_filesystem (5656487264819669824) -->
     <skip />
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Колдонмого кэш файл тутумун окуу жана жазуу мүмкүнчүлүгүн берет."</string>
-    <!-- no translation found for permlab_use_sip (5986952362795870502) -->
-    <skip />
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Колдонмого Интернет аркылуу чалуу/чалууну кабыл алуу үчүн SIP кызматын колдонуу мүмкүнчүлүгүн берет."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP чалууларын жасоо/кабыл алуу"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Колдонмонун SIP чалууларын жасап жана кабыл алуусуна жол ачат."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"чалуу экраны менен байланыштыруу"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Колдонмого чалуу экранын колдонуучу качан жана кандай көрөөрүн башкаруу мүмкүнчүлүгүн берет."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <!-- no translation found for permlab_readNetworkUsageHistory (7862593283611493232) -->
     <skip />
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Колдонмого белгилүү бир тармактарга жана колдонмолорго байланыштуу тармактын колдонулушу жөнүндө таржымалды окуу мүмкүнчүлүгүн берет."</string>
@@ -953,10 +959,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Колдонмого DRM тастыктамаларын ишке киргизип, колдонуу мүмкүнчүлүгүн берет. Кадимки колдонмолорго эч качан талап кылынбайт."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam өткөрүү абалын алуу"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Бул колдонмого учурдагы Android Beam өткөрүүлөрү жөнүндө маалымат алуу мүмкүнчүлүгүн берет"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM тастыктамаларын алып салуу"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Колдонмого DRM тастыктамаларын алып салуу мүмкүнчүлүгүн берет. Кадимки колдонмолорго эч качан талап кылынбайт."</string>
     <!-- no translation found for policylab_limitPassword (4497420728857585791) -->
     <skip />
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Экранды бөгөттөн чыгаруу сырсөзүнүн узундугун жана уруксат берилген белгилерди башкаруу."</string>
@@ -1205,11 +1209,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта жок же ал окулбайт. SIM-картаны салыңыз."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Жараксыз SIM-карта."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картаңыз биротоло өчүрүлдү.\n Башка SIM карта алыш үчүн зымсыз тейлөөчүгө кайрылыңыз."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Мурунку трек баскычы"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кийинки трек баскычы"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Тыныгуу баскычы"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Ойноо баскычы"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Токтотуу баскычы"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Мурунку трек"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Кийинки трек"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Тындыруу"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Ойнотуу"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Токтотуу"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Артка түрүү"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Алдыга түрүү"</string>
     <!-- no translation found for emergency_calls_only (6733978304386365407) -->
     <!-- no translation found for emergency_calls_only (2485604591272668370) -->
     <skip />
@@ -1739,10 +1745,8 @@
     <!-- no translation found for adb_active_notification_title (6729044778949189918) -->
     <skip />
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB мүчүлүштүктөрдү жоюу мүмкүнчүлүгүн өчүрүү үчүн тийип коюңуз."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Баскычтопту өзгөртүү"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Баскычтопторду тандаңыз"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Аппараттык тергич"</string>
     <string name="hardware" msgid="7517821086888990278">"Аппараттык"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Тергичтин жайгашуусун тандоо"</string>
@@ -1959,6 +1963,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Саатты төмөндөтүү"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"т.к. орнотуу"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"т.ч. орнотуу"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"т.к."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"т.ч."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Айды жогорулатуу"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Айды азайтуу"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Күндү жогорулатуу"</string>
@@ -2045,8 +2051,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Чалуу кабыл алынсынбы?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Дайыма"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Бир жолу гана"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s жумуш профилин колдоого албайт."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Планшет"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Кулакчын"</string>
@@ -2240,116 +2245,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> тандалды"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> өчүрүлдү"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Жумуш <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Колдонмого кулптап коюу режиминдесиз. Чыгуу үчүн, Акыркылар баскычын коё бербей басып туруңуз."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Колдонмого-кулптап-коюу режиминдесиз."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Кулпулоо колдонмосун иштетесизби?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Колдонмого-кулптап-коюу бир колдонмонун экранын кулптайт.\n\nЧыгуу үчүн, Акыркылар баскычын коё бербей басып туруңуз."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ЖОК, РАХМАТ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"БАШТОО"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Колдонмого кулптанган"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Колдонмого кулптанбай калды"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Чыгуудан мурун %1$s сураңыз"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"бөгөттөн чыгаруу үлгүсү"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"сырсөз"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml
index 8980dfc..7372528 100644
--- a/core/res/res/values-lo-rLA/strings.xml
+++ b/core/res/res/values-lo-rLA/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ໝາຍເລກຜູ່ໂທເຂົ້າ"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ໝາຍເລກຜູ່ໂທອອກ"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Line ID ທີ່​ເຊື່ອມ​ໂຍງ"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"​ຂໍ້​ຈຳ​ກັດ Line ID ທີ່​ເຊື່ອມ​ໂຍງ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"ການໂອນສາຍ"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ສາຍຊ້ອນ"</string>
     <string name="BaMmi" msgid="455193067926770581">"ການລະງັບການໂທ"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ອະນຸຍາດໃຫ້ເຈົ້າຂອງສົ່ງເຈດຕະນາຫາຜູ່ເບິ່ງແຍງລະບົບອຸປະກອນ. ແອັບຯທົ່ວໄປບໍ່ຄວນຈຳເປັນຕ້ອງໃຊ້."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ຜູກ​ກັບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ເຂົ້າ​ໂທ​ລະ​ທັດ"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"​ອະ​ນຸ​ຍາດ​ໃຫ້​ຜູ່​ຖື​ຜູກ​ຕິດ​ກັບ​ສ່ວ​ນ​ຕິດ​ຕໍ່​ລະ​ດັບ​ສູງ​ສຸດ​ຂອງ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ເຂົ້າ​ໂທ​ລະ​ທັດ. ແອັບຯ​ທົ່ວ​ໄປ​ບໍ່​ຄວນ​ຈຳ​ເປັນ​ຕ້ອງ​ໃຊ້."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ແກ້​ໄຂ​ການ​ຄວບ​ຄຸມ​ຜູ່​ປົກ​ຄອງ"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"​ອະ​ນຸ​ຍາດ​ໃຫ້​ເຈົ້າ​ຂອງ​ສາ​ມາດ​ແກ້​ໄຂ​ຂໍ້​ມູນ​ການ​ຄວບ​ຄຸມ​ຜູ່​ປົກ​ຄອງ​ຂອງ​ລະ​ບົບ. ແອັບຯ​ທົ່ວ​ໄປ​ບໍ່​ຄວນ​ຈຳ​ເປັນ​ຕ້ອງ​ໃຊ້."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ເພີ່ມ ຫຼືລຶບຜູ່ເບິ່ງແຍງລະບົບອຸປະກອນ"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"ອະນຸຍາດໃຫ້ເຈົ້າຂອງສາມາດລຶບ ຫຼືລຶບຂໍ້ມູນອຸປະກອນທີ່ນຳໃຊ້ໄດ້. ແອັບຯທົ່ວໄປບໍ່ຈຳເປັນຕ້ອງໃຊ້."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ປ່ຽນລວງຂອງໜ້າຈໍ"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"ອະນຸຍາດໃຫ້ແອັບພລິເຄຊັນຈັບຄູ່ Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ອະນຸຍາດໃຫ້ແອັບຯ ຈັບຄູ່ອຸປະກອນຈາກໄລຍະໄກ ໂດຍຜູ່ໃຊ້ບໍ່ຕ້ອງເຮັດຫຍັງ."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ອະນຸຍາດໃຫ້ແອັບຯ ຈັບຄູ່ອຸປະກອນຈາກໄລຍະໄກ ໂດຍຜູ່ໃຊ້ບໍ່ຕ້ອງເຮັດຫຍັງ."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"​ເຂົ້າ​ເຖິງ​ຂໍ້​ມູນ Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບຯ​ເຂົ້າ​ເຖິງ​ຂໍ້​ມູນ Bluetooth MAP ໄດ້."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບຯ​ເຂົ້າ​ເຖິງ​ຂໍ້​ມູນ Bluetooth MAP ໄດ້."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ເຊື່ອມຕໍ່ ແລະຕັດການເຊື່ອມຕໍ່ຈາກ WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"ອະນຸຍາດໃຫ້ແອັບຯກວດເບິ່ງວ່າ WiMAX ຖືກເປີດນຳໃຊ້ຢູ່ບໍ່ ແລະຂໍ້ມູນກ່ຽວກັບເຄືອຂ່າຍ WiMAX ອື່ນໆທີ່ກຳລັງເຊື່ອມຕໍ່ຢູ່."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"ປ່ຽນສະຖານະ WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"ອະນຸຍາດໃຫ້ແອັບຯ ເຂົ້າເຖິງພື້ນທີ່ຈັດເກັບຂໍ້ມູນພາຍນອກ ສຳລັບທຸກຜູ່ໃຊ້."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"ເຂົ້າເຖິງໄຟລ໌ cache ຂອງລະບົບ"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານ ແລະຂຽນ ລະບົບໄຟລ໌ແຄດ."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ສົ່ງ/ຮັບ ການໂທຜ່ານອິນເຕີເນັດ"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ອະນຸຍາດໃຫ້ແອັບຯ ໃຊ້ບໍລິການ SIP ເພື່ອ ໂທອອກ/ຮັບສາຍ ການໂທຜ່ານອິນເຕີເນັດ."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"ຮັບສາຍ/ໂທອອກ ຜ່ານ SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"ອະນຸຍາດ​ໃຫ້ແອັບຯ​ສາມາດ​ຮັບສາຍ ແລະໂທອອກ​ຜ່ານ SIP ໄດ້"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ໂຕ້ຕອບກັບໜ້າຈໍການໂທ"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ອະນຸຍາດໃຫ້ແອັບຯ ຄວບຄຸມເວລາ ແລະວິທີການທີ່ຜູ່ໃຊ້ເຫັນໜ້າຈໍການໂທໄດ້."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ອ່ານປະຫວັດການນຳໃຊ້ເຄືອຂ່າຍ"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"ອະນຸຍາດໃຫ້ແອັບຯ ອ່ານປະຫວັດການນຳໃຊ້ເຄືອຂ່າຍຂອງແອັບຯ ແລະເຄືອຂ່າຍໃດນຶ່ງ."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ຈັດການນະໂຍບາຍເຄືອຂ່າຍ"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ອະນຸຍາດ​ໃຫ້​ແອັບພລິເຄຊັນ​ຈັດຫາ ແລະ​ນຳໃຊ້​ໃບຮັບຮອງ DRM. ແອັບຯ​ທຳມະດາ​ບໍ່​ຄວນ​ຕ້ອງ​ການ​ໃຊ້."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"ຮັບ​ສະ​ຖາ​ນະ​ການ​ໂອນ​ຂໍ້​ມູນ Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບ​ພລິ​ເຄ​ຊັນ​ນີ້​ຮັບ​ຂໍ້​ມູນ​ກ່ຽວ​ກັບ​ການ​ໂອນ​ຂໍ້​ມູນ Android Beam ໃນ​ປັດ​ຈຸ​ບັນ"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"ລຶບ​ໃບ​ຮັບ​ຮອງ DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"ອະ​ນຸ​ຍາດ​ໃຫ້​ແອັບ​ພລິ​ເຄ​ຊັນ​ລຶບ​ໃບ​ຮັບ​ຮອງ DRM. ແອັບຯ​ທົ່ວ​ໄປ​ບໍ່​ຄວນ​ຈຳ​ເປັນ​ຕ້ອງ​ໃຊ້."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"ຕັ້ງຄ່າກົດຂອງລະຫັດຜ່ານ"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ຄວບຄຸມຄວາມຍາວຂອງໂຕອັກສອນທີ່ສາມາດໃຊ້ກັບລະຫັດປົດລັອກໜ້າຈໍ"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ຕິດຕາມການພະຍາຍາມປົດລັອກໜ້າຈໍ"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"ບໍ່ມີຊິມກາດ ຫຼືອ່ານຊິມກາດບໍ່ໄດ້. ໃສ່ຊິມກາດ."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM card ບໍ່ສາມາດໃຊ້ໄດ້."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ຊິມກາດຂອງທ່ານຖືກປິດການນຳໃຊ້ຢ່າງຖາວອນແລ້ວ.\n ກະລຸນາຕິດຕໍ່ຜູ່ໃຫ້ບໍລິການໂທລະສັບຂອງທ່ານ ເພື່ອຂໍເອົາຊິມກາດໃໝ່."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ປຸ່ມເພງກ່ອນໜ້ານີ້"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ປຸ່ມເພງຕໍ່ໄປ"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ປຸ່ມຢຸດຊົ່ວຄາວ"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ປຸ່ມຫຼິ້ນ"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ປຸ່ມຢຸດ"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"​ເພງ​ກ່ອນ​ໜ້າ"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"​ເພງ​ຕໍ່​ໄປ"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ຢຸດຊົ່ວຄາວ"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ຫຼິ້ນ"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"ຢຸດ"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"​ຣີ​​ວາຍກັບ"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"ເລື່ອນ​ໄປ​ໜ້າ"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"ສຳລັບການໂທສຸກເສີນເທົ່ານັ້ນ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ເຄືອຂ່າຍຖືກລັອກ"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM card ຖືກລັອກດ້ວຍລະຫັດ PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ຟໍແມັດ"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"ເຊື່ອມຕໍ່ການດີບັ໊ກຜ່ານ USB ແລ້ວ"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"ແຕະເພື່ອປິດການດີບັ໊ກຜ່ານ USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"​ປ່ຽນ​ແປ້ນ​ພິມ"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"​ເລືອກ​ແປ້ນ​ພິມ"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ແປ້ນພິມແທ້"</string>
     <string name="hardware" msgid="7517821086888990278">"ຮາດແວ"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"ເລືອກຮູບແບບແປ້ນພິມ"</string>
@@ -1443,7 +1448,7 @@
     <string name="submit" msgid="1602335572089911941">"ສົ່ງຂໍ້ມູນ"</string>
     <string name="car_mode_disable_notification_title" msgid="3164768212003864316">"ໂຫມດຂັບລົດຖືກເປີດແລ້ວ"</string>
     <string name="car_mode_disable_notification_message" msgid="8035230537563503262">"ກົດເພື່ອປິດໂຫມດຂັບລົດ."</string>
-    <string name="tethered_notification_title" msgid="3146694234398202601">"ການປ່ອຍສັນຍານ ຫຼືຮັອດສະປອດທີ່ເຮັດວຽກຢູ່"</string>
+    <string name="tethered_notification_title" msgid="3146694234398202601">"ເປີດ​ການ​ປ່ອຍ​ສັນຍານ ຫຼື​ຮັອດສະປອດ​ແລ້ວ"</string>
     <string name="tethered_notification_message" msgid="6857031760103062982">"ແຕະເພື່ອຕິດຕັ້ງ."</string>
     <string name="back_button_label" msgid="2300470004503343439">"ກັບຄືນ"</string>
     <string name="next_button_label" msgid="1080555104677992408">"ຕໍ່ໄປ"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"ຫຼຸດຊົ່ວໂມງ"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"ຕັ້ງ PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"ຕັ້ງ AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ຫຼັງທ່ຽງ"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"​ກ່ອນ​ທ່ຽງ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"ເພີ່ມຈຳນວນເດືອນ"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ຫຼຸດເດືອນ"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"ເພີ່ມຈຳນວນມື້"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ຮັບການໂທບໍ່?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ທຸກຄັ້ງ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"ຄັ້ງດຽວ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ບໍ່​ຮອງ​ຮັບ​ໂປຣ​ໄຟລ໌​ບ່ອນ​ເຮັດ​ວຽກ."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ແທັບເລັດ"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ໂທລະສັບ"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ຫູຟັງ"</string>
@@ -1758,116 +1764,30 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ຖືກເລືອກແລ້ວ"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ຖືກລຶບແລ້ວ"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"​ບ່ອນ​ເຮັດ​ວຽກ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"ທ່ານ​ຢູ່​ໃນ​ໂໝດ lock-to-app ຢູ່. ເພື່​ອອກ, ໃຫ້​ແຕະ​ປຸ່ມ \"ແອັບຯ​ເມື່ອ​ໄວໆ​ນີ້\" ຄ້າງ​ໄວ້"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"ທ່ານ​ຢູ່​ໃນ​ໂໝດ Lock-to-App."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"​ນຳ​ໃຊ້ lock-to-app ບໍ່?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Lock-to-app ຈະ​ລັອກ​ໜ້າ​ຈໍ​ໄວ້​ໃນ​ແອັບຯ​ດ່ຽວ​ໃດ​ນຶ່ງ.\n\nເພື່​ອອກ, ໃຫ້​ແຕະ​ປຸ່ມ​ \"ແອັບຯ​ເມື່ອ​ໄວໆ​ນີ້​\" ຄ້າງ​ໄວ້."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ບໍ່, ຂອບ​ໃຈ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"​ເລີ່ມ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"​ລັອກ​ສະ​ເພາະ​ແອັບຯ​ແລ້ວ"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"ບໍ່​ໄດ້​ລັອກ​ສະ​ເພາະ​ແອັບຯ​ແລ້ວ"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"ຖາມ %1$s ກ່ອນ​ອອກ"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ຮູບແບບປົດລັອກ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"​ລະ​ຫັດ​ຜ່ານ"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
-    <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <string name="battery_saver_description" msgid="725676363406667978">"ເພື່ອ​ຊ່ວຍ​ປັບ​ປຸ​ງ​ອາ​ຍຸ​ແບັດ​ເຕີ​ຣີ, ໂຕ​ປະ​ຢັດ​ແບັດ​ເຕີ​ຣີ​ຈະຫຼຸດ​ປະ​ສິດ​ທິ​ພາບ​ຂອງ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ລົງ ແລະ​ຈຳ​ກັດ​ການ​ສັ່ນ​ເຕືອນ ຮວມ​​ທັງ​ຂໍ້​ມູນ​ພື້ນຫຼັງ​ສ່ວນ​ໃຫຍ່. ອີ​ເມວ, ການ​ສົ່ງ​ຂໍ້​ຄ​ວາມ ແລະ​ແອັບຯ​ອື່ນໆ​ທີ່​ອີງ​ອາ​ໃສ​ການ​ຊິ້ງ​ຂໍ້​ມູນ​ອາດບໍ່​ມີ​ການ​ອັບ​ເດດ​ຈົນ​ກວ່າ​ທ່ານ​ຈະ​ເປີດ​ແອັບຯ​ເຫຼົ່າ​ນັ້ນ.\n\nໂຕ​ປະ​ຢັດ​ແບັດ​ເຕີ​ຣີ​ຈະ​ປິດ​ໂຕ​ເອງ​​ອັດ​ຕະ​ໂນ​ມັດ​ໃນ​ເວ​ລາ​ທີ່​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ສາກ​ໄຟ​ຢູ່"</string>
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 441dafa..5d65ce3 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Įeinančio skambintojo ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Išeinančio skambintojo ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Prijungtos eilutės ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Prijungtos eilutės ID apribojimas"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Skambučio peradresavimas"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Laukiantis skambutis"</string>
     <string name="BaMmi" msgid="455193067926770581">"Skambučio paleidimas"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Leidžiama savininkui siųsti tikslus įrenginio administratoriui. Įprastoms programoms to neturėtų prireikti."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"susisaistyti su TV įvestimi"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Leidžiama savininkui susisaistyti su aukščiausio lygio TV įvesties sąsaja. Įprastoms programoms to neturėtų prireikti."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"keisti tėvų kontrolės duomenis"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Turėtojui leidžiama keisti sistemos tėvų kontrolės duomenis. Neturėtų prireikti naudojant įprastas programas."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pridėti arba pašalinti įrenginio administratorių"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Savininkui leidžiama pridėti aktyvių įrenginio administratorių arba juos pašalinti. Neturėtų reikėti įprastoms programoms."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"keisti ekrano padėtį"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"leisti „Bluetooth“ susiejimą naudojant programą"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Leidžiama programai susieti su nuotolinio valdymo įrenginiais be naudotojo įsikišimo."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Leidžiama programai susieti su nuotolinio valdymo įrenginiais be naudotojo įsikišimo."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"pasiekti „Bluetooth“ MAP duomenis"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Programai leidžiama pasiekti „Bluetooth“ MAP duomenis."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Programai leidžiama pasiekti „Bluetooth“ MAP duomenis."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"prisijungti prie WiMAX ir atsijungti nuo jo"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Leidžiama programai nustatyti, ar įgalintas „WiMAX“, ir informaciją apie visus prijungtus tinklus."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Keisti „WiMAX“ būseną"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Leidžiama programai pasiekti visų naudotojų išorinę atmintinę."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"pasiekti talpyklos failų sistemą"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Leidžiama programai skaityti talpyklos failų sistemą ir į ją rašyti."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"skambinti / priimti skambučius internetu"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Leidžiama programai naudoti SIP paslaugą norint skambinti / priimti skambučius internetu."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"skambinti / priimti SIP skambučius"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Leidžiama programai skambinti ir priimti SIP skambučius."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"sąveika su gaunamojo skambučio ekranu"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Programai leidžiama valdyti, kada ir kaip naudotojai matys gaunamojo skambučio ekraną."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"skaityti tinklo naudojimo istoriją"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Leidžiama programai skaityti konkrečių tinklų ir programų tinklo naudojimo istoriją."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"valdyti tinklo politiką"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Programai leidžiama pasiekti ir naudoti DRM sertifikatus. Neturėtų prireikti naudojant įprastas programas."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Gauti „Android“ perdavimo funkcijos perkėlimo būseną"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Programai leidžiama gauti informaciją apie dabartinius „Android“ perdavimo funkcijos perkėlimus"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"pašalinti DRM sertifikatus"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Programai leidžiama pašalinti DRM sertifikatus. Neturėtų prireikti naudojant įprastas programas."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nustatyti slaptažodžio taisykles"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Valdyti leidžiamą ekrano atrakinimo slaptažodžių ilgį ir leidžiamus naudoti simbolius."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Stebėti bandymus atrakinti ekraną"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Trūksta SIM kortelės arba ji neskaitoma. Įdėkite SIM kortelę."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Negalima naudoti SIM kortelės."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kortelė visam laikui neleidžiama.\n Jei norite gauti kitą SIM kortelę, susisiekite su belaidžio ryšio paslaugos teikėju."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Ankstesnio takelio mygtukas"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Kito takelio mygtukas"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pristabdymo mygtukas"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Paleidimo mygtukas"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Sustabdymo mygtukas"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Ankstesnis takelis"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Kitas takelis"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pristabdyti"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Leisti"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stabdyti"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Sukti atgal"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Sukti pirmyn"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Tik pagalbos skambučiai"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Tinklas užrakintas"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kortelė užrakinta PUK kodu."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatuoti"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB derinimas prijungtas"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Palieskite, kad neleistumėte USB derinimo."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Klaviatūros keitimas"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Pasirinkti klaviatūras"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fizinė klaviatūra"</string>
     <string name="hardware" msgid="7517821086888990278">"Apar. įr."</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pasirinkite klaviatūros išdėstymą"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Sumažinti valandų skaičių"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Nustatyti po pusiaudienio"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Nustatyti prieš pusiaudienį"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"popiet"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"priešpiet"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Padidinti mėnesių skaičių"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Sumažinti mėnesių skaičių"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Padidinti dienų skaičių"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Priimti skambutį?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Visada"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tik kartą"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"„%1$s“ nepalaiko darbo profilio."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Planšetinis kompiuteris"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefonas"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Ausinės"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Pasirinkta: <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Ištrinta: <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Darbo <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Įjungėte programos užrakinimo funkcijos režimą. Kad išeitumėte, palieskite ir palaikykite mygtuką „Naujausios“"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Įjungėte programos užrakinimo funkcijos režimą."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Naudoti programos užrakinimo funkciją?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Naudojant programos užrakinimo funkciją ekrane užrakinama viena programa.\n\nKad išeitumėte, palieskite ir palaikykite mygtuką „Naujausios“."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NE, AČIŪ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ĮJUNGTI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Naudojama programos užrakinimo funkcija"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Programos užrakinimo funkcija nebenaudojama"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Prieš išeinant paklausti: %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN kodas"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"atrakinimo piešinys"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"slaptažodis"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 2de9fc6..7c07f92 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Ienākošā zvana zvanītāja ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Izejošā zvana zvanītāja ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Saistītās līnijas ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Saistītās līnijas ID ierobežojums"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Zvanu pāradresācija"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Zvana gaidīšana"</string>
     <string name="BaMmi" msgid="455193067926770581">"Zvanu aizliegšana"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ļauj īpašniekam nosūtīt informāciju par nodomiem ierīces administratoram. Parastajām lietotnēm tas nekad nav nepieciešams."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"Izveidot saiti ar TV ieeju"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ļauj īpašniekam izveidot saiti ar TV ieejas augšējā līmeņa saskarni. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"mainīt vecāku kontroli"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Atļauj īpašniekam modificēt sistēmas vecāku kontroles datus. Parastās lietotnēs tas nebūs nepieciešams."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pievienot vai noņemt ierīces administratoru"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ļauj īpašniekam pievienot vai noņemt aktīvos ierīces administratorus. Nekad nav nepieciešama parastām lietotnēm."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"mainīt ekrāna orientāciju"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth ierīču savienošana pārī, izmantojot lietojumprogrammu"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Ļauj lietotnei izveidot savienojumu pārī ar tālvadības ierīcēm bez lietotāju mijiedarbības."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Ļauj lietotnei izveidot savienojumu pārī ar tālvadības ierīcēm bez lietotāju mijiedarbības."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"piekļuve Bluetooth MAP datiem"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Ļauj lietotnei piekļūt Bluetooth MAP datiem."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Ļauj lietotnei piekļūt Bluetooth MAP datiem."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX savienojuma izveide un pārtraukšana"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Ļauj lietotnei noteikt, vai WiMAX ir iespējots, un sniedz informāciju par visiem WiMAX tīkliem, ar kuriem ir izveidots savienojums."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX statusa mainīšana"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Ļauj lietotnei piekļūt visu lietotāju ārējai krātuvei."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"piekļūt kešatmiņas failu sistēmai"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Ļauj lietotnei lasīt un rakstīt kešatmiņas failu sistēmā."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"veikt/saņemt interneta zvanus"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Ļauj lietotnei izmantot SIP pakalpojumu, lai veiktu/saņemtu interneta zvanus."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP zvanu veikšana/saņemšana"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ļauj lietotnei veikt un saņemt SIP zvanus."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"mijiedarbība ar zvana laikā rādītu ekrānu"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Ļauj lietotnei kontrolēt, kad un kā lietotājam ir redzams zvana laikā redzamais ekrāns."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lasīt informāciju par iepriekšēju tīkla izmantošanu"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Ļauj lietotnei lasīt informāciju par iepriekšēju tīkla izmantošanu saistībā ar noteiktiem tīkliem un lietotnēm."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"pārvaldīt tīkla politiku"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ļauj lietojumprogrammai nodrošināt un izmantot digitālā satura tiesību pārvaldības sertifikātus. Parastām lietotnēm šī atļauja nekad nav nepieciešama."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Saņemt Android Beam pārsūtīšanas statusu"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ļauj šai lietojumprogrammai saņemt informāciju par pašreizēju Android Beam pārsūtīšanu"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"noņemt DRM sertifikātus"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Ļauj lietojumprogrammai noņemt DRM sertifikātus. Parastās lietotnēs tas nebūs nepieciešams."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Paroles kārtulu iestatīšana"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolē ekrāna atbloķēšanas parolē atļautās rakstzīmes un garumu."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekrāna atbloķēšanas mēģinājumu pārraudzīšana"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Nav SIM kartes, vai arī to nevar nolasīt. Ievietojiet SIM karti."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Nelietojama SIM karte."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Jūsu SIM karte ir neatgriezeniski atspējota.\nSazinieties ar savu bezvadu pakalpojumu sniedzēju, lai iegūtu citu SIM karti."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Iepriekšējā ieraksta poga"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nākamā ieraksta poga"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pārtraukšanas poga"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Atskaņošanas poga"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Apturēšanas poga"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Iepriekšējais ieraksts"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Nākamais ieraksts"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pārtraukt"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Atskaņot"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Apturēt"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Attīt atpakaļ"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Ātri patīt"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Tikai ārkārtas zvani"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Tīkls ir bloķēts."</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM karte ir bloķēta ar PUK kodu."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatēt"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB atkļūdošana ir pievienota."</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Pieskarieties, lai atspējotu USB atkļūdošanu."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Tastatūras maiņa"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Izvēlēties tastatūru"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fiziskā tastatūra"</string>
     <string name="hardware" msgid="7517821086888990278">"Aparatūra"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Atlasiet tastatūras izkārtojumu"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Norādīt agrāku stundu"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Iestatīt pēcpusdienas laiku"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Iestatīt priekšpusdienas laiku"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"pēcpusd."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"priekšpusd."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Norādīt vēlāku mēnesi"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Norādīt agrāku mēnesi"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Norādīt vēlāku dienu"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vai atbildēt uz zvanu?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vienmēr"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tikai vienreiz"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s neatbalsta darba profilu."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Planšetdators"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Tālrunis"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Austiņas"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Atlasīts: <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> tika dzēsts."</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Darbā: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Jūs izmantojat režīmu “Fiksēt lietotnē”. Lai izietu, nospiediet un turiet pogu Pēdējās."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Jūs izmantojat režīmu “Bloķēšana darbībai vienā lietotnē”."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Vai izmantot funkciju \"Fiksēt lietotni\"?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Izmantojot funkciju “Fiksēt lietotni”, ekrāns tiek nobloķēts vienā lietotnē.\n\nLai izietu, nospiediet un turiet pogu Pēdējās."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NĒ, PALDIES"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"SĀKT"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Lietotne fiksēta"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Lietotne vairs nav fiksēta"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Pirms iziešanas jautāt: %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN kods"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"grafiskā atslēga"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"parole"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-mcc206-mnc05/config.xml b/core/res/res/values-mcc206-mnc05/config.xml
new file mode 100644
index 0000000..a684aaa
--- /dev/null
+++ b/core/res/res/values-mcc206-mnc05/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>20610</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc206-mnc10/config.xml b/core/res/res/values-mcc206-mnc10/config.xml
new file mode 100644
index 0000000..5c96317
--- /dev/null
+++ b/core/res/res/values-mcc206-mnc10/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>20605</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc208-mnc10/config.xml b/core/res/res/values-mcc208-mnc10/config.xml
index 358bef6..10a6c5d 100644
--- a/core/res/res/values-mcc208-mnc10/config.xml
+++ b/core/res/res/values-mcc208-mnc10/config.xml
@@ -35,4 +35,28 @@
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">SFR option modem,websfr,,,,,,,,,208,10,,DUN</string>
 
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc208-mnc15/config.xml b/core/res/res/values-mcc208-mnc15/config.xml
new file mode 100644
index 0000000..32b951c
--- /dev/null
+++ b/core/res/res/values-mcc208-mnc15/config.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>20801</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc01/config.xml b/core/res/res/values-mcc214-mnc01/config.xml
index 1b7c462..ecd8124 100644
--- a/core/res/res/values-mcc214-mnc01/config.xml
+++ b/core/res/res/values-mcc214-mnc01/config.xml
@@ -37,4 +37,27 @@
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">INTERNET,airtelnet.es,,,vodafone,vodafone,,,,,214,01,1,DUN</string>
 
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc214-mnc02/config.xml b/core/res/res/values-mcc214-mnc02/config.xml
new file mode 100755
index 0000000..c83de57
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc02/config.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+
+</resources>
diff --git a/core/res/res/values-mcc214-mnc04/config.xml b/core/res/res/values-mcc214-mnc04/config.xml
index 71301d5..6dfa87b 100644
--- a/core/res/res/values-mcc214-mnc04/config.xml
+++ b/core/res/res/values-mcc214-mnc04/config.xml
@@ -20,6 +20,25 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- Don't use roaming icon for considered operators -->
     <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21405</item>
+        <item>21406</item>
         <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
     </string-array>
 </resources>
diff --git a/core/res/res/values-mcc214-mnc05/config.xml b/core/res/res/values-mcc214-mnc05/config.xml
new file mode 100755
index 0000000..9302b0c
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc05/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc06/config.xml b/core/res/res/values-mcc214-mnc06/config.xml
new file mode 100755
index 0000000..c3f2643
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc06/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc08/config.xml b/core/res/res/values-mcc214-mnc08/config.xml
new file mode 100755
index 0000000..5af6d5d
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc08/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc09/config.xml b/core/res/res/values-mcc214-mnc09/config.xml
new file mode 100755
index 0000000..d789771
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc09/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc10/config.xml b/core/res/res/values-mcc214-mnc10/config.xml
new file mode 100755
index 0000000..b66e1a2
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc10/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc11/config.xml b/core/res/res/values-mcc214-mnc11/config.xml
new file mode 100755
index 0000000..9fd06db
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc11/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc12/config.xml b/core/res/res/values-mcc214-mnc12/config.xml
new file mode 100755
index 0000000..7468238
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc12/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc13/config.xml b/core/res/res/values-mcc214-mnc13/config.xml
new file mode 100755
index 0000000..35ff4ae
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc13/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc14/config.xml b/core/res/res/values-mcc214-mnc14/config.xml
new file mode 100755
index 0000000..b6a7440
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc14/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc15/config.xml b/core/res/res/values-mcc214-mnc15/config.xml
new file mode 100755
index 0000000..8296410
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc15/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc16/config.xml b/core/res/res/values-mcc214-mnc16/config.xml
new file mode 100755
index 0000000..1aaf577
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc16/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc17/config.xml b/core/res/res/values-mcc214-mnc17/config.xml
new file mode 100755
index 0000000..be92a32
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc17/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc18/config.xml b/core/res/res/values-mcc214-mnc18/config.xml
new file mode 100755
index 0000000..078d7e2
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc18/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc19/config.xml b/core/res/res/values-mcc214-mnc19/config.xml
new file mode 100755
index 0000000..d194687
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc19/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc20/config.xml b/core/res/res/values-mcc214-mnc20/config.xml
new file mode 100755
index 0000000..6aaf970
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc20/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21421</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc21/config.xml b/core/res/res/values-mcc214-mnc21/config.xml
new file mode 100755
index 0000000..f890b14
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc21/config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc222-mnc10/config.xml b/core/res/res/values-mcc222-mnc10/config.xml
index 24dd71c..67467a0 100644
--- a/core/res/res/values-mcc222-mnc10/config.xml
+++ b/core/res/res/values-mcc222-mnc10/config.xml
@@ -35,4 +35,29 @@
          "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">Tethering Internet,web.omnitel.it,,,,,,,,,222,10,,DUN</string>
+
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21401</item>
+        <item>21402</item>
+        <item>21403</item>
+        <item>21404</item>
+        <item>21405</item>
+        <item>21406</item>
+        <item>21407</item>
+        <item>21408</item>
+        <item>21409</item>
+        <item>21410</item>
+        <item>21411</item>
+        <item>21412</item>
+        <item>21413</item>
+        <item>21414</item>
+        <item>21415</item>
+        <item>21416</item>
+        <item>21417</item>
+        <item>21418</item>
+        <item>21419</item>
+        <item>21420</item>
+        <item>21421</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc234-mnc10/config.xml b/core/res/res/values-mcc234-mnc10/config.xml
new file mode 100644
index 0000000..b704d3f
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc10/config.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23420</item>
+        <item>23426</item>
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc20/config.xml b/core/res/res/values-mcc234-mnc20/config.xml
index d602c9f..1ed53dc 100644
--- a/core/res/res/values-mcc234-mnc20/config.xml
+++ b/core/res/res/values-mcc234-mnc20/config.xml
@@ -24,5 +24,15 @@
     <!-- Configure mobile network MTU. Carrier specific value is set here.
     -->
     <integer name="config_mobile_mtu">1440</integer>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23410</item>
+        <item>23426</item>
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
 
 </resources>
diff --git a/core/res/res/values-mcc234-mnc26/config.xml b/core/res/res/values-mcc234-mnc26/config.xml
new file mode 100644
index 0000000..8d259de
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc26/config.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23410</item>
+        <item>23420</item>
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc302-mnc220/config.xml b/core/res/res/values-mcc302-mnc220/config.xml
new file mode 100644
index 0000000..5259152
--- /dev/null
+++ b/core/res/res/values-mcc302-mnc220/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302370</item>
+        <item>302610</item>
+        <item>302660</item>
+        <item>302720</item>
+        <item>302780</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc302-mnc370/config.xml b/core/res/res/values-mcc302-mnc370/config.xml
index 4fb2232..9cfe31f 100644
--- a/core/res/res/values-mcc302-mnc370/config.xml
+++ b/core/res/res/values-mcc302-mnc370/config.xml
@@ -40,4 +40,12 @@
     -->
     <integer name="config_mobile_mtu">1410</integer>
 
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302220</item>
+        <item>302610</item>
+        <item>302660</item>
+        <item>302720</item>
+        <item>302780</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc302-mnc660/config.xml b/core/res/res/values-mcc302-mnc660/config.xml
index 76f7968..000f897 100644
--- a/core/res/res/values-mcc302-mnc660/config.xml
+++ b/core/res/res/values-mcc302-mnc660/config.xml
@@ -40,4 +40,12 @@
     -->
     <integer name="config_mobile_mtu">1430</integer>
 
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302220</item>
+        <item>302370</item>
+        <item>302610</item>
+        <item>302720</item>
+        <item>302780</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc302-mnc720/config.xml b/core/res/res/values-mcc302-mnc720/config.xml
index 4eceffc..dfc58fe 100644
--- a/core/res/res/values-mcc302-mnc720/config.xml
+++ b/core/res/res/values-mcc302-mnc720/config.xml
@@ -40,4 +40,12 @@
     -->
     <integer name="config_mobile_mtu">1430</integer>
 
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302220</item>
+        <item>302370</item>
+        <item>302610</item>
+        <item>302660</item>
+        <item>302780</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mcc310-mnc150/config.xml b/core/res/res/values-mcc310-mnc150/config.xml
new file mode 100644
index 0000000..f1936f4
--- /dev/null
+++ b/core/res/res/values-mcc310-mnc150/config.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Show roaming icon though same named operators. -->
+    <string-array translatable="false" name="config_sameNamedOperatorConsideredRoaming">
+        <item>310110</item>
+        <item>310140</item>
+        <item>310400</item>
+        <item>310470</item>
+    </string-array>
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>311</item>
+        <item>312</item>
+        <item>313</item>
+        <item>314</item>
+        <item>315</item>
+        <item>316</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc310-mnc170 b/core/res/res/values-mcc310-mnc170
new file mode 120000
index 0000000..cfced17
--- /dev/null
+++ b/core/res/res/values-mcc310-mnc170
@@ -0,0 +1 @@
+./values-mcc310-mnc150
\ No newline at end of file
diff --git a/core/res/res/values-mcc310-mnc380 b/core/res/res/values-mcc310-mnc380
new file mode 120000
index 0000000..cfced17
--- /dev/null
+++ b/core/res/res/values-mcc310-mnc380
@@ -0,0 +1 @@
+./values-mcc310-mnc150
\ No newline at end of file
diff --git a/core/res/res/values-mcc310-mnc410/config.xml b/core/res/res/values-mcc310-mnc410/config.xml
index 73aa1ce..c7ae8c8 100644
--- a/core/res/res/values-mcc310-mnc410/config.xml
+++ b/core/res/res/values-mcc310-mnc410/config.xml
@@ -24,5 +24,20 @@
     <!-- Configure mobile network MTU. Carrier specific value is set here.
     -->
     <integer name="config_mobile_mtu">1410</integer>
-
+    <!-- Show roaming icon though same named operators. -->
+    <string-array translatable="false" name="config_sameNamedOperatorConsideredRoaming">
+        <item>310110</item>
+        <item>310140</item>
+        <item>310400</item>
+        <item>310470</item>
+    </string-array>
+    <!-- BEGIN Motorola, xnk746, Feb-12-2014, IKVPREL2KK-1468 -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>311</item>
+        <item>312</item>
+        <item>313</item>
+        <item>314</item>
+        <item>315</item>
+        <item>316</item>
+    </string-array>
 </resources>
diff --git a/core/res/res/values-mcc340-mnc01/config.xml b/core/res/res/values-mcc340-mnc01/config.xml
index bbab4ad..bb491ed 100644
--- a/core/res/res/values-mcc340-mnc01/config.xml
+++ b/core/res/res/values-mcc340-mnc01/config.xml
@@ -35,4 +35,10 @@
          "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">Orangeweb,orangeweb,,,orange,orange,,,,,340,01,1,DUN</string>
+
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>20801</item>
+        <item>20815</item>
+    </string-array>
+
 </resources>
diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml
index bf2522a..c53226a 100644
--- a/core/res/res/values-mk-rMK/strings.xml
+++ b/core/res/res/values-mk-rMK/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ИД на дојдовен повикувач"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ИД на појдовен повикувач"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ИД на поврзана линија"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Забрана на ИД на поврзана линија"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Препраќање повик"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Повик на чекање"</string>
     <string name="BaMmi" msgid="455193067926770581">"Забрана за повик"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Дозволува сопственикот да испраќа намери до администратор за уреди. Не треба да се користи за стандардни апликации."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"поврзување со ТВ-влез"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Дозволува сопственикот да се поврзе со интерфејс од највисоко ниво на ТВ-влез. Не треба да се користи за стандардни апликации."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"менување родителски надзор"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Дозволува носителот да ги менува податоците за родителски надзор на системот. Не треба да се користи за стандардни апликации."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"додадај или отстрани администратор на уредот"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Овозможува сопственикот да додаде или отстрани активни администратори на уредот. Не треба да се користи за стандардни апликации."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"промени ориентација на екран"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"овозможи спарување на апликацијата преку Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Овозможува апликацијата да се спари со далечински уреди без интеракција на корисникот."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Овозможува апликацијата да се спари со далечински уреди без интеракција на корисникот."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"пристапување до податоците на Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Дозволува апликацијата да пристапува до податоците на Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Дозволува апликацијата да пристапува до податоците на Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"поврзи се и исклучи се од WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Овозможува апликацијата да утврди дали WiMAX е овозможен и информации за кои било поврзани WiMAX мрежи."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Промени состојба на WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Овозможува апликацијата да пристапува до надворешна меморија за сите корисници."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"пристапи кон кеш на систем на датотеки"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Дозволува апликацијата да чита и да пишува кеш систем на датотеки."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"прави/примај повици преку интернет"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Дозволува апликацијата да ја користи СИП-услугата за да прима/остварува интернет-повици."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"остварувај/примај повици преку СИП"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Дозволува апликацијата да остварува и прима повици преку СИП."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"комуницирај со екран на дојдовен повик"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Овозможува апликацијата да контролира кога и како корисникот го гледа екранот на дојдовен повик."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"читај употреба на мрежа во минатото"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Дозволува апликацијата да го чита историското користење на мрежата за одредени мрежи или апликации."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"управувај со политика на мрежа"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Дозволува апликацијата да обезбедува и користи ДРМ-сертификати. Не треба да се користи за стандардни апликации."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Примајте статус на трансфер на Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ѝ дозволува на оваа апликација да добива информации за моменталните трансфери на Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"отстранување ДРМ-сетификати"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Дозволува апликација да отстранува ДРМ-сертификати. Не треба да се користи за стандардни апликации."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Подеси правила за лозинката"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролирај ги должината и знаците што се дозволени за лозинки за отклучување екран."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Следи ги обидите за отклучување на екранот"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Нема СИМ-картичка или не може да се прочита. Вметнете СИМ-картичка."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Неупотреблива СИМ картичка."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Вашата СИМ-картичка е трајно оневозможена.\nКонтактирајте со давателот на услуги за безжична мрежа за друга СИМ-картичка."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Копче „Претходна песна“"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Копче „Следна песна“"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Копче „Пауза“"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Копче „Репродукција“"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Копче „Запри“"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Претходна песна"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Следна песна"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Пауза"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Пушти"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Запри"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Премотај назад"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Брзо премотај напред"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Само повици за итни случаи"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Мрежата е заклучена"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"СИМ картичката е заклучена со ПУК код."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Форматирај"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Поврзано е отстранување грешки преку УСБ"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Допрете за да се оневозможи отстранувањето грешки преку USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Измени тастатура"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Избери тастатури"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Физичка тастатура"</string>
     <string name="hardware" msgid="7517821086888990278">"Хардвер"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Избери изглед на тастатура"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Намали час"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Постави попладне"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Подеси претпладне"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"попладне"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"претпладне"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Зголеми месец"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Намали месец"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Зголеми ден"</string>
@@ -1565,6 +1572,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Прифати повик?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Секогаш"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Само еднаш"</string>
+    <!-- String.format failed for translation -->
     <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
     <skip />
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Таблет"</string>
@@ -1760,116 +1768,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Избрано <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Избришано <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Работа <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Вие сте во режим на заклучување на апликација. За да излезете, допрете го и задржете го копчето Неодамнешни"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Се наоѓате во режимот заклучување апликација."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Да се користи заклучување апликација?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Заклучувањето апликација го заклучува екранот на една апликација.\n\nЗа да излезете, допрете го и задржете го копчето Неодамнешни."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"НЕ, БЛАГОДАРАМ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"СТАРТ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Заклучен на апликација"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Не е повеќе заклучен на апликација"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Пред излегување побарајте %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"ПИН"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"шема за отклучување"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"лозинка"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml
index 5722300..733a508 100644
--- a/core/res/res/values-ml-rIN/strings.xml
+++ b/core/res/res/values-ml-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ഇൻകമിംഗ് കോളർ ഐഡി"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ഔട്ട്ഗോയിംഗ് കോളർ ഐഡി"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"കണക്‌റ്റുചെയ്‌തിരിക്കുന്ന ലൈൻ ഐഡി"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"കണക്‌റ്റുചെയ്‌തിരിക്കുന്ന ലൈൻ ഐഡി നിയന്ത്രണം"</string>
     <string name="CfMmi" msgid="5123218989141573515">"കോൾ കൈമാറൽ"</string>
     <string name="CwMmi" msgid="9129678056795016867">"കോൾ വെയ്‌റ്റിംഗ്"</string>
     <string name="BaMmi" msgid="455193067926770581">"കോൾ നിരോധിക്കൽ"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"ഒരു ഉപകരണ അഡ്മിനിസ്‌ട്രേറ്ററിലേക്ക് ഇന്റന്റുകൾ അയയ്ക്കുന്നതിന് ദാതാവിനെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV ഇൻപുട്ടുമായി ബന്ധിപ്പിക്കുക"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"ഒരു ടിവി ഇൻപുട്ടിന്റെ ഉയർന്ന നിലയിലുള്ള ഇന്റർഫേസിലേക്ക് ബന്ധിപ്പിക്കാൻ ദാതാവിനെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"രക്ഷാകർതൃ നിയന്ത്രണങ്ങൾ പരിഷ്‌ക്കരിക്കുക"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"സിസ്‌റ്റത്തിന്റെ രക്ഷാകർതൃ നിയന്ത്രണ ഡാറ്റ പരിഷ്കരിക്കുന്നതിന് ഉടമയെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ഒരു ഉപകരണ അഡ്‌മിൻ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"സജീവ ഉപകരണ അഡ്‌മിനിസ്‌ട്രേറ്ററുകൾ ചേർക്കാനോ നീക്കംചെയ്യാനോ ഹോൾഡറിനെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"സ്ക്രീൻ ഓറിയന്റേഷൻ മാറ്റുക"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"അപ്ലിക്കേഷൻ ഉപയോഗിച്ച് Bluetooth ജോടിയാക്കൽ അനുവദിക്കുക"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ഉപയോക്തൃ ഇടപെടലില്ലാതെ വിദൂര ഉപകരണങ്ങളുമായി ജോടിയാക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ഉപയോക്തൃ ഇടപെടലില്ലാതെ വിദൂര ഉപകരണങ്ങളുമായി ജോടിയാക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP ഡാറ്റ ആക്‌സസ്സുചെയ്യുക"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Bluetooth MAP ഡാറ്റ ആക്‌സസ്സുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Bluetooth MAP ഡാറ്റ ആക്‌സസ്സുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX കണക്റ്റുചെയ്യുക, അതിൽ നിന്നും വിച്ഛേദിക്കുക"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX പ്രവർത്തനക്ഷമമാണോയെന്നതും കണക്റ്റുചെയ്‌തിരിക്കുന്ന ഏതെങ്കിലും WiMAX നെറ്റ്‌വർക്കുകളെക്കുറിച്ചുള്ള വിവരങ്ങളും നിർണ്ണയിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX നില മാറ്റുക"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"എല്ലാ ഉപയോക്താക്കൾക്കായും ബാഹ്യ സംഭരണം ആക്‌സസ്സുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"കാഷെ ഫയൽ സിസ്റ്റം ആക്‌സസ്സ് ചെയ്യുക"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"കാഷെ ഫയൽ സിസ്‌റ്റം റീഡുചെയ്യുന്നതിനും റൈറ്റുചെയ്യുന്നതിനും അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ഇന്റനെറ്റ് കോളുകൾ സൃഷ്‌ടിക്കുക/നേടുക"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ഇന്റർനെറ്റ് കോളുകൾ വിളിക്കുന്നതിനും സ്വീകരിക്കുന്നതിനും SIP സേവനം ഉപയോഗിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP കോളുകൾ വിളിക്കുക/സ്വീകരിക്കുക"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP കോളുകൾ വിളിക്കാനും സ്വീകരിക്കാനും അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ഇൻ-കോൾ സ്‌ക്രീനുമായി സംവദിക്കുക"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ഉപയോക്താവ് ഇൻ-കോൾ സ്‌ക്രീൻ എപ്പോൾ, എങ്ങനെ കാണുന്നുവെന്നത് നിയന്ത്രിക്കാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ചരിത്രപരമായ നെറ്റ്‌വർക്ക് ഉപയോഗം വായിക്കുക"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"നിർദ്ദി‌ഷ്‌ട നെറ്റ്‌വർക്കുകൾക്കും അപ്ലിക്കേഷനുകൾക്കുമുള്ള ചരിത്രപരമായ നെറ്റ്‌വർക്ക് ഉപയോഗം റീഡുചെയ്യുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"നെറ്റ്‌വർക്ക് നയം നിയന്ത്രിക്കുക"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"പ്രൊവിഷൻ ചെയ്യുന്നതിനും DRM സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുന്നതിനും അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android ബീം കൈമാറൽ നില നേടുക"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"നിലവിലെ Android ബീം കൈമാറ്റങ്ങളെക്കുറിച്ച് വിവരങ്ങൾ നേടാൻ ഈ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM സർട്ടിഫിക്കറ്റുകൾ നീക്കം ചെയ്യുക"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM സർട്ടിഫിക്കറ്റുകൾ നീക്കംചെയ്യുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. സാധാരണ അപ്ലിക്കേഷനുകൾക്ക് ഒരിക്കലും ആവശ്യമില്ല."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"പാസ്‌വേഡ് നിയമങ്ങൾ സജ്ജീകരിക്കുക"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"സ്‌ക്രീൻ-അൺലോക്ക് പാസ്‌വേഡുകളിൽ അനുവദിച്ചിരിക്കുന്ന ദൈർഘ്യവും പ്രതീകങ്ങളും നിയന്ത്രിക്കുക."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"സ്‌ക്രീൻ അൺലോക്ക് ശ്രമങ്ങൾ നിരീക്ഷിക്കുക"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM കാർഡ് കാണുന്നില്ല അല്ലെങ്കിൽ റീഡുചെയ്യാനായില്ല. ഒരു SIM കാർഡ് ചേർക്കുക."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ഉപയോഗശൂന്യമായ SIM കാർഡ്."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"നിങ്ങളുടെ SIM കാർഡ് ശാശ്വതമായി പ്രവർത്തനരഹിതമാക്കി.\n മറ്റൊരു SIM കാർഡിനായി നിങ്ങളുടെ വയർലെസ് സേവന ദാതാവിനെ ബന്ധപ്പെടുക."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"മുമ്പത്തെ ട്രാക്ക് ബട്ടൺ"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"അടുത്ത ട്രാക്ക് ബട്ടൺ"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"താൽക്കാലികമായി നിർത്തുക ബട്ടൺ"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"പ്ലേ ബട്ടൺ"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"നിർത്തുക ബട്ടൺ"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"മുമ്പത്തെ ട്രാക്ക്"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"അടുത്ത ട്രാക്ക്"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"താൽക്കാലികമായി നിർത്തുക"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"പ്ലേ ചെയ്യുക"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"നിര്‍ത്തുക"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"റിവൈൻഡുചെയ്യുക"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"വേഗത്തിലുള്ള കൈമാറൽ"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"അടിയന്തര കോളുകൾ മാത്രം"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"നെറ്റ്‌വർക്ക് ലോക്കുചെയ്‌തു"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM കാർഡ് PUK ലോക്ക് ചെയ്‌തതാണ്."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ഫോർമാറ്റുചെയ്യുക"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB ഡീബഗ്ഗിംഗ് കണക്‌റ്റുചെയ്‌തു"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ഡീബഗ്ഗിംഗ് പ്രവർത്തനരഹിതമാക്കാൻ സ്‌പർശിക്കുക."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"കീബോർട്ട് മാറ്റുക"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"കീബോർഡുകൾ തിരഞ്ഞെടുക്കുക"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ഭൗതിക കീബോർഡ്"</string>
     <string name="hardware" msgid="7517821086888990278">"ഹാർഡ്‌വെയർ"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"കീബോർഡ് ലേഔട്ട് തിരഞ്ഞെടുക്കുക"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"മണിക്കൂർ കുറയ്‌ക്കുക"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM സജ്ജീകരിക്കുക"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM സജ്ജീകരിക്കുക"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"മാസം വർദ്ധിപ്പിക്കുക"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"മാസം കുറയ്‌ക്കുക"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"ദിവസം വർദ്ധിപ്പിക്കുക"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"കോൾ സ്വീകരിക്കണോ?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"എല്ലായ്പ്പോഴും"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"ഒരിക്കൽ മാത്രം"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s എന്നത് ഔദ്യോഗിക പ്രൊഫൈലിനെ പിന്തുണയ്‌ക്കുന്നില്ല."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ടാബ്‌ലെറ്റ്"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ഫോണ്‍"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ഹെഡ്‌ഫോണുകൾ"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> തിരഞ്ഞെടുത്തു"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ഇല്ലാതാക്കി"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"ഔദ്യോഗികം <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"നിങ്ങൾ \'അപ്ലിക്കേഷനിലേക്ക് ലോക്കുചെയ്യൽ\' എന്ന മോഡിലാണ്. പുറത്തുകടക്കുന്നതിന് അടുത്തിടെയുള്ളത് എന്ന ബട്ടൺ സ്‌പർശിച്ച് പിടിക്കുക"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"നിങ്ങൾ \'ലോക്ക്-ടു-അപ്ലിക്കേഷൻ\' മോഡിലാണ്."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"ലോക്ക്-ടു-അപ്ലിക്കേഷൻ ഉപയോഗിക്കണോ?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"\'അപ്ലിക്കേഷനിലേക്ക് ലോക്കുചെയ്യൽ\' ഒരു അപ്ലിക്കേഷനിലെ ഡിസ്‌പ്ലേയെ ലോക്കുചെയ്യുന്നു.\n\nപുറത്തുകടക്കുന്നതിന്, അടുത്തിടെയുള്ളത് എന്ന ബട്ടൺ സ്‌പർശിച്ച് പിടിക്കുക."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"വേണ്ട, നന്ദി"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ആരംഭിക്കുക"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"അപ്ലിക്കേഷനിലേക്ക് ലോക്കുചെയ്‌തു"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"അപ്ലിക്കേഷനിലേക്ക് ഇനി ലോക്കുചെയ്യില്ല"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"പുറത്തുകടക്കുന്നതിന് മുമ്പ് %1$s ആവശ്യപ്പെടുക"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"പിൻ"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"അൺലോക്ക് പാറ്റേൺ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"പാസ്‌വേഡ്"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
index 1588426..0e90ada 100644
--- a/core/res/res/values-mn-rMN/strings.xml
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Дуудлага хийгчийн ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Гарч байгаа дуудлага хийгчийн ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Холбогдсон шугамын ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Холбогдсон шугамын ID Хязгаарлалт"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Дуудлага дамжуулах"</string>
     <string name="CwMmi" msgid="9129678056795016867">"дуудлага хүлээлгэх"</string>
     <string name="BaMmi" msgid="455193067926770581">"Дуудлага хориглох"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Эзэмшигч нь төхөөрөмжийн админруу интент илгээх боломжтой. Энгийн апп-д шаардлагагүй."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ТВ оролт холбох"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Эзэмшигч нь ТВ оролтын дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"эцэг эхийн хяналтыг өөрчлөх"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Эзэмшигчид системийн эцэг эхийн хяналтын датаг тохируулах боломж олгоно. Энгийн апп-уудад шаардагдахгүй."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"төхөөрөмжийн админ нэмэх, хасах"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Эзэмшигч нь идэвхтэй төхөөрөмжийн администраторыг нэмэх, хасах боломжтой. Энгийн апп-д шаардлагагүй."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"дэлгэцний чиглэлийг солих"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Аппликешнд bluetooth хослол хийхийг зөвшөөрнө"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Апп-д хэрэглэгчтэй харьцахгүйгээр зайны төхөөрөмжүүдтэй хослох боломж олгоно."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Апп-д хэрэглэгчтэй харьцахгүйгээр зайны төхөөрөмжүүдтэй хослох боломж олгоно."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Блютүүт MAP датаны хандалт"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Апп-д Блютүүт MAP датад хандах боломж олгоно."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Апп-д Блютүүт MAP датад хандах боломж олгоно."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-д холбогдох болон салах"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Апп нь WiMAX идэвхтэй эсэх болон холбогдсон WiMAX сүлжээний талаар мэдээллийг тодорхойлох боломжтой."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX статусыг өөрчлөх"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Апп нь бүх хэрэглэгчдийн гадаад санд хандах боломжтой."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"кеш файлсистемд хандах"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Апп нь кеш файлсистемийг унших бичих боломжтой."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Интернет дуудлага хийх/хүлээн авах"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Апп нь Интернет дуудлага хийх/хүлээн авахын тулд SIP үйлчилгээг ашиглах боломжтой."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP дуудлага хийх/хүлээн авах"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Апп-д SIP дуудлага хийх болон хүлээн авахыг зөвшөөрөх."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"дуудлагын дэлгэцтэй харьцах"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Апп-д дуудлагын дэлгэцийг хэрэглэгчид хэзээ хэрхэн харуулахыг удирдахыг зөвшөөрнө."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"сүлжээний ашиглалтын түүхийг унших"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Апп нь тусгай сүлжээ болон апп-н сүлжээ ашиглалтын түүхийг унших боломжтой."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"сүлжээний бодлогыг удирдах"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Аппликешнд DRM сертификатыг ашиглах болон нийлүүлэхийг зөвшөөрнө. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Андройд Бийм дамжуулалтын статусыг хүлээн авах"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Одоогийн Андройд Бийм дамжуулалтын мэдээллийг хүлээн авахыг аппликешнд зөвшөөрөх"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM сертификатыг устгах"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Аппликешнд DRM сертификатыг устгахыг зөвшөөрнө. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Нууц үгний дүрмийг тохируулах"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Дэлгэц түгжих нууц үгэнд зөвшөөрөгдсөн тэмдэгт болон уртыг удирдах"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Дэлгэц тайлах оролдлогыг хянах"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM карт байхгүй эсвэл унших боломжгүй. SIM карт оруулна уу."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ашиглах боломжгүй SIM карт."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Таны SIM карт бүрмөсөн идэвхгүй болов.\n Өөр SIM карт авах бол өөрийн утасгүй үйлчилгээний нийлүүлэгчтэй холбогдоно уу."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Өмнөх бичлэг товч"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Дараагийн бичлэг товч"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Түр зогсоох товч"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Тоглуулах товч"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Зогсоох товч"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Өмнөх трек"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Дараагийн трек"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Түр зогсоох"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Тоглуулах"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Зогсоох"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Буцааж хураах"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Хурдан урагшлуулах"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Зөвхөн яаралтай дуудлага"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Сүлжээ түгжигдсэн"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM карт нь PUK түгжээтэй."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Форматлах"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB дебаг холбогдсон"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB дебаг хийхийг идэвхгүй болгох бол хүрнэ үү."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Гарыг өөрчлөх"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Гар сонгох"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Бодит гар"</string>
     <string name="hardware" msgid="7517821086888990278">"Хардвер"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Гарын схемийг сонгох"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Цаг бууруулах"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM тохируулах"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM тохируулах"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ҮХ"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ҮӨ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Сар өсгөх"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Сарыг бууруулах"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Өдөр өсгөх"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Дуудлагыг зөвшөөрөх үү?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Байнга"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Нэг удаа"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ажлын профайлыг дэмждэггүй."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Таблет"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Утас"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Чихэвч"</string>
@@ -1758,116 +1764,30 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> сонгогдсон"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> устсан"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Ажлын <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Та Апп-дотор-түгжих горимд байна. Гарахын тулд Саяхны товчинд хүрч дарна уу"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Та Апп-дотор-түгжих горимд байна."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Апп-дотор-түгжих-г ашиглах уу?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Апп-дотор-түгжих нь дэлгэцийг нэг апп дотор түгжинэ.\n\nГарахын тулд Саяхны товчинд хүрч, дарна."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ҮГҮЙ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ЭХЛҮҮЛЭХ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Апп дотор түгжигдсэн"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Апп дотор түгжихийг зогсоосон"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Гарахын өмнө %1$s-г асуух"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"тайлах хээ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"нууц үг"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
-    <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <string name="battery_saver_description" msgid="725676363406667978">"Батерейны ашиглалтыг уртасгахын тулд батерей хэмнэгч нь таны төхөөрөмжийн ажиллагааг бууруулж, чичрэлт болон далд датаны ихэнх хувийг хязгаарлана. Имэйл, зурвас гэх мэт синк хийгддэг бусад апп-ууд таныг нээхээс нааш шинэчлэгдэхгүй байж болно.\n\nТаныг төхөөрөмжөө цэнэглэх үед батерей хэмнэгч автоматаар унтарна."</string>
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml
index 33aaed8..cde4dd1 100644
--- a/core/res/res/values-mr-rIN/strings.xml
+++ b/core/res/res/values-mr-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"येणारा कॉलर ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"केला जाणारा कॉलर ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"कनेक्ट केलेला रेखा ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"कनेक्ट केलेला रेखा ID प्रतिबंध"</string>
     <string name="CfMmi" msgid="5123218989141573515">"कॉल अग्रेषण"</string>
     <string name="CwMmi" msgid="9129678056795016867">"कॉल प्रतीक्षा"</string>
     <string name="BaMmi" msgid="455193067926770581">"कॉल सोडून"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"डिव्हाइस प्रशासकाकडे अभिप्राय पाठविण्यासाठी होल्डरला अनुमती देते. सामान्य अॅप्सकरिता कधीही आवश्यक नसते."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"एका टीव्ही इनपुटवर प्रतिबद्ध करा"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"टीव्ही इनपुटचा शीर्ष-स्तर इंटरफेस प्रतिबद्ध करण्यासाठी होल्डरला अनुमती देते. सामान्य अॅप्सकरिता कधीही आवश्यकता नसते."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"पालक नियंत्रणे सुधारित करा"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"प्रणालीचा पालक नियंत्रणे डेटा सुधारित करण्यास होल्डरला अनुमती देते. सामान्य अॅप्स साठी कधीही आवश्यकता नसते."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"डिव्‍हाइस प्रशासक जोडा किंवा काढा"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"होल्‍डरला सक्रिय डिव्‍हाइस प्रशासक जोडण्‍याची किंवा काढण्‍याची अनुमती देते. सामान्‍य अ‍ॅप्‍ससाठी कधीही आवश्‍यक नसावे."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"स्क्रीन अभिमुखता बदला"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"अनुप्रयोगाद्वारे Bluetooth जोडणीला अनुमती द्या"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"अ‍ॅपला वापरकर्ता परस्‍परसंवादाशिवाय दूरस्‍थ डिव्‍हाइसेससह जोडण्‍याची अनुमती देते."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"अ‍ॅपला वापरकर्ता परस्‍परसंवादाशिवाय दूरस्‍थ डिव्‍हाइसेससह जोडण्‍याची अनुमती देते."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth नकाशा डेटामध्ये प्रवेश करा"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"अॅपला Bluetooth नकाशा डेटामध्ये प्रवेश करण्याची अनुमती देते."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"अॅपला Bluetooth नकाशा डेटामध्ये प्रवेश करण्याची अनुमती देते."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX कनेक्ट करा आणि त्यावरून डिस्कनेक्ट करा"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX सक्षम केले आहे किंवा नाही आणि कनेक्ट केलेल्या कोणत्याही WiMAX नेटवर्क विषयीची माहिती निर्धारित करण्यासाठी अॅप ला अनुमती देते."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX स्थिती बदला"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"सर्व वापरकर्त्यांच्या बाह्य संचयनावर प्रवेश करण्यासाठी अॅप ला अनुमती देते."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"कॅशे फाईलसिस्टम वर प्रवेश करा"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"कॅशे filesystem वाचण्यासाठी आणि लिहिण्यासाठी अॅप ला अनुमती देते."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"इंटरनेट कॉल करा/प्राप्त करा"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"इंटरनेट कॉल करण्याकरिता/प्राप्त करण्याकरिता SIP सेवा वापरण्यासाठी अॅप ला अनुमती देते."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP कॉल करा/प्राप्त करा"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"अॅपला SIP कॉल करण्‍याची आणि प्राप्त करण्‍याची अनुमती देते."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"कॉल-मध्‍ये स्‍क्रीनशी परस्‍परसंवाद करा"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"कॉल-मधील स्‍क्रीन वापरकर्ता केव्‍हा आणि कशी पाहतो अ‍ॅपला ते नियंत्रित करण्‍याची अनुमती देते."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ऐतिहासिक नेटवर्क वापर वाचा"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"विशिष्ट नेटवर्क आणि अ‍ॅप्सकरिता ऐतिहासिक नेटवर्क वापराचे वाचन करण्यासाठी अ‍ॅप ला अनुमती देते."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"नेटवर्क धोरण व्यवस्थापित करा"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM प्रमाणपत्रांची तरतूद करण्यासाठी आणि वापरण्यासाठी अनुप्रयोगास अनुमती देते. सामान्य अॅप्सकरिता कधीही आवश्यकता नसते."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android बीम स्थानांतरण स्थिती प्राप्त करा"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"वर्तमान Android बीम स्थानांतरणांविषयी माहिती प्राप्त करण्यासाठी या अनुप्रयोगास अनुमती देते"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM प्रमाणपत्रे काढा"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM प्रमाणपत्रे काढण्यासाठी अनुप्रयोगास अनुमती देते. सामान्य अॅप्स साठी कधीही आवश्यकता नसते."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"संकेतशब्द नियम सेट करा"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"स्क्रीन-अनलॉक संकेतशब्दांमध्ये अनुमती दिलेली लांबी आणि वर्ण नियंत्रित करा."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"स्क्रीन-अनलॉक प्रयत्नांचे परीक्षण करा"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"सिम कार्ड गहाळ झाले आहे किंवा ते वाचनीय नाही. एक सिम कार्ड घाला."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"निरुपयोगी सिम कार्ड."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"आपले सिम कार्ड कायमचे अक्षम केले गेले आहे.\n दुसर्‍या सिम कार्डसाठी आपल्‍या वायरलेस सेवा प्रदात्‍यासह संपर्क साधा."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"मागील ट्रॅक बटण"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"पुढील ट्रॅक बटण"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"विराम बटण"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"प्ले बटण"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"थांबवा बटण"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"मागील ट्रॅक"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"पुढील ट्रॅक"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"विराम द्या"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"प्ले करा"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"थांबा"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"रिवाईँड करा"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"फास्ट फॉरवर्ड करा"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"फक्त आणीबाणीचे कॉल"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"नेटवर्क लॉक केले"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"सिम कार्ड PUK-लॉक केलेले आहे."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"फॉरमॅट करा"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB डीबग करणे कनेक्‍ट केले"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB डीबग करणे अक्षम करण्यासाठी स्पर्श करा."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"कीबोर्ड बदला"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"कीबोर्ड निवडा"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"वास्तविक कीबोर्ड"</string>
     <string name="hardware" msgid="7517821086888990278">"हार्डवेअर"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"कीबोर्ड लेआउट निवडा"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"तास कमी करा"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM सेट करा"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM सेट करा"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"महिना वाढवा"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"महिना कमी करा"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"दिवस वाढवा"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"कॉल स्वीकारायचा?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"नेहमी"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"फक्त एकदाच"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s कार्य प्रोफाईलला समर्थन देत नाही."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"टॅब्लेट"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"फोन"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"हेडफोन"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> निवडले"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> हटविली"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्य <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"आपण अ‍ॅप-लॉक-करणे मोड मध्‍ये आहात. बाहेर पडण्‍यासाठी, अलीकडील बटणास स्‍पर्श करा आणि धरून ठेवा."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"आपण अ‍ॅप-लॉक-करणे मोडमध्‍ये आहात."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"अॅप-लॉक-करणे वापरायचे?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"अ‍ॅप-लॉक-करणे एकल अ‍ॅप मधील प्रदर्शन लॉक करते.\n\nबाहेर पडण्‍यासाठी, अलीकडील बटणास स्‍पर्श करा आणि धरून ठेवा."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"नाही, धन्यवाद"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"प्रारंभ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"अ‍ॅप वर लॉक केले"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"अ‍ॅप वर यापुढे लॉक केलेले असणार नाही"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"बाहेर पडण्‍यापूर्वी %1$s साठी विचारा"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"अनलॉक नमुना"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"संकेतशब्द"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml
index ea6e3a8..0bf4ca6 100644
--- a/core/res/res/values-ms-rMY/strings.xml
+++ b/core/res/res/values-ms-rMY/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID Pemanggil Masuk"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID Pemanggil Keluar"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID Laluan yang disambungkan"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Sekatan ID Laluan yang disambungkan"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Pemajuan panggilan"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Panggilan menunggu"</string>
     <string name="BaMmi" msgid="455193067926770581">"Sekatan panggilan"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Membenarkan pemegang menghantar tujuan kepada pentadbir peranti. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"ikat kepada input TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Membenarkan pemegang terikat dengan antara muka peringkat tertinggi bagi input TV. Tidak sekali-kali diperlukan untuk apl biasa."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ubah suai kawalan ibu bapa"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Membenarkan pemegang untuk mengubah suai data kawalan ibu bapa sistem. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"tambah atau alih keluar pentadbir peranti"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Membenarkan pemegang menambah atau mengalih keluar pentadbir peranti aktif. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"tukar orientasi skrin"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"benarkan perpasangan Bluetooth oleh Aplikasi"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Membenarkan apl berpasangan dengan peranti jauh tanpa interaksi pengguna."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Membenarkan apl berpasangan dengan peranti jauh tanpa interaksi pengguna."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"akses data MAP Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Membenarkan apl mengakses data MAP Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Membenarkan apl mengakses data MAP Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"sambung dan putuskan sambungan WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Membenarkan apl menentukan sama ada WiMaX didayakan dan maklumat tentang sebarang rangkaian WiMaX yang disambungkan."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Tukar keadaan WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Membenarkan apl untuk mengakses storan luaran untuk semua pengguna."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"akses sistem fail cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Membenarkan apl membaca dan menulis cache sistem fail."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"membuat/menerima panggilan Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Membenarkan apl menggunakan perkhidmatan SIP untuk membuat/menerima panggilan Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"buat/terima panggilan SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Membenarkan apl membuat dan menerima panggilan SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"berinteraksi dengan skrin dalam panggilan"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Membenarkan apl mengawal masa dan cara pengguna melihat skrin dalam panggilan."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"baca sejarah penggunaan rangkaian"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Membenarkan apl membaca sejarah penggunaan rangkaian untuk rangkaian dan apl khusus."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"urus dasar rangkaian"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Membenarkan aplikasi memperuntuk dan menggunakan sijil DRM. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Terima status pemindahan Pancaran Android"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Membenarkan aplikasi ini menerima maklumat mengenai pemindahan Pancaran Android semasa"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"alih keluar sijil DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Membenarkan aplikasi mengalih keluar sijil DRM. Tidak sekali-kali diperlukan untuk apl biasa."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Tetapkan peraturan kata laluan"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Mengawal panjang dan aksara yang dibenarkan dalam kata laluan buka kunci skrin."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Memantau percubaan buka kunci skrin"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Kad SIM tiada atau tidak boleh dibaca. Sila masukkan kad SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Kad SIM tidak boleh digunakan."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kad SIM anda telah dilumpuhkan secara kekal.\n Hubungi pembekal perkhidmatan wayarles anda untuk mendapatkan kad SIM lain."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Butang lagu sebelumnya"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Butang lagu seterusnya"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Butang Jeda"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Butang main"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Butang berhenti"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Lagu sebelumnya"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Lagu seterusnya"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Jeda"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Main"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Berhenti"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Gulung semula"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Mara laju"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Panggilan kecemasan sahaja"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Rangkaian dikunci"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Kad SIM dikunci dengan PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Penyahpepijatan USB disambungkan"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Sentuh untuk melumpuhkan penyahpepijatan USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Tukar papan kekunci"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Pilih papan kekunci"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Papan kekunci fizikal"</string>
     <string name="hardware" msgid="7517821086888990278">"Perkakasan"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pilih susun atur papan kekunci"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Kurangkan jam"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Tetapkan PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Tetapkan AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PTG"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"PG"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Tingkatkan bulan"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Kurangkan bulan"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Tingkatkan hari"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Terima panggilan?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sentiasa"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Hanya sekali"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s tidak menyokong profil kerja."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Fon kepala"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> dipilih"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> dipadamkan"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Kerja <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Anda berada dalam mod kunci ke apl. Untuk keluar, sentuh dan tahan butang Terbaru"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Anda berada dalam mod Kunci ke Apl."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Gunakan kunci ke apl?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Kunci dalam apl mengunci paparan dalam apl tunggal.\n\nUntuk keluar, sentuh dan tahan butang Terbaru."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"TIDAK, TERIMA KASIH"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"MULA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Dikunci ke apl"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Tidak lagi dikunci ke apl"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Minta %1$s sebelum keluar"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"corak buka kunci"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"kata laluan"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml
index 4b95048..8fdeedb 100644
--- a/core/res/res/values-my-rMM/strings.xml
+++ b/core/res/res/values-my-rMM/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEIDနံပါတ်"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"အဝင်ခေါ်ဆိုမှုID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"အထွက်ခေါ်ဆိုခြင်းအိုင်ဒီ"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"လိုင်း ID ချိတ်ဆက်သည်"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"လိုင်း ID ချိတ်ဆက်မှု ကန့်သတ်ချက်များ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"အဝင်ခေါ်ဆိုမှုအား ထပ်ဆင့်ပို့ခြင်း"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ခေါ်ဆိုမှု စောင့်ဆိုင်းခြင်း"</string>
     <string name="BaMmi" msgid="455193067926770581">"အဝင်ခေါ်ဆိုမှုအားတားဆီးခြင်း"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"စွဲကိုင်ထားသူအား ကိရိယာ စီမံအုပ်ချုပ်သူထံသို့ ရည်ရွယ်ချက်များကို ပို့ခွင့် ပေးသည်။ သာမန် appများ အတွက် ဘယ်တော့မှ မလိုအပ်နိုင်ပါ။"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"တီဗီ ထည့်သွင်းမှု တစ်ခုဆီသို့ ချိတ်တွဲပေးခြင်း"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"စွဲကိုင်ထားသူအား တီဗီ ထည့်သွင်းမှု၏ ထိပ်သီး အဆင့် အင်တာဖေ့စ်သို့ ချိတ်တွဲခွင့်ကို ပေးသည်။ သာမန် appများ အတွက် ဘယ်တော့မှ မလိုအပ်နိုင်ပါ။"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"မိဘ ထိန်းချုပ်မှုများကို မွမ်းမံရန်"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"ပိုင်ရှင်အား စနစ်၏ မိဘများ ထိန်းချုပ်ရေး ဒေတာကို မွမ်းမံခွင့် ပြုသည်။ ပုံမှန် appများ အတွက် ဘယ်တော့မှ မလိုအပ်နိုင်ပါ။"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"စက်အက်မင်တစ်ယောက် ကို ထည့်ခြင်း သို့ ထုတ်ခြင်း"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"အသုံးပြုသူအား အက်ဒ်မင်များအား ထည့်ခြင်း ထုတ်ခြင်း ပြုလုပ်ခွင့် ပေးခြင်း။ . ပုံမှန် အပလီကေးရှင်းများမှာ မလိုအပ်ပါ"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"စကရင်အနေအထားအားပြောင်းခြင်း"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"အပလီကေးရှင်းသုံးပြီး ဘလူးတုသ်နှင့် ပူးတွဲချိတ်ဆက်ခြင်း အား ခွင့်ပြုရန်"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"အပလီကေးရှင်းကို အဝေးက စက်များနဲ့ ကိုင်ထားသူ မလုပ်ဆောင်ပဲ ပူးတွဲခွင့်ပေးခြင်း"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"အပလီကေးရှင်းကို အဝေးက စက်များနဲ့ ကိုင်ထားသူ မလုပ်ဆောင်ပဲ ပူးတွဲခွင့်ပေးခြင်း"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"ဘလူးတုသ် MAP ဒေတာကို ရယူသုံးရန်"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"appအား ဘလူးတုသ် MAP ဒေတာကို ရယူသုံးခွင့် ပြုသည်။"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"appအား ဘလူးတုသ် MAP ဒေတာကို ရယူသုံးခွင့် ပြုသည်။"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ဝိုင်မက်စ် နှင့် ချိတ်ဆက်ရန်နှင့် ဆက်သွယ်မှု ဖြတ်တောက်ရန်"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"အပလီကေးရှင်းအား ဝိုင်မက်စ် အခြေအနေ ကြည့်ခွင့်ပေးရန် ဥပမာ ဝိုင်မက်စ် ဖွင့်ထား မထား၊ ဝိုင်မက်စ် ချိတ်ဆက်ထားသော ကွန်ရက်အခြေအနေ"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"ဝိုက်မက်စ် အခြေအနေအား ပြင်ရန်"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"အပလီကေးရှင်းအား သုံးစွဲသူ အားလုံးအတွက် ပြင်ပသိမ်းဆည်မှုအား သုံးခွင့် ပြုပါ။"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"cache ဖိုင်စနစ်အား ဝင်ရောက်ချိတ်ဆက်ခြင်း"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"appအား ဖိုင်စနစ်၏ကက်ရှကို ဖတ် နှင့် ရေး ခွင့်ပြုသည်။"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"အင်တာနက်ခေါ်ဆိုမှုများ ပြုလုပ်ရန်/လက်ခံရန်"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"appအား SIP ဝန်ဆောင်မှုကို အသုံးပြုပြီး အင်တာနက် ခေါ်ဆိုမှုများ ပြုလုပ်/လက်ခံခြင်းကို ခွင့်ပြုသည်။"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP ခေါ်ဆိုမှုများ ခေါ်ရန်/လက်ခံရန်"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP ခေါ်ဆိုမှုများ ခေါ်ရန်နှင့် လက်ခံနိုင်ရန် app ကို ခွင့်ပြုပါ။"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"တခါတည်း ခေါ်ဆိုနိုင်သော ဖန်သားပြင်နဲ့ ဆက်ဆံရန်"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ဖုန်းကိုင်သူ ဘယ်အချိန် ဘယ်လိုမှာ အပလီကေးရှင်းအတွင်း ဖုန်းခေါ်မှုကို မြင်ရခြင်းအား ထိန်းချုပ်ခွင့်ပေးခြင်း"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ရာဇဝင်အလိုက် ကွန်ယက်သုံစွဲမှုအား ဖတ်ခြင်း"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"appအား အထူး ကွန်ရက်များ နှင့် appများ အတွက် ကွန်ရက် အသုံးပြုမှု မှတ်တမ်းကို ဖတ်ကြားခွင့် ပြုသည်။"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ကွန်ယက်မူဝါဒအား စီမံခြင်း"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"အပလီကေးရှင်း တစ်ခုအား စီမံလုပ်ကိုင်ခွင့် DRM လက်မှတ်များ သုံးခွင့် ပြုသည်။ သာမန် appများ အတွက် ဘယ်တော့မှ မလိုအပ်နိုင်ပါ။"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"အန်ဒရွိုက်၏ အလင်းတန်းထိုး လွှဲပြောင်းမှု အခြေအနေကို ရယူရန်"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ဒီအပလီကေးရှင်းအား အန်ဒရွိုက်၏ လက်ရှိ အလင်းတန်းထိုး လွှဲပြောင်းမှု အကြောင်း အချက်အလက်ကို ရယူခွင့် ပြုသည်"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM လက်မှတ်များ ဖယ်ရှားရန်"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"အပလီကေးရှင်းအား DRM လက်မှတ်များကို ဖယ်ရှားခွင့် ပြုသည်။  သာမန် appများ အတွက် ဘယ်တော့မှ မလိုအပ်နိုင်ပါ။"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"စကားဝှက်စည်းမျဥ်းကိုသတ်မှတ်ရန်"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"မျက်နှာပြင် သော့ဖွင့်ရန် လိုအပ်သော စကားလုံးအရေအတွက်နှင့် အမျိုးအစားအား ထိန်းချုပ်ရန်"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"မော်နီတာမျက်နှာပြင်ဖွင့်ရန် ကြိုးစားခွင့်များ"</string>
@@ -907,15 +912,17 @@
     <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"ဆင်းကဒ် မရှိပါ"</string>
     <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"တက်ပလက်ထဲတွင်း ဆင်းကဒ် မရှိပါ"</string>
     <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"ဖုန်းထဲတွင် ဆင်းကဒ် မရှိပါ"</string>
-    <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"ဆင်းမ် ကဒ်ကို ထည့်သွင်းပါ။"</string>
+    <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"ဆင်းမ်ကဒ် ထည့်ပါ"</string>
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"ဆင်းမ်ကဒ် မရှိဘူး သို့မဟုတ် ဖတ်မရပါ။ ဆင်းမ်ကဒ် တစ်ခုကို ထည့်ပါ။"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"သုံးစွဲ မရတော့သော ဆင်းကဒ်"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"သင့် ဆင်းမ်ကဒ်ကို ထာဝရ ပိတ်လိုက်ပါပြီ။\n နောက် ဆင်းမ်ကဒ် တစ်ခု အတွက် သင်၏ ကြိုးမဲ့ ဝန်ဆောင်မှု စီမံပေးသူကို ဆက်သွယ်ပါ"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ပြီးခဲ့သော အပုဒ်အတွက် ခလုတ်"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"နောက် သီချင်းပုဒ် ခလုတ်"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ခဏရပ်ရန် ခလုတ်"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ဖွင့်ရန် ခလုတ်"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ရပ်ရန် ခလုတ်"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"ယခင် တစ်ပုဒ်"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"နောက် တစ်ပုဒ်"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"ခဏရပ်ရန်"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ဖွင့်ရန်"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"ရပ်ရန်"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ပြန်ရစ်ရန်"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"ရှေ့သို့ သွားရန်"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"အရေးပေါ်ခေါ်ဆိုမှုသာ"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ကွန်ယက် သော့ကျနေခြင်း"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"ဆင်းမ်ကဒ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ပုံစံချရန်ပြင်ဆင်သည်"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB အမှားစစ်ခြင်းအား ချိတ်ဆက်ထားသည်"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB ဒီဘာဂင် ပိတ်ရန် ထိပါ။"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"ကီးဘုတ် ပြောင်းလဲရန်"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"ကီးဘုတ်များကို ရွေးရန်"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"ခလုတ်ပါဝင်သော ကီးဘုတ်"</string>
     <string name="hardware" msgid="7517821086888990278">"ဟာ့ဒ်ဝဲ"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"လက်ကွက် အပြင်အဆင်ရွေးရန်"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"နာရီလျော့ရန်"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"မွန်းလွဲပိုင်း သတ်မှတ်ရန်"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"မနက်ပိုင်းချိန် သတ်မှတ်ရန်"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ညနေပိုင်း"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ညနေပိုင်း"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"လ တိုးရန်"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"လ လျှော့ရန်"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"ရက် တိုးရန်"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ဖုန်းခေါ်ဆိုမှုကို လက်ခံမလား?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"အမြဲတမ်း"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"တစ်ခါတည်း"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s က အလုပ် ပရိုဖိုင်ကို မပံ့ပိုးပါ။"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"တက်ဘလက်"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ဖုန်း"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"နားကြပ်"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ခုရွေးချယ်ထားပြီး"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> ကို ဖျက်ပြီးပါပြီ"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"အလုပ် <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"သင်သည် app-သို့ သော့ခတ် မုဒ်ထဲမှာ ရှိနေသည်။ ၎င်းထဲမှ ထွက်ရန် အတွက်၊ မကြာမီတုန်းက ခလုတ်ကို ထိလျက် ကိုင်ထားပါ"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"သင်သည် ကိရိယာဖြင့်သော့ခတ် မုဒ်ထဲမှာ ရှိ​နေသည်။"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"lock-to-app ကို သုံးမလား?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"app-သို့ သော့ခတ်မှုသည် ပြကွက်ကို app တစ်ခုတည်း ထဲတွင် သော့ခတ်ပေးသည်။\n\n ၎င်းထဲမှ ထွက်ရန် အတွက်၊ မကြာမီတုန်းက ခလုတ်ကို ထိလျက် ကိုင်ထားပါ။"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"မလို၊ ကျေးဇူးပါပဲ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"စတင်ရန်"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"appသို့ သော့ခတ်ထား"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"appသို့ ချိတ်ဆက် မထားတော့ပါ"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"မထွက်ခင် %1$s ကို မေးရန်"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"သော့ဖွင့် ပုံစံဒီဇိုင်း"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"စကားဝှက်"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index f73ec3c..0073ad1 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Inngående nummervisning"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Utgående nummervisning"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Tilkoblet linje-ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Begrensning for tilkoblet linje-ID"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Viderekobling"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Samtale venter"</string>
     <string name="BaMmi" msgid="455193067926770581">"Samtaleblokkering"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Lar innehaveren sende hensikter til en enhetsadministrator. Skal aldri være nødvendig for normale apper."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"binde appen til en TV-inngang"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Lar innehaveren binde appen til det øverste grensesnittnivået for en TV-inngang. Dette skal aldri være nødvendig for vanlige apper."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"endre foreldrekontrollene"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Gir innehaveren tillatelse til å endre foreldrekontrollinnstillingene i systemet."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"legge til eller fjerne en enhetsadministrator"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Tillater innehaveren å legge til eller fjerne aktive enhetsadministratorer. Dette skal aldri være nødvendig for vanlige apper."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"snu skjermen"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"tillate Bluetooth-sammenkobling av appen"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Lar appen koble til eksterne enheter uten medvirkning fra brukeren."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Lar appen koble til eksterne enheter uten medvirkning fra brukeren."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"tilgang til Bluetooth MAP-data"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Tillater at appen får tilgang til Bluetooth MAP-data."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Tillater at appen får tilgang til Bluetooth MAP-data."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"koble til eller fra WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Lar appen avgjøre hvorvidt WiMAX er aktivert og finne informasjon om eventuelle tilkoblede WiMAX-nettverk."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Endre WiMAX-status"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Tillater appen å åpne eksternlagring for alle brukere."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"bruke bufrede filer"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Lar appen lese og skrive til det bufrede filsystemet."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"foreta/motta Internett-anrop"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Lar appen bruke SIP-tjenesten til å foreta og motta Internett-anrop."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"foreta/motta SIP-anrop"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Tillater at appen utfører og mottar SIP-anrop."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"samhandle med skjermen for innkommende anrop"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Lar appen styre når og hvordan brukeren ser skjermbildet for innkommende anrop."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"lese tidligere nettverksbruk"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Lar appen lese tidligere nettverksbruk for bestemte nettverk og apper."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"administrer retningslinjene for nettverk"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillater at en app klargjøre og bruke DRM-sertifikater. Denne tillatelsen bør aldri være nødvendig for vanlige apper."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Motta overføringsstatus for Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Lar appen motta informasjon om aktuelle Android Beam-overføringer"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"fjern sertifikater for digital rettighetsadministrasjon"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Gir en app tillatelse til å fjerne sertifikater for digital rettighetsadministrasjon. Skal ikke være nødvendig for vanlige apper."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Angi passordregler"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontroller tillatt lengde og tillatte tegn i passord for opplåsing av skjerm."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Overvåk forsøk på opplåsing av skjerm"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort mangler eller er uleselig. Sett inn et SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ubrukelige SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortet er deaktivert permanent.\nTa kontakt med leverandøren av trådløstjenesten for å få et nytt SIM-kort."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knapp for forrige sang"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knapp for neste sang"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pause-knappen"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Avspillingsknappen"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stopp-knappen"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Forrige spor"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Neste spor"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Sett på pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Spill av"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stopp"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Tilbakespoling"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Fremoverspoling"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Bare nødanrop"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Nettverk ikke tillatt"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortet er PUK-låst."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatér"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-debugging tilkoblet"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Trykk for å deaktivere USB-feilsøking."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Endre tastatur"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Velg tastatur"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysisk tastatur"</string>
     <string name="hardware" msgid="7517821086888990278">"Maskinvare"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Velg tastaturoppsett"</string>
@@ -1392,10 +1397,10 @@
     <string name="permdesc_trust_listener" msgid="8233895334214716864">"Gir appen tillatelse til å oppdage endringer i tillitsstatusen."</string>
     <string name="permlab_provide_trust_agent" msgid="5465587586091358316">"Angivelse av en pålitelig agent."</string>
     <string name="permdesc_provide_trust_agent" msgid="3865702641053068148">"Tillater appen å angi en pålitelig agent."</string>
-    <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"Åpne innstillingsmenyen for klareringsagenter."</string>
-    <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"Tillater en app å starte aktiviteter som endrer atferden til klareringsagenten."</string>
-    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Tilknytt en tillitsagent-tjeneste."</string>
-    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Gir appen tillatelse til å knyttes til en tillitsagent-tjeneste."</string>
+    <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"Åpne innstillingsmenyen for pålitelige agenter."</string>
+    <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"Tillater en app å starte aktiviteter som endrer atferden til den pålitelige agenten."</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"Tilknytt en pålitelig agent-tjeneste."</string>
+    <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"Gir appen tillatelse til å knyttes til en pålitelig agent-tjeneste."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"Samhandling med oppdateringer og gjenopprettingssystem"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"Tillater en app å samhandle med gjenopprettingsssystemet og systemoppdateringer."</string>
     <string name="permlab_createMediaProjection" msgid="4941338725487978112">"opprette økter for mediaprojisering"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Reduser timer"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Angi p.m."</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Angi a.m."</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Øk måneder"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Reduser måneder"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Øk dager"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vil du besvare anropet?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alltid"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Bare én gang"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s støtter ikke jobbprofiler."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Nettbrett"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Hodetelefoner"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> er valgt"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> er slettet"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Jobb-<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Du er i lås-til-appen-modus. For å avslutte, trykker og holder du på Sist brukt-knappen"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Lås til app-modusen er aktivert."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Vil du bruke lås-til-app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Lås-til-appen låser skjermen i en enkelt app.\n\nFor å avslutte, trykker og holder du på Sist brukt-knappen."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEI, TAKK"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Låst til appen"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Ikke lenger låst til app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Spør etter %1$s før du avslutter"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-kode"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"opplåsingsmønster"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"passord"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml
index 18619d1..eb9c066 100644
--- a/core/res/res/values-ne-rNP/strings.xml
+++ b/core/res/res/values-ne-rNP/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"आगमन कलर ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"बाहिरिने कलर ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"लाइन ID जोडियो"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"जोडिएको लाइन ID प्रतिबन्ध"</string>
     <string name="CfMmi" msgid="5123218989141573515">"कल अगाडि बढाउँदै"</string>
     <string name="CwMmi" msgid="9129678056795016867">"कल प्रतिक्षा"</string>
     <string name="BaMmi" msgid="455193067926770581">"कल ब्यारिङ"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"उपकरण प्रशासक लाई आशय पठाउन समाती राख्‍नेलाई अनुमति दिन्छ। साधारण अनुप्रयोहरूको लागि कहिल्यै पनी आवश्यक पर्दैन।"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"टिभि निवेशलाई आबद्ध"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"टिभि निवेशको उच्च स्तरको इन्टरफेसलाई आबद्ध गर्न पकडको अनुमति दिन्छ। सामान्य अनुप्रयोगहरूलाई कहिल्यै आवश्यक पर्ने छैन।"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"अभिभावकको नियन्त्रण परिमार्जन गर्नुहोस्"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"होल्डरलाई प्रणालीको अभिभावकको नियन्त्रण डेटा परिमार्जन गर्न अनुमति दिन्छ। सामान्य अनुप्रयोगहरूको लागि कहिल्यै आवश्यकता पर्दैन।"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"एउटा उपकरण व्यवस्थापक थप गर्नुहोस् वा हटाउनुहोस्"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"होल्डरलाई सक्रिय उपकरण व्यवस्थापकहरू थप गर्न वा हटाउन अनुमति दिन्छ। साधारण अनुप्रयोगहरूको लागि कहिल्यै पनि आवश्यक नहुन सक्दछ।"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"स्क्रिन अभिमुखिकरण परिवर्तन गर्नुहोस्"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"अनुप्रयोगद्वारा ब्लुटुथ जोडा मिलाउन अनुमति दिनुहोस्"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"प्रयोगकर्ताको अन्तर्क्रिया बिना रिमोट उपकरण जोडा गराउन अनुप्रयोगलाई अनुमति दिन्छ।"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"प्रयोगकर्ताको अन्तर्क्रिया बिना रिमोट उपकरण जोडा गराउन अनुप्रयोगलाई अनुमति दिन्छ।"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"ब्लुटुथ नक्सा डेटा पहुँच"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"अनुप्रयोग लाई ब्लुटुथ नक्शा डेटा पहुँच गर्न अनुमति दिनुहुन्छ।"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"अनुप्रयोग लाई ब्लुटुथ नक्शा डेटा पहुँच गर्न अनुमति दिनुहुन्छ।"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAXसँग जोड्नुहोस् वा छुटाउनुहोस्"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"अनुप्रयोगलाई वाइम्याक्स सक्षम छ कि छैन र जडान भएको कुनै पनि वाइम्याक्स नेटवर्कहरूको बारेमा जानकारी निर्धारिण गर्न अनुमति दिन्छ।"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"वाइम्याक्स स्थिति परिवर्तन गर्नुहोस्"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"अनुप्रयोगलाई सबै उपयोगकर्ताहरूको लागि बाह्य भण्डारणमाथि पहुँच राख्न अनुमति दिन्छ।"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"क्यास फाइल प्रणाली पहुँच गर्नुहोस्।"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"केस फाइल प्रणालीलाई पढ्न र लेख्‍नको लागि अनुप्रयोगलाई अनुमति दिन्छ।"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"इन्टरनेट कलहरू गर्नुहोस् वा प्राप्त गर्नुहोस्"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"इन्टरनेट कल गर्न/प्राप्त गर्न SIP सेवालाई प्रयोग गर्नको लागि अनुप्रयोगलाई अनुमति दिन्छ।"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP कलहरू प्राप्त/बनाउन"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP कलहरू बनाउन र प्राप्त गर्न अनुप्रयोगलाई अनुमति दिन्छ।"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"आगमन कल स्क्रिनसँग अन्तर्क्रिया गर्नुहोस्"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"कहिले र कसरी प्रयोगकर्ताले आगमन कल स्क्रीन हेर्न सक्दछ भनेर नियन्त्रण गर्न अनुप्रयोगलाई अनुमति दिनुहोस्।"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"नेटवर्क उपयोगको इतिहास पढ्नुहोस्"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"निश्चित नेटवर्कहरू र अनुप्रयोगहरूको लागि ऐतिहासिक नेटवर्क उपयोग पढ्नको लागि अनुप्रयोगलाई अनुमति दिन्छ।"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"नेटवर्क नीति प्रबन्ध गर्नुहोस्"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM प्रमाणपत्रहरू प्रावधान र प्रयोग गर्ने निवेदनको अनुमति दिन्छ। साधारण अनुप्रयोगहरूको लागि कहिल्यै पनि आवश्यक पर्दैन।"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam स्थानान्तरण अवस्था प्राप्त गर्नुहोस्"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"यस आवेदनले वर्तमान Android Beam स्थानान्तरण बारेमा जानकारी प्राप्त गर्न अनुमति दिन्छ"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM प्रमाणपत्रहरू हटाउनुहोस्"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM प्रमाणपत्रहरू हटाउन अनुप्रयोगलाई अनुमति दिन्छ। सामान्य अनुप्रयोगहरूको लागि कहिल्यै आवश्यकता पर्दैन।"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"पासवर्ड नियमहरू मिलाउनुहोस्"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"स्क्रिन-अनलक पासवर्डहरूमा अनुमति दिइएको लम्बाइ र अक्षरहरू नियन्त्रण गर्नुहोस्।"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"मोनिटर स्क्रिन-अनलक प्रयत्नहरू"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM कार्ड छैन वा पढ्न मिल्दैन। SIM कार्ड हाल्नुहोस्।"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"प्रयोग गर्न अयोग्य SIM कार्ड"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"तपाईंको SIM कार्ड स्थायी रूपमा अक्षम भयो।\n अर्को SIM कार्डको लागि आफनो ताररहित सेवा प्रदायकसँग सम्पर्क गर्नुहोस्।"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"अघिल्लो ट्रयाक बटन"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"अर्को ट्रयाक बटन"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"रोक्ने बटन"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"बजाउने बटन"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"रोक्बने टन"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"अघिल्लो ट्रयाक"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"अर्को ट्रयाक"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"रोक्नुहोस्"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"चलाउनुहोस्"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"रोक्नुहोस्"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"दोहोर्याउनुहोस्"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"फास्ट फर्वार्ड"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"आपतकालीन कलहरू मात्र"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"नेटवर्क लक छ"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM कार्ड PUK-लक गरिएको छ।"</string>
@@ -1351,10 +1358,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"फर्म्याट गर्नुहोस्"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB डिबग गर्ने जडित छ"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB डिबग गर्ने असक्षम पार्न छुनुहोस्।"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"कुञ्जीपाटी परिवर्तन गर्नुहोस्"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"कीबोर्ड छान्नुहोस्"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"भौतिक किबोर्ड"</string>
     <string name="hardware" msgid="7517821086888990278">"हार्डवेयर"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"किबोर्ड रूपरेखा चयन गर्नुहोस्"</string>
@@ -1504,6 +1509,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"घन्टा घटाउनुहोस्"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM सेट गर्नुहोस्"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM सेट गर्नुहोस्"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"अपरान्ह"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"बिहान"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"महिना बढाउनुहोस्"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"महिना घटाउनुहो्स्"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"दिन बढाउनुहोस्"</string>
@@ -1571,6 +1578,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"कल स्वीकार गर्नुहुन्छ?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"सधैँ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"एउटा मात्र"</string>
+    <!-- String.format failed for translation -->
     <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
     <skip />
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ट्याब्लेट"</string>
@@ -1766,118 +1774,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> चयन गरियो"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> हटाइयो"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"कार्य <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"तपाईँ अनुप्रयोग बन्द गर्ने ढाँचामा हुनुहुन्छ। निस्कनका लागि हालैको अनुप्रयोगहरूका बटन थिच्नुहोस् र समाउनुहोस्।"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"तपाईं Lock-to-App मोडमा हुनुहुन्छ।"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"लक-देखि-अनुप्रयोग प्रयोग गर्ने?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"लक-गर्न अनुप्रयोगले एकल अनुप्रयोगमा प्रदर्शन बन्द गर्छ।\n\n,निस्कनका लागि हालैको अनुप्रयोगहरूका बटन थिच्नुहोस् र समाउनुहोस्।"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"होइन, धन्यवाद"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"अनुप्रयोग बन्द"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"अनुप्रयोग अब बन्द छैन"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for lock_to_app_use_screen_lock (1434584309048590886) -->
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
     <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"शैली बन्द गर्नुहोस"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"पासवर्ड"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 7a638ab..5b0c5f4 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Inkomende beller-id"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Uitgaande beller-id"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID van verbonden lijn"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Beperking voor ID van verbonden lijn"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Oproep doorschakelen"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Wisselgesprek"</string>
     <string name="BaMmi" msgid="455193067926770581">"Oproep blokkeren"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Hiermee kan de houder intenties verzenden naar een apparaatbeheerder. Nooit vereist voor normale apps."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"binden aan een tv-ingang"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Hiermee wordt de houder toegestaan te binden aan de hoofdinterface van een tv-ingang. Nooit vereist voor normale apps."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ouderlijk toezicht aanpassen"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Hiermee kan de houder de gegevens voor ouderlijk toezicht van het systeem aanpassen. Nooit vereist voor normale apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"een apparaatbeheerder toevoegen of verwijderen"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Hiermee kan de rechtenhouder actieve apparaatbeheerders toevoegen of verwijderen. Nooit vereist voor normale apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"schermstand wijzigen"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth-koppeling door app toestaan"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"De app toestaan te koppelen met externe apparaten zonder tussenkomst van de gebruiker."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"De app toestaan te koppelen met externe apparaten zonder tussenkomst van de gebruiker."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"toegang tot Bluetooth MAP-gegevens"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Hiermee krijgt de app toegang tot Bluetooth MAP-gegevens"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Hiermee krijgt de app toegang tot Bluetooth MAP-gegevens"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-verbinding maken en verbreken"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Hiermee kan de app bepalen of WiMAX is ingeschakeld en informatie bekijken over alle WiMAX-netwerken waarmee verbinding is gemaakt."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX-status wijzigen"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Hiermee krijgt de app toegang tot externe opslag van alle gebruikers."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"het cachebestandssysteem openen"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Hiermee kan de app het cachebestandssysteem lezen en schrijven."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"internetoproepen starten/ontvangen"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Hiermee kan de app de SIP-service gebruiken om internetoproepen te starten/te ontvangen."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP-oproepen plaatsen/ontvangen"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Toestaan dat de app SIP-oproepen plaatst en ontvangt."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interactie met scherm in actieve oproep"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Hiermee kan de app bepalen wanneer en hoe de gebruiker het scherm in een actieve oproep te zien krijgt."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"historisch netwerkgebruik lezen"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Hiermee kan de app historisch netwerkgebruik voor specifieke netwerken en apps lezen."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"netwerkbeleid beheren"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Toestaan dat een app DRM-certificaten registreert en gebruikt. Nooit vereist voor normale apps."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam-overdrachtsstatus ontvangen"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Hiermee kan deze app informatie over huidige Android Beam-overdrachten ontvangen"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM-certificaten verwijderen"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Toestaan dat een app DRM-certificaten verwijdert. Nooit vereist voor normale apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Wachtwoordregels instellen"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"De lengte en tekens beheren die zijn toegestaan in wachtwoorden voor schermontgrendeling."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Pogingen voor schermontgrendeling bijhouden"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"De simkaart ontbreekt of kan niet worden gelezen. Plaats een simkaart."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Onbruikbare simkaart."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Uw simkaart is permanent uitgeschakeld.\n Neem contact op met uw mobiele serviceprovider voor een nieuwe simkaart."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knop voor vorig nummer"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knop voor volgend nummer"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Knop voor onderbreken"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Knop voor afspelen"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Knop voor stoppen"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Vorig nummer"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Volgend nummer"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Onderbreken"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Afspelen"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Stoppen"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Terugspoelen"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Vooruitspoelen"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Alleen noodoproepen"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Netwerk vergrendeld"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kaart is vergrendeld met PUK-code."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatteren"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-foutopsporing verbonden"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Tik om USB-foutopsporing uit te schakelen."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Toetsenbord wijzigen"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Toetsenborden kiezen"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysiek toetsenbord"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Toetsenbordindeling selecteren"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Lagere waarde voor uren"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM instellen"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM instellen"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"pm"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"am"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Hogere waarde voor maand"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Lagere waarde voor maand"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Hogere waarde voor dag"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Oproep accepteren?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Altijd"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Eén keer"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ondersteunt werkprofielen niet."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefoon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Hoofdtelefoon"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> geselecteerd"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> verwijderd"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Werk <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"U bevindt zich in de App-slotmodus. Blijf de knop \'Recente apps\' aanraken om de modus te beëindigen."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"U bevindt zich in de App-slotmodus."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"App-slot gebruiken?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Met het App-slot wordt het scherm vergrendeld in één app.\n\nAls u dit wilt beëindigen, blijft u de knop \'Recente apps\' aanraken."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEE, BEDANKT"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Vergrendeld in app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Niet meer vergrendeld in app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Vragen om %1$s voordat u afsluit"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"pincode"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ontgrendelingspatroon"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"wachtwoord"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 964ac3b..65616c2 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Nazwa rozmówcy przy połączeniach przychodzących"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Nazwa rozmówcy przy połączeniach wychodzących"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Identyfikator połączonej linii"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ograniczenie identyfikatora połączonej linii"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Przekierowanie połączeń"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Połączenia oczekujące"</string>
     <string name="BaMmi" msgid="455193067926770581">"Blokada dzwonienia"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Zezwala na wysyłanie intencji do administratora urządzenia. Nie powinno być nigdy potrzebne w przypadku zwykłych aplikacji."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"powiązanie z wejściem TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Zezwala na utworzenie powiązania z głównym interfejsem wejścia TV. Nieprzeznaczone dla zwykłych aplikacji."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modyfikowanie kontroli rodzicielskiej"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Zezwala posiadaczowi na modyfikowanie danych kontroli rodzicielskiej w systemie. Nie powinno być nigdy potrzebne w zwykłych aplikacjach."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodaj lub usuń administratora urządzenia"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Umożliwia właścicielowi dodawanie i usuwanie aktywnych administratorów urządzenia. Ta opcja nie jest wykorzystywana w przypadku standardowych aplikacji."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"zmienianie orientacji ekranu"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"zezwól aplikacji na parowanie się przez Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Umożliwia aplikacji parowanie się z urządzeniami zdalnymi bez interakcji użytkownika."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Umożliwia aplikacji parowanie się z urządzeniami zdalnymi bez interakcji użytkownika."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"dostęp do danych Bluetooth z profilu MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Pozwala aplikacji na dostęp do danych Bluetooth z profilu MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Pozwala aplikacji na dostęp do danych Bluetooth z profilu MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"łączenie się i rozłączanie z siecią WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Pozawala aplikacji określić, czy obsługa WiMAX jest włączona, oraz uzyskać informacje o wszystkich podłączonych sieciach WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"zmienianie stanu WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Pozwala aplikacji na dostęp do zewnętrznej pamięci masowej dla wszystkich użytkowników."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"dostęp do systemu plików pamięci podręcznej"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Pozwala aplikacji na odczyt i zapis w systemie plików pamięci podręcznej."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"nawiązywanie/odbieranie połączeń przez internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Pozwala aplikacji na korzystanie z usługi SIP do nawiązywania/odbierania połączeń przez internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"wykonywanie/odbieranie połączeń SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Pozwala aplikacji na wykonywanie i odbieranie połączeń SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakcje z ekranem połączenia"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Zezwala aplikacji na kontrolowanie, kiedy i w jaki sposób użytkownik widzi ekran połączenia."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"odczyt historii wykorzystania sieci"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Pozwala aplikacji na odczyt historii wykorzystania określonych sieci przez poszczególne aplikacje."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"zarządzanie zasadami dotyczącymi sieci"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Zezwala aplikacji na dodanie i używanie certyfikatów DRM. Nieprzeznaczone dla zwykłych aplikacji."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Uzyskiwanie informacji o stanie transmisji Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Zezwala tej aplikacji na otrzymywanie informacji o aktualnych transmisjach Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"usuwanie certyfikatów DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Zezwala aplikacji na usuwanie certyfikatów DRM. Nie powinno być nigdy potrzebne w zwykłych aplikacjach."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Określ reguły hasła"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolowanie długości haseł odblokowania ekranu i dozwolonych w nich znaków"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitoruj próby odblokowania ekranu"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Brak karty SIM lub nie można jej odczytać. Włóż kartę SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Karta SIM bezużyteczna."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Karta SIM jest trwale wyłączona.\n Skontaktuj się z dostawcą usług bezprzewodowych, aby uzyskać inną kartę SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Przycisk poprzedniego utworu"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Przycisk następnego utworu"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Przycisk wstrzymania"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Przycisk odtwarzania"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Przycisk zatrzymania"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Poprzedni utwór"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Następny utwór"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Wstrzymaj"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Odtwórz"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Zatrzymaj"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Przewiń do tyłu"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Przewiń do przodu"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Tylko połączenia alarmowe"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Sieć zablokowana"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Karta SIM jest zablokowana kodem PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatuj"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Podłączono moduł debugowania USB"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Dotknij, aby wyłączyć debugowanie USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Zmień klawiaturę"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Wybierz klawiatury"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Klawiatura fizyczna"</string>
     <string name="hardware" msgid="7517821086888990278">"Sprzęt"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Wybierz układ klawiatury"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Zmień godzinę na wcześniejszą"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Ustaw PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Ustaw AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Zmień miesiąc na późniejszy"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Zmień miesiąc na wcześniejszy"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Zmień dzień na późniejszy"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Odebrać połączenie?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Zawsze"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Tylko raz"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s nie obsługuje profilu do pracy"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Słuchawki"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Wybrałeś <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> usunięte"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (praca)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Jesteś w trybie Zablokuj na aplikacji. Aby wyjść, naciśnij i przytrzymaj przycisk Ostatnie."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Jesteś w trybie Zablokuj na aplikacji."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Chcesz użyć funkcji Zablokuj na aplikacji?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Gdy włączysz Zablokuj na aplikacji, na ekranie będzie się wyświetlać pojedyncza aplikacja.\n\nAby wyłączyć tę funkcję, kliknij i przytrzymaj przycisk Ostatnie."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NIE, DZIĘKUJĘ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"START"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Zablokuj na aplikacji"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Zablokowanie na aplikacji zostało wyłączone"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Przed wyjściem pytaj o %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Kod PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"wzór odblokowania"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"hasło"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 0f93ee0..b54d6c0 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID do Autor da Chamada"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID do autor da chamada efetuada"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID de linha ligada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restrição de ID de linha ligada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Encaminhamento de chamadas"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Chamada em espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Barramento de chamadas"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite ao titular enviar intenções para um administrador do aparelho. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"vincular a uma entrada de TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite ao titular vincular à interface de nível superior de uma entrada de TV. Nunca deverá ser necessário para aplicações normais."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar controlos parentais"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite ao titular modificar os dados de controlos parentais do sistema. Nunca deveria ser necessário para aplicações normais."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adicionar ou remover um administrador de dispositivos"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite que o titular adicione ou remova administradores de dispositivos ativos. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"mudar orientação do ecrã"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permitir a sincronização Bluetooth por aplicação"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite que a aplicação seja sincronizada com dispositivos remotos sem interação do utilizador."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite que a aplicação seja sincronizada com dispositivos remotos sem interação do utilizador."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"aceder a dados MAP de Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite à aplicação aceder a dados MAP de Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite à aplicação aceder a dados MAP de Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ligar e desligar do WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite que a aplicação determine se o WiMAX está ativado e aceda a informações acerca de qualquer rede WiMAX que esteja ligada."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Alterar estado do WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite que a aplicação aceda ao armazenamento externo para todos os utilizadores."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"aceder ao sistema de ficheiros da cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite à aplicação ler e escrever no sistema de ficheiros da cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"fazer/receber chamadas pela internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Autoriza a aplicação a utilizar o serviço SIP para fazer/receber chamadas pela internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"efetuar/receber chamadas SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite que a aplicação efetue e receba chamadas SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interagir com o ecrã durante uma chamada"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite que a aplicação controle quando e como o utilizador vê o ecrã durante uma chamada."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ler utilização histórica da rede"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite que a aplicação leia utilização histórica da rede para redes e aplicações específicas."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gerir a política de rede"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que uma aplicação forneça e utilize certificados DRM. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Receber estado de transferência do Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite que esta aplicação receba informações acerca das transferências atuais do Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"remover certificados DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite que uma aplicação remova certificados DRM. Nunca deverá ser necessário para aplicações normais."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir regras de palavra-passe"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar o comprimento e os caracteres permitidos nas palavras-passe de desbloqueio do ecrã."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorizar tentativas de desbloqueio do ecrã"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"O cartão SIM está em falta ou não é legível. Introduza um cartão SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Cartão SIM inutilizável."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"O cartão SIM foi desativado definitivamente. \n Contacte o seu fornecedor de serviços de rede sem fios para obter outro cartão SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botão Faixa anterior"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botão Faixa seguinte"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botão Pausa"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botão Reproduzir."</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botão Interromper"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Faixa anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Faixa seguinte"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Interromper"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproduzir"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Parar"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rebobinar"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avançar"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Apenas chamadas de emergência"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Rede bloqueada"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"O cartão SIM está bloqueado por PUK"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatar"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuração USB ligada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toque para desativar a depuração USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Alterar teclado"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Escolher teclados"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecionar esquema de teclado"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Diminuir hora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Definir PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Definir AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumentar mês"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Diminuir mês"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumentar o dia"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Aceitar chamada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Apenas uma vez"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s não suporta o perfil de trabalho."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telemóvel"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Auscultadores"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> selecionado"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> eliminado"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de trabalho"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Está no modo Bloquear numa aplicação. Para sair, toque sem soltar no botão Recentes"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Está no modo Lock-to-App."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Utilizar o Lock-to-app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Bloquear numa aplicação bloqueia o ecrã numa única aplicação.\n\nPara sair, toque sem soltar no botão Recentes."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NÃO, OBRIGADO"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INICIAR"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Bloqueado numa aplicação"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Já não está bloqueado numa aplicação"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Solicitar %1$s antes de sair"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"sequência de desbloqueio"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"palavra-passe"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index eb9d4da..5c3e589 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID do chamador de entrada"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID do chamador de saída"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID de linha conectada"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restrição de ID de linha conectada"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Encaminhamento de chamada"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Chamada em espera"</string>
     <string name="BaMmi" msgid="455193067926770581">"Bloqueio de chamadas"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite que o proprietário envie tentativas ao administrador de um aparelho. Nunca deve ser necessário para aplicativos normais."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"associar a uma entrada de TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite que o proprietário use a interface de nível superior de uma entrada de TV. Não deve ser necessário para aplicativos comuns."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificar os controles para os pais"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite ao titular modificar os dados de controles para os pais no sistema. Não deve ser necessário para apps comuns."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adicionar ou remover um administrador do dispositivo"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite que o proprietário adicione ou remova administradores do dispositivo ativos. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"alterar orientação da tela"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permitir pareamento via Bluetooth pelo aplicativo"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite que o aplicativo faça pareamento com dispositivos remotos sem interação com o usuário."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite que o aplicativo faça pareamento com dispositivos remotos sem interação com o usuário."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"acessar dados de Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite que o app acesse os dados de Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite que o app acesse os dados de Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"conectar e desconectar do WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite que o aplicativo determine se o WiMAX está ativado e acesse informações sobre as redes WiMAX conectadas."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Alterar estado do WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite que o aplicativo acesse o armazenamento externo para todos os usuários."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"acessar o sistema de arquivos de cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite que o aplicativo leia e grave o sistema de arquivos cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"fazer/receber chamadas pela internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permite que o aplicativo use o serviço SIP para fazer/receber chamadas pela Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"fazer/receber chamadas SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite que o app faça e receba chamadas SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interagir com chamada na tela"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite que o aplicativo controle quando e como o usuário visualiza a chamada na tela."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ler histórico de uso da rede"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite que o aplicativo leia o histórico de uso da rede para redes e aplicativos específicos."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gerenciar a política de rede"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite que o aplicativo provisione e use certificados de DRM. Não deve ser necessário para aplicativos comuns."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Receber status de transferência do Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite que este aplicativo receba informações sobre as atuais transferências do Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"remover certificados de DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite que um app remova certificados de DRM. Não deve ser necessário para apps comuns."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Definir regras para senha"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Controlar o tamanho e os caracteres permitidos nas senhas de desbloqueio de tela."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorar tentativas de desbloqueio da tela"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"O cartão SIM não foi inserido ou não é possível lê-lo. Insira um cartão SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Cartão SIM inutilizável."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"O cartão SIM foi desativado permanentemente.\nEntre em contato com seu provedor de serviços sem fio para obter outro cartão SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Botão \"Faixa anterior\""</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Botão \"Próxima faixa\""</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Botão \"Pausar\""</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Botão \"Reproduzir\""</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Botão \"Parar\""</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Faixa anterior"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Próxima faixa"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausar"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Reproduzir"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Parar"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Retroceder"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Avançar"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Só chamadas de emergência"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Rede bloqueada"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"O cartão SIM está bloqueado pelo PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatar"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depuração USB conectada"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Toque para desativar a depuração do USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Alterar teclado"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Escolher teclados"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Teclado físico"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selecione o layout de teclado"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Diminuir hora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Configurar valor PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Configurar valor AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Aumentar mês"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Diminuir mês"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Aumentar dia"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Aceitar chamada?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Sempre"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Só uma vez"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s não é compatível com o perfil de trabalho."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefone"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Fones de ouvido"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> selecionado"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> excluído"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Trabalho: <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"O modo fixar no app está ativado. Para sair, toque e mantenha pressionado o botão \"Recentes\""</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Você está no modo Fixar no app."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Usar Fixar no app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Fixar no app bloqueia a exibição em um único aplicativo.\n\nPara sair, toque e mantenha pressionado o botão \"Recentes\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NÃO, OBRIGADO"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"INICIAR"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Fixar no app ativado"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Fixar no app desativado"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Solicitar a %1$s antes de sair"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"desbloquear padrão"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"senha"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 8bb23d4..325c0a9 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID apelant de primire"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID apelant"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID-ul liniei conectate"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Restricționarea ID-ului liniei conectate"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Redirecţionarea apelurilor"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Apel în aşteptare"</string>
     <string name="BaMmi" msgid="455193067926770581">"Blocarea apelurilor"</string>
@@ -419,10 +421,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Permite proprietarului să trimită intenţii către un administrator al dispozitivului. Nu ar trebui să fie niciodată necesară pentru aplicaţiile obişnuite."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"se conectează la o intrare TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Permite proprietarului să se conecteze la interfața de nivel superior a unei intrări TV. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"modificarea controlului parental"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Permite proprietarului să modifice datele controlului parental din sistem. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"adăugarea sau eliminarea unui administrator de dispozitiv"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Permite proprietarului să adauge sau să elimine administratorii activi ai dispozitivului. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"modificare orientare ecran"</string>
@@ -666,6 +666,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"permiteți conectarea aplicației prin Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Permite aplicației să se conecteze la dispozitive de la distanță, fără intervenția utilizatorului."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Permite aplicației să se conecteze la dispozitive de la distanță, fără intervenția utilizatorului."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"accesarea datelor MAP Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Permite aplicației să acceseze datele MAP Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Permite aplicației să acceseze datele MAP Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"se conectează şi se deconectează de la WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Permite aplicaţiei să stabilească dacă o reţea WiMAX este activată şi să vadă informaţiile cu privire la toate reţelele WiMAX conectate."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Schimbaţi starea WiMAX"</string>
@@ -711,10 +714,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Permite aplicaţiei să acceseze stocarea externă pentru toţi utilizatorii."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"accesare sistem de fişiere cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Permite aplicaţiei să scrie şi să citească sistemul de fişiere cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"efectuare/primire apeluri prin internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Permite aplicaţiei să utilizeze serviciul SIP pentru a efectua/primi apeluri prin internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"efectuarea/primirea apelurilor SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Permite aplicației să efectueze și să primească apeluri SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interacțiune cu ecranul în timpul unui apel"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Permite aplicației să controleze când și cum vede utilizatorul ecranul în timpul unui apel."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"citeşte utilizarea statistică a reţelei"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Permite aplicaţiei să citească utilizarea statistică a reţelei pentru anumite reţele şi aplicaţii."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"gestionează politica de reţea"</string>
@@ -741,10 +748,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Permite unei aplicații să furnizeze și să utilizeze certificate DRM. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Primiți starea transferului prin Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Permite acestei aplicații să primească informații despre transferurile actuale Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"eliminarea certificatelor DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Permite unei aplicații să elimine certificatele DRM. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Setaţi reguli pentru parolă"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Stabiliţi lungimea şi tipul de caractere permise în parolele pentru deblocarea ecranului."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Monitorizaţi încercările de deblocare a ecranului"</string>
@@ -913,11 +918,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Cardul SIM lipseşte sau nu poate fi citit. Introduceţi un card SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Card SIM inutilizabil."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Cardul dvs. SIM este dezactivat definitiv.\n Contactaţi furnizorul de servicii wireless pentru a obţine un alt card SIM."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Butonul Melodia anterioară"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Butonul Melodia următoare"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Butonul Întrerupeţi"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Butonul Redaţi"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Butonul Opriţi"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Melodia anterioară"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Melodia următoare"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pauză"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Redați"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Opriți"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Derulaţi"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Derulaţi rapid înainte"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Numai apeluri de urgenţă"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Reţea blocată"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Cardul SIM este blocat cu codul PUK."</string>
@@ -1345,10 +1352,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formataţi"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Depanarea USB este conectată"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Atingeţi pentru a dezactiva depanarea USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Schimbați tastatura"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Alegeți tastaturi"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Tastatură fizică"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Selectaţi aspectul tastaturii"</string>
@@ -1498,6 +1503,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Reduceţi valoarea pentru oră"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Setaţi valoarea PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Setaţi valoarea AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Creşteţi valoarea pentru lună"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Reduceţi valoarea pentru lună"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Creşteţi valoarea pentru zi"</string>
@@ -1565,8 +1572,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Acceptaţi apelul?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Întotdeauna"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Numai o dată"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s nu acceptă profilul de serviciu."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tabletă"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Căşti"</string>
@@ -1760,116 +1766,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> selectat"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> a fost șters"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> de serviciu"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Sunteți în modul Blocare la aplicație. Apăsați lung pe butonul Recente pentru a ieși."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Sunteți în modul Blocare la aplicație."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Utilizați Blocarea la aplicație?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Blocarea la aplicație blochează ecranul într-o singură aplicație.\n\nPentru a ieși, apăsați lung pe butonul Recente."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NU, MULȚUMESC"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"PORNIȚI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Blocat la aplicație"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"S-a anulat blocarea la aplicație"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Se solicită %1$s înainte de închidere"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"model pentru deblocare"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"parolă"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index dc05a64..632bdda 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Идентификация вызывающего абонента"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Идентификация звонящего абонента"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Идентификатор подключенной линии"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ограничение идентификатора подключенной линии"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Переадресация вызова"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Параллельный вызов"</string>
     <string name="BaMmi" msgid="455193067926770581">"Запрет вызовов"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Приложение сможет отправлять объекты intent администратору устройства. Это разрешение не используется обычными приложениями."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"Подключение к ТВ-входу"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Приложение сможет подключаться к базовому интерфейсу ТВ-входа. Это разрешение не используется обычными приложениями."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"изменение возрастных ограничений"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Изменение возрастных ограничений для телепередач. Большинству приложений это разрешение не требуется."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"Добавление/удаление администратора устройства"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Владелец сможет добавлять и удалять администраторов устройства (используется лишь в некоторых приложениях)."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"Изменение ориентации экрана"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Подключение устройств через Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Приложение сможет самостоятельно подключаться к удаленным устройствам."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Приложение сможет самостоятельно подключаться к удаленным устройствам."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"доступ к данным Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Доступ к данным Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Доступ к данным Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"подключать/отключать сеть WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Приложение сможет определять, активирован ли WiMAX, а также получать информацию о подключенных сетях WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Изменение статуса WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Приложение сможет обращаться к внешним накопителям из всех аккаунтов."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"Доступ к файловой системе кэша"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Приложение сможет выполнять чтение и запись в файловую систему кэша."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Осуществление/прием интернет-вызовов"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Приложение сможет использовать службу SIP для интернет-вызовов."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"Входящие и исходящие вызовы SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Разрешить вызовы по протоколу SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"Управление экраном во время разговора"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Приложение сможет управлять экраном во время разговора."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"Просмотр журнала использования сети"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Приложение сможет считывать сохраненную историю использования определенных сетей и приложений."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"Управление сетевой политикой"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Приложение сможет синхронизировать и использовать сертификаты DRM (разрешение актуально только для специальных приложений)."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Получение статуса передачи Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Получение информации о текущих передачах Android Beam."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"удаление сертификатов DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Удаление сертификатов DRM. Большинству приложений это разрешение не требуется."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Правила выбора паролей"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролировать длину и символы при вводе паролей для снятия блокировки экрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Отслеживать попытки снятия блокировки экрана"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта отсутствует или недоступна. Вставьте SIM-карту."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM-карта непригодна к использованию."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-карта окончательно заблокирована.\nЧтобы получить новую, обратитесь к своему оператору."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Кнопка перехода к предыдущему треку"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кнопка перехода к следующему треку"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Кнопка паузы"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Кнопка воспроизведения"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Кнопка выключения"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Предыдущий трек"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Следующий трек"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Приостановить"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Воспроизвести"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Остановить"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Перемотать назад"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Перемотать вперед"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Только экстренные вызовы"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Сеть заблокирована"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-карта заблокирована с помощью кода PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Формат"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Отладка по USB разрешена"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Нажмите, чтобы отключить отладку по USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Выбор раскладки"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Выбрать раскладку"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Физическая клавиатура"</string>
     <string name="hardware" msgid="7517821086888990278">"Аппаратура"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Выберите раскладку клавиатуры"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"На час назад"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Установить время после полудня"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Установить время до полудня"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"АМ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"На месяц вперед"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"На месяц назад"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"На день вперед"</string>
@@ -1563,6 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Ответить?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Всегда"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Только сейчас"</string>
+    <!-- String.format failed for translation -->
     <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
     <skip />
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Планшетный ПК"</string>
@@ -1758,116 +1766,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Выбран элемент <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Цифра <xliff:g id="KEY">%1$s</xliff:g> удалена"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Рабочий <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Включена блокировка в приложении. Чтобы отключить ее, нажмите и удерживайте кнопку недавних приложений."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Включена блокировка в приложении"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Использовать блокировку в приложении?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Эта функция блокирует переход в другие приложения.\n\nЧтобы отключить блокировку, нажмите и удерживайте кнопку недавних приложений."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"НЕТ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ДА"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Блокировка в приложении включена"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Блокировка в приложении отключена"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Запрашивать %1$s перед выходом"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-код"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"графический ключ"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"пароль"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml
index ebf6fd1..8db3349 100644
--- a/core/res/res/values-si-rLK/strings.xml
+++ b/core/res/res/values-si-rLK/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"පැමිණෙන අමතන්නාගේ ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"පිටතට යන අමතන්නාගේ ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"සම්බන්ධ කළ Line ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"සම්බන්ධ කළ Line ID සීමා කිරීම්"</string>
     <string name="CfMmi" msgid="5123218989141573515">"ඇමතුම ඉදිරියට යැවීම"</string>
     <string name="CwMmi" msgid="9129678056795016867">"ඇමතුම් රැඳීම"</string>
     <string name="BaMmi" msgid="455193067926770581">"ඇමතුම අවහිර කිරීම"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"උපාංග පාලකයා වෙතට අභිප්‍රායයන් යැවීමට ධාරකයාට අවසර දෙන්න. සාමාන්‍ය යෙදුම්වලට කිසි විටෙක අවශ්‍ය නොවෙයි."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV ආදානයක් වෙතට බඳින්න"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"TV ආදානයක ඉහල මට්ටමේ අතුරු මුහුණතක් වෙත සම්බන්ධ කිරීමට ධාරකයාට අවසර දෙන්න. සාමාන්‍ය යෙදුම්වලට කිසි විටෙක අවශ්‍ය නොවෙයි."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ප්‍රධාන පාලකයන් වෙනස් කරන්න"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"පද්ධතියේ ප්‍රධාන පාලක දත්ත වෙනස් කිරීමට ධාරකයාට ඉඩ දේ. සාමාන්‍ය යෙදුම් වලට කිසිදා අවශ්‍ය නොවේ."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"උපාංග පරිපාලකයෙක් එක් කිරීම හෝ ඉවත් කිරීම"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"දරන්නාට උපාංග පරිපාලකයින් එක් කිරීමට හෝ ඉවත් කිරීමට අවසර දේ. සාමාන්‍ය යෙදුම් වලට කිසිදා අවශ්‍ය නොවේ."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"තිර දිශානතිය වෙනස් කිරීම"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"යෙදුම මගින් බ්ලූටූත් යුගල කිරීම ඉඩ දෙන්න"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"පරිශීලක අන්තර්ක්‍රියාවෙන් තොරව දුරස්ථ උපාංග සමග යුගල වීමට උපාංගයට ඉඩ දෙයි."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"පරිශීලක අන්තර්ක්‍රියාවෙන් තොරව දුරස්ථ උපාංග සමග යුගල වීමට උපාංගයට ඉඩ දෙයි."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"බ්ලූටූත් MAP දත්ත ප්‍රවේශ කරන්න"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"බ්ලූටූත් MAP දත්ත ප්‍රවේශ කිරීමට යෙදුමට ඉඩ දෙන්න."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"බ්ලූටූත් MAP දත්ත ප්‍රවේශ කිරීමට යෙදුමට ඉඩ දෙන්න."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX වෙතට සම්බන්ධ කරන්න හෝ විසන්ධි කරන්න"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX සබල බව සහ සම්බන්ධිත ඕනෑම WiMAX ජාලයක තොරතුරු නිශ්චය කිරීමට යෙදුමට අවසර දෙයි."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX තත්වය වෙනස් කරන්න"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"සියලු පරිශීලකයන් සඳහා බාහිර ආචයනය වෙත පිවිසීමට යෙදුමට අවසර දෙන්න."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"හැඹිලි ගොනු පද්ධතියට ප්‍රවේශ වීම"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"හැඹිලි ගොනු පද්ධති කියවීමට සහ ලිවීමට යෙදුමට අවසර දෙන්න."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"අන්තර්ජාල ඇමතුම් ගන්න/ලබන්න"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"අන්තර්ජාල ඇමතුම් ගැනීමට/ලැබීමට SIP සේවාව භාවිතයට යෙදුමට අවසර දෙන්න."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP ඇමතුම් සිදුකිරීමට/ලබාගැනීමට"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP ඇමතුම් සිදුකිරීමට සහ ලබාගැනීමට යෙදුමට ඉඩ දෙන්න."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ලැබෙන ඇමතුම් තිරය සමග අන්තර් ක්‍රියාකාරී වන්න"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ලැබෙන ඇමතුම් තිරය පරිශීලකයාට පෙනෙන්නේ කෙදිනද සහ කෙසේද යැයි පාලනය කිරීමට යෙදුමට අවසර දෙන්න."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"ඉතිහාසගත ජාල භාවිතය කියවන්න"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"විශේෂිත ජාල සහ යෙදුම් සඳහා ඉතිහාසගත ජාල භාවිතය කියවීමට යෙදුමට අවසර දෙන්න."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ජාල ප්‍රතිපත්තිය කළමනාකරණය කිරීම"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"යෙදුමකට DRM  සහතික වෙන් කර භාවිතා කිරීමට ඉඩ දේ. සාමාන්‍ය යෙදුම් වලට කිසිදා අවශ්‍ය නොවේ."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android බීම් හුවමාරු තත්ත්වය ලබාගන්න"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"දැනට තිබෙන Android බීම් හුවමාරු පිළිබඳ තොරතුරු ලබාගැනීමට මෙම යෙදුමට ඉඩ දෙන්න"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM සහතික ඉවත් කරන්න"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"යෙදුමකට DRM  සහතික ඉවත් කිරීමට ඉඩ දේ. සාමාන්‍ය යෙදුම් වලට කිසිදා අවශ්‍ය නොවේ."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"මුරපද නීති සකස් කිරීම"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"තිරය අගුළු ඇරීමේ මුරපදයට අනුමත අකුරු සහ දිග පාලනය කරන්න."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"තිරය අගුළු ඇරීමේ උත්සාහයන් නිරීක්ෂණය කරන්න"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM පත නොමැත හෝ කියවිය නොහැක. SIM පතක් ඇතුලත් කරන්න."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"භාවිතා කළ නොහැකි SIM පත."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ඔබගේ SIM පත ස්ථිරව අබල කර තිබේ.\n වෙනත් SIM පතක් සඳහා ඔබගේ සේවාදායකයා සම්බන්ධ කරගන්න."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"පෙර ගීත බොත්තම"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ඊළඟ ගීත බොත්තම"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"විරාම බොත්තම"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ධාවක බොත්තම"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"නැවතීමේ බොත්තම"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"පෙර ගීතය"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"ඊළඟ ගීතය"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"විරාමය"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ධාවනය කරන්න"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"නතර කරන්න"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"නැවත ඔතන්න"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"වේගයෙන් ඉදිරියට යන"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"හදිසි ඇමතුම් පමණි"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ජාලය අගුළු දමා ඇත"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM පත PUK අගුළු දමා ඇත."</string>
@@ -1225,7 +1232,7 @@
     <string name="smv_application" msgid="3307209192155442829">"<xliff:g id="APPLICATION">%1$s</xliff:g> යෙදුම (<xliff:g id="PROCESS">%2$s</xliff:g> ක්‍රියාවලිය) එහි StrictMode කොන්දේසිය උල්ලංඝනය කර ඇත."</string>
     <string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> ක්‍රියාවලිය එහි StrictMode කොන්දේසිය උල්ලංඝනය කර ඇත."</string>
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android උත්ශ්‍රේණි වෙමින් පවතී..."</string>
-    <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> කින් <xliff:g id="NUMBER_0">%1$d</xliff:g> වැනි යෙදුමප්‍ රශස්ත කරමින්."</string>
+    <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> කින් <xliff:g id="NUMBER_0">%1$d</xliff:g> වැනි යෙදුම ප්‍රශස්ත කරමින්."</string>
     <string name="android_upgrading_starting_apps" msgid="451464516346926713">"යෙදුම් ආරම්භ කරමින්."</string>
     <string name="android_upgrading_complete" msgid="1405954754112999229">"ඇරඹුම අවසාන කරමින්."</string>
     <string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> ධාවනය වෙමින්"</string>
@@ -1346,10 +1353,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ෆෝමැට්"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB නිදොස්කරණය සම්බන්ධිතයි"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB නිදොස්කරණය අබල කිරීමට ස්පර්ශ කරන්න."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"යතුරු පුවරු වෙනස් කිරීම"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"යතුරු පුවරු තෝරන්න"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"භෞතික යතුරු පුවරුව"</string>
     <string name="hardware" msgid="7517821086888990278">"දෘඨාංග"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"යතුරු පුවරුවට පිරිසැලැස්ම තෝරන්න"</string>
@@ -1397,7 +1402,7 @@
     <string name="permdesc_provide_trust_agent" msgid="3865702641053068148">"විශ්වාසවන්ත නියෝජිතයෙක් සැපයීමට අවසර දෙන්න."</string>
     <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"විශ්වාසනීය නියෝජිතයාගේ සැකසීම් මෙනුව දියත් කරන්න."</string>
     <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"විශ්වාසනීය නියෝජිතයාගේ හැසිරීම වෙනස් කරන ක්‍රියාකරමක් දියත් කිරීමට යෙදුමට ඉඩ දෙන්න."</string>
-    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"විශ්වාසනීය ඒජන්ත සේවාවකට බැඳීම"</string>
+    <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"විශ්වාසවන්ත නියෝජිත සේවාවකට බැඳීම"</string>
     <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"යෙදුමකට විශ්වාසනීය ඒජන්ත සේවාවකට බැඳීමට අවසර දේ."</string>
     <string name="permlab_recovery" msgid="3157024487744125846">"ප්‍රතිසාධන පද්ධතිය සහ යාවත්කාලීන සමඟ කටයුතු කරන්න"</string>
     <string name="permdesc_recovery" msgid="8511774533266359571">"යෙදුමකට ප්‍රතිසාධන පද්ධතිය සහ පද්ධති යාවත්කාලීන සමඟ කටයුතු කිරීමට ඉඩ දෙන්න."</string>
@@ -1499,6 +1504,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"පැය අඩුකරන්න"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"ප.ව.සකසන්න"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"පෙ.ව. සකස් කිරීම"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ප.ව."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"පෙ.ව."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"මාසය වැඩි කරන්න"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"මාසයක් අඩු කරන්න"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"දවස වැඩි කරන්න"</string>
@@ -1566,8 +1573,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"ඇමතුම පිළිගන්නවාද?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"සැම විටම"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"එක් වාරයයි"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s වැඩ කරන පැතිකඩ සඳහා සහාය ලබනොදේ."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ටැබ්ලට්ය"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"දුරකථනය"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ඉස් බණු"</string>
@@ -1761,116 +1767,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> තෝරාගෙන ඇත"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> මකා දමන ලදි"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"වැඩ <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"යෙදුමට-අඟුළු දැමීමේ ආකාරය තුළ ඔබ සිටි. පිටවීමට, මෑත යෙදුම් බොත්තම ඔබා අල්ලා ගෙන සිටින්න"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"යෙදුමට-අඟුළු දැමීමේ ආකාරය තුළ ඔබ සිටි."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"අගුළු-යෙදුම භාවිතා කරන්නද?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"අගුළු-යෙදුම තනි යෙදුමක පෙනුම අගුළු දමයි.\n\nඉවත්ව යාමට මෑත යෙදුම් බොත්තම ඔබා රඳවා ගන්න"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"නැත, ස්තූතියි"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ආරම්භය"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"යෙදුමට-අඟුළු දැමීම"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"යෙදුමට අඟුළු දැමීම තවදුරටත් නැත"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"පිටවීමට පෙර %1$s සඳහා ආසන්න"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"අඟුළු ඇරීමේ රටාව"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"මුරපදය"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 1ff9503..e561d9b 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Prichádzajúca identifikácia volajúceho"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Odchádzajúca identifikácia volajúceho"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID pripojenej linky"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Obmedzenie ID pripojenej linky"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Presmerovanie hovorov"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Čakajúci hovor"</string>
     <string name="BaMmi" msgid="455193067926770581">"Blokovanie hovorov"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Umožňuje držiteľovi odosielať informácie správcovi zariadenia. Bežné aplikácie by toto nastavenie nemali nikdy potrebovať."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"viazanie na televízny vstup"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Umožňuje držiteľovi viazať sa na najvyššiu úroveň rozhrania televízneho vstupu. Bežné aplikácie by toto nastavenie nemali nikdy potrebovať."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"úprava nadradených ovládacích prvkov"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Umožňuje držiteľovi upravovať údaje nadradených ovládacích prvkov systému. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"pridanie alebo odstránenie správcu zariadenia"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Umožňuje držiteľovi pridať alebo odstrániť správcov aktívnych zariadení. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"zmena orientácie obrazovky"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"povoliť aplikácii párovanie prostredníctvom rozhrania Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Umožňuje aplikácii párovanie so vzdialenými zariadeniami bez zásahu používateľa."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Umožňuje aplikácii párovanie so vzdialenými zariadeniami bez zásahu používateľa."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"prístup k údajom rozhrania Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Povoľuje aplikácii pristupovať k údajom rozhrania Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Povoľuje aplikácii pristupovať k údajom rozhrania Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"pripojiť a odpojiť od WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Umožňuje aplikácii určiť, či je povolený štandard WiMAX, a tiež informácie o všetkých pripojených sieťach WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Zmeniť stav siete WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Umožňuje aplikácii pristupovať k externému ukladaciemu priestoru pre všetkých používateľov."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"pristupovať do súborového systému vyrovnávacej pamäte"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Umožňuje aplikácii čítať a zapisovať do súborového systému vyrovnávacej pamäte."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"uskutočňovať a prijímať internetové hovory"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Umožňuje aplikácii uskutočniť a prijímať internetové hovory pomocou služby SIP."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"uskutočňovanie/príjem hovorov SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Umožňuje aplikácii uskutočňovať a prijímať hovory SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakcia s obrazovkou hovoru"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Umožňuje aplikácii ovládať, kedy a ako sa používateľovi zobrazí obrazovka hovoru."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"čítať históriu používania siete"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Umožňuje aplikácii čítať históriu používania siete pre určité siete a aplikácie."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"spravovať pravidlá siete"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Umožňuje aplikácii vydávať a používať certifikáty DRM. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Prijímať stav prenosu funkcie Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Povoľuje tejto aplikácii prijímať informácie o aktuálnych prenosoch funkcie Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"odstránenie certifikátov DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Umožňuje aplikácii odstraňovať certifikáty DRM. Bežné aplikácie by toto povolenie nemali nikdy potrebovať."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastaviť pravidlá pre heslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ovládanie dĺžky hesiel na odomknutie obrazovky a v nich používané znaky."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Sledovať pokusy o odomknutie obrazovky"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Karta SIM chýba alebo sa z nej nedá čítať. Vložte kartu SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Karta SIM je nepoužiteľná."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Vaša karta SIM bola natrvalo zakázaná.\nAk chcete získať inú kartu SIM, kontaktujte svojho operátora."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Tlačidlo Predchádzajúca stopa"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Tlačidlo Ďalšia stopa"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Tlačidlo Pozastaviť"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Tlačidlo Prehrať"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Tlačidlo Zastaviť"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Predchádzajúca stopa"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Ďalšia stopa"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pozastaviť"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Prehrať"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Zastaviť"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Pretočiť späť"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Pretočiť dopredu"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Len tiesňové volania"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Sieť je zablokovaná"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Karta SIM je uzamknutá pomocou kódu PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formát"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Ladenie cez USB pripojené"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Dotknutím zakážete ladenie USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Zmeniť klávesnicu"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Vybrať klávesnice"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fyzická klávesnica"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardvér"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Zvoľte rozloženie klávesnice"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Ubrať hodinu"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Nastaviť čas popoludní"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Nastaviť čas dopoludnia"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Pridať mesiac"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Ubrať mesiac"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Pridať deň"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Prijať hovor?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vždy"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Len raz"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s nepodporuje pracovný profil."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefón"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Slúchadlá"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Bola vybratá položka <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Číslo <xliff:g id="KEY">%1$s</xliff:g> bolo odstránené"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Práca – <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Nachádzate sa v režime uzamknutia v aplikácii. Tento režim ukončíte stlačením a podržaním tlačidla nedávnych aplikácií."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Nachádzate sa v režime Uzamknutie v aplikácii."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Použiť Uzamknutie v aplikácii?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Uzamknutie v aplikácii uzamkne displej na zobrazovanie jednej aplikácie.\n\nTento režim ukončíte stlačením a podržaním tlačidla nedávnych aplikácií."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NIE, ĎAKUJEM"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"SPUSTIŤ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Uzamknutie v aplikácii"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Uzamknutie v aplikácii bolo ukončené"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Pred ukončením požiadať o %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Číslo PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"bezpečnostný vzor"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"heslo"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 551aa39..462dc19 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ID dohodnega klicatelja"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID odhodnega klicatelja"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID povezane linije"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Omejitev ID-ja povezane linije"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Preusmerjanje klicev"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Čakajoči klic"</string>
     <string name="BaMmi" msgid="455193067926770581">"Zapora klicev"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Omogoča lastniku, da pošlje namere skrbniku naprave. Nikoli se ne uporablja za navadne programe."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"povezava s TV-vhodom"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Imetniku omogoča povezovanje z vmesnikom TV-vhoda najvišje ravni. Tega ni treba nikoli uporabiti za navadne aplikacije."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"spreminjanje nastavitev starševskega nadzora"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Imetniku omogoča spreminanje podatkov o nastavitvah starševskega nadzora v sistemu. Tega ni treba nikoli uporabiti za navadne aplikacije."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"dodajanje ali odstranjevanje skrbnikov naprave"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Imetniku omogoča, da doda ali odstrani aktivne skrbnike naprave. Normalne aplikacije tega načeloma ne potrebujejo."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"spreminjanje usmerjenosti zaslona"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"aplikaciji dovoli seznanjanje prek povezave Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Aplikaciji dovoljuje seznanjanje z oddaljenimi napravami brez interakcije uporabnika."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Aplikaciji dovoljuje seznanjanje z oddaljenimi napravami brez interakcije uporabnika."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"dostop do podatkov za Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Aplikaciji omogoča dostop do podatkov za Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Aplikaciji omogoča dostop do podatkov za Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"vzpostavitev povezave z omrežjem WiMax in prekinitev povezave z njim"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Aplikaciji omogoča, da ugotovi, ali je WiMAX omogočen, in ogled podatkov o povezanih omrežjih WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Sprememba stanja omrežja WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Aplikaciji omogoča dostop do zunanje naprave za shranjevanje za vse uporabnike."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"dostop do datotečnega sistema predpomnilnika"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Programu omogoča branje in pisanje v datotečni sistem predpomnilnika."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"opravljanje/sprejemanje internetnih klicev"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Programu omogoča uporabo storitve SIP za opravljanje in sprejemanje internetnih klicev."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"opravljanje/sprejemanje klicev SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Aplikaciji omogoča opravljanje in sprejemanje klicev SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interakcija z zaslonom pri klicu"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Aplikaciji omogoča nadzor nad tem, kdaj in kako uporabnik vidi zaslon pri klicu."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"branje prejšnje uporabe omrežja"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Programu omogoča branje pretekle uporabe omrežja za določena omrežja in programe."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"upravljanje pravilnika o omrežju"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Aplikaciji omogoča pripravo in uporabo potrdil za upravljanje digitalnih pravic. To naj ne bi bilo nikoli potrebno za običajne aplikacije."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Prejemanje stanja prenosov s funkcijo Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Omogoči tej aplikaciji prejemanje podatkov o trenutnih prenosih s funkcijo Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"odstranjevanje potrdil za upravljanje digitalnih pravic"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Aplikaciji omogoča odstranjevanje potrdil za upravljanje digitalnih pravic. Tega ni treba nikoli uporabiti za navadne aplikacije."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Nastavitev pravil za geslo"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Nadzor nad dolžino in znaki, ki so dovoljeni v geslih za odklepanje zaslona."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"nadzor nad poskusi odklepanja zaslona"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Ni kartice SIM ali je ni mogoče prebrati. Vstavite kartico SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Neuporabna kartica SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Kartica SIM je trajno onemogočena.\n Če želite dobiti drugo kartico SIM, se obrnite na ponudnika brezžičnih storitev."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Gumb za prejšnjo skladbo"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Gumb za naslednjo skladbo"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Gumb »Premor«"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Gumb »Predvajaj«."</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Gumb »Ustavi«"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Prejšnja skladba"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Naslednja skladba"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Zaustavi"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Predvajaj"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Ustavi"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Previj nazaj"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Previj naprej"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Le klici v sili"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Omrežje je zaklenjeno"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Kartica SIM je zaklenjena s kodo PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Formatiraj"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Iskanje in odpravljanje napak USB je povezano"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Dotaknite se, če želite onemogočiti iskanje in odpravljanje napak prek vrat USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Sprememba tipkovnice"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Izbira tipkovnic"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fizična tipkovnica"</string>
     <string name="hardware" msgid="7517821086888990278">"Strojna oprema"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Izberite razporeditev tipkovnice"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Zmanjšanje vrednosti za uro"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Nastavi PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Nastavi AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"p."</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"d."</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Povečanje vrednosti za mesec"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Zmanjšanje vrednosti za mesec"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Povečanje vrednosti za dan"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Ali želite sprejeti klic?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Vedno"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Samo tokrat"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ne podpira delovnega profila."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablični računalnik"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Slušalke"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Izbrano: <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Številka <xliff:g id="KEY">%1$s</xliff:g> je izbrisana"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> za delo"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Ste v načinu zaklepanja v aplikacijo. Če ga želite zapustiti, se dotaknite gumba »Nedavno« in ga pridržite."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Ste v načinu zaklepanja v aplikacijo."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Želite uporabiti zaklepanje v aplikacijo?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Zaklepanje v aplikacijo zaklene zaslon v eni aplikaciji.\n\nČe želite zapustiti ta način, se dotaknite gumba »Nedavno« in ga pridržite."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NE, HVALA"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ZAŽENI"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Zaklenjeno v aplikacijo"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Zaklepanje v aplikacijo izklopljeno"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Pred izhodom zahtevaj %1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"vzorec za odklepanje"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"geslo"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 31b137d..c11e1ff 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Долазни ИД позиваоца"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Одлазни ИД позиваоца"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ИД повезане линије"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Ограничење ИД-а повезане линије"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Преусмеравање позива"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Позив на чекању"</string>
     <string name="BaMmi" msgid="455193067926770581">"Ограничавање позива"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Омогућава да власник шаље своје намере администратору уређаја. Уобичајене апликације никада не би требало да је користе."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"повезивање са ТВ улазом"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Дозвољава власнику да се повеже са интерфејсом ТВ улаза највишег нивоа. Уобичајене апликације никада не би требало да је користе."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"мењај родитељске контроле"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Дозвољава власнику да мења податке родитељских контрола у систему. Никада не би требало да се користи за обичне апликације."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"додавање или уклањање администратора уређаја"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Дозвољава власнику да додаје или уклања активне администраторе уређаја. Уобичајене апликације никада не би требало да је користе."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"промена положаја екрана"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"омогућавање упаривања апликације преко Bluetooth-а"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Омогућава апликацији да се упарује са удаљеним уређајима без интеракције корисника."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Омогућава апликацији да се упарује са удаљеним уређајима без интеракције корисника."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"приступај Bluetooth MAP подацима"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Дозвољава апликацији да приступа Bluetooth MAP подацима."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Дозвољава апликацији да приступа Bluetooth MAP подацима."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"повезивање и прекид везе са WiMAX-ом"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Дозвољава апликацији да утврди да ли је WiMAX омогућен, као и информације о било којим повезаним WiMAX мрежама."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Промени WiMAX статус"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Дозвољава апликацији да приступа спољној меморији за све кориснике."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"приступ систему датотека кеша"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Дозвољава апликацији да чита систем датотека кеша и уписује податке у њега."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"упућивање/пријем Интернет позива"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Дозвољава апликацији да користи SIP услугу за упућивање/пријем интернет позива."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"упућивање/пријем SIP позива"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Омогућава апликацији да упућује и прима SIP позиве."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"интеракција са екраном током позива"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Дозвољава апликацији да контролише када и како се кориснику приказује екран приликом позива."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"чита историју коришћења мреже"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Дозвољава апликацији да чита историју коришћења мреже за посебне мреже и апликације."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"управљање смерницама за мрежу"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Дозвољава апликацији да додељује и користи DRM сертификате. Никада не би требало да се користи за уобичајене апликације."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Пријем статуса пребацивања помоћу Android пребацивања"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Дозвољава овој апликацији да прима информације о актуелним пребацивањима помоћу Android пребацивања"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"уклањај DRM сертификате"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Дозвољава апликацији да уклања DRM сертификате. Никада не би требало да се користи за обичне апликације."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Подешавање правила за лозинку"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролишите дужину и знакове дозвољене у лозинкама за откључавање екрана."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Надгледање покушаја откључавања екрана"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM недостаје или не може да се прочита. Уметните SIM картицу."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM картица је неупотребљива."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM картица је трајно онемогућена.\n Обратите се добављачу услуге бежичне мреже да бисте добили другу SIM картицу."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Дугме за претходну песму"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Дугме за следећу песму"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Дугме за паузу"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Дугме Пусти"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Дугме за заустављање"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Претходна песма"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Следећа песма"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Пауза"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Пусти"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Заустави"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Премотај уназад"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Премотај унапред"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Само хитни позиви"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Мрежа је закључана"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM картица је закључана PUK кодом."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Формат"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Отклањање грешака са USB-а је успостављено"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Додирните да бисте онемогућили отклањање грешака са USB-а."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Промените тастатуру"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Изаберите тастатуре"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Физичка тастатура"</string>
     <string name="hardware" msgid="7517821086888990278">"Хардвер"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Избор распореда тастатуре"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Смањивање сати"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Подеси по подне"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Подеси пре подне"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Повећавање месеца"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Смањивање месеца"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Повећавање дана"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Желите ли да прихватите позив?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Увек"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Само једном"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s не подржава профил за посао."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Таблет"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Слушалице"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Изабрали сте <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Избрисали сте <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> на послу"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Налазите се у режиму Закључавање апликације. Да бисте изашли, притисните и задржите дугме Недавне апликације"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Користите режим Закључавање на апликацију."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Желите ли да користите Закључај на апликацију?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Функција Закључавање апликације закључава приказ на једну апликацију.\n\nДа бисте изашли, додирните и задржите дугме Недавне апликације."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"НЕ, ХВАЛА"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ПОКРЕНИ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Закључано је на апликацију"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Није више закључано на апликацију"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Захтевај %1$s пре изласка из режима"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"шаблон за откључавање"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"лозинка"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index d9032ee..9115c06 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Nummerpresentatör för inkommande samtal"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Nummerpresentatör för utgående samtal"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Visning av uppkopplat nummer"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Blockera visning av uppkopplat nummer"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Vidarebefordra samtal"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Samtal väntar"</string>
     <string name="BaMmi" msgid="455193067926770581">"Samtalsspärr"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Tillåter att innehavaren skickar avsikter till en enhetsadministratör. Vanliga appar behöver aldrig göra detta."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"binda till en tv-insignal"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Innehavaren tillåts att binda till den översta nivåns gränssnitt för en tv-insignal. Ska inte behövas för vanliga appar."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ändra föräldrakontroll"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Tillåter innehavaren att ändra systemets föräldrakontrolldata. Behövs inte för vanliga appar."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"lägga till eller ta bort en enhetsadministratör"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Innehavaren får lägga till eller ta bort aktiva enhetsadministratörer. Detta ska normalt inte behövas för vanliga appar."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ändra bildskärmens rikting"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"tillåt Bluetooth-koppling för appen"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Tillåter att appen kopplas till fjärrenheter utan interaktion med användare."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Tillåter att appen kopplas till fjärrenheter utan interaktion med användare."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"tillgång till Bluetooth MAP-uppgifter"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Tillåter att appen får åtkomst till Bluetooth MAP-uppgifter."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Tillåter att appen får åtkomst till Bluetooth MAP-uppgifter."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"ansluta till och koppla från WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Tillåter att appen avgör om WiMAX är aktiverat och kommer åt information om eventuella anslutna WiMAX-nätverk."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"ändra WiMAX-status"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Tillåter att appen får åtkomst till en extern lagringsenhet för alla användare."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"åtkomst till cachefilsystemet"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Tillåter att appen läser och skriver till cachefilsystemet."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ringa/ta emot Internetsamtal"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Tillåter att appen använder SIP-tjänsten för att ringa och ta emot Internetsamtal."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"gör/ta emot SIP-anrop"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Tillåter att appen gör och tar emot SIP-anrop."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"interagera med skärmen för inkommande samtal"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Låter appen kontrollera hur och när användaren ser skärmen för inkommande samtal."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"läsa historisk nätverksanvändning"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Tillåter att appen läser den historiska nätverksanvändningen för specifika nätverk och appar."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"hantera nätverkspolicy"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Tillåter att en app tillhandahåller och använder DRM-certifikat. Behövs inte för vanliga appar."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Ta emot status för Android Beam-överföring"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Tillåter att appen tar emot information om aktuella Android Beam-överföringar"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"ta bort DRM-certifikat"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Tillåter ett program att ta bort DRM-certifikat. Behövs inte för vanliga appar."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Ange lösenordsregler"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Bestäm hur många och vilka tecken som är tillåtna i skärmlåsets lösenord."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Övervaka försök att låsa upp skärmen"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort saknas eller kan inte läsas. Sätt i ett SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Oanvändbart SIM-kort."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM-kortet har inaktiverats permanent.\n Beställ ett nytt SIM-kort från din operatör."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Knapp för föregående spår"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Knapp för nästa spår"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pausknappen"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Uppspelningsknappen"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Stoppknappen"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Föregående spår"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Nästa spår"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Pausa"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Spela upp"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Avbryt"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Spola tillbaka"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Snabbspola framåt"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Endast nödsamtal"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Nätverk låst"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-kortet är PUK-låst."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB-felsökning ansluten"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Tryck om du vill inaktivera USB-felsökning."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Byt tangentbord"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Välj tangentbord"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fysiskt tangentbord"</string>
     <string name="hardware" msgid="7517821086888990278">"Maskinvara"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Välj en tangentbordslayout"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Minska timmar"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Ange em"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Ange fm"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"em"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"fm"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Öka månader"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Minska månader"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Öka dagar"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Vill du ta emot samtal?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Alltid"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Bara en gång"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s har inte stöd för arbetsprofil."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Surfplatta"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Mobil"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Hörlurar"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> har markerats"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> har tagits bort"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> för arbetet"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Läget Lås till app används. Avsluta genom att trycka länge på knappen för de senaste apparna"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Läget Lås till app används."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Vill du använda Lås till app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Med funktionen Lås till app låses skärmen i en enskild app.\n\nAvsluta genom att trycka länge på knappen för de senaste apparna."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"NEJ TACK"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"STARTA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Låst till app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Inte längre låst till app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Fråga efter %1$s innan läget avslutas"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Pinkod"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"grafiskt lösenord"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"lösenord"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 4f14f2a..177730c 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Kitambulisho cha Mpigaji wa Simu Inayoingia"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"ID ya Mpigaji simu Inayotoka nje"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Kitambulisho cha Mstari Uliounganishwa"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Kizuizi cha Kitambulisho cha Mstari Uliounganishwa"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Kusambaza simu"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Simu inasubiriwa"</string>
     <string name="BaMmi" msgid="455193067926770581">"Kuzuia upigaji simu"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Humruhusu mmiliki kutuma kidhibiti cha kifaa malengo. Programu za kawaida hazikihitaji."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bandika kwenye zana za data ya runinga"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Inaruhusu kishikiliaji kubandika kwenye kusano la kiwango cha juu cha zana za data kwenye runinga. Haipaswi kuhitajika kwa programu za kawaida."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"rekebisha mfumo wa udhibiti wa wazazi"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Huruhusu mmiliki kurekebisha data ya mfumo wa udhibiti wa wazazi. Haipaswi kuhitajika kwa programu za kawaida kamwe."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"ongeza au ondoa msimamizi wa kifaa"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Huruhusu mmiliki kuongeza au kuondoa vidhibiti vya kifaa vinavyotumika. Programu za kawaida hazivihitaji."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"badilisha uelekezo wa skrini"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"ruhusu uoanishaji wa programu kupitia Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Huruhusu programu kuoanisha na vifaa vya mbali bila mtumiaji kuingilia."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Huruhusu programu kuoanisha na vifaa vya mbali bila mtumiaji kuingilia."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"fikia data ya MAP ya Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Huruhusu programu kufikia data ya MAP ya Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Huruhusu programu kufikia data ya MAP ya Bluetooth"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"unganisha na uukate muunaganisho kutoka kwenye  WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Inaruhusu programu kuthibitisha ikiwa WiMAX imewezeshwa na taarifa kuhusu mitandao yoyote ya WiMAX ambayo imeunganishwa."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Badilisha hali ya WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Inaruhusu programu kufikia hifadhi ya nje kwa watumiaji wote."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"fikia faili za mfumo za akiba"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Huruhusu programu kusoma na kuandika mfumo wa faili wa akiba."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"piga/pokea simu za mtandao"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Inaruhusu programu kutumia huduma ya SIP kupiga/kupokea simu za mtandao."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"piga/pokea simu za SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ruhusu programu ipige na kupokea simu za SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"tumikisha skrini ya simu inayoendelea"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Huruhusu programu kudhibiti wakati na jinsi mtumiaji anaona skrini anapopigiwa simu."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"soma matumizi ya historia ya mtandao"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Inaruhusu programu kusoma historia ya matumizi ya mtandao kwa mitandao maalum na programu."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"dhibiti sera ya mtandao"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Huruhusu programu kwa utoaji na matumizi ya vyeti vya DRM. Havifahi kuhitajika kwa ajili ya programu za kawaida."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Pokea hali ya uhamisho wa Boriti ya Android"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Huruhusu programu hii kupokea taarifa kuhusu uhamisho wa Boriti ya Android"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"ondoa vyeti vya DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Huruhusu programu kuondoa vyeti vya DRM. Haipaswi kuhitajika kwa programu za kawaida kamwe."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Kuweka kanuni za nenosiri"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kudhibiti urefu na herufi zinazoruhusiwa katika manenosiri ya kufungua skrini."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Kuhesabu mara ambazo skrini inajaribu kufunguliwa"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kadi haipatikani au haisomeki. Tafadhali ingiza SIM kadi."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM kadi isiyotumika."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kadi yako imelemezwa kabisa.\n Wasiliana na mtoa huduma wako wa pasi waya ili upate SIM kadi nyingine."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Kitufe cha awali cha wimbo"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Kitufe cha wimbo unaofuata"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Kitufe cha kusitisha"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Kitufe cha kucheza"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Kitufe cha kusitisha"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Wimbo uliotangulia"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Wimbo unaofuata"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Sitisha"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Cheza"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Simamisha"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Rudisha nyuma"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Peleka mbele kwa kasi"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Simu za dharura pekee"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Mtandao umefungwa"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kadi imefungwa kwa PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Fomati"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Utatuaji wa USB umeunganishwa"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Gusa ili uzime utatuaji wa USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Badilisha kibodi"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Chagua kibodi"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Kibodi halisi"</string>
     <string name="hardware" msgid="7517821086888990278">"Maunzi"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Teua mpangilio wa kibodi"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Punguza saa"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Seti PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Seti AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Ongeza mwezi"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Punguza mwezi"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Ongeza siku"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Kubali simu?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Kila mara"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Mara moja tu"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s hakiwezi kutumika na wasifu wa kazi."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Kompyuta kibao"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Simu"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Vipokeasauti"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> kimechaguliwa"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> kimefutwa"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Ya kazini <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Upo katika hali ya salia katika programu moja. Ili uondoke, gusa na ushikilie kitufe cha Programu za hivi majuzi"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Uko katika hali ya Kusalia katika Programu Moja."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Ungependa kutumia kipengele cha kusalia katika programu moja?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Salia katika programu moja hufunga onyesho katika programu moja. \n \n Ili uondoke, gusa na ushikilie kitufe cha Programu za hivi majuzi."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"HAPANA, ASANTE"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ANZA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Inasalia katika programu moja"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Haisalii katika programu moja tena"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Uliza %1$s kabla hujaondoka"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"mchoro wa kufungua"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"nenosiri"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml
index 187a644..a72e813 100644
--- a/core/res/res/values-ta-rIN/strings.xml
+++ b/core/res/res/values-ta-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"உள்வரும் அழைப்பாளர் ஐடி"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"வெளிசெல்லும் அழைப்பாளர் ஐடி"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"இணைக்கப்பட்ட லைன் ஐடி"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"இணைக்கப்பட்ட லைன் ஐடியை வரம்பிடல்"</string>
     <string name="CfMmi" msgid="5123218989141573515">"அழைப்புப் பகிர்வு"</string>
     <string name="CwMmi" msgid="9129678056795016867">"அழைப்பு காத்திருப்பு"</string>
     <string name="BaMmi" msgid="455193067926770581">"அழைப்புத் தவிர்ப்பு"</string>
@@ -184,7 +186,7 @@
     <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"விமானப் பயன்முறை"</string>
     <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"விமானப் பயன்முறை இயக்கத்தில் உள்ளது"</string>
     <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"விமானப் பயன்முறை முடக்கத்தில் உள்ளது"</string>
-    <string name="global_action_settings" msgid="1756531602592545966">"அமைப்புகள்"</string>
+    <string name="global_action_settings" msgid="1756531602592545966">"அமைப்பு"</string>
     <string name="global_action_lockdown" msgid="8751542514724332873">"இப்போது பூட்டு"</string>
     <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string>
     <string name="safeMode" msgid="2788228061547930246">"பாதுகாப்பு பயன்முறை"</string>
@@ -205,7 +207,7 @@
     <string name="permgroupdesc_network" msgid="4478299413241861987">"வெவ்வேறு நெட்வொர்க் அம்சங்களை அணுகுதல்."</string>
     <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"புளூடூத்"</string>
     <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"புளூடூத் மூலமாக சாதனங்கள் மற்றும் நெட்வொர்க்குகளை அணுகவும்."</string>
-    <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"ஆடியோ அமைப்புகள்"</string>
+    <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"ஆடியோ அமைப்பு"</string>
     <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"ஆடியோ அமைப்புகளை மாற்றவும்."</string>
     <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"பேட்டரியைப் பாதிக்கும்"</string>
     <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"விரைவில் பேட்டரியைத் தீர்க்கும் அம்சங்களைப் பயன்படுத்தவும்."</string>
@@ -235,7 +237,7 @@
     <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"சாதனத்தின் நேரம் அல்லது நேரமண்டலத்தை மாற்றவும்."</string>
     <string name="permgrouplab_statusBar" msgid="2095862568113945398">"நிலைப் பட்டி"</string>
     <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"சாதனத்தின் நிலைப் பட்டி அமைப்புகளை மாற்றவும்."</string>
-    <string name="permgrouplab_syncSettings" msgid="3341990986147826541">"ஒத்திசைவு அமைப்புகள்"</string>
+    <string name="permgrouplab_syncSettings" msgid="3341990986147826541">"ஒத்திசைவு அமைப்பு"</string>
     <string name="permgroupdesc_syncSettings" msgid="7603195265129031797">"ஒத்திசைவு அமைப்புகளுக்கான அணுகல்."</string>
     <string name="permgrouplab_accounts" msgid="3359646291125325519">"உங்கள் கணக்குகள்"</string>
     <string name="permgroupdesc_accounts" msgid="4948732641827091312">"கிடைக்கும் கணக்குகளை அணுக முடியும்."</string>
@@ -294,8 +296,8 @@
     <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"ஃபோன் அல்லது SIM கார்டில் சேமிக்கப்பட்ட SMS செய்திகளை எழுத, பயன்பாட்டை அனுமதிக்கிறது. தீங்குவிளைவிக்கும் பயன்பாடுகள் செய்திகளை நீக்கலாம்."</string>
     <string name="permlab_receiveWapPush" msgid="5991398711936590410">"உரைச் செய்திகளைப் (WAP) பெறுதல்"</string>
     <string name="permdesc_receiveWapPush" msgid="748232190220583385">"WAP செய்திகளைப் பெற, செயற்படுத்தப் பயன்பாட்டை அனுமதிக்கிறது. உங்களுக்கு அனுப்பப்படும் செய்திகளை உங்களுக்குக் காட்டாமல் கண்காணிக்க அல்லது நீக்குவதற்கான திறன் இந்த அனுமதியில் உள்ளடங்கும்."</string>
-    <string name="permlab_receiveBluetoothMap" msgid="7593811487142360528">"புளூடூத் செய்திகளைப் (MAP) பெறுதல்"</string>
-    <string name="permdesc_receiveBluetoothMap" msgid="8656755936919466345">"புளூடூத் MAP செய்திகளைப் பெற மற்றும் செயல்படுத்த பயன்பாட்டை அனுமதிக்கிறது. அதாவது பயன்பாட்டால் சாதனத்திற்கு அனுப்பப்பட்ட செய்திகளை, உங்களிடம் காட்டாமலே கண்காணிக்கவோ, நீக்கவோ முடியும்."</string>
+    <string name="permlab_receiveBluetoothMap" msgid="7593811487142360528">"Bluetooth செய்திகளைப் (MAP) பெறுதல்"</string>
+    <string name="permdesc_receiveBluetoothMap" msgid="8656755936919466345">"Bluetooth MAP செய்திகளைப் பெற மற்றும் செயல்படுத்த பயன்பாட்டை அனுமதிக்கிறது. அதாவது பயன்பாட்டால் சாதனத்திற்கு அனுப்பப்பட்ட செய்திகளை, உங்களிடம் காட்டாமலே கண்காணிக்கவோ, நீக்கவோ முடியும்."</string>
     <string name="permlab_getTasks" msgid="6466095396623933906">"இயங்கும் பயன்பாடுகளை மீட்டெடுத்தல்"</string>
     <string name="permdesc_getTasks" msgid="7454215995847658102">"நடப்பில் மற்றும் சமீபத்தில் இயங்கும் காரியங்களின் தகவலைப் பெற பயன்பாட்டை அனுமதிக்கிறது. சாதனத்தில் எந்தப் பயன்பாடுகள் பயன்படுத்தப்படுகின்றன என்பது குறித்த தகவலைக் கண்டறிய பயன்பாட்டை இது அனுமதிக்கலாம்."</string>
     <string name="permlab_startTasksFromRecents" msgid="8990073877885690623">"சமீபத்தியவற்றிலிருந்து செயலைத் தொடங்கு"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"சாதன நிர்வாகிக்கு இன்டென்ட்ஸை அனுப்ப, ஹோல்டரை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு எப்போதுமே தேவைப்படாது."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"டிவி உள்ளீட்டுடன் இணைத்தல்"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"டிவி உள்ளீட்டின் உயர் நிலை இடைமுகத்துடன் இணைப்பதற்கு ஹோல்டரை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு எப்போதுமே தேவைப்படாது."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"பெற்றோர் கட்டுப்பாடுகளை மாற்று"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"முறைமையின் பெற்றோர் கட்டுப்பாடுகள் தரவை மாற்ற வழங்குபவரை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு எப்போதுமே தேவைப்படாது."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"சாதன நிர்வாகியைச் சேர்த்தல் அல்லது அகற்றுதல்"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"செயலில் இருக்கும் சாதன நிர்வாகிகளைச் சேர்க்க அல்லது அகற்ற ஹோல்டரை அனுமதிக்கிறது. இயல்பான பயன்பாடுகளுக்கு எப்போதுமே தேவைப்படாது."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"திரை திசையமைப்பை மாற்றுதல்"</string>
@@ -468,9 +468,9 @@
     <string name="permlab_setPreferredApplications" msgid="8463181628695396391">"விருப்ப பயன்பாடுகளை அமைத்தல்"</string>
     <string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"உங்களுக்கு விருப்பமான பயன்பாடுகளை மாற்ற, பயன்பாட்டை அனுமதிக்கிறது. தீங்குவிளைவிக்கும் பயன்பாடுகள், இயங்குகின்ற பயன்பாடுகளை அறிவிப்பு இல்லாமல் மாற்றலாம், உங்களிடமிருந்து தனிப்பட்ட தரவைச் சேகரிக்க, ஏற்கனவே உள்ள பயன்பாடுகளை ஏமாற்றலாம்."</string>
     <string name="permlab_writeSettings" msgid="2226195290955224730">"முறைமை அமைப்புகளை மாற்றுதல்"</string>
-    <string name="permdesc_writeSettings" msgid="7775723441558907181">"முறைமையின் அமைப்புகள் தரவைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. தீங்குவிளைவிக்கும் பயன்பாடுகள், முறைமையின் உள்ளமைவைச் சிதைக்கலாம்."</string>
+    <string name="permdesc_writeSettings" msgid="7775723441558907181">"முறைமையின் அமைப்பு தரவைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. தீங்குவிளைவிக்கும் பயன்பாடுகள், முறைமையின் உள்ளமைவைச் சிதைக்கலாம்."</string>
     <string name="permlab_writeSecureSettings" msgid="204676251876718288">"பாதுகாப்பான கணினி அமைப்புகளை மாற்று"</string>
-    <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"முறைமையின் பாதுகாப்பு அமைப்புகள் தரவைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு பயன்படாது."</string>
+    <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"முறைமையின் பாதுகாப்பு அமைப்பு தரவைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு பயன்படாது."</string>
     <string name="permlab_writeGservices" msgid="2149426664226152185">"Google சேவைகள் வரைபடத்தை மாற்றுதல்"</string>
     <string name="permdesc_writeGservices" msgid="1287309437638380229">"Google சேவையகங்களின் வரைபடத்தைத் திருத்த, பயன்பாட்டை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு பயன்படாது."</string>
     <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"தொடக்கத்தில் இயக்குதல்"</string>
@@ -643,7 +643,7 @@
     <string name="permdesc_accessNetworkState" msgid="8318964424675960975">"தற்போது இருக்கும் நெட்வொர்க்குகள் எவை மற்றும் இணைக்கப்பட்டுள்ளவை எவை போன்ற நெட்வொர்க் இணைப்புகள் குறித்த தகவலைப் பார்க்கப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_createNetworkSockets" msgid="8018758136404323658">"முழுமையான நெட்வொர்க் அணுகல்"</string>
     <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"நெட்வொர்க் சாக்கெட்டுகளை உருவாக்கவும் மற்றும் தனிப்பயன் நெட்வொர்க் நெறிமுறைகளைப் பயன்படுத்தவும் பயன்பாட்டை அனுமதிக்கிறது. இணையத்தில் தரவை அனுப்ப உலாவியும், பிற பயன்பாடுகளும் இருப்பதால், இணையத்திற்குத் தரவை அனுப்ப இந்த அனுமதி தேவையில்லை."</string>
-    <string name="permlab_writeApnSettings" msgid="505660159675751896">"பிணைய அமைப்புகள் மற்றும் ட்ராஃபிக்கை மாற்றுதல்/இடைமறித்தல்"</string>
+    <string name="permlab_writeApnSettings" msgid="505660159675751896">"பிணைய அமைப்பு மற்றும் ட்ராஃபிக்கை மாற்றுதல்/இடைமறித்தல்"</string>
     <string name="permdesc_writeApnSettings" msgid="5333798886412714193">"நெட்வொர்க் அமைப்புகளை மாற்றவும், எல்லா நெட்வொர்க் ட்ராஃபிக்கையும் இடைநிறுத்தி கண்காணிக்கவும், பயன்பாட்டை அனுமதிக்கிறது. எடுத்துக்காட்டாக, ஏதேனும் APN இன் ப்ராக்ஸி மற்றும் போர்ட்டை மாற்றுதல் போன்றவை. உங்கள் அனுமதி இல்லாமல், நெட்வொர்க் பேக்கேஜ்களை தீங்குவிளைவிக்கும் பயன்பாடுகள் கண்காணிக்கலாம், திசைதிருப்பலாம் அல்லது மாற்றலாம்."</string>
     <string name="permlab_changeNetworkState" msgid="958884291454327309">"பிணைய இணைப்புத்தன்மையை மாற்றுதல்"</string>
     <string name="permdesc_changeNetworkState" msgid="6789123912476416214">"நெட்வொர்க் இணைப்பின் நிலையை மாற்ற, பயன்பாட்டை அனுமதிக்கிறது."</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"பயன்பாட்டின் மூலம் புளூடூத் ஐ இணைப்பதை அனுமதித்தல்"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"பயனரின் அனுமதி இல்லாமல் தொலைநிலை சாதனங்களுடன் இணைப்பதற்கு பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"பயனரின் அனுமதி இல்லாமல் தொலைநிலை சாதனங்களுடன் இணைப்பதற்கு பயன்பாட்டை அனுமதிக்கிறது."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"புளுடூத் மேப் தரவு அணுகல்"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"புளுடூத் மேப் தரவை அணுகப் பயன்பாட்டை அனுமதிக்கிறது."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"புளுடூத் மேப் தரவை அணுகப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX உடன் இணை மற்றும் அதனுடனான தொடர்பைத் துண்டி"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"WiMAX இணைக்கப்பட்டுள்ளதா என்பதையும், இணைக்கப்பட்டுள்ள WiMAX நெட்வொர்க்குகள் ஏதேனும் குறித்த தகவலைத் தீர்மானிக்கவும் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX நிலையை மாற்றவும்"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"அனைத்து பயனர்களும் வெளிப்புறச் சேமிப்பிடத்தை அணுகுவதற்குப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"தற்காலிகச் சேமிப்பு கோப்பு அமைப்பின் அணுகல்"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"தற்காலிகச் சேமிப்பு கோப்பு அமைப்பைப் படிக்க மற்றும் எழுத, பயன்பாட்டை அனுமதிக்கிறது."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"இணைய அழைப்புகளைச் செய்தல்/பெறுதல்"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"இணைய அழைப்புகளைச் செய்ய/பெற SIP சேவையைப் பயன்படுத்தப் பயன்பாட்டை அனுமதிக்கிறது."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP அழைப்புகளைச் செய்தல்/பெறுதல்"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP அழைப்புகளைச் செய்ய/பெற, பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"உள்வரும் அழைப்பிற்கான திரையுடன் ஊடாடுதல்"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"உள்வரும் அழைப்பிற்கான திரையைப் பயனர் எப்போது மற்றும் எப்படிக் காணவேண்டும் என்பதைக் கட்டுப்படுத்துவதற்குப் பயன்பாட்டை அனுமதிக்கிறது."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"பிணைய பயன்பாட்டு வரலாற்றைப் படித்தல்"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"குறிப்பிட்ட நெட்வொர்க்குகள் மற்றும் பயன்பாடுகளுக்கான நெட்வொர்க் பயன்பாட்டின் வரலாற்றைப் படிக்க, பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"பிணைய கொள்கையை நிர்வகித்தல்"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM சான்றிதழ்களை வழங்க மற்றும் பயன்படுத்த, பயன்பாட்டை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு எப்போதும் தேவைப்படாது."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android பீம் பரிமாற்ற நிலையைப் பெறுக"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"நடப்பு Android பீம் பரிமாற்றங்கள் குறித்த தகவலைப் பெற, பயன்பாட்டை அனுமதிக்கிறது"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM சான்றிதழ்களை அகற்று"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM சான்றிதழ்களை அகற்ற, பயன்பாட்டை அனுமதிக்கிறது. சாதாரண பயன்பாடுகளுக்கு எப்போதுமே தேவைப்படாது."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"கடவுச்சொல் விதிகளை அமைக்கவும்"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"திரையைத் திறக்க கடவுச்சொற்களில் அனுமதிக்கப்பட்ட நீளத்தையும், எழுத்துக்குறிகளையும் கட்டுப்படுத்தலாம்."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"திரைத் திறக்க முயற்சிகளைக் கண்காணித்தல்"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM கார்டு இல்லை அல்லது படிக்கக்கூடியதாக இல்லை. SIM கார்டைச் செருகவும்."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"பயன்படுத்த முடியாத SIM கார்டு."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"உங்கள் SIM கார்டு நிரந்தரமாக முடக்கப்பட்டது.\n மற்றொரு SIM கார்டிற்காக உங்கள் வயர்லெஸ் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"முந்தைய ட்ராக் பொத்தான்"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"அடுத்த டிராக் பொத்தான்"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"இடைநிறுத்தப் பொத்தான்"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"இயக்கு பொத்தான்"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"நிறுத்து பொத்தான்"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"முந்தைய ட்ராக்"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"அடுத்த ட்ராக்"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"இடைநிறுத்து"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"இயக்கு"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"நிறுத்து"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"மீண்டும் காட்டு"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"வேகமாக முன்செல்"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"அவசர அழைப்புகள் மட்டும்"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"நெட்வொர்க் பூட்டப்பட்டது"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM கார்டு PUK பூட்டுதல் செய்யப்பட்டுள்ளது."</string>
@@ -1198,7 +1205,7 @@
     <string name="whichSendApplicationNamed" msgid="2799370240005424391">"%1$s மூலம் பகிர்"</string>
     <string name="whichHomeApplication" msgid="4616420172727326782">"முகப்பு பயன்பாட்டைத் தேர்ந்தெடுக்கவும்"</string>
     <string name="alwaysUse" msgid="4583018368000610438">"இந்தச் செயலுக்கு இயல்பாகப் பயன்படுத்து."</string>
-    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"முறைமை அமைப்புகள் &gt; பயன்பாடுகள் &gt; பதிவிறக்கியவை என்பதில் உள்ள இயல்பை அழிக்கவும்."</string>
+    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"முறைமை அமைப்பு &gt; பயன்பாடுகள் &gt; பதிவிறக்கியவை என்பதில் உள்ள இயல்பை அழிக்கவும்."</string>
     <string name="chooseActivity" msgid="7486876147751803333">"செயலைத் தேர்ந்தெடுக்கவும்"</string>
     <string name="chooseUsbActivity" msgid="6894748416073583509">"USB சாதனத்திற்கான பயன்பாட்டைத் தேர்வுசெய்க"</string>
     <string name="noApplications" msgid="2991814273936504689">"இந்தச் செயலைச் செய்ய பயன்பாடுகள் எதுவுமில்லை."</string>
@@ -1219,7 +1226,7 @@
     <string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> உண்மையாக வெளியிடப்பட்டது."</string>
     <string name="screen_compat_mode_scale" msgid="3202955667675944499">"அளவு"</string>
     <string name="screen_compat_mode_show" msgid="4013878876486655892">"எப்போதும் காட்டு"</string>
-    <string name="screen_compat_mode_hint" msgid="1064524084543304459">"சிஸ்டம் அமைப்புகள் &gt; பயன்பாடுகள் &gt; பதிவிறக்கம் என்பதில் இதை மீண்டும் இயக்கவும்."</string>
+    <string name="screen_compat_mode_hint" msgid="1064524084543304459">"சிஸ்டம் அமைப்பு &gt; பயன்பாடுகள் &gt; பதிவிறக்கம் என்பதில் இதை மீண்டும் இயக்கவும்."</string>
     <string name="smv_application" msgid="3307209192155442829">"<xliff:g id="APPLICATION">%1$s</xliff:g> பயன்பாடு (செயல்முறை <xliff:g id="PROCESS">%2$s</xliff:g>), தனது சுய-செயலாக்க StrictMode கொள்கையை மீறியது."</string>
     <string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> செயல்முறை, தனது சுய-செயலாக்க StrictMode கொள்கையை மீறியது."</string>
     <string name="android_upgrading_title" msgid="1584192285441405746">"Android மேம்படுத்தப்படுகிறது…"</string>
@@ -1294,7 +1301,7 @@
     <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"அனுப்பு"</string>
     <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"ரத்துசெய்"</string>
     <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"எனது விருப்பத்தேர்வை நினைவில்கொள்"</string>
-    <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"அமைப்புகள் &gt; பயன்பாடுகள் என்பதில் பிறகு நீங்கள் மாற்றலாம்"</string>
+    <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"அமைப்பு &gt; பயன்பாடுகள் என்பதில் பிறகு நீங்கள் மாற்றலாம்"</string>
     <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"எப்போதும் அனுமதி"</string>
     <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"ஒருபோதும் அனுமதிக்காதே"</string>
     <string name="sim_removed_title" msgid="6227712319223226185">"SIM கார்டு அகற்றப்பட்டது"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"வடிவமைப்பு"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB பிழைதிருத்தம் இணைக்கப்பட்டது"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB பிழைத்திருத்தத்தை முடக்க, தொடவும்."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"விசைப்பலகையை மாற்று"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"விசைப்பலகைகளைத் தேர்வுசெய்க"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"கைமுறை விசைப்பலகை"</string>
     <string name="hardware" msgid="7517821086888990278">"வன்பொருள்"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"விசைப்பலகைத் தளவமைப்பைத் தேர்ந்தெடுக்கவும்"</string>
@@ -1392,7 +1397,7 @@
     <string name="permdesc_trust_listener" msgid="8233895334214716864">"நம்பிக்கை நிலை மாற்றங்களைக் கவனிக்க பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_provide_trust_agent" msgid="5465587586091358316">"நம்பகமான ஏஜென்ட்டை வழங்குதல்."</string>
     <string name="permdesc_provide_trust_agent" msgid="3865702641053068148">"நம்பகமான ஏஜென்ட்டை வழங்க, பயன்பாட்டை அனுமதிக்கிறது."</string>
-    <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"நம்பகமான ஏஜென்ட் அமைப்புகள் மெனுவைத் துவக்கு."</string>
+    <string name="permlab_launch_trust_agent_settings" msgid="5859430082240410200">"நம்பகமான ஏஜென்ட் அமைப்பு மெனுவைத் துவக்கு."</string>
     <string name="permdesc_launch_trust_agent_settings" msgid="8185142708644913381">"நம்பகமான ஏஜென்ட் நடவடிக்கையை மாற்றுகின்ற செயல்பாட்டைத் துவக்குவதற்குப் பயன்பாட்டை அனுமதிக்கிறது."</string>
     <string name="permlab_bind_trust_agent_service" msgid="8242093169457695334">"நம்பகமான ஏஜென்ட் சேவையுடன் இணைத்தல்"</string>
     <string name="permdesc_bind_trust_agent_service" msgid="7041930026024507515">"நம்பகமான ஏஜென்ட் சேவையுடன் இணைப்பதற்குப் பயன்பாட்டை அனுமதிக்கிறது."</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"மணிநேரத்தைக் குறை"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM ஐ அமை"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM ஐ அமை"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"மாதத்தை அதிகரி"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"மாதத்தைக் குறை"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"நாளை அதிகரி"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"அழைப்பை ஏற்கவா?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"எப்போதும்"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"இப்போது மட்டும்"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s பணி சுயவிவரத்தை ஆதரிக்காது."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"டேப்லெட்"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"மொபைல்"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ஹெட்ஃபோன்கள்"</string>
@@ -1577,7 +1583,7 @@
     <string name="media_route_chooser_title" msgid="1751618554539087622">"சாதனத்துடன் இணைக்கவும்"</string>
     <string name="media_route_chooser_title_for_remote_display" msgid="3395541745872017583">"திரையிலிருந்து சாதனத்திற்கு அனுப்புக"</string>
     <string name="media_route_chooser_searching" msgid="4776236202610828706">"சாதனங்களைத் தேடுகிறது..."</string>
-    <string name="media_route_chooser_extended_settings" msgid="87015534236701604">"அமைப்புகள்"</string>
+    <string name="media_route_chooser_extended_settings" msgid="87015534236701604">"அமைப்பு"</string>
     <string name="media_route_controller_disconnect" msgid="8966120286374158649">"துண்டி"</string>
     <string name="media_route_status_scanning" msgid="7279908761758293783">"ஸ்கேன் செய்கிறது..."</string>
     <string name="media_route_status_connecting" msgid="6422571716007825440">"இணைக்கிறது..."</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> தேர்ந்தெடுக்கப்பட்டது"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> நீக்கப்பட்டது"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"பணியிடம் <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"லாக்-டு-ஆப் பயன்முறையில் உள்ளது. வெளியேற, சமீபத்தியவை பட்டனை அழுத்திப் பிடிக்கவும்"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"லாக்-டு-ஆப் பயன்முறையில் உள்ளது."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"லாக்-டூ-ஆப்பைப் பயன்படுத்தவா?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"ஒற்றைப் பயன்பாட்டின் திரையை லாக்-டு-ஆப் பூட்டுகிறது.\n\nவெளியேற, சமீபத்தியவை பட்டனை அழுத்திப் பிடிக்கவும்."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"வேண்டாம், நன்றி"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"தொடங்கு"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"பயன்பாடு பூட்டப்பட்டது"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"பயன்பாடு பூட்டப்படவில்லை"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"வெளியேறுவதற்கு முன், %1$s க்காகக் கேள்"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"திறப்பதற்கான வடிவம்"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"கடவுச்சொல்"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml
index 8e465e7..e7e24f7 100644
--- a/core/res/res/values-te-rIN/strings.xml
+++ b/core/res/res/values-te-rIN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"ఇన్‌కమింగ్ కాలర్ ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"అవుట్‌గోయింగ్ కాలర్ ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"కనెక్ట్ చేయబడిన పంక్తి ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"కనెక్ట్ చేయబడిన పంక్తి ID నియంత్రణ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"కాల్ ఫార్వర్డింగ్"</string>
     <string name="CwMmi" msgid="9129678056795016867">"కాల్ నిరీక్షణ"</string>
     <string name="BaMmi" msgid="455193067926770581">"కాల్ బేరింగ్"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"పరికర నిర్వాహకుడికి లక్ష్యాలను పంపడానికి హోల్డర్‌ను అనుమతిస్తుంది. సాధారణ అనువర్తనాలకు ఎప్పటికీ అవసరం ఉండదు."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"టీవీ ఇన్‌పుట్‌కి అనుబంధించడం"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"టీవీ ఇన్‌పుట్ యొక్క అగ్ర-స్థాయి ఇంటర్‌ఫేస్‌కు అనుబంధించడానికి హోల్డర్‌ను అనుమతిస్తుంది. సాధారణ అనువర్తనాలకు ఎప్పటికీ అవసరం ఉండదు."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"తల్లిదండ్రుల నియంత్రణలను సవరించడం"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"సిస్టమ్ యొక్క తల్లిదండ్రుల నియంత్రణ డేటాను సవరించడానికి హోల్డర్‌ను అనుమతిస్తుంది. సాధారణ అనువర్తనాలకు ఎప్పటికీ అవసరం ఉండదు."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"పరికర నిర్వాహకుడిని జోడించడం లేదా తీసివేయడం"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"సక్రియ పరికర నిర్వాహకులను జోడించడానికి లేదా తీసివేయడానికి హోల్డర్‌ను అనుమతిస్తుంది. సాధారణ అనువర్తనాల కోసం ఎప్పటికీ అవసరం ఉండకూడదు."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"స్క్రీన్ ధృగ్విన్యాసాన్ని మార్చడం"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"అనువర్తనం ద్వారా బ్లూటూత్ జత చేయడాన్ని అనుమతించడం"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"వినియోగదారు చర్య లేకుండానే రిమోట్ పరికరాలతో జత కావడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"వినియోగదారు చర్య లేకుండానే రిమోట్ పరికరాలతో జత కావడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"బ్లూటూత్ MAP డేటాను ప్రాప్యత చేయడం"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Bluetooth MAP డేటాను ప్రాప్యత చేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Bluetooth MAP డేటాను ప్రాప్యత చేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAXకు కనెక్ట్ చేయడం మరియు దాని నుండి డిస్‌కనెక్ట్ చేయడం"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Wi-Fi ప్రారంభించబడిందా, లేదా మరియు కనెక్ట్ చేయబడిన WiMAX నెట్‌వర్క్‌ల గురించి సమాచారాన్ని కనుగొనడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX స్థితిని మార్చండి"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"వినియోగదారులందరి కోసం బాహ్య నిల్వను ప్రాప్యత చేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"కాష్ ఫైల్ సిస్టమ్‌ను ప్రాప్యత చేయడం"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"కాష్ ఫైల్‌సిస్టమ్‌ను చదవడానికి మరియు వ్రాయడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"ఇంటర్నెట్ కాల్‌లు చేయడం/స్వీకరించడం"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"ఇంటర్నెట్ కాల్‌లను చేయడం/స్వీకరించడం కోసం SIP సేవను ఉపయోగించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP కాల్‌లను చేయడానికి/స్వీకరించడానికి"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"SIP కాల్‌లను చేయడానికి మరియు స్వీకరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"ఇన్-కాల్ స్క్రీన్‌తో పరస్పర చర్య చేయడం"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"వినియోగదారుకు ఇన్-కాల్ స్క్రీన్ ఎప్పుడు, ఎలా కనిపించాలనే దాన్ని నియంత్రించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"చారిత్రక నెట్‌వర్క్ వినియోగాన్ని చదవడం"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"నిర్దిష్ట నెట్‌వర్క్‌లు మరియు అనువర్తనాలు కోసం చారిత్రాత్మక నెట్‌వర్క్ వినియోగాన్ని చదవడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"నెట్‌వర్క్ విధానాన్ని నిర్వహించడం"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"DRM ప్రమాణపత్రాలను కేటాయించడానికి మరియు ఉపయోగించడానికి అనువర్తనాన్ని అనుమతిస్తుంది. సాధారణ అనువర్తనాలకు ఎప్పటికీ అవసరం ఉండదు."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam బదిలీ స్థితిని స్వీకరించండి"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"ప్రస్తుత Android Beam బదిలీలకు సంబంధించిన సమాచారాన్ని స్వీకరించడానికి ఈ అనువర్తనాన్ని అనుమతిస్తుంది"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM ప్రమాణపత్రాలను తీసివేయడం"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"DRM ప్రమాణపత్రాలను తీసివేయడానికి అనువర్తనాన్ని అనుమతిస్తుంది. సాధారణ అనువర్తనాలకు ఎప్పటికీ అవసరం ఉండదు."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"పాస్‌వర్డ్ నియమాలను సెట్ చేయండి"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"స్క్రీన్-అన్‌లాక్ పాస్‌వర్డ్‌ల్లో అనుమతించబడే అక్షరాల  సంఖ్యను మరియు అక్షరాలను నియంత్రించండి."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"స్క్రీన్-అన్‌లాక్ ప్రయత్నాలను పర్యవేక్షించండి"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM కార్డు లేదు లేదా చదవగలిగేలా లేదు. SIM కార్డును చొప్పించండి."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"నిరుపయోగ SIM కార్డు."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"మీ SIM కార్డు శాశ్వతంగా నిలిపివేయబడింది.\n మరో SIM కార్డు కోసం మీ వైర్‌లెస్ సేవా ప్రదాతను సంప్రదించండి."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"మునుపటి ట్రాక్ బటన్"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"తదుపరి ట్రాక్ బటన్"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"పాజ్ బటన్"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ప్లే బటన్"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ఆపివేత బటన్"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"మునుపటి ట్రాక్"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"తదుపరి ట్రాక్"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"పాజ్ చేయి"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"ప్లే చేయి"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"ఆపివేయి"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"రివైండ్ చేయి"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"వేగంగా ఫార్వార్డ్ చేయి"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"అత్యవసర కాల్‌లు మాత్రమే"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"నెట్‌వర్క్ లాక్ చేయబడింది"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM కార్డు PUK-లాక్ చేయబడింది."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"ఫార్మాట్ చేయి"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB డీబగ్గింగ్ కనెక్ట్ చేయబడింది"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB డీబగ్గింగ్‌ను నిలిపివేయడానికి తాకండి."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"కీబోర్డ్‌ను మార్చు"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"కీబోర్డ్‌లను ఎంచుకోండి"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"భౌతిక కీబోర్డ్"</string>
     <string name="hardware" msgid="7517821086888990278">"హార్డ్‌వేర్"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"కీబోర్డ్ లేఅవుట్‌ను ఎంచుకోండి"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"గంటను తగ్గించు"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PMని సెట్ చేయి"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AMను సెట్ చేయండి"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"నెలని పెంచండి"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"నెలను తగ్గించండి"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"రోజుని పెంచండి"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"కాల్‌ను ఆమోదించాలా?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ఎల్లప్పుడూ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"ఒకసారి"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s కార్యాలయ ప్రొఫైల్‌కు మద్దతు ఇవ్వదు."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"టాబ్లెట్"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"ఫోన్"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"హెడ్‌ఫోన్‌లు"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> ఎంచుకోబడింది"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> తొలగించబడింది"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"కార్యాలయం <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"మీరు లాక్-టు-యాప్ మోడ్‌లో ఉన్నారు. నిష్క్రమించడానికి, ఇటీవలివి బటన్‌ని నొక్కి ఉంచండి"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"మీరు లాక్-టు-యాప్ మోడ్‌లో ఉన్నారు."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"లాక్-టు-యాప్‌ను ఉపయోగించాలా?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"లాక్-టు-యాప్ ఒకే అనువర్తనంలో డిస్‌ప్లేని లాక్ చేస్తుంది.\n\nనిష్క్రమించడానికి, ఇటీవలివి బటన్‌ని నొక్కి ఉంచండి."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"వద్దు, ధన్యవాదాలు"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ప్రారంభించు"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"అనువర్తనానికి లాక్ చేయబడింది"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"అనువర్తనానికి లాక్ చేయబడలేదు"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"నిష్క్రమించడానికి ముందు %1$s కోసం అడుగు"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"అన్‌లాక్ నమూనా"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"పాస్‌వర్డ్"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 35f73f4..b4a5fbe 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"หมายเลขผู้โทรเข้า"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"หมายเลขผู้โทรออก"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"รหัสสายที่เชื่อมต่อ"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"ข้อจำกัดรหัสสายที่เชื่อมต่อ"</string>
     <string name="CfMmi" msgid="5123218989141573515">"การโอนสาย"</string>
     <string name="CwMmi" msgid="9129678056795016867">"สายเรียกซ้อน"</string>
     <string name="BaMmi" msgid="455193067926770581">"ระงับการโทร"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"อนุญาตให้ผู้ใช้ส่งการติดต่อไปยังโปรแกรมควบคุมอุปกรณ์ ไม่ควรต้องใช้สำหรับแอปพลิเคชันทั่วไป"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"เชื่อมโยงกับอินพุตทีวี"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"อนุญาตให้เจ้าของเชื่อมโยงกับส่วนติดต่อระดับสูงสุดของอินพุตทีวี ซึ่งแอปทั่วไปไม่จำเป็นต้องใช้"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"แก้ไขการควบคุมโดยผู้ปกครอง"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"อนุญาตให้แอปแก้ไขข้อมูลการควบคุมโดยผู้ปกครองของระบบ แอปทั่วไปไม่จำเป็นต้องใช้"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"เพิ่มหรือลบผู้ดูแลระบบอุปกรณ์"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"อนุญาตให้เจ้าของเพิ่มหรือลบผู้ดูแลระบบอุปกรณ์ที่ใช้งาน ไม่ควรต้องใช้สำหรับแอปปกติ"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"เปลี่ยนการวางแนวหน้าจอ"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"อนุญาตให้แอปพลิเคชันจับคู่บลูทูธ"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"อนุญาตให้แอปจับคู่กับอุปกรณ์ระยะไกลโดยไม่ต้องมีการโต้ตอบของผู้ใช้"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"อนุญาตให้แอปจับคู่กับอุปกรณ์ระยะไกลโดยไม่ต้องมีการโต้ตอบของผู้ใช้"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"เข้าถึงข้อมูล MAP บลูทูธ"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"อนุญาตให้แอปเข้าถึงข้อมูล MAP บลูทูธ"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"อนุญาตให้แอปเข้าถึงข้อมูล MAP บลูทูธ"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"เชื่อมต่อและเลิกเชื่อมต่อจาก WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"อนุญาตให้แอปพลิเคชันตรวจสอบว่า WiMAX เปิดใช้งานอยู่หรือไม่และข้อมูลเกี่ยวกับเครือข่าย WiMAX ใดๆ ที่เชื่อมต่ออยู่"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"เปลี่ยนสถานะของ WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"อนุญาตให้แอปพลิเคชันเข้าถึงที่จัดเก็บข้อมูลภายนอกสำหรับผู้ใช้ทั้งหมด"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"เข้าถึงระบบไฟล์แคช"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"อนุญาตให้แอปพลิเคชันอ่านและเขียนระบบไฟล์แคช"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"โทรออก/รับสายอินเทอร์เน็ต"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"อนุญาตให้แอปพลิเคชันใช้บริการ SIP เพื่อโทรออก/รับสายทางอินเทอร์เน็ต"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"โทร/รับสาย SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"อนุญาตให้แอปโทรและรับสาย SIP"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"โต้ตอบกับหน้าจอขณะกำลังใช้สาย"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"อนุญาตให้แอปควบคุมเวลาและลักษณะที่ผู้ใช้เห็นหน้าจอขณะกำลังใช้สาย"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"อ่านประวัติการใช้เครือข่าย"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"อนุญาตให้แอปพลิเคชันอ่านประวัติการใช้เครือข่ายสำหรับเครือข่ายและแอปพลิเคชันเฉพาะ"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"จัดการนโยบายเครือข่าย"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"ช่วยให้แอปพลิเคชันสามารถจัดสรรและใช้ใบรับรอง DRM ได้ ไม่จำเป็นสำหรับแอปปกติทั่วไป"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"รับสถานะการโอน Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"อนุญาตให้แอปพลิเคชันนี้รับข้อมูลเกี่ยวกับการโอน Android Beam ปัจจุบัน"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"นำใบรับรอง DRM ออก"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"อนุญาตให้แอปพลิเคชันนำใบรับรอง DRM ออก แอปทั่วไปไม่จำเป็นต้องใช้"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"ตั้งค่ากฎรหัสผ่าน"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"ควบคุมความยาวและอักขระที่อนุญาตให้ใช้ในรหัสผ่านการปลดล็อกหน้าจอ"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"ตรวจสอบความพยายามในการปลดล็อกหน้าจอ"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"ไม่มีซิมการ์ดหรือไม่สามารถอ่านได้ โปรดใส่ซิมการ์ด"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"ซิมการ์ดใช้ไม่ได้"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"ซิมการ์ดของคุณถูกปิดใช้งานอย่างถาวร\nติดต่อผู้ให้บริการไร้สายของคุณเพื่อรับซิมการ์ดอีกอันหนึ่ง"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"ปุ่มแทร็กก่อนหน้า"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"ปุ่มแทร็กถัดไป"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"ปุ่มหยุดชั่วคราว"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"ปุ่มเล่น"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"ปุ่มหยุด"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"แทร็กก่อนหน้า"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"แทร็กถัดไป"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"หยุดชั่วคราว"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"เล่น"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"หยุด"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"กรอกลับ"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"กรอไปข้างหน้า"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"โทรฉุกเฉินเท่านั้น"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"ล็อกเครือข่ายไว้"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"ซิมการ์ดถูกล็อกด้วย PUK"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"รูปแบบ"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"เชื่อมต่อการแก้ไขข้อบกพร่อง USB แล้ว"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"แตะเพื่อปิดใช้งานการแก้ไขข้อบกพร่องของ USB"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"เปลี่ยนแป้นพิมพ์"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"เลือกแป้นพิมพ์"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"แป้นพิมพ์บนเครื่อง"</string>
     <string name="hardware" msgid="7517821086888990278">"ฮาร์ดแวร์"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"เลือกรูปแบบแป้นพิมพ์"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"ลดชั่วโมง"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"ตั้งค่า PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"ตั้งค่า AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"เพิ่มเดือน"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ลดเดือน"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"เพิ่มวัน"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"รับสายหรือไม่"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ทุกครั้ง"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"เฉพาะครั้งนี้"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ไม่สนับสนุนโปรไฟล์งาน"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"แท็บเล็ต"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"โทรศัพท์"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"หูฟัง"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"เลือก <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"ลบ <xliff:g id="KEY">%1$s</xliff:g> แล้ว"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g>ที่ทำงาน"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"คุณกำลังอยู่ในโหมดการล็อกแอป หากต้องการออก ให้แตะปุ่ม \"ล่าสุด\" ค้างไว้"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"คุณกำลังใช้โหมดการล็อกแอป"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"ใช้การล็อกแอปไหม"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"การล็อกแอปจะล็อกการแสดงไว้ในแอปเดียว\n\nหากต้องการออก ให้แตะปุ่ม \"ล่าสุด\" ค้างไว้"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"ไม่เป็นไร ขอบคุณ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"เริ่มต้น"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"ล็อกแอปแล้ว"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"ไม่ล็อกแอปอีกต่อไป"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"ขอ %1$s ก่อนออก"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"รูปแบบการปลดล็อก"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"รหัสผ่าน"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index c0ea0d9..bdb5172 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Papasok na Caller ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Papalabas na Caller ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Connected Line ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Paghihigpit sa Connected Line ID"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Pagpapasa ng tawag"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Call waiting"</string>
     <string name="BaMmi" msgid="455193067926770581">"Pag-bar ng tawag"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Pinapayagan ang mga may-ari na magpadala ng mga layunin sa administrator ng device. Hindi kailanman dapat na kailanganin para sa normal na apps."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"i-bind sa isang TV input"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Pinapayagan ang may-hawak na mag-bind sa top-level na interface ng isang TV input. Hindi kailanman kakailanganin ng mga normal na app."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"baguhin ang mga kontrol ng magulang"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Nagbibigay-daan sa holder na baguhin ang mga data ng kontrol ng magulang ng system. Hindi dapat kailanman kailanganin para sa karaniwang apps."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"magdagdag o mag-alis ng admin ng device"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Pinapayagan ang may-ari na magdagdag o mag-alis ng mga aktibong administrator ng device. Hindi dapat kailanganin kailanman para sa normal na apps."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"baguhin ang orientation ng screen"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"payagan ang pagpapares ng Bluetooth sa pamamagitan ng Application"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Pinapayagan ang app na pumares sa mga malayuang device nang walang pakikipag-ugnay sa user."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Pinapayagan ang app na pumares sa mga malayuang device nang walang pakikipag-ugnay sa user."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"i-access ang Bluetooth MAP data"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Pinapayagan ang app na ma-access ang Bluetooth MAP data."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Pinapayagan ang app na ma-access ang Bluetooth MAP data."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"kumonekta at magdiskonekta mula sa WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Pinapayagan ang app na tukuyin kung pinapagana ang WiMAX at impormasyon tungkol sa anumang mga WiMAX network na nakakonekta."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Baguhin ang katayuan ng WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Pinapayagan ang app na mag-access ng panlabas na storage para sa lahat ng user."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"i-access ang cache filesystem"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Pinapayagan ang app na basahin at isulat ang cache filesystem."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"gumawa/tumanggap ng mga tawag sa Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Pinapayagan ang app na gamitin ang serbisyong SIP upang magsagawa/tumanggap ng mga tawag sa Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"magsagawa/tumanggap ng mga tawag sa SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Pinapayagan ang app na magsagawa at makatanggap ng mga tawag sa SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"makipag-ugnayan sa in-call na screen"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Nagbibigay-daan sa app na kontrolin kung kailan at kung paano makikita ng user ang in-call na screen."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"basahin ang makasaysayang paggamit ng network"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Pinapayagan ang app na basahin ang makasaysayang paggamit network para sa mga tukoy na network at apps."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"pamahalaan ang patakaran ng network"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Nagbibigay-daan sa isang application na makapagbigay at gumamit ng mga DRM certficate. Hindi dapat kailanman kailanganin para sa mga normal na app."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Tanggapin ang status ng paglilipat ng Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Pinapayagan ang application na ito na tumanggap ng impormasyon tungkol sa mga kasalukuyang paglilipat ng Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"alisin ang mga DRM certificate"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Nagbibigay-daan sa isang application na alisin ang mga DRM certficate. Hindi dapat kailanman kailanganin para sa karaniwang apps."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Magtakda ng mga panuntunan sa password"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kontrolin ang haba at mga character na pinapayagan sa mga password sa pag-unlock ng screen."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Subaybayan ang mga pagsubok sa pag-unlock ng screen"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Nawawala o hindi nababasa ang SIM card. Maglagay ng isang SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Hindi nagagamit na SIM card."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Ang iyong SIM card ay permanenteng hindi pinagana.\n Makipag-ugnay sa iyong wireless service provider para sa isa pang SIM card."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Button na nakaraang track"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Button na Susunod na track"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Button na I-pause"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Button na I-play"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Button na Itigil"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Nakaraang track"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Susunod na track"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"I-pause"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"I-play"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Ihinto"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"I-rewind"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"I-fast forward"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Mga pang-emergency na tawag lang"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Naka-lock ang network"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Naka-PUK-lock ang SIM card."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Konektado ang debugging ng USB"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Pindutin upang huwag paganahin ang pag-debug ng USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Baguhin ang keyboard"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Piliin ang mga keyboard"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Aktwal na keyboard"</string>
     <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Pumili ng layout ng keyboard"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Bawasan ang oras"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Itakda ang PM"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Itakda ang AM"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Dagdagan ang buwan"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Bawasan ang buwan"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Dagdagan ang araw"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Tanggapin ang tawag?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Palagi"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Isang beses lang"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"Hindi sinusuportahan ng %1$s ang profile sa trabaho."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telepono"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Mga Headphone"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Napili ang <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Tinanggal ang <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> sa Trabaho"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Ikaw ay nasa lock-to-app mode. Upang lumabas, pindutin nang matagal ang button na Mga Kamakailang Ginamit."</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Ikaw ay nasa Lock-to-App mode."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Gagamitin ang lock-to-app?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Nila-lock ng lock-to-app ang display sa iisang app.\n\nUpang lumabas, pindutin nang matagal ang button na Mga Kamakailang Ginamit."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"HINDI, SALAMAT NA LANG"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"SIMULAN"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Naka-lock sa app"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Hindi na naka-lock sa app"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Humingi ng %1$s bago lumabas"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"pattern sa pag-unlock"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"password"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 5b6b004..8f32ec5 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Gelen Çağrı Kimliği"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Giden Çağrı Kimliği"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Bağlanılan Hat Kimliği"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Bağlanılan Hat Kimliğini Kısıtlama"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Çağrı yönlendirme"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Çağrı bekletme"</string>
     <string name="BaMmi" msgid="455193067926770581">"Çağrı engelleme"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Cihazın sahibinin cihaz yöneticisine amaç göndermesine izin verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV girişine bağlanma"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"İzin sahibine, bir TV girişinin en üst düzey arayüzüne bağlanma olanağı verir. Normal uygulamalarda hiçbir zaman gerek duyulmaz."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ebeveyn denetimlerini değiştirme"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"İzin sahibine, sistemin ebeveyn denetim verilerini değiştirme iznini verir. Normal uygulamalar için asla gerekmemelidir."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"cihaz yöneticisi ekle veya kaldır"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"İzin sahibine, etkin cihaz yöneticileri ekleyip kaldırma izni verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ekran yönünü değiştir"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Uygulama tarafından yapılan Bluetooth eşleştirmelerine izin ver"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Uygulamaya, kullanıcının müdahalesi olmadan uzak cihazlarla eşleştirme izni verir."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Uygulamaya, kullanıcının müdahalesi olmadan uzak cihazlarla eşleştirme izni verir."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP verilerine erişme"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Uygulamanın Bluetooth MAP verilerine erişmesine izin verir."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Uygulamanın Bluetooth MAP verilerine erişmesine izin verir."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX\'e bağlan veya WiMAX bağlantısını kes"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Uygulamaya, WiMAX\'in etkin olup olmadığını belirleme ve bağlı tüm WiMAX ağlarıyla ilgili bilgilere erişme izni verir."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX durumunu değiştir"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Uygulamaya tüm kullanıcılar için harici depolamaya erişim izni verir."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"önbellek dosya sistemine eriş"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Uygulamaya, önbellek dosya sisteminde okuma ve yazma yapma izni verir."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"İnternet çağrılar yap/alma"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Uygulamaya İnternet çağrıları yapmak/almak amacıyla SIP hizmetini kullanma izni verir."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP çağrıları yapma/alma"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Uygulamanın SIP çağrıları yapmasına ve almasına izin verir."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"Çağrı ekranıyla etkileşimde bulun"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Uygulamaya, kullanıcının çağrı ekranını ne zaman ve nasıl göreceğini denetleme izni verir."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"geçmiş ağ kullanımını oku"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Uygulamaya, özel ağlar ve uygulamalar için ağ kullanım geçmişini okuma izni verir."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"ağ politikasını yönet"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Bir uygulamanın DRM sertifikaları için temel hazırlık yapmasına ve bunları kullanmasına izin verir. Normal uygulamalar için hiçbir zaman gerekmez."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam aktarım durumunu al"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Bu uygulamanın mevcut Android Beam aktarımlarıyla ilgili bilgi almasına izin verir"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM sertifikalarını kaldırma"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Uygulamaya, DRM sertifikalarını kaldırma izin verir. Normal uygulamalar için asla gerekmemelidir."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Şifre kuralları ayarla"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ekran kilidini açma şifrelerinde izin verilen uzunluğu ve karakterleri denetleme."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekran kilidini açma denemelerini izle"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM kart yok veya okunamıyor. Bir SIM kart takın."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Kullanılamayan SIM kartı"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kartınız kalıcı olarak devre dışı bırakıldı.\n Başka bir SIM kart için kablosuz servis sağlayıcınıza başvurun."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Önceki parça düğmesi"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Sonraki parça düğmesi"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Duraklat düğmesi"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Oynat düğmesi"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Durdur düğmesi"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Önceki parça"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Sonraki parça"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Duraklat"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Çal"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Durdur"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Geri sar"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"İleri sar"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Yalnızca acil çağrılar için"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Ağ kilitli"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kart PUK kilidi devrede."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Biçimlendir"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB hata ayıklaması bağlandı"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB hata ayıklama özelliğini devre dışı bırakmak için dokunun."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Klavyeyi değiştirin"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Klavyeleri seç"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Fiziksel klavye"</string>
     <string name="hardware" msgid="7517821086888990278">"Donanım"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Klavye düzeni seçin"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Saati azalt"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"ÖS değerini ayarla"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"ÖÖ değerini ayarla"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"ÖS"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"ÖÖ"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Ayı artır"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Ayı azalt"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Günü artır"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Çağrı kabul edilsin mi?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Her zaman"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Yalnızca bir defa"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s, iş profilini desteklemiyor."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Tablet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Kulaklıklar"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> seçildi"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> silindi"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> (İş)"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Uygulamaya kilitleme modundasınız. Çıkmak için Son Uygulamalar düğmesine dokunun ve basılı tutun"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Uygulamaya Kilitleme modundasınız."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Uygulamaya Kilitleme özelliği kullanılsın mı?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Uygulamaya kilitleme, ekranı tek bir uygulamada kilitler\n\nÇıkmak için Son uygulamalar düğmesine dokunun ve basılı tutun."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"HAYIR, TEŞEKKÜRLER"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"BAŞLAT"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Uygulamaya kilitli"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Artık uygulamaya kilitli değil"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Çıkmadan önce %1$s iste"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"kilit açma deseni"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"şifre"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index b279863..f7583d6 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Вхідн. ід. абонента"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Вихід. ід. абонента"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Ідентифікатор під’єднаної лінії"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Обмеження ідентифікатора під’єднаної лінії"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Переадрес. виклику"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Паралел. виклик"</string>
     <string name="BaMmi" msgid="455193067926770581">"Заборона викл."</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Дозволяє власнику надсилати задавані функції адміністратору пристрою. Ніколи не застосовується для звичайних програм."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"підключатися до TV-входу"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Додаток зможе підключатися до інтерфейсу верхнього рівня TV-входу. Звичайні додатки ніколи не використовують цей дозвіл."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"змінювати налаштування батьківського контролю"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Власник може змінювати налаштування батьківського контролю в системі. Ніколи не застосовується для звичайних додатків."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"додавати чи вилучати адміністраторів пристрою"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Дозволяє власнику додавати чи вилучати активних адміністраторів пристрою. Ніколи не застосовується для звичайних програм."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"змінювати орієнтацію екрана"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"дозволити програмі створювати пару з Bluetooth"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Дозволяє програмі самостійно підключатись до віддалених пристроїв."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Дозволяє програмі самостійно підключатись до віддалених пристроїв."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"отримувати доступ до даних Bluetooth MAP"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Власник може отримувати доступ до даних Bluetooth MAP."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Власник може отримувати доступ до даних Bluetooth MAP."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"під’єднуватися та від’єднуватися від WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Дозволяє програмі визначати, чи ввімкнено WiMAX, а також переглядати інформацію про будь-які під’єднані мережі WiMAX."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Змінити стан WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Дозволяє програмі отримувати доступ до зовнішньої пам’яті всіх користувачів."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"отр. дост. до файл. сист. кешу"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Дозволяє програмі читати з файлової системи кеш-пам’яті та писати в неї."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"здійсн./отрим. Інтернет-дзвін."</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Дозволяє програмі використовувати протокол SIP, щоб здійснювати чи отримувати дзвінки через Інтернет."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"здійснювати й отримувати дзвінки через протокол SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Додаток зможе здійснювати й отримувати дзвінки через протокол SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"взаємодіяти з екраном вхідного виклику"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Дозволяє програмі контролювати, коли та як користувач бачить екран вхідного виклику."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"читати історію використання мережі"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Дозволяє програмі читати історію використання мережі для певних мереж і програм."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"керувати політикою мережі"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Дозволяє додатку надавати та використовувати сертифікати DRM. Ніколи не застосовується для звичайних додатків."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Отримувати інформацію про стан функції Передавання даних Android."</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Додаток може отримувати інформацію про поточне передавання даних за допомогою функції Передавання даних Android"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"видаляти сертифікати DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Власник може видаляти сертифікати DRM. Ніколи не застосовується для звичайних додатків."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Устан. правила пароля"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Контролювати довжину паролів для розблокування екрана та дозволені в них символи."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Відстежув. спроби розблок. екрана"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-карта відсутня або недоступна для читання. Вставте SIM-карту."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Непридатна SIM-карта."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Вашу SIM-карту вимкнено назавжди.\n Зверніться до свого постачальника послуг бездротового зв’язку, щоб отримати іншу SIM-карту."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Кнопка \"Попередня доріжка\""</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Кнопка \"Наступна доріжка\""</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Кнопка \"Призупинити\""</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Кнопка \"Відтворити\""</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Кнопка \"Зупинити\""</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Попередня композиція"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Наступна композиція"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Пауза"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Відтворити"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Зупинити"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Перемотати назад"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Перемотати вперед"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Лише аварійні виклики"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Мережу заблок."</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-карту заблоковано PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Форматув."</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Налагодження USB завершено"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Торкніться, щоб вимкнути налагодження USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Змінити клавіатуру"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Вибрати клавіатури"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Фізична клавіатура"</string>
     <string name="hardware" msgid="7517821086888990278">"Обладнання"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Виберіть розкладку клавіатури"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"На годину назад"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Установити час \"пп\""</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Установити час \"дп\""</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"пп"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"дп"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"На місяць уперед"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"На місяць назад"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"На день уперед"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Прийняти виклик?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Завжди"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Лише цього разу"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s не підтримує робочий профіль."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Планшетний ПК"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Телефон"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Навушники"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Вибрано: <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> видалено"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Робоча <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Увімкнено режим блокування в додатку. Щоб його вимкнути, натисніть і утримуйте кнопку \"Останні додатки\""</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Увімкнено режим \"Блокування в додатку\"."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Використовувати блокування в додатку?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"У режимі блокування в додатку дисплей блокується в певному додатку.\n\nЩоб вимкнути цей режим, натисніть і утримуйте кнопку \"Останні додатки\"."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"НІ, ДЯКУЮ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"УВІМКНУТИ"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Блокування в додатку ввімкнено"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Блокування в додатку вимкнено"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Запитувати про \"%1$s\" перед вимкненням"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN-код"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"ключ розблокування"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"пароль"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml
index 13e85d2..99534fd 100644
--- a/core/res/res/values-ur-rPK/strings.xml
+++ b/core/res/res/values-ur-rPK/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"‏ان کمنگ کالر ID"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"‏آؤٹ گوئنگ کالر ID"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"‏منسلک لائن ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"‏منسلک لائن ID کی پابندی"</string>
     <string name="CfMmi" msgid="5123218989141573515">"کال فارورڈنگ"</string>
     <string name="CwMmi" msgid="9129678056795016867">"کال ویٹنگ"</string>
     <string name="BaMmi" msgid="455193067926770581">"کال میں رکاوٹ"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"حامل کو ایک آلہ کے منتظم کو ارادے بھیجنے دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہيں ہونی چاہئے۔"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"‏ایک TV ان پٹ کے پابند بنیں"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"‏حامل کو کسی TV کے ان پٹ کے اعلی سطحی انٹرفیس کا پابند ہونے کی اجازت دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہيں ہونی چاہئے۔"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"پیرنٹل کنٹرولز میں ترمیم کریں"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"حامل کو سسٹم کے پیرنٹل کنٹرولز کے ڈیٹا میں ترمیم کرنے کی اجازت دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہیں ہونی چاہیے۔"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"آلہ کا منتظم شامل کریں یا ہٹائیں"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"حامل کو آلہ کے فعال منتظمین کو شامل کرنے یا ہٹانے کی اجازت دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہيں ہونی چاہئے۔"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"اسکرین کی سمت بندی تبدیل کریں"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"ایپلیکیشن کے ذریعے بلوٹوتھ جوڑا بنانے کی اجازت دیں"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"ایپ کو صارف کے تعامل کے بغیر ریموٹ آلات کے ساتھ جوڑا بنانے کی اجازت دیتا ہے۔"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"ایپ کو صارف کے تعامل کے بغیر ریموٹ آلات کے ساتھ جوڑا بنانے کی اجازت دیتا ہے۔"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"‏بلوٹوتھ MAP کے ڈیٹا تک رسائی حاصل کریں"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"‏ایپ کو بلوٹوتھ MAP کے ڈیٹا تک رسائی حاصل کرنے کی اجازت دیتا ہے۔"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"‏ایپ کو بلوٹوتھ MAP کے ڈیٹا تک رسائی حاصل کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"‏WiMAX سے مربوط اور غیر مربوط کریں"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"‏ایپ کو یہ تعین کرنے کی کہ آیا WiMAX فعال ہے اور کسی مربوط WiMAX نیٹ ورکس کے بارے میں معلومات کا تعین کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"‏WiMAX کی حیثیت تبدیل کریں"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"ایپ کو سبھی صارفین کیلئے خارجی اسٹوریج تک رسائی حاصل کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"کیش فائل سسٹم تک رسائی حاصل کریں"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"ایپ کو کیش فائل سسٹم پڑھنے اور لکھنے کی اجازت دیتا ہے۔"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"انٹرنیٹ کالز کریں/موصول کریں"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"‏ایپ کو انٹر نیٹ کالیں کرنے/موصول کرنے کیلئے SIP سروس کا استعمال کرنے کی اجازت دیتا ہے۔"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"‏SIP کالز کریں/موصول کریں"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"‏ایپ کو SIP کالز کرنے اور موصول کرنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"درون کال اسکرین کے ساتھ تعامل کریں"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"ایپ کو صارف کے درون کال اسکرین دیکھنے کے وقت اور طریقے کو کنٹرول کرنے کی اجازت دیتا ہے۔"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"تاریخی نیٹ ورک کا استعمال پڑھیں"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"ایپ کو مخصوص نیٹ ورکس اور ایپس کیلئے نیٹ ورک کے استعمال کی سرگزشت پڑھنے کی اجازت دیتا ہے۔"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"نیٹ ورک کی پالیسی کا نظم کریں"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"‏ایک ایپ کو  DRM سرٹیفکیٹس فراہم کرنے اور ان کا استعمال کرنے کی اجازت دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہیں ہوتی ہے۔"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"‏Android Beam منتقلی کی صورت حال موصول کریں"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"‏اس ایپلیکیشن کو Android Beam کی حالیہ منتقلیوں کے بارے میں معلومات موصول کرنے کی اجازت دیتا ہے"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"‏DRM سرٹیفکیٹس کو ہٹائیں"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"‏ایک ایپلیکیشن کو DRM سرٹیفکیٹس کو ہٹانے کی اجازت دیتا ہے۔ عام ایپس کیلئے کبھی بھی اس کی ضرورت نہیں ہونی چاہیے۔"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"پاس ورڈ کے اصول سیٹ کریں"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"اسکرین غیر مقفل کرنے کے پاس ورڈز میں مجاز طوالت اور حروف کو کنٹرول کریں۔"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"اسکرین غیر مقفل کرنے کی کوششیں مانیٹر کریں"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"‏SIM کارڈ غائب ہے یا پڑھنے لائق نہیں ہے۔ ایک SIM کارڈ داخل کریں۔"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"‏ناقابل استعمال SIM کارڈ۔"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"‏آپ کا SIM کارڈ مستقل طور پر غیر فعال کر دیا گیا ہے۔\n کسی دوسرے SIM کارڈ کیلئے اپنے وائرلیس سروس فراہم کنندہ سے رابطہ کریں۔"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"سابقہ ٹریک بٹن"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"اگلآ ٹریک بٹن"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"موقوف کریں بٹن"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"چلائیں بٹن"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"روکیں بٹن"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"پچھلا ٹریک"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"اگلا ٹریک"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"موقوف کریں"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"چلائیں"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"روکیں"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"ریوائینڈ کریں"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"تیزی سے فارورڈ کریں"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"صرف ہنگامی کالز"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"نیٹ ورک مقفل ہو گیا"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"‏SIM کارڈ PUK مقفل ہے۔"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"فارمیٹ کریں"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"‏USB ڈیبگ کرنا مربوط ہو گیا"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"‏USB ڈیبگنگ کو غیر فعال کرنے کیلئے ٹچ کریں۔"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"کی بورڈ تبدیل کریں"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"کی بورڈز منتخب کریں"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"طبعی کی بورڈ"</string>
     <string name="hardware" msgid="7517821086888990278">"ہارڈ ویئر"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"کی بورڈ کا خاکہ منتخب کریں"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"گھنٹہ گھٹائیں"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"‏PM سیٹ کریں"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"قبل از دوپہر سیٹ کریں"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"ماہ بڑھائیں"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"ماہ گھٹائیں"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"دن بڑھائیں"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"کال قبول کریں؟"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"ہمیشہ"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"بس ایک مرتبہ"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"‏%1$s دفتری پروفائل کا تعاون نہیں کرتا ہے۔"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"ٹیبلیٹ"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"فون"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"ہیڈ فونز"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> کو منتخب کیا گیا"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> کو حذف کر دیا گیا"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"دفتر <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"آپ لاک ٹو ایپ وضع میں ہیں۔ باہر نکلنے کیلئے، حالیہ بٹن کو ٹچ کریں اور دبائیں رکھیں"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"آپ لاک ٹو ایپ وضع میں ہیں۔"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"لاک ٹو ایپ استعمال کریں؟"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"لاک ٹو ایپ کسی واحد ایپ میں ڈسپلے کو مقفل کر دیتی ہے۔\n\nباہر نکلنے کیلئے، حالیہ بٹن کو ٹچ کریں اور دبائے رکھیں۔"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"نہیں، شکریہ"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"شروع کریں"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"لاک ٹو ایپ میں ہیں"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"مزید لاک ٹو ایپ میں نہیں ہیں"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"‏باہر نکلنے سے پہلے %1$s کا مطالبہ کریں"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"غیر مقفل کرنے کا پیٹرن"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"پاس ورڈ"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml
index 22877fb..206b2fc5 100644
--- a/core/res/res/values-uz-rUZ/strings.xml
+++ b/core/res/res/values-uz-rUZ/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Kiruvchi raqami"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Chiquvchi raqami"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"Qo‘ng‘iroq qiluvchining raqami"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Qo‘ng‘iroq qiluvchining raqamini cheklash"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Boshqa raqamga yo‘naltirish"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Kutayotgan qo‘ng‘iroq"</string>
     <string name="BaMmi" msgid="455193067926770581">"Qo‘ng‘iroqlarni taqiqlash"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ilova qurilma administratoriga maqsadlarni yuborishi mumkin. Oddiy ilovalar uchun talab qilinmaydi."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"TV-kiritishga ulanish"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ilova TV-kiritish yuqori darajali interfeysiga ulanishi mumkin. Oddiy ilovalar uchun talab qilinmaydi."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"ota-ona nazorati sozlamalarini o‘zgartirish"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Egasiga tizimning ota-ona nazorati ma’lumotlarini o‘zgartirish uchun ruxsat beradi. Oddiy ilovalar uchun talab qilinmaydi."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"qurilmaga administratorlarni qo‘shish yoki o‘chirish"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Foydalanuvchiga qurilma administratorlarini qo‘shish yoki o‘chirish imkonini beradi. Oddiy dasturlarda hech qachon kerak bo‘lmaydi."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"ekran joylashishini o‘zgartirish"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"Bluetooth’ga dastur orqali bog‘lanishi uchun ruxsat berish"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Dasturga foydalanuvchini aralashtirmasdan, masofaviy qurilmalarga ulanish imkonini beradi."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Dasturga foydalanuvchini aralashtirmasdan, masofaviy qurilmalarga ulanish imkonini beradi."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"Bluetooth MAP ma’lumotlariga kirish"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Ilovaga Bluetooth MAP ma’lumotlariga kirish uchun ruxsat beradi."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Ilovaga Bluetooth MAP ma’lumotlariga kirish uchun ruxsat beradi."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX’ga ulanish va uzish"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Ilovaga har qanday ulangan WiMAX tarmoqlari haqida va yoqilgan WiMAX tarmoqlarini aniqlashga ruxsat beradi."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX holatini o‘zgartirish"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Ilovalarga barcha foydalanuvchilar uchun tashqi xotiraga kirish uchun ruxsat beradi."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"fayl tizimi keshiga kirish"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Ilova kesh fayl tizimini o‘qishi va unga yozishi mumkin."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"Internetdan qo‘ng‘iroqlarni amalga oshirish yoki ularga javob berish"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Ilova internet orqali qo‘ng‘iroqlarni amalga oshirish uchun SIP xizmatidan foydalanishi mumkin."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"SIP qo‘ng‘iroqlarini amalga oshirish/qabul qilish"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ilovaga SIP qo‘ng‘iroqlarini amalga oshirish va qabul qilish uchun ruxsat beradi."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"kiruvchi qo‘ng‘iroq ekrani bilan ishlash"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Dasturga kirish qo‘ng‘irog‘ini  foydalanuvchi qachon va qanday ko‘rishini boshqarishga ruxsat beradi."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"tarixiy tarmoq sarfi ma‘lumotlarini o‘qish"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Ilova muayyan tarmoqlardan va ilovalardan foydalanish tarixini o‘qishi mumkin."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"tarmoq siyosatini boshqarish"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ilova DRM sertifikatlarini sinxronlashi va ulardan foydalanishi mumkin. Ushbu ruxsatnoma faqat maxsus ilovalar uchun talab qilinadi."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Android Beam uzatish holatini olish"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ushbu ilovaga joriy Android Beam uzatishlari haqida ma\'lumotlarni olish ruxsati berilsin."</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"DRM sertifikatlarini o‘chirib tashlash"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Ilovaga DRM sertifikatlarini o‘chirib tashlash uchun ruxsat beradi. Oddiy ilovalar uchun talab qilinmaydi."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Parol qoidalarini o‘rnatish"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ekran qulfini ochish parollariga ruxsat berilgan belgilar va ularning uzunligini boshqarish."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Ekranni qulfdan chiqarish urinishlarini nazorat qilish"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM karta solinmagan yoki uni o‘qib bo‘lmaydi. SIM kartani soling."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Foydalanib bo‘lmaydigan SIM karta."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"SIM kartangiz butunlay bloklab qo‘yilgan.\n Yangi SIM karta olish uchun aloqa operatoringiz bilan bog‘laning."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Avvalgi qo‘shiq tugmasi"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Keyingi qo‘shiq tugmasi"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pauza tugmasi"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Ijro etish tugmasi"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"To‘xtatish tugmasi"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Avvalgi musiqa"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Keyingi musiqa"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"To‘xtatib turish"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Ijro qilish"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"To‘xtatish"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Tezkor orqaga qaytarish"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Tezkor oldinga o‘tkazish"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Faqat favqulodda chaqiruvlar"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Tarmoq qulflangan"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM karta PUK kod bilan qulflangan."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"USB nosozlikni tuzatish ulandi"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"USB orqali sozlashni o‘chirib qo‘yish uchun bosing."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Klaviaturani o‘zgartirish"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Klaviaturani tanlash"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Tashqi tugmatag"</string>
     <string name="hardware" msgid="7517821086888990278">"Qurilma"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Tugmalar tartibini tanlash"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Soatni kamaytirish"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM o‘rnatish"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM o‘rnatish"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"TK"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"TO"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Oyni ko‘paytirish"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Oyni kamaytirish"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Kunni ko‘paytirish"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Qo‘ng‘iroqni qabul qilasizmi?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Har doim"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Bir marta"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ishchi profilni qo‘llab-quvvatlamaydi."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Planshet"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Quloq karnaychalari"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"<xliff:g id="ITEM">%1$s</xliff:g> tanlandi"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> o‘chirildi"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Ish <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Siz yagona ilova rejimidasiz. Chiqish uchun So‘nggi foydalanilgan ilovalar tugmasini biroz bosib turing"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Siz Yagona ilova rejimidasiz."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Yagona ilova rejimi yoqilsinmi?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Yagona ilova rejimi ekranni qulflab, faqat bitta ilovadan foydalanishga ruxsat beradi.\n\nUshbu rejimdan chiqish uchun Sso‘nggi foydalanilgan ilovalar tugmasini biroz bosib turing."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"YO‘Q, KERAK EMAS"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"ISHGA TUSHIRISH"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Yagona ilova rejimi faollashtirildi"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Yagona ilova rejimidan chiqildi"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Chiqishdan oldin “%1$s” so‘ralsin"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN kod"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"qulfdan chiqarish chizmasi"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"parol"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index da39865..7428d89 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"Số gọi đến"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"Số gọi đi"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"ID đường kết nối"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"Giới hạn ID đường kết nối"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Chuyển tiếp cuộc gọi"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Chờ cuộc gọi"</string>
     <string name="BaMmi" msgid="455193067926770581">"Chặn cuộc gọi"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Cho phép chủ sở hữu gửi các ý định đến quản trị viên thiết bị. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"liên kết với đầu vào TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Cho phép chủ sở hữu liên kết với giao diện cấp cao nhất của đầu vào TV. Không cần thiết cho các ứng dụng thông thường."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"sửa đổi kiểm soát của phụ huynh"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Cho phép chủ sở hữu sửa đổi các dữ liệu kiểm soát của phụ huynh trên hệ thống. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"thêm hoặc xóa quản trị viên thiết bị"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Cho phép chủ sở hữu thêm hoặc xóa quản trị viên thiết bị đang hoạt động. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"thay đổi hướng màn hình"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"cho phép ghép nối Bluetooth theo ứng dụng"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Cho phép ứng dụng ghép nối với các thiết bị từ xa mà không cần tương tác của người dùng."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Cho phép ứng dụng ghép nối với các thiết bị từ xa mà không cần tương tác của người dùng."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"truy cập vào dữ liệu BẢN ĐỒ qua Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Cho phép ứng dụng truy cập vào dữ liệu BẢN ĐỒ qua Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Cho phép ứng dụng truy cập vào dữ liệu BẢN ĐỒ qua Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"kết nối và ngắt kết nối khỏi WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Cho phép ứng dụng xác định liệu WiMAX đã được bật chưa và thông tin về bất kỳ mạng WiMAX nào được kết nối."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Thay đổi trạng thái WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Cho phép ứng dụng truy cập bộ nhớ ngoài của tất cả người dùng."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"truy cập hệ thống tệp bộ nhớ cache"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Cho phép ứng dụng đọc và ghi hệ thống tệp bộ nhớ cache."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"thực hiện/nhận cuộc gọi qua Internet"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Cho phép ứng dụng sử dụng dịch vụ  SIP để thực hiện/nhận cuộc gọi qua Internet."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"thực hiện/nhận các cuộc gọi qua SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Cho phép ứng dụng thực hiện và nhận các cuộc gọi qua SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"tương tác với màn hình trong cuộc gọi"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Cho phép ứng dụng kiểm soát thời gian và cách người dùng nhìn thấy màn hình trong cuộc gọi."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"đọc quá trình sử dụng mạng trước đây"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Cho phép ứng dụng đọc thông tin lịch sử sử dụng mạng của các mạng và ứng dụng cụ thể."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"quản lý chính sách mạng"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Cho phép ứng dụng cung cấp và sử dụng chứng chỉ DRM. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Nhận trạng thái chuyển của Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Cho phép ứng dụng này nhận thông tin về các lần chuyển hiện tại của Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"xóa chứng chỉ DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Cho phép ứng dụng xóa chứng chỉ DRM. Không cần thiết cho các ứng dụng thông thường."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Đặt quy tắc mật khẩu"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Kiểm soát độ dài và ký tự được phép trong mật khẩu mở khóa màn hình."</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Giám sát những lần thử mở khóa màn hình"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Thẻ SIM bị thiếu hoặc không thể đọc được. Vui lòng lắp thẻ SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Thẻ SIM không sử dụng được."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Thẻ SIM của bạn đã bị vô hiệu hóa vĩnh viễn .\n Hãy liên hệ với nhà cung cấp dịch vụ không dây của bạn để lấy thẻ SIM khác."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Nút bài hát trước"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Nút bài hát tiếp theo"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Nút tạm dừng"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Nút phát"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Nút dừng"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Bản nhạc trước"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Bản nhạc tiếp theo"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Tạm dừng"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Phát"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Ngừng"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Tua lại"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Tua đi"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Chỉ cuộc gọi khẩn cấp"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Mạng đã khóa"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Thẻ SIM đã bị khóa PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Định dạng"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Gỡ lỗi USB đã được kết nối"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Chạm để vô hiệu hóa gỡ lỗi USB."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Thay đổi bàn phím"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Chọn bàn phím"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Bàn phím thực"</string>
     <string name="hardware" msgid="7517821086888990278">"Phần cứng"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Chọn bố cục bàn phím"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Giảm giờ"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Đặt CH"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Đặt SA"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"CH"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"SA"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Tăng tháng"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Giảm tháng"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Tăng ngày"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Chấp nhận cuộc gọi?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Luôn chọn"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Chỉ một lần"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s không hỗ trợ hồ sơ công việc."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Máy tính bảng"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Điện thoại"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Tai nghe"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"Đã chọn <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"Đã xóa <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"<xliff:g id="LABEL">%1$s</xliff:g> làm việc"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Bạn đang ở chế độ khóa trong ứng dụng. Để thoát, chạm và giữ nút Gần đây"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Bạn đang ở chế độ Khóa trong ứng dụng."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Sử dụng Khóa trong ứng dụng?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Tính năng khóa trong ứng dụng khóa màn hình trong một ứng dụng.\n\nĐể thoát, chạm và giữ nút Gần đây."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"KHÔNG, CẢM ƠN"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"BẮT ĐẦU"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Bị khóa trong ứng dụng"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Không còn bị khóa trong ứng dụng nữa"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Yêu cầu %1$s trước khi thoát"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"Mã PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"hình mở khóa"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"mật khẩu"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index afcc0a8..557f709 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"来电显示"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"本机号码"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"连接的线路ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"连接的线路ID限制"</string>
     <string name="CfMmi" msgid="5123218989141573515">"来电转接"</string>
     <string name="CwMmi" msgid="9129678056795016867">"来电等待"</string>
     <string name="BaMmi" msgid="455193067926770581">"呼叫限制"</string>
@@ -211,10 +213,10 @@
     <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"使用耗电量较大的功能。"</string>
     <string name="permgrouplab_calendar" msgid="5863508437783683902">"日历"</string>
     <string name="permgroupdesc_calendar" msgid="5777534316982184416">"直接访问日历和活动。"</string>
-    <string name="permgrouplab_dictionary" msgid="4148597128843641379">"读取用户词典"</string>
-    <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"读取用户词典中的字词。"</string>
-    <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"写入用户词典"</string>
-    <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"将字词添加到用户词典。"</string>
+    <string name="permgrouplab_dictionary" msgid="4148597128843641379">"读取用户字典"</string>
+    <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"读取用户字典中的字词。"</string>
+    <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"写入用户字典"</string>
+    <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"将字词添加到用户字典。"</string>
     <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"书签和历史记录"</string>
     <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"直接访问书签和浏览器历史记录。"</string>
     <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"闹钟"</string>
@@ -298,7 +300,7 @@
     <string name="permdesc_receiveBluetoothMap" msgid="8656755936919466345">"允许此应用接收和处理蓝牙MAP信息。这意味着,该应用可能会监视发送或到您设备的信息,在您阅读发送到您设备的信息之前擅自删除信息。"</string>
     <string name="permlab_getTasks" msgid="6466095396623933906">"检索正在运行的应用"</string>
     <string name="permdesc_getTasks" msgid="7454215995847658102">"允许该应用检索近期运行的和当前正在运行的任务的相关信息。此权限可让该应用了解设备上使用了哪些应用。"</string>
-    <string name="permlab_startTasksFromRecents" msgid="8990073877885690623">"从“最近用过的应用”发起任务"</string>
+    <string name="permlab_startTasksFromRecents" msgid="8990073877885690623">"从“最近”发起任务"</string>
     <string name="permdesc_startTasksFromRecents" msgid="7382133554871222235">"允许应用使用ActivityManager.RecentTaskInfo对象发起从ActivityManager.getRecentTaskList()返回的无效任务。"</string>
     <string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"用户间互动"</string>
     <string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"允许该应用在设备上跨多个用户执行操作。恶意应用可能会借此破坏用户之间的保护措施。"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允许应用向设备管理器发送Intent。普通应用绝不需要此权限。"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"绑定至电视输入设备"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"允许应用绑定至电视输入设备的顶级接口。普通应用绝不需要此权限。"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"修改家长控制"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"允许应用修改系统的家长控制数据。普通应用绝不需要此权限。"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"添加或删除设备管理员"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允许应用添加或删除有效的设备管理员。普通应用绝不需要此权限。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"更改屏幕显示方向"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"允许应用进行蓝牙配对"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"允许应用自行与远程设备配对。"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"允许应用自行与远程设备配对。"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"访问蓝牙MAP数据"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"允许该应用访问蓝牙MAP数据。"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"允许该应用访问蓝牙MAP数据。"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"建立或中断 WiMAX 网络连接"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"允许该应用确定是否启用了 WiMAX 以及连接的任何 WiMAX 网络的相关信息。"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"更改 WiMAX 状态"</string>
@@ -689,10 +692,10 @@
     <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"允许应用获取有关当前同步的 Feed 的详情。"</string>
     <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"写入订阅的供稿"</string>
     <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"允许应用修改您当前同步的 Feed。恶意应用可能会更改您的同步 Feed。"</string>
-    <string name="permlab_readDictionary" msgid="4107101525746035718">"读取您添加到词典的字词"</string>
-    <string name="permdesc_readDictionary" msgid="659614600338904243">"允许该应用读取用户可能已在用户词典中存储的所有字词、名称和词组。"</string>
-    <string name="permlab_writeDictionary" msgid="2183110402314441106">"向用户定义的词典添加字词"</string>
-    <string name="permdesc_writeDictionary" msgid="8185385716255065291">"允许应用向用户词典中写入新词。"</string>
+    <string name="permlab_readDictionary" msgid="4107101525746035718">"读取您添加到字典的字词"</string>
+    <string name="permdesc_readDictionary" msgid="659614600338904243">"允许该应用读取用户可能已在用户字典中存储的所有字词、名称和词组。"</string>
+    <string name="permlab_writeDictionary" msgid="2183110402314441106">"向用户定义的字典添加字词"</string>
+    <string name="permdesc_writeDictionary" msgid="8185385716255065291">"允许应用向用户字典中写入新词。"</string>
     <string name="permlab_sdcardRead" product="nosdcard" msgid="367275095159405468">"读取您的USB存储设备中的内容"</string>
     <string name="permlab_sdcardRead" product="default" msgid="2188156462934977940">"读取您的SD卡中的内容"</string>
     <string name="permdesc_sdcardRead" product="nosdcard" msgid="3446988712598386079">"允许应用读取您USB存储设备中的内容。"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"允许应用访问所有用户的外部存储设备。"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"访问缓存文件系统"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"允许应用读取和写入缓存文件系统。"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"拨打/接听互联网电话"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"允许应用使用 SIP 服务拨打/接听互联网电话。"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"拨打/接听SIP电话"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"允许该应用拨打和接听SIP电话。"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"与通话屏幕互动"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"允许应用控制用户看到通话屏幕的时机和方式。"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"读取网络使用情况历史记录"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"允许应用读取特定网络和应用的网络使用情况历史记录。"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"管理网络政策"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允许应用配置和使用DRM证书。普通应用绝不需要此权限。"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"接收Android Beam的传输状态"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"允许此应用接收Android Beam当前传输内容的相关信息"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"移除DRM证书"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"允许应用移除DRM证书。普通应用绝不需要此权限。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"设置密码规则"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制屏幕解锁密码所允许的长度和字符。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"监视屏幕解锁尝试次数"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM卡缺失或无法读取。请插入SIM卡。"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM卡无法使用。"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"您的SIM卡已永久停用。\n请与您的无线服务提供商联系,以便重新获取一张SIM卡。"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"“上一曲目”按钮"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"“下一曲目”按钮"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"“暂停”按钮"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"“播放”按钮"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"“停止”按钮"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"上一曲"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"下一曲"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"暂停"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"播放"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"停止"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"回放"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"快进"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"只能拨打紧急呼救电话"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"网络已锁定"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM卡已用PUK码锁定。"</string>
@@ -1172,7 +1179,7 @@
     <string name="copyUrl" msgid="2538211579596067402">"复制网址"</string>
     <string name="selectTextMode" msgid="1018691815143165326">"选择文字"</string>
     <string name="textSelectionCABTitle" msgid="5236850394370820357">"文字选择"</string>
-    <string name="addToDictionary" msgid="4352161534510057874">"添加到词典"</string>
+    <string name="addToDictionary" msgid="4352161534510057874">"添加到字典"</string>
     <string name="deleteText" msgid="6979668428458199034">"删除"</string>
     <string name="inputMethod" msgid="1653630062304567879">"输入法"</string>
     <string name="editTextMenuTitle" msgid="4909135564941815494">"文字操作"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"格式化"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"已连接到USB调试"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"触摸可停用USB调试。"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"更改键盘"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"选择键盘"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"物理键盘"</string>
     <string name="hardware" msgid="7517821086888990278">"硬件"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"选择键盘布局"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"减小小时值"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"设置下午时间"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"设置上午时间"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"下午"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"上午"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"增大月份值"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"减小月份值"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"增大日期值"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"要接听电话吗?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"始终"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"仅此一次"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s不支持工作资料。"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"平板电脑"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"手机"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"耳机"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"已选择<xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"已删除<xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"工作<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"您目前处于单应用模式。要退出,请触摸并按住“最近用过的应用”按钮"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"您目前处于单应用模式。"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"要使用“单应用模式”吗?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"“单应用模式”功能会锁定屏幕,使其只显示一个应用。{\n\n要退出,请触摸并按住“最近用过的应用”按钮。"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"不用了"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"启动"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"已开启单应用模式"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"已退出单应用模式"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"退出前要求输入%1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN码"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"解锁图案"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"密码"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index b145740..1dfcad3 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"來電顯示"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"本機號碼"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"連接線識別功能"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"連接線識別限制"</string>
     <string name="CfMmi" msgid="5123218989141573515">"來電轉接"</string>
     <string name="CwMmi" msgid="9129678056795016867">"來電待接"</string>
     <string name="BaMmi" msgid="455193067926770581">"通話限制"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允許應用程式將調用請求傳送至裝置管理員 (不建議一般應用程式使用)。"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"繫結至電視訊號輸入裝置"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"允許應用程式繫結至電視訊號輸入裝置的頂層介面,但一般應用程式並不需要使用。"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"修改家長監護設定"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"允許應用程式修改系統的家長監護資料 (一般應用程式並不需要)。"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"新增或移除裝置管理員"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允許應用程式新增或移除有效的裝置管理員 (不建議一般應用程式使用)。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"更改螢幕瀏覽方向"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"允許應用程式執行藍牙配對"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"允許應用程式直接與遠端裝置配對。"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"允許應用程式直接與遠端裝置配對。"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"存取藍牙 MAP 資料"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"允許應用程式存取藍牙 MAP 資料。"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"允許應用程式存取藍牙 MAP 資料。"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"建立或中斷與 WiMAX 網絡的連線"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"允許應用程式確定是否已啟用 WiMAX,以及判斷任何已連接 WiMAX 網絡的相關資訊。"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"更改 WiMAX 狀態"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"允許應用程式存取外部儲存空間 (所有用戶)。"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"存取快取檔案系統"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"允許應用程式讀取及寫入快取檔案系統。"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"撥打/接聽網絡電話"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"允許應用程式使用 SIP 服務撥打/接聽網絡電話。"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"撥打/接聽 SIP 電話"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"允許應用程式撥打及接聽 SIP 電話。"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"與通話畫面互動"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"允許應用程式控制通話畫面的顯示時間和方式。"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"讀取網絡用量記錄"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"允許應用程式讀取特定網絡和應用程式的網絡使用量記錄。"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"管理網絡政策"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允許應用程式準備和使用 DRM 憑證,但一般應用程式並不需要使用。"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"接收 Android Beam 的傳送狀態"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"允許應用程式接收 Android Beam 目前傳送的資料"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"移除 DRM 憑證"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"允許應用程式移除 DRM 憑證 (一般應用程式並不需要)。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"設定密碼規則"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制螢幕解鎖密碼所允許的長度和字元。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"監控螢幕解鎖嘗試次數"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"找不到 SIM 卡或無法讀取 SIM 卡,請插入 SIM 卡。"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM 卡無法使用。"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"您的 SIM 卡已被永久停用。\n請與您的無線服務供應商聯絡,以取得另一張 SIM 卡。"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"[上一首曲目] 按鈕"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"[下一首曲目] 按鈕"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"[暫停] 按鈕"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"[播放] 按鈕"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"[停止] 按鈕"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"上一首曲目"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"下一首曲目"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"暫停"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"播放"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"停止"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"倒帶"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"向前快轉"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"僅可撥打緊急電話"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"網絡已鎖定"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM 卡處於 PUK 鎖定狀態。"</string>
@@ -1203,7 +1210,7 @@
     <string name="chooseUsbActivity" msgid="6894748416073583509">"選取要以 USB 裝置存取的應用程式"</string>
     <string name="noApplications" msgid="2991814273936504689">"沒有應用程式可執行這項操作。"</string>
     <string name="aerr_title" msgid="1905800560317137752"></string>
-    <string name="aerr_application" msgid="932628488013092776">"很抱歉,<xliff:g id="APPLICATION">%1$s</xliff:g> 已停止。"</string>
+    <string name="aerr_application" msgid="932628488013092776">"抱歉,<xliff:g id="APPLICATION">%1$s</xliff:g>已停止操作。"</string>
     <string name="aerr_process" msgid="4507058997035697579">"很抱歉,處理程序 <xliff:g id="PROCESS">%1$s</xliff:g> 已停止。"</string>
     <string name="anr_title" msgid="4351948481459135709"></string>
     <string name="anr_activity_application" msgid="1904477189057199066">"<xliff:g id="APPLICATION">%2$s</xliff:g> 沒有回應。\n\n您要結束嗎?"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"格式"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"已連接 USB 偵錯工具"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"輕觸即可停用 USB 偵錯。"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"變更鍵盤"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"選擇鍵盤"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"實體鍵盤"</string>
     <string name="hardware" msgid="7517821086888990278">"硬件"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"選取鍵盤配置"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"減少時數"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"設定 PM 值"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"設定 AM 值"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"下午"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"上午"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"增加月數"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"減少月數"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"增加日數"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"接聽電話嗎?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"一律採用"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"只此一次"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s 不支援工作設定檔。"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"平板電腦"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"手機"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"耳機"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"已選取<xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"<xliff:g id="KEY">%1$s</xliff:g> 已刪除"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"公司<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"您已進入應用程式鎖定模式。如要退出,請輕觸並按住 [最近使用的應用程式] 按鈕"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"您目前正在使用應用程式鎖定模式。"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"要使用「應用程式鎖定」嗎?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"應用程式鎖定模式會將螢幕鎖定在單一應用程式的畫面。\n\n如要退出,請輕觸並按住 [最近使用的應用程式] 按鈕。"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"不用了,謝謝"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"啟動"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"已進入應用程式鎖定模式"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"已退出應用程式鎖定模式"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"退出時須提供%1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"解鎖圖案"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"密碼"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 5109256..ec5a424 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"來電顯示"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"本機號碼"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"連接的線路 ID"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"連接的線路 ID 限制"</string>
     <string name="CfMmi" msgid="5123218989141573515">"來電轉接"</string>
     <string name="CwMmi" msgid="9129678056795016867">"來電待接"</string>
     <string name="BaMmi" msgid="455193067926770581">"通話限制"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"允許應用程式將調用請求傳送至裝置管理員 (一般應用程式不需使用)。"</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"繫結至電視訊號輸入裝置"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"允許應用程式繫結至電視訊號輸入裝置的頂層介面 (一般應用程式並不需要)。"</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"修改家長監護設定"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"允許應用程式修改系統的家長監護資料 (一般應用程式並不需要)。"</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"新增或移除裝置管理員"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"允許應用程式新增或移除有效的裝置管理員 (一般應用程式並不需要)。"</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"變更螢幕顯示方向"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"允許應用程式執行藍牙配對"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"允許應用程式自動與遠端裝置配對。"</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"允許應用程式自動與遠端裝置配對。"</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"存取藍牙 MAP 資料"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"允許應用程式存取藍牙 MAP 資料。"</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"允許應用程式存取藍牙 MAP 資料。"</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"建立或中斷與 WiMAX 網路的連線"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"允許應用程式判斷是否已啟用 WiMAX,以及判讀任何已連上 WiMAX 網路的相關資訊。"</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"變更 WiMAX 狀態"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"允許應用程式存取外部儲存空間 (所有使用者)。"</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"存取快取檔案系統"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"允許應用程式讀取及寫入快取檔案系統。"</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"撥打/接聽網路電話"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"允許應用程式使用 SIP 服務撥打/接聽網路電話。"</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"撥打/接聽 SIP 通話"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"允許應用程式撥打及接聽 SIP 通話。"</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"與來電過濾互動"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"允許應用程式控制來電過濾的顯示時機與方式。"</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"讀取網路用量紀錄"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"允許應用程式讀取特定網路和應用程式的網路使用記錄。"</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"管理網路政策"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"允許應用程式佈建及使用 DRM 憑證 (一般應用程式並不需要)。"</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"接收 Android Beam 的傳輸狀態"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"允許應用程式接收 Android Beam 目前傳輸的資訊"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"移除 DRM 憑證"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"允許應用程式移除 DRM 憑證 (一般應用程式並不需要)。"</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"設定密碼規則"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"控制螢幕解鎖密碼所允許的長度和字元。"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"監視螢幕解鎖嘗試次數"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"找不到或無法讀取 SIM 卡。請插入 SIM 卡。"</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"SIM 卡無法使用。"</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"您的 SIM 卡已遭永久停用。\n請與您的無線網路服務供應商聯絡,以取得其他 SIM 卡。"</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"[上一首曲目] 按鈕"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"[下一首曲目] 按鈕"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"[暫停] 按鈕"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"[播放] 按鈕"</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"[停止] 按鈕"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"上一首曲目"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"下一首曲目"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"暫停"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"播放"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"停止"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"倒轉"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"快轉"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"僅可撥打緊急電話"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"網路已鎖定"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM 的 PUK 已鎖定。"</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"格式化"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"已連接 USB 偵錯工具"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"輕觸即可停用 USB 偵錯。"</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"變更鍵盤"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"選擇鍵盤"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"實體鍵盤"</string>
     <string name="hardware" msgid="7517821086888990278">"硬體"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"選取鍵盤配置"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"減少小時數"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"設定 PM 值"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"設定 AM 值"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"下午"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"上午"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"增加月數"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"減少月數"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"增加日數"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"接聽電話嗎?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"一律採用"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"僅限一次"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s 不支援工作設定檔。"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"平板電腦"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"手機"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"耳機"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"已選取 <xliff:g id="ITEM">%1$s</xliff:g>"</string>
     <string name="deleted_key" msgid="7659477886625566590">"已刪除 <xliff:g id="KEY">%1$s</xliff:g>"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"公司<xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"您已進入應用程式鎖定模式。如要退出,請輕觸並按住 [最近使用的應用程式] 按鈕"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"您正在使用應用程式鎖定模式。"</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"要使用「應用程式鎖定」功能嗎?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"應用程式鎖定模式會將螢幕鎖定在單一應用程式的畫面。\n\n如要退出,請輕觸並按住 [最近使用的應用程式] 按鈕。"</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"不用了,謝謝"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"啟動"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"已進入應用程式鎖定模式"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"已退出應用程式鎖定模式"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"退出時須提供%1$s"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"PIN"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"解鎖圖形"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"密碼"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 3c09790..2c461d2 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -70,6 +70,8 @@
     <string name="meid" msgid="4841221237681254195">"MEID"</string>
     <string name="ClipMmi" msgid="6952821216480289285">"I-ID Yocingo Olungenayo"</string>
     <string name="ClirMmi" msgid="7784673673446833091">"I-ID Yomshayeli Ephumayo"</string>
+    <string name="ColpMmi" msgid="3065121483740183974">"I-ID yomugqa exhumekile"</string>
+    <string name="ColrMmi" msgid="4996540314421889589">"I-ID yomugqa oxhumekile ikhawulelwe"</string>
     <string name="CfMmi" msgid="5123218989141573515">"Ukudlulisa ikholi"</string>
     <string name="CwMmi" msgid="9129678056795016867">"Ikholi ilindile"</string>
     <string name="BaMmi" msgid="455193067926770581">"Ukuvimba ikholi"</string>
@@ -417,10 +419,8 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Ivumela ummeli ukuthumela okuqukethwe kumphathi wedivaysi. Akusoze kwadingeka kwizinhlelo zokusebenza ezivamile."</string>
     <string name="permlab_bindTvInput" msgid="5601264742478168987">"bophezela kokokufaka kwe-TV"</string>
     <string name="permdesc_bindTvInput" msgid="2371008331852001924">"Ivumela umbambi ukuthi abophezele uxhumano nomsebenzisi kwezinga eliphezulu lokokufaka kwe-TV. Akumele kudingelwe izinhlelo zokusebenza ezijwayelekile."</string>
-    <!-- no translation found for permlab_modifyParentalControls (4611318225997592242) -->
-    <skip />
-    <!-- no translation found for permdesc_modifyParentalControls (7438482894162282039) -->
-    <skip />
+    <string name="permlab_modifyParentalControls" msgid="4611318225997592242">"shintsha izilawuli zabazali"</string>
+    <string name="permdesc_modifyParentalControls" msgid="7438482894162282039">"Ivumela umphathi ukushintsha idatha yokulawula yabazali yesistimu. Akufanele idingeke ngezinhlelo zokusebenza ezivamile."</string>
     <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"engeza noma susa umlawuli wedivayisi"</string>
     <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Ivumela umnikazi ukuthi angeze noma asuse abalawuli bedivayisi esebenzayo. Akumele idingelwe izinhlelo zokusebenza ezijwayelekile."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"shintsha ukujikeleza kwesikrini"</string>
@@ -664,6 +664,9 @@
     <string name="permlab_bluetoothPriv" msgid="4009494246009513828">"vumela ukumataniswa kwe-Bluetooth ngohlelo lokusebenza"</string>
     <string name="permdesc_bluetoothPriv" product="tablet" msgid="8045735193417468857">"Ivumela uhlelo lokusebenza ukuthi lubhanqwe ngamadivayisi wesilawuli kude ngaphandle kokuhlanganyela nomsebenzisi."</string>
     <string name="permdesc_bluetoothPriv" product="default" msgid="8045735193417468857">"Ivumela uhlelo lokusebenza ukuthi lubhanqwe ngamadivayisi wesilawuli kude ngaphandle kokuhlanganyela nomsebenzisi."</string>
+    <string name="permlab_bluetoothMap" msgid="6372198338939197349">"finyelela kudatha yeMEPHU ye-Bluetooth"</string>
+    <string name="permdesc_bluetoothMap" product="tablet" msgid="5784090105926959958">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kudatha yeMEPHU ye-Bluetooth."</string>
+    <string name="permdesc_bluetoothMap" product="default" msgid="5784090105926959958">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kudatha yeMEPHU ye-Bluetooth."</string>
     <string name="permlab_accessWimaxState" msgid="4195907010610205703">"xhuma futhi unqamule kusuka ku-WiMAX"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Ivumela uhlelo lokusebenza ukucacisa ukuthi ingabe i-WiMAX inikwe amandla futhi ulwazi mayelana namanethiwekhi e-WiMAX axhunyiwe."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"Shintsha isimo se-WiMAX"</string>
@@ -709,10 +712,14 @@
     <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Vumela uhlelo lokusebenza ukufinyelela isilondolozi sangaphandle kubo bonke abasebenzisi."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"finyelela kunqolobane yesistimu yefayela"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Ivumela uhlelo lokusebenza ukuthi ifunde futhi ibhale isistimu yokufayila amafayela esikhashana."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"yena/thola amakholi e-Inthanethi"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"Ivumela uhlelo lokusebenza ukuthi isebenzise isevisi ye-SIP ukwenza/ukuthola izingcingo ze-inthanethi."</string>
+    <string name="permlab_use_sip" msgid="2052499390128979920">"yenza/thola amakholi we-SIP"</string>
+    <string name="permdesc_use_sip" msgid="2297804849860225257">"Ivumela uhlelo lokusebenza ukwenza nokuthola amakholi we-SIP."</string>
     <string name="permlab_bind_call_service" msgid="6724009726671246551">"hlanganyela neskrini esingaphakathi kwekholi"</string>
     <string name="permdesc_bind_call_service" msgid="8732547662442572435">"Ivumela uhlelo lokusebenza ukuthi lulawule ukuthi umsebenzisi ubona kanjani isikrini esingaphakathi kwekholi."</string>
+    <!-- no translation found for permlab_bind_connection_service (3557341439297014940) -->
+    <skip />
+    <!-- no translation found for permdesc_bind_connection_service (4008754499822478114) -->
+    <skip />
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"funda ukusetshenziswa komlando wohleloxhumano"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Ivumela uhlelo lokusebenza ukuthi ifunde umlando wokusetshenziswa kwenethiwekhi emanethiwekhini athize kanye nasezinsizeni."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"phatha inqubomgomo yenethiwekhi"</string>
@@ -739,10 +746,8 @@
     <string name="permdesc_accessDrmCertificates" msgid="8073288354426159089">"Ivumela uhlelo lokusebenza ekunikezweni nokusetshenziswa kwezitifiketi ze-DRM. Akufanele kudingeke kuzinhlelo zokusebenza ezivamile."</string>
     <string name="permlab_handoverStatus" msgid="1159132046126626731">"Thola isimo sokundlulisa se-Android Beam"</string>
     <string name="permdesc_handoverStatus" msgid="4788144087245714948">"Ivumela lolu hlelo lokusebenza ukuthi luthole ulwazi mayelana nokundluliswa kwamanje kwe-Android Beam"</string>
-    <!-- no translation found for permlab_removeDrmCertificates (7044888287209892751) -->
-    <skip />
-    <!-- no translation found for permdesc_removeDrmCertificates (7272999075113400993) -->
-    <skip />
+    <string name="permlab_removeDrmCertificates" msgid="7044888287209892751">"susa izitifiketi ze-DRM"</string>
+    <string name="permdesc_removeDrmCertificates" msgid="7272999075113400993">"Ivumela uhlelo lokusebenza ukususa izitifiketi ze-DRM. Akufanele idingeke ngezinhlelo zokusebenza ezivamile."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"Misa imithetho yephasiwedi"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"Lawula ubude nezinhlamvu ezivunyelwe kumaphasiwedi okuvula isikrini"</string>
     <string name="policylab_watchLogin" msgid="914130646942199503">"Gaka imizamo yokuvula isikrini"</string>
@@ -911,11 +916,13 @@
     <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"Ikhadi le-SIM alitholakali noma alifundeki. Sicela ufake ikhadi le-SIM."</string>
     <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ikhadi le-SIM elingasetshenzisiwe."</string>
     <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"I-SIM khadi ykho isiyenziwe ukuthi ingasebenzi unomphela.\n Xhumana nomhlinzeki wakho wokuxhumana okungenazintambo ukuze uthole enye i-SIM khadi."</string>
-    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Inkinombo yengoma yangaphambilini"</string>
-    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Inkinobho yengoma elandelayo"</string>
-    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Inkinobho yokukuma kancane"</string>
-    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Inkinobho yokudlala."</string>
-    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Misa inkinombo"</string>
+    <string name="lockscreen_transport_prev_description" msgid="6300840251218161534">"Ithrekhi yangaphambilini"</string>
+    <string name="lockscreen_transport_next_description" msgid="573285210424377338">"Ithrekhi elandelayo"</string>
+    <string name="lockscreen_transport_pause_description" msgid="3980308465056173363">"Misa isikhashana"</string>
+    <string name="lockscreen_transport_play_description" msgid="1901258823643886401">"Dlala"</string>
+    <string name="lockscreen_transport_stop_description" msgid="5907083260651210034">"Misa"</string>
+    <string name="lockscreen_transport_rew_description" msgid="6944412838651990410">"Buyisela emumva"</string>
+    <string name="lockscreen_transport_ffw_description" msgid="42987149870928985">"Ukudlulisa ngokushesha"</string>
     <string name="emergency_calls_only" msgid="6733978304386365407">"Amakholi aphuthumayo kuphela"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Inethiwekhi ivaliwe"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"Ikhadi le-SIM livalwe nge-PUK."</string>
@@ -1343,10 +1350,8 @@
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"Ifomethi"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"Ukulungisa iphutha le-USB kuxhunyiwe"</string>
     <string name="adb_active_notification_message" msgid="1016654627626476142">"Thinta ukwenza ukuthi ukudibhaga kwe-USB kungasebenzi."</string>
-    <!-- no translation found for select_input_method (8547250819326693584) -->
-    <skip />
-    <!-- no translation found for configure_input_methods (4769971288371946846) -->
-    <skip />
+    <string name="select_input_method" msgid="8547250819326693584">"Shintsha ikhibhodi"</string>
+    <string name="configure_input_methods" msgid="4769971288371946846">"Khetha amakhibhodi"</string>
     <string name="use_physical_keyboard" msgid="6203112478095117625">"Ukwakheka kwekhibhodi"</string>
     <string name="hardware" msgid="7517821086888990278">"I-Hardware"</string>
     <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Khetha isendlalelo sekhibhodi"</string>
@@ -1496,6 +1501,8 @@
     <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Yehlisa ihora"</string>
     <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"Setha Ntambama"</string>
     <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"Setha Ekuseni"</string>
+    <string name="time_picker_pm_label" msgid="9075415075642718536">"PM"</string>
+    <string name="time_picker_am_label" msgid="7367798547923815593">"AM"</string>
     <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Khulisa inyanga"</string>
     <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Yehlisa inyanga"</string>
     <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Khulisa usuku"</string>
@@ -1563,8 +1570,7 @@
     <string name="SetupCallDefault" msgid="5834948469253758575">"Amukela ucingo?"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"Njalo"</string>
     <string name="activity_resolver_use_once" msgid="2404644797149173758">"Kanye nje"</string>
-    <!-- no translation found for activity_resolver_work_profiles_support (5462991471861024343) -->
-    <skip />
+    <string name="activity_resolver_work_profiles_support" msgid="5462991471861024343">"%1$s ayisekeli iphrofayela yomsebenzi."</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Ithebulethi"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Ifoni"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Ama-headphone"</string>
@@ -1758,116 +1764,31 @@
     <string name="item_is_selected" msgid="949687401682476608">"I-<xliff:g id="ITEM">%1$s</xliff:g> ekhethiwe"</string>
     <string name="deleted_key" msgid="7659477886625566590">"I-<xliff:g id="KEY">%1$s</xliff:g> isusiwe"</string>
     <string name="managed_profile_label_badge" msgid="2355652472854327647">"Umsebenzi <xliff:g id="LABEL">%1$s</xliff:g>"</string>
-    <string name="lock_to_app_toast" msgid="2126866321272822564">"Ukhiyeleke kumodi yesikhiya sohlelo lokusebenza. Ukuze uphume, thinta futhi ubambe inkinobho ye-Okwakamuva"</string>
-    <string name="lock_to_app_toast_locked" msgid="4229650395479263497">"Ukwimodi yokukhiya kuhlelo lokusebenza."</string>
-    <string name="lock_to_app_title" msgid="5895142291937470019">"Sebenzisa isikhiya sohlelo lokusebenza?"</string>
-    <string name="lock_to_app_description" msgid="2800403592608529611">"Isikhiya sohlelo lokusebenza lukhiya isibonisi kuhlelo lokusebenza olulodwa.\n\nUkuze uphume, thinta bese ubambe inkinobho ye-Okwakamuva."</string>
+    <!-- no translation found for lock_to_app_toast (1230563865743799321) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_accessible (3340628918851844044) -->
+    <skip />
+    <!-- no translation found for lock_to_app_toast_locked (8739004135132606329) -->
+    <skip />
+    <!-- no translation found for lock_to_app_title (1682643873107812874) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description (9076084599283282800) -->
+    <skip />
+    <!-- no translation found for lock_to_app_description_accessible (2132076937479670601) -->
+    <skip />
     <string name="lock_to_app_negative" msgid="2259143719362732728">"CHA, NGIYABONGA"</string>
     <string name="lock_to_app_positive" msgid="7085139175671313864">"QALA"</string>
-    <string name="lock_to_app_start" msgid="3074665051586318340">"Khiyela kuhlelo lokusebenza"</string>
-    <string name="lock_to_app_exit" msgid="8967089657201849300">"Akusakhiyelwe kuhlelo lokusebenza"</string>
-    <string name="lock_to_app_use_screen_lock" msgid="1434584309048590886">"Cela i-%1$s ngaphambi kokuphuma"</string>
+    <!-- no translation found for lock_to_app_start (6643342070839862795) -->
+    <skip />
+    <!-- no translation found for lock_to_app_exit (8598219838213787430) -->
+    <skip />
+    <!-- no translation found for lock_to_app_use_screen_lock (5732663305876339596) -->
+    <skip />
     <string name="lock_to_app_unlock_pin" msgid="7908385370846820001">"IPHINIKHODI"</string>
     <string name="lock_to_app_unlock_pattern" msgid="7763071104790758405">"iphethini yokuvula"</string>
     <string name="lock_to_app_unlock_password" msgid="795224196583495868">"iphasiwedi"</string>
-    <!-- no translation found for description_autv_ctc (1340773034128413833) -->
+    <!-- no translation found for battery_saver_description (725676363406667978) -->
     <skip />
-    <!-- no translation found for description_autv_g (8825932008126488114) -->
-    <skip />
-    <!-- no translation found for description_autv_pg (3102051294835672333) -->
-    <skip />
-    <!-- no translation found for description_autv_m (1090796276190749241) -->
-    <skip />
-    <!-- no translation found for description_autv_ma15 (970119104753434051) -->
-    <skip />
-    <!-- no translation found for description_autv_r18 (3826039266665650748) -->
-    <skip />
-    <!-- no translation found for description_autv_x18 (2076614946730171971) -->
-    <skip />
-    <!-- no translation found for description_detv_all (4290816084213277907) -->
-    <skip />
-    <!-- no translation found for description_detv_12 (1483291295919180849) -->
-    <skip />
-    <!-- no translation found for description_detv_16 (1530748520169877780) -->
-    <skip />
-    <!-- no translation found for description_detv_18 (6932133267820316706) -->
-    <skip />
-    <!-- no translation found for description_estv_all (4617683093722624240) -->
-    <skip />
-    <!-- no translation found for description_estv_i (1141171160833794692) -->
-    <skip />
-    <!-- no translation found for description_estv_7 (4917355218226086349) -->
-    <skip />
-    <!-- no translation found for description_estv_13 (1591456940863913304) -->
-    <skip />
-    <!-- no translation found for description_estv_18 (1220200554553594583) -->
-    <skip />
-    <!-- no translation found for description_frtv_all (5277155895495938542) -->
-    <skip />
-    <!-- no translation found for description_frtv_10 (4751687393402667290) -->
-    <skip />
-    <!-- no translation found for description_frtv_12 (6813646899508030376) -->
-    <skip />
-    <!-- no translation found for description_frtv_16 (4466993068286008261) -->
-    <skip />
-    <!-- no translation found for description_frtv_18 (6486375640186293566) -->
-    <skip />
-    <!-- no translation found for description_krtv_all (11497981488871053) -->
-    <skip />
-    <!-- no translation found for description_krtv_7 (6204900788594114856) -->
-    <skip />
-    <!-- no translation found for description_krtv_12 (5134514644432355428) -->
-    <skip />
-    <!-- no translation found for description_krtv_15 (1183692678647313272) -->
-    <skip />
-    <!-- no translation found for description_krtv_19 (7021986912313208481) -->
-    <skip />
-    <!-- no translation found for description_nltv_v (3847993626347313388) -->
-    <skip />
-    <!-- no translation found for description_nltv_f (6053045297000290324) -->
-    <skip />
-    <!-- no translation found for description_nltv_s (5727758317180609838) -->
-    <skip />
-    <!-- no translation found for description_nltv_d (8647908408678974106) -->
-    <skip />
-    <!-- no translation found for description_nltv_da (6201574796131887422) -->
-    <skip />
-    <!-- no translation found for description_nltv_l (4895256473269741839) -->
-    <skip />
-    <!-- no translation found for description_nltv_al (438113237508206711) -->
-    <skip />
-    <!-- no translation found for description_nltv_6 (4940119514342845737) -->
-    <skip />
-    <!-- no translation found for description_nltv_9 (7229781600578274275) -->
-    <skip />
-    <!-- no translation found for description_nltv_12 (4096709091642456107) -->
-    <skip />
-    <!-- no translation found for description_nltv_16 (5921176624389788946) -->
-    <skip />
-    <!-- no translation found for description_ustvpg (3666171166900312727) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_d (6552868431924879897) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_l (2427588153488291892) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_s (2556047043212535339) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_v (6647466085048806213) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_fv (4015953953338931020) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y (2271448022073929890) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_y7 (8931861188215869211) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_g (506861774854051282) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_pg (4238749719629801564) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_14 (6305164472373004907) -->
-    <skip />
-    <!-- no translation found for description_ustvpg_ma (5842074394338699982) -->
-    <skip />
-    <!-- no translation found for battery_saver_description (724302068634956656) -->
+    <!-- no translation found for downtime_condition_summary (8761776337475705749) -->
     <skip />
 </resources>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index e81ec69..89bda82 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -3163,6 +3163,17 @@
                  result to valid color values. Saturate(S + D) -->
             <enum name="add" value="16" />
         </attr>
+        <!-- Gravity for aligning a CheckedTextView's checkmark to one side or the other. -->
+        <attr name="checkMarkGravity">
+            <!-- Push object to the left of its container, not changing its size. -->
+            <flag name="left" value="0x03" />
+            <!-- Push object to the right of its container, not changing its size. -->
+            <flag name="right" value="0x05" />
+            <!-- Push object to the beginning of its container, not changing its size. -->
+            <flag name="start" value="0x00800003" />
+            <!-- Push object to the end of its container, not changing its size. -->
+            <flag name="end" value="0x00800005" />
+        </attr>
     </declare-styleable>
     <declare-styleable name="EditText">
     </declare-styleable>
@@ -6851,9 +6862,11 @@
          its {@link android.service.voice.VoiceInteractionService#SERVICE_META_DATA} meta-data entry.
          Described here are the attributes that can be included in that tag. -->
     <declare-styleable name="VoiceInteractionService">
-        <!-- The service that hosts active voice interaction sessions. -->
+        <!-- The service that hosts active voice interaction sessions.  This is required. -->
         <attr name="sessionService" format="string" />
-        <!-- The service that provides voice recognition. -->
+        <!-- The service that provides voice recognition.  This is required.  When the user
+             selects this voice interaction service, they will also be implicitly selecting
+             the component here for their recognition service. -->
         <attr name="recognitionService" format="string" />
         <attr name="settingsActivity" />
     </declare-styleable>
@@ -7274,9 +7287,8 @@
         <!-- Component name of an activity that allows the user to modify
              the settings for this service. -->
         <attr name="settingsActivity" />
-        <!-- Component name of an xml file that describes the structure of TV content ratings that
-             this service uses. -->
-        <attr name="contentRatingSystemXml" format="reference" />
+        <!-- Reference to an XML document that describes TV content rating. -->
+        <attr name="tvContentRatingDescription" format="reference" />
     </declare-styleable>
 
     <declare-styleable name="ResolverDrawerLayout">
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index c268d97..7d4c37e 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -1250,7 +1250,9 @@
          application.
 
          <p>This appears as a child tag of the root
-         {@link #AndroidManifest manifest} tag. -->
+         {@link #AndroidManifest manifest} tag.
+
+         @deprecated Use <code>feature-group</code> instead.-->
     <declare-styleable name="AndroidManifestUsesConfiguration" parent="AndroidManifest">
         <!-- The type of touch screen used by an application. -->
         <attr name="reqTouchScreen" />
diff --git a/core/res/res/values/colors_leanback.xml b/core/res/res/values/colors_leanback.xml
index dc0c673..e52a861 100644
--- a/core/res/res/values/colors_leanback.xml
+++ b/core/res/res/values/colors_leanback.xml
@@ -25,4 +25,5 @@
     <color name="primary_text_leanback_light">#cc222222</color>
     <color name="secondary_text_leanback_light">#99222222</color>
 
+    <color name="primary_text_leanback_formwizard_default_dark">#ffeeeeee</color>
 </resources>
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 169e515..bf97ca5 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -470,19 +470,6 @@
          provide full support for multiple displays.  -->
     <integer name="config_undockedHdmiRotation">-1</integer>
 
-    <!-- HDMI-CEC logical device types allowed on the system. Logical device types
-         are defined in HDMI-CEC standard 1.4 as follows:
-           0 TV
-           1 Recording Device
-           2 Reserved
-           3 Tuner
-           4 Playback
-           5 Audio System
-           6 Pure CEC Switch
-           7 Video Processor    -->
-    <integer-array name="config_hdmiCecLogicalDeviceType">
-    </integer-array>
-
     <!-- Control the default UI mode type to use when there is no other type override
          happening.  One of the following values (See Configuration.java):
              1  UI_MODE_TYPE_NORMAL
@@ -1603,7 +1590,6 @@
          -->
     <string-array translatable="false" name="config_globalActionsList">
         <item>power</item>
-        <item>lockdown</item>
         <item>bugreport</item>
         <item>users</item>
     </string-array>
diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml
index afe180f..a29a34c 100644
--- a/core/res/res/values/dimens.xml
+++ b/core/res/res/values/dimens.xml
@@ -42,11 +42,6 @@
     <dimen name="status_bar_icon_size">24dip</dimen>
     <!-- Size of the giant number (unread count) in the notifications -->
     <dimen name="status_bar_content_number_size">48sp</dimen>
-    <!-- Height of the system bar (combined status & navigation); used by
-         SystemUI internally, not respected by the window manager. -->
-    <dimen name="system_bar_height">@dimen/navigation_bar_height</dimen>
-    <!-- Height of notification icons in the system bar -->
-    <dimen name="system_bar_icon_size">32dip</dimen>
     <!-- Margin at the edge of the screen to ignore touch events for in the windowshade. -->
     <dimen name="status_bar_edge_ignore">5dp</dimen>
 
@@ -220,11 +215,17 @@
     <dimen name="action_bar_stacked_tab_max_width">180dp</dimen>
 
     <!-- Size of notification text (see TextAppearance.StatusBar.EventContent) -->
-    <dimen name="notification_text_size">13dp</dimen>
+    <dimen name="notification_text_size">13sp</dimen>
     <!-- Size of notification text titles (see TextAppearance.StatusBar.EventContent.Title) -->
-    <dimen name="notification_title_text_size">16dp</dimen>
+    <dimen name="notification_title_text_size">16sp</dimen>
     <!-- Size of smaller notification text (see TextAppearance.StatusBar.EventContent.Line2, Info, Time) -->
-    <dimen name="notification_subtext_size">12dp</dimen>
+    <dimen name="notification_subtext_size">12sp</dimen>
+
+    <!-- 8dp at the top/bottom of the notification view -->
+    <dimen name="notification_vert_pad">10dp</dimen>
+
+    <!-- Replacement for @dimen/notification_vert_pad when the text is large -->
+    <dimen name="notification_large_font_vert_pad">3dp</dimen>
 
     <!-- Keyguard dimensions -->
     <!-- TEMP -->
@@ -354,7 +355,6 @@
     <dimen name="timepicker_time_label_size">60sp</dimen>
     <dimen name="timepicker_extra_time_label_margin">-30dp</dimen>
     <dimen name="timepicker_ampm_label_size">16sp</dimen>
-    <dimen name="timepicker_done_label_size">14sp</dimen>
     <dimen name="timepicker_ampm_left_padding">6dip</dimen>
     <dimen name="timepicker_separator_padding">4dip</dimen>
     <dimen name="timepicker_header_height">96dip</dimen>
@@ -362,13 +362,14 @@
     <dimen name="timepicker_minimum_margin_top_bottom">24dip</dimen>
     <dimen name="timepicker_radial_picker_dimen">270dip</dimen>
 
-    <dimen name="datepicker_done_label_size">14sp</dimen>
-    <dimen name="datepicker_day_number_size">16sp</dimen>
+    <!-- Used by SimpleMonthView -->
+    <dimen name="datepicker_day_number_size">12sp</dimen>
     <dimen name="datepicker_month_label_size">16sp</dimen>
-    <dimen name="datepicker_month_day_label_text_size">10sp</dimen>
+    <dimen name="datepicker_month_day_label_text_size">12sp</dimen>
+    <dimen name="datepicker_month_list_item_header_height">48dp</dimen>
     <dimen name="datepicker_day_number_select_circle_radius">16dp</dimen>
-    <dimen name="datepicker_month_list_item_header_height">50dp</dimen>
-    <dimen name="datepicker_view_animator_height">270dp</dimen>
+    <dimen name="datepicker_view_animator_height">250dp</dimen>
+
     <dimen name="datepicker_year_picker_padding_top">8dp</dimen>
     <dimen name="datepicker_year_label_height">64dp</dimen>
     <dimen name="datepicker_year_label_text_size">22dp</dimen>
@@ -389,4 +390,8 @@
      used on circular displays. In the case where there is no "chin", this will default
      to 0 -->
      <dimen name="circular_display_mask_offset">0px</dimen>
+
+     <dimen name="lock_pattern_dot_line_width">3dp</dimen>
+     <dimen name="lock_pattern_dot_size">12dp</dimen>
+     <dimen name="lock_pattern_dot_size_activated">28dp</dimen>
 </resources>
diff --git a/core/res/res/values/dimens_leanback.xml b/core/res/res/values/dimens_leanback.xml
new file mode 100644
index 0000000..c824a2a
--- /dev/null
+++ b/core/res/res/values/dimens_leanback.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Default alpha value for disabled elements. -->
+    <item name="disabled_alpha_leanback_formwizard" format="float" type="dimen">0.2</item>
+    <!-- The duration of most animations related to screen content transitions -->
+    <integer name="leanback_setup_base_animation_duration">500</integer>
+    <item name="leanback_setup_alpha_animiation_max_opacity" format="float" type="dimen">1.0</item>
+    <item name="leanback_setup_alpha_animiation_min_opacity" format="float" type="dimen">0.0</item>
+    <!-- Where stable, on-screen content rests -->
+    <dimen name="leanback_setup_translation_content_resting_point">0dp</dimen>
+    <integer name="leanback_setup_translation_content_resting_point_v4">0</integer>
+    <!-- The screen position at which content enters/exits. If you're over the edge of the cliff, we can't see you. -->
+    <dimen name="leanback_setup_translation_content_cliff">100dp</dimen>
+    <integer name="leanback_setup_translation_content_cliff_v4">200</integer>
+
+    <!-- Opacity animation for activity background -->
+    <!-- The opacity of the background of the new activity background when the alpha animation starts-->
+    <item name="leanback_setup_alpha_activity_in_bkg_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <!-- The opacity of the background of the new activity background when the alpha animation ends-->
+    <item name="leanback_setup_alpha_activity_in_bkg_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <integer name="leanback_setup_alpha_activity_in_bkg_delay">0</integer>
+    <integer name="leanback_setup_alpha_activity_in_bkg_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <item name="leanback_setup_alpha_activity_out_bkg_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <!-- The opacity of the background of the new activity background when the alpha animation ends-->
+    <item name="leanback_setup_alpha_activity_out_bkg_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <integer name="leanback_setup_alpha_activity_out_bkg_delay">0</integer>
+    <integer name="leanback_setup_alpha_activity_out_bkg_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <!-- Content forward animation configuration values -->
+    <!-- Parameter for alpha animation of new content coming on to the screen when we're moving "forward" -->
+    <!--  Initial opacity of the new content that is coming on to the screen -->
+    <item name="leanback_setup_alpha_forward_in_content_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <item name="leanback_setup_alpha_forward_in_content_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <integer name="leanback_setup_alpha_forward_in_content_delay">0</integer>
+    <integer name="leanback_setup_alpha_forward_in_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <item name="leanback_setup_alpha_forward_out_content_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <item name="leanback_setup_alpha_forward_out_content_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <integer name="leanback_setup_alpha_forward_out_content_delay">0</integer>
+    <integer name="leanback_setup_alpha_forward_out_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <!-- Position animation of incoming content during a "forward" transition -->
+    <dimen name="leanback_setup_translation_forward_in_content_start">@dimen/leanback_setup_translation_content_cliff</dimen>
+    <dimen name="leanback_setup_translation_forward_in_content_start_v4">@integer/leanback_setup_translation_content_cliff_v4</dimen>
+    <dimen name="leanback_setup_translation_forward_in_content_end">@dimen/leanback_setup_translation_content_resting_point</dimen>
+    <dimen name="leanback_setup_translation_forward_in_content_end_v4">@integer/leanback_setup_translation_content_resting_point_v4</dimen>
+    <integer name="leanback_setup_translation_forward_in_content_delay">0</integer>
+    <integer name="leanback_setup_translation_forward_in_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <!-- Content backward animation configuration values -->
+    <!-- Alpha animation values for the content that will be displayed after the transition is complete, this is the content coming in. -->
+    <item name="leanback_setup_alpha_backward_in_content_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <item name="leanback_setup_alpha_backward_in_content_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <integer name="leanback_setup_alpha_backward_in_content_delay">0</integer>
+    <integer name="leanback_setup_alpha_backward_in_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <!-- Alpha animiation values for the content that is displayed when the transition starts, this is the content going away. -->
+    <item name="leanback_setup_alpha_backward_out_content_start" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_max_opacity</item>
+    <item name="leanback_setup_alpha_backward_out_content_end" format="float" type="dimen">@dimen/leanback_setup_alpha_animiation_min_opacity</item>
+    <integer name="leanback_setup_alpha_backward_out_content_delay">0</integer>
+    <integer name="leanback_setup_alpha_backward_out_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+
+    <!-- Position animation for content that is displayed when the transition starts, this is the content going away. -->
+    <dimen name="leanback_setup_translation_backward_out_content_start">@dimen/leanback_setup_translation_content_resting_point</dimen>
+    <dimen name="leanback_setup_translation_backward_out_content_start_v4">@integer/leanback_setup_translation_content_resting_point_v4</dimen>
+    <dimen name="leanback_setup_translation_backward_out_content_end">@dimen/leanback_setup_translation_content_cliff</dimen>
+    <dimen name="leanback_setup_translation_backward_out_content_end_v4">@integer/leanback_setup_translation_content_cliff_v4</dimen>
+    <integer name="leanback_setup_translation_backward_out_content_delay">0</integer>
+    <integer name="leanback_setup_translation_backward_out_content_duration">@integer/leanback_setup_base_animation_duration</integer>
+</resources>
diff --git a/core/res/res/values/dimens_material.xml b/core/res/res/values/dimens_material.xml
index c21dc59..e5a3c17 100644
--- a/core/res/res/values/dimens_material.xml
+++ b/core/res/res/values/dimens_material.xml
@@ -42,10 +42,10 @@
     <dimen name="text_size_headline_material">24sp</dimen>
     <dimen name="text_size_title_material">20sp</dimen>
     <dimen name="text_size_subhead_material">16sp</dimen>
+    <dimen name="text_size_menu_material">16sp</dimen>
     <dimen name="text_size_body_2_material">14sp</dimen>
     <dimen name="text_size_body_1_material">14sp</dimen>
     <dimen name="text_size_caption_material">12sp</dimen>
-    <dimen name="text_size_menu_material">14sp</dimen>
     <dimen name="text_size_button_material">14sp</dimen>
 
     <dimen name="text_size_large_material">22sp</dimen>
diff --git a/core/res/res/values/donottranslate_material.xml b/core/res/res/values/donottranslate_material.xml
index 9ed9553..9cf9f6c 100644
--- a/core/res/res/values/donottranslate_material.xml
+++ b/core/res/res/values/donottranslate_material.xml
@@ -23,10 +23,10 @@
     <string name="font_family_headline_material">sans-serif</string>
     <string name="font_family_title_material">sans-serif-medium</string>
     <string name="font_family_subhead_material">sans-serif</string>
+    <string name="font_family_menu_material">sans-serif</string>
     <string name="font_family_body_2_material">sans-serif-medium</string>
     <string name="font_family_body_1_material">sans-serif</string>
     <string name="font_family_caption_material">sans-serif</string>
-    <string name="font_family_menu_material">sans-serif-medium</string>
     <string name="font_family_button_material">sans-serif-medium</string>
 
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 60aacf2..c8edad0 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2267,7 +2267,7 @@
   <public type="attr" name="windowReenterTransition" />
   <public type="attr" name="windowSharedElementReturnTransition" />
   <public type="attr" name="windowSharedElementReenterTransition" />
-  <public type="attr" name="contentRatingSystemXml"/>
+  <public type="attr" name="tvContentRatingDescription"/>
   <public type="attr" name="datePickerMode"/>
   <public type="attr" name="timePickerMode"/>
   <public type="attr" name="inset" />
@@ -2518,6 +2518,19 @@
   <public type="style" name="Widget.Material.Button.Borderless.Colored" />
   <public type="style" name="Widget.Material.Light.Button.Borderless.Colored" />
 
+  <public type="style" name="Theme.Leanback.FormWizard"/>
+
+  <public type="style" name="TextAppearance.StatusBar.Material" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Title" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Line2" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Info" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Time" />
+  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Emphasis" />
+
+  <public type="style" name="Widget.Material.Spinner.Form" />
+  <public type="style" name="Widget.Material.Light.Spinner.Form" />
+
   <public-padding type="string" name="l_resource_pad" end="0x01040030" />
 
   <public type="string" name="config_webSettingsDefaultTextEncoding" />
@@ -2528,8 +2541,6 @@
 
   <public-padding type="interpolator" name="l_resource_pad" end="0x010c0010" />
 
-  <public type="style" name="Theme.Leanback.FormWizard"/>
-
   <!-- An interpolator which accelerates fast but decelerates slowly. -->
   <public type="interpolator" name="fast_out_slow_in" />
   <!-- An interpolator which starts with a peak non-zero velocity and decelerates slowly. -->
@@ -2564,23 +2575,4 @@
   <public type="raw" name="loaderror" id="0x01100000"/>
   <!-- WebView error page for when domain lookup fails. @hide @SystemApi -->
   <public type="raw" name="nodomain"/>
-
-  <!-- Base text appearance for SystemUI elements -->
-  <public type="style" name="TextAppearance.StatusBar.Material" />
-  <!-- Base text appearance for notifications -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent" />
-  <!-- Notification text appearance: title -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Title" />
-  <!-- Notification text appearance: additional line of text sandwiched
-       between the title and content -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Line2" />
-  <!-- Notification text appearance: an annotation, e.g. the
-       number of messages in your inbox -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Info" />
-  <!-- Notification text appearance: timestamp -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Time" />
-  <!-- Notification text appearance: a way to highlight a bit of text (for
-       example, to separate the sender from the subject of an email if they
-       are all on the same line) -->
-  <public type="style" name="TextAppearance.StatusBar.Material.EventContent.Emphasis" />
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index e67eae1..c68f355 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2117,6 +2117,11 @@
     <string name="permdesc_bind_call_service">Allows the app to control when and how the user sees the in-call screen.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_bind_connection_service">interact with telephony services</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_bind_connection_service">Allows the app to interact with telephony services to make/receive calls.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_readNetworkUsageHistory">read historical network usage</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_readNetworkUsageHistory">Allows the app to read historical network usage for specific networks and apps.</string>
@@ -3778,8 +3783,9 @@
     <string name="select_input_method">Change keyboard</string>
     <!-- Title of a button to open the settings to enable or disable keyboards, also known as input methods [CHAR LIMIT=30] -->
     <string name="configure_input_methods">Choose keyboards</string>
-    <!-- Summary text of a toggle switch to enable/disable use of the physical keyboard in the input method selector [CHAR LIMIT=25] -->
-    <string name="use_physical_keyboard">Physical keyboard</string>
+    <!-- Summary text of a toggle switch to enable/disable use of the IME while a physical
+         keyboard is connected[CHAR LIMIT=25] -->
+    <string name="show_ime">Show input method</string>
     <!-- Title of the physical keyboard category in the input method selector [CHAR LIMIT=10] -->
     <string name="hardware">Hardware</string>
 
@@ -4839,24 +4845,28 @@
     <string name="day_of_week_label_typeface">sans-serif</string>
 
     <!-- Notify use that they are in Lock-to-app -->
-    <string name="lock_to_app_toast">You are in lock-to-app mode. To exit, touch and hold the Recents button</string>
+    <string name="lock_to_app_toast">To unpin this screen, touch and hold  Back and Recents at the same time.</string>
+    <!-- Notify use that they are in Lock-to-app in accessibility mode -->
+    <string name="lock_to_app_toast_accessible">To unpin this screen, touch and hold Recents.</string>
     <!-- Notify user that they are locked in lock-to-app mode -->
-    <string name="lock_to_app_toast_locked">You are in Lock-to-App mode.</string>
+    <string name="lock_to_app_toast_locked">Screen is pinned. Unpinning isn\'t allowed by your organization.</string>
     <!-- Lock-to-app dialog title. -->
-    <string name="lock_to_app_title">Use lock-to-app?</string>
+    <string name="lock_to_app_title">Use screen pinning?</string>
     <!-- Lock-to-app dialog description. -->
-    <string name="lock_to_app_description">Lock-to-app locks the display in a single app.\n\nTo exit, touch and hold the Recents button.</string>
+    <string name="lock_to_app_description">Screen pinning locks the display in a single view.\n\nTo exit, touch and hold Back and Recents at the same time.</string>
+    <!-- Lock-to-app dialog description when in accessibility mode. -->
+    <string name="lock_to_app_description_accessible">Screen pinning locks the display in a single view.\n\nTo exit, touch and hold Recents.</string>
     <!-- Lock-to-app negative response. -->
     <string name="lock_to_app_negative">NO, THANKS</string>
     <!-- Lock-to-app positive response. -->
     <string name="lock_to_app_positive">START</string>
     <!-- Starting lock-to-app indication. -->
-    <string name="lock_to_app_start">Locked to app</string>
+    <string name="lock_to_app_start">Screen pinned</string>
     <!-- Exting lock-to-app indication. -->
-    <string name="lock_to_app_exit">No longer locked to app</string>
+    <string name="lock_to_app_exit">Screen unpinned</string>
 
     <!-- Lock-to-app checkbox for lock on exit -->
-    <string name="lock_to_app_use_screen_lock">Ask for %1$s before exiting</string>
+    <string name="lock_to_app_use_screen_lock">Ask for %1$s before unpinning</string>
 
     <!-- Lock-to-app unlock pin string -->
     <string name="lock_to_app_unlock_pin">PIN</string>
@@ -4867,35 +4877,35 @@
 
     <!-- Range specific TV content rating system strings for AM TV -->
     <string name="display_name_amtvrs" translatable="false">AM-TV-RS</string>
-    <string name="description_amtvrs">Range specific TV content rating system strings for Armenia</string>
+    <string name="description_amtvrs" translatable="false">Range specific TV content rating system strings for Armenia</string>
     <string name="display_name_amtvrs_y" translatable="false">Y</string>
     <string name="display_name_amtvrs_y7" translatable="false">Y7</string>
     <string name="display_name_amtvrs_ga" translatable="false">GA</string>
     <string name="display_name_amtvrs_tw" translatable="false">TW</string>
     <string name="display_name_amtvrs_t" translatable="false">T</string>
     <string name="display_name_amtvrs_a" translatable="false">A</string>
-    <string name="description_amtvrs_y">Suitable for ages 2–11</string>
-    <string name="description_amtvrs_y7">Suitable for ages 7–16</string>
-    <string name="description_amtvrs_ga">Suitable for general audiences</string>
-    <string name="description_amtvrs_tw">Suitable for teens ages 9 and up</string>
-    <string name="description_amtvrs_t">Suitable for teens ages 12 and up</string>
-    <string name="description_amtvrs_a">Suitable only for adults ages 18 and up</string>
+    <string name="description_amtvrs_y" translatable="false">Suitable for ages 2-11</string>
+    <string name="description_amtvrs_y7" translatable="false">Suitable for ages 7-16</string>
+    <string name="description_amtvrs_ga" translatable="false">Suitable for general audiences</string>
+    <string name="description_amtvrs_tw" translatable="false">Suitable for teens ages 9 and up</string>
+    <string name="description_amtvrs_t" translatable="false">Suitable for teens ages 12 and up</string>
+    <string name="description_amtvrs_a" translatable="false">Suitable only for adults ages 18 and up</string>
 
     <!-- Age specific TV content rating system strings for AM TV -->
     <string name="display_name_amtvas" translatable="false">AM-TV-AS</string>
-    <string name="description_amtvas">Age specific TV content rating system strings for Armenia</string>
+    <string name="description_amtvas" translatable="false">Age specific TV content rating system strings for Armenia</string>
     <string name="display_name_amtvas_ec" translatable="false">EC</string>
     <string name="display_name_amtvas_e" translatable="false">E</string>
     <string name="display_name_amtvas_e9" translatable="false">E9</string>
     <string name="display_name_amtvas_t" translatable="false">T</string>
     <string name="display_name_amtvas_m" translatable="false">M</string>
     <string name="display_name_amtvas_ao" translatable="false">AO</string>
-    <string name="description_amtvas_ec">Suitable for ages 2 and up</string>
-    <string name="description_amtvas_e">Suitable for ages 5 and up</string>
-    <string name="description_amtvas_e9">Suitable for ages 9 and up</string>
-    <string name="description_amtvas_t">Suitable for ages 12 and up</string>
-    <string name="description_amtvas_m">Suitable for ages 16 and up</string>
-    <string name="description_amtvas_ao">Suitable for ages 17 and up</string>
+    <string name="description_amtvas_ec" translatable="false">Suitable for ages 2 and up</string>
+    <string name="description_amtvas_e" translatable="false">Suitable for ages 5 and up</string>
+    <string name="description_amtvas_e9" translatable="false">Suitable for ages 9 and up</string>
+    <string name="description_amtvas_t" translatable="false">Suitable for ages 12 and up</string>
+    <string name="description_amtvas_m" translatable="false">Suitable for ages 16 and up</string>
+    <string name="description_amtvas_ao" translatable="false">Suitable for ages 17 and up</string>
 
     <!-- TV content rating system strings for AR TV -->
     <string name="display_name_artv" translatable="false">AR-TV</string>
@@ -4903,10 +4913,10 @@
     <string name="display_name_artv_13" translatable="false">Apto para mayores de 13 años</string>
     <string name="display_name_artv_16" translatable="false">Apto para mayores de 16 años</string>
     <string name="display_name_artv_18" translatable="false">Apto para mayores de 18 años</string>
-    <string name="description_artv_all">Suitable for all audiences. Programs may contain mild violence, language and mature situations</string>
-    <string name="description_artv_13">Suitable for ages 13 and up. Programs may contain mild to moderate language and mild violence and sexual references</string>
-    <string name="description_artv_16">Suitable for ages 16 and up. Programs may contain more intensive violence and coarse language, partial nudity and moderate sexual references</string>
-    <string name="description_artv_18">Suitable for mature audiences only. Programs contain strong violence, coarse language and explicit sexual references</string>
+    <string name="description_artv_all" translatable="false">Suitable for all audiences. Programs may contain mild violence, language and mature situations</string>
+    <string name="description_artv_13" translatable="false">Suitable for ages 13 and up. Programs may contain mild to moderate language and mild violence and sexual references</string>
+    <string name="description_artv_16" translatable="false">Suitable for ages 16 and up. Programs may contain more intensive violence and coarse language, partial nudity and moderate sexual references</string>
+    <string name="description_artv_18" translatable="false">Suitable for mature audiences only. Programs contain strong violence, coarse language and explicit sexual references</string>
 
     <!-- TV content rating system strings for AU TV -->
     <string name="display_name_autv" translatable="false">Australian TV Classification</string>
@@ -4917,13 +4927,13 @@
     <string name="display_name_autv_ma15" translatable="false">MA 15+</string>
     <string name="display_name_autv_r18" translatable="false">R 18+</string>
     <string name="display_name_autv_x18" translatable="false">X 18+</string>
-    <string name="description_autv_ctc">This has advertising approval, but is not yet classified</string>
-    <string name="description_autv_g">The content is very mild in impact, and suitable for everyone</string>
-    <string name="description_autv_pg">The content is mild in impact, but it may contain content that children find confusing or upsetting and may require the guidance or parents and guardians</string>
-    <string name="description_autv_m">The content is moderate in impact, and it is recommended for teenagers aged 15 years and over</string>
-    <string name="description_autv_ma15">The content is strong in impact, and it is legally restricted to persons 15 years and over</string>
-    <string name="description_autv_r18">The content is high in impact, and it is restricted to adults</string>
-    <string name="description_autv_x18">The content is restricted to adults. This classification is a special and legally restricted category which contains only sexually explicit content</string>
+    <string name="description_autv_ctc" translatable="false">This has advertising approval, but is not yet classified</string>
+    <string name="description_autv_g" translatable="false">The content is very mild in impact, and suitable for everyone</string>
+    <string name="description_autv_pg" translatable="false">The content is mild in impact, but it may contain content that children find confusing or upsetting and may require the guidance or parents and guardians</string>
+    <string name="description_autv_m" translatable="false">The content is moderate in impact, and it is recommended for teenagers aged 15 years and over</string>
+    <string name="description_autv_ma15" translatable="false">The content is strong in impact, and it is legally restricted to persons 15 years and over</string>
+    <string name="description_autv_r18" translatable="false">The content is high in impact, and it is restricted to adults</string>
+    <string name="description_autv_x18" translatable="false">The content is restricted to adults. This classification is a special and legally restricted category which contains only sexually explicit content</string>
 
     <!-- TV content rating system strings for BG TV -->
     <string name="display_name_bgtv" translatable="false">BG-TV</string>
@@ -4932,11 +4942,11 @@
     <string name="display_name_bgtv_c" translatable="false">C</string>
     <string name="display_name_bgtv_d" translatable="false">D</string>
     <string name="display_name_bgtv_x" translatable="false">X</string>
-    <string name="description_bgtv_a">Recommended to children. When the film confirms the ideals of humanism or popularizes the national and world cultures or contributes to upbringing children</string>
-    <string name="description_bgtv_b">No restrictive recommendations from the Committee. When the film is in no way contrary to the universal rules of morality in this country, has no restrictive recommendations from the Committee and does not fall in rating A</string>
-    <string name="description_bgtv_c">No persons under the age of 12 are admitted unless accompanied by an adult. When the film contains certain erotic scenes or scenes with drinking, taking drugs or stimulants or a few scenes of violence</string>
-    <string name="description_bgtv_d">No persons under the age of 16 are admitted. When the film contains quite a number of erotic scenes or scenes with drinking, taking drugs or stimulants or a considerable number of scenes showing violence</string>
-    <string name="description_bgtv_x">No persons under the age of 18 are admitted. When the film is naturalistically erotic or shows violence in an ostentatious manner</string>
+    <string name="description_bgtv_a" translatable="false">Recommended to children. When the film confirms the ideals of humanism or popularizes the national and world cultures or contributes to upbringing children</string>
+    <string name="description_bgtv_b" translatable="false">No restrictive recommendations from the Committee. When the film is in no way contrary to the universal rules of morality in this country, has no restrictive recommendations from the Committee and does not fall in rating A</string>
+    <string name="description_bgtv_c" translatable="false">No persons under the age of 12 are admitted unless accompanied by an adult. When the film contains certain erotic scenes or scenes with drinking, taking drugs or stimulants or a few scenes of violence</string>
+    <string name="description_bgtv_d" translatable="false">No persons under the age of 16 are admitted. When the film contains quite a number of erotic scenes or scenes with drinking, taking drugs or stimulants or a considerable number of scenes showing violence</string>
+    <string name="description_bgtv_x" translatable="false">No persons under the age of 18 are admitted. When the film is naturalistically erotic or shows violence in an ostentatious manner</string>
 
     <!-- TV content rating system strings for BR TV -->
     <string name="display_name_brtv" translatable="false">Brazil Content Rating</string>
@@ -4946,12 +4956,12 @@
     <string name="display_name_brtv_14" translatable="false">14 anos</string>
     <string name="display_name_brtv_16" translatable="false">16 anos</string>
     <string name="display_name_brtv_18" translatable="false">18 anos</string>
-    <string name="description_brtv_l">Content is suitable for all audiences</string>
-    <string name="description_brtv_10">Content suitable for viewers over the age of 10</string>
-    <string name="description_brtv_12">Content suitable for viewers over the age of 12</string>
-    <string name="description_brtv_14">Content suitable for viewers over the age of 14</string>
-    <string name="description_brtv_16">Content suitable for viewers over the age of 16</string>
-    <string name="description_brtv_18">Content suitable for viewers over the age of 18</string>
+    <string name="description_brtv_l" translatable="false">Content is suitable for all audiences</string>
+    <string name="description_brtv_10" translatable="false">Content suitable for viewers over the age of 10</string>
+    <string name="description_brtv_12" translatable="false">Content suitable for viewers over the age of 12</string>
+    <string name="description_brtv_14" translatable="false">Content suitable for viewers over the age of 14</string>
+    <string name="description_brtv_16" translatable="false">Content suitable for viewers over the age of 16</string>
+    <string name="description_brtv_18" translatable="false">Content suitable for viewers over the age of 18</string>
 
     <!-- TV content rating system strings for CA TV -->
     <string name="display_name_catv" translatable="false">Canadian TV Classification System</string>
@@ -4962,20 +4972,20 @@
     <string name="display_name_catv_pg" translatable="false">PG</string>
     <string name="display_name_catv_14" translatable="false">14+</string>
     <string name="display_name_catv_18" translatable="false">18+</string>
-    <string name="description_catv_exempt">Shows which are exempt from ratings (such as news and sports programming) will not display an on-screen rating at all</string>
-    <string name="description_catv_c">Programming suitable for children ages of 2–7 years. No profanity or sexual content of any level allowed. Contains little violence</string>
-    <string name="description_catv_c8">Suitable for children ages 8+. Low level violence and fantasy horror is allowed. No foul language is allowed, but occasional "socially offensive and discriminatory" language is allowed if in the context of the story. No sexual content of any level allowed</string>
-    <string name="description_catv_g">Suitable for general audiences. Programming suitable for the entire family with mild violence, and mild profanity and/or censored language</string>
-    <string name="description_catv_pg">Parental guidance. Moderate violence and moderate profanity is allowed, as is brief nudity and sexual references if important to the context of the story</string>
-    <string name="description_catv_14">Programming intended for viewers ages 14 and older. May contain strong violence and strong profanity, and depictions of sexual activity as long as they are within the context of a story</string>
-    <string name="description_catv_18">Programming intended for viewers ages 18 and older. May contain explicit violence and sexual activity</string>
+    <string name="description_catv_exempt" translatable="false">Shows which are exempt from ratings (such as news and sports programming) will not display an on-screen rating at all</string>
+    <string name="description_catv_c" translatable="false">Programming suitable for children ages of 2-7 years. No profanity or sexual content of any level allowed. Contains little violence</string>
+    <string name="description_catv_c8" translatable="false">Suitable for children ages 8+. Low level violence and fantasy horror is allowed. No foul language is allowed, but occasional "socially offensive and discriminatory" language is allowed if in the context of the story. No sexual content of any level allowed</string>
+    <string name="description_catv_g" translatable="false">Suitable for general audiences. Programming suitable for the entire family with mild violence, and mild profanity and/or censored language</string>
+    <string name="description_catv_pg" translatable="false">Parental guidance. Moderate violence and moderate profanity is allowed, as is brief nudity and sexual references if important to the context of the story</string>
+    <string name="description_catv_14" translatable="false">Programming intended for viewers ages 14 and older. May contain strong violence and strong profanity, and depictions of sexual activity as long as they are within the context of a story</string>
+    <string name="description_catv_18" translatable="false">Programming intended for viewers ages 18 and older. May contain explicit violence and sexual activity</string>
 
     <!-- TV content rating system strings for CH TV -->
     <string name="display_name_chtv" translatable="false">CH-TV</string>
     <string name="display_name_chtv_all" translatable="false">All ages</string>
     <string name="display_name_chtv_red" translatable="false">Red rectangle</string>
-    <string name="description_chtv_all">This program is suitable for all ages</string>
-    <string name="description_chtv_red">This program contains scenes that may hurt sensitive people, therefore the red symbol will be displayed</string>
+    <string name="description_chtv_all" translatable="false">This program is suitable for all ages</string>
+    <string name="description_chtv_red" translatable="false">This program contains scenes that may hurt sensitive people, therefore the red symbol will be displayed</string>
 
     <!-- TV content rating system strings for CL TV -->
     <string name="display_name_cltv" translatable="false">CL-TV</string>
@@ -4986,13 +4996,13 @@
     <string name="display_name_cltv_f" translatable="false">F</string>
     <string name="display_name_cltv_r" translatable="false">R</string>
     <string name="display_name_cltv_a" translatable="false">A</string>
-    <string name="description_cltv_i">Programs suitable for all children</string>
-    <string name="description_cltv_i7">Programs recommended for children ages 7 or older</string>
-    <string name="description_cltv_i10">Programs recommended for children ages 10 or older</string>
-    <string name="description_cltv_i12">Programs recommended for children and teens ages 12 or older</string>
-    <string name="description_cltv_f">Programs suitable for a general audience, with content appropriate for all ages</string>
-    <string name="description_cltv_r">Programs may content not suitable for children not accompanied by an adult</string>
-    <string name="description_cltv_a">Programs suitable for adult audiences only (ages 18 or older), may contain coarse language, and sexual or explicit situations</string>
+    <string name="description_cltv_i" translatable="false">Programs suitable for all children</string>
+    <string name="description_cltv_i7" translatable="false">Programs recommended for children ages 7 or older</string>
+    <string name="description_cltv_i10" translatable="false">Programs recommended for children ages 10 or older</string>
+    <string name="description_cltv_i12" translatable="false">Programs recommended for children and teens ages 12 or older</string>
+    <string name="description_cltv_f" translatable="false">Programs suitable for a general audience, with content appropriate for all ages</string>
+    <string name="description_cltv_r" translatable="false">Programs may content not suitable for children not accompanied by an adult</string>
+    <string name="description_cltv_a" translatable="false">Programs suitable for adult audiences only (ages 18 or older), may contain coarse language, and sexual or explicit situations</string>
 
     <!-- TV content rating system strings for DE TV -->
     <string name="display_name_detv" translatable="false">DE-TV</string>
@@ -5000,10 +5010,10 @@
     <string name="display_name_detv_12" translatable="false">ab 12 Jahren</string>
     <string name="display_name_detv_16" translatable="false">ab 16 Jahren</string>
     <string name="display_name_detv_18" translatable="false">ab 18 Jahren</string>
-    <string name="description_detv_all">The program is suitable for all ages</string>
-    <string name="description_detv_12">The program is not suitable for viewers under the age of 12</string>
-    <string name="description_detv_16">The program is not suitable for viewers under the age of 16</string>
-    <string name="description_detv_18">The program is not suitable for viewers under the age of 18</string>
+    <string name="description_detv_all" translatable="false">The program is suitable for all ages</string>
+    <string name="description_detv_12" translatable="false">The program is not suitable for viewers under the age of 12</string>
+    <string name="description_detv_16" translatable="false">The program is not suitable for viewers under the age of 16</string>
+    <string name="description_detv_18" translatable="false">The program is not suitable for viewers under the age of 18</string>
 
     <!-- TV content rating system strings for DK TV -->
     <string name="display_name_dktv" translatable="false">DK-TV</string>
@@ -5011,10 +5021,10 @@
     <string name="display_name_dktv_y" translatable="false">Yellow symbol</string>
     <string name="display_name_dktv_r" translatable="false">Red symbol</string>
     <string name="display_name_dktv_b" translatable="false">Blue symbol</string>
-    <string name="description_dktv_g">programs suitable for all ages</string>
-    <string name="description_dktv_y">programs suitable children accompanied by an adult</string>
-    <string name="description_dktv_r">programs containing material with more intensive content </string>
-    <string name="description_dktv_b">programs containing explicit content and strictly for adults only</string>
+    <string name="description_dktv_g" translatable="false">programs suitable for all ages</string>
+    <string name="description_dktv_y" translatable="false">programs suitable children accompanied by an adult</string>
+    <string name="description_dktv_r" translatable="false">programs containing material with more intensive content </string>
+    <string name="description_dktv_b" translatable="false">programs containing explicit content and strictly for adults only</string>
 
     <!-- TV content rating system strings for ES TV -->
     <string name="display_name_estv" translatable="false">ES-TV</string>
@@ -5025,13 +5035,13 @@
     <string name="display_name_estv_12" translatable="false">12</string>
     <string name="display_name_estv_16" translatable="false">16</string>
     <string name="display_name_estv_18" translatable="false">18</string>
-    <string name="description_estv_tp">Recommended for all ages</string>
-    <string name="description_estv_i">Specially recommended for preschoolers and kids</string>
-    <string name="description_estv_7">Recommended for people older than 7 years old</string>
-    <string name="description_estv_7i">Recommended for kids older than 7 years old</string>
-    <string name="description_estv_12">Recommended for people older than 12 years old</string>
-    <string name="description_estv_16">Recommended for people older than 16 years old</string>
-    <string name="description_estv_18">Recommended for people older than 18 years old</string>
+    <string name="description_estv_tp" translatable="false">Recommended for all ages</string>
+    <string name="description_estv_i" translatable="false">Specially recommended for preschoolers and kids</string>
+    <string name="description_estv_7" translatable="false">Recommended for people older than 7 years old</string>
+    <string name="description_estv_7i" translatable="false">Recommended for kids older than 7 years old</string>
+    <string name="description_estv_12" translatable="false">Recommended for people older than 12 years old</string>
+    <string name="description_estv_16" translatable="false">Recommended for people older than 16 years old</string>
+    <string name="description_estv_18" translatable="false">Recommended for people older than 18 years old</string>
 
     <!-- TV content rating system strings for FI TV -->
     <string name="display_name_fitv" translatable="false">FI-TV</string>
@@ -5040,11 +5050,11 @@
     <string name="display_name_fitv_k12" translatable="false">K12</string>
     <string name="display_name_fitv_k16" translatable="false">K16</string>
     <string name="display_name_fitv_k18" translatable="false">K18</string>
-    <string name="description_fitv_s">Allowed at all times</string>
-    <string name="description_fitv_k7">Not recommended for children under 7</string>
-    <string name="description_fitv_k12">Not recommended for children under 12</string>
-    <string name="description_fitv_k16">Not recommended for children under 16</string>
-    <string name="description_fitv_k18">Not recommended for children under 18</string>
+    <string name="description_fitv_s" translatable="false">Allowed at all times</string>
+    <string name="description_fitv_k7" translatable="false">Not recommended for children under 7</string>
+    <string name="description_fitv_k12" translatable="false">Not recommended for children under 12</string>
+    <string name="description_fitv_k16" translatable="false">Not recommended for children under 16</string>
+    <string name="description_fitv_k18" translatable="false">Not recommended for children under 18</string>
 
     <!-- TV content rating system strings for FR TV -->
     <string name="display_name_frtv" translatable="false">FR-TV</string>
@@ -5053,11 +5063,11 @@
     <string name="display_name_frtv_12" translatable="false">Déconseillé aux -12 ans</string>
     <string name="display_name_frtv_16" translatable="false">Déconseillé aux -16 ans</string>
     <string name="display_name_frtv_18" translatable="false">Déconseillé aux -18 ans</string>
-    <string name="description_frtv_all">Appropriate for all ages</string>
-    <string name="description_frtv_10">Not recommended for children under 10</string>
-    <string name="description_frtv_12">Not recommended for children under 12</string>
-    <string name="description_frtv_16">Not recommended for children under 16</string>
-    <string name="description_frtv_18">Not recommended for persons under 18</string>
+    <string name="description_frtv_all" translatable="false">Appropriate for all ages</string>
+    <string name="description_frtv_10" translatable="false">Not recommended for children under 10</string>
+    <string name="description_frtv_12" translatable="false">Not recommended for children under 12</string>
+    <string name="description_frtv_16" translatable="false">Not recommended for children under 16</string>
+    <string name="description_frtv_18" translatable="false">Not recommended for persons under 18</string>
 
     <!-- TV content rating system strings for GR TV -->
     <string name="display_name_grtv" translatable="false">GR-TV</string>
@@ -5066,20 +5076,20 @@
     <string name="display_name_grtv_12" translatable="false">White triangle in orange background</string>
     <string name="display_name_grtv_15" translatable="false">White square in purple background</string>
     <string name="display_name_grtv_18" translatable="false">White X in red background</string>
-    <string name="description_grtv_all">Suitable for all ages</string>
-    <string name="description_grtv_10">Parental consent suggested</string>
-    <string name="description_grtv_12">Required parental consent</string>
-    <string name="description_grtv_15">Suitable for minors over the age of 15</string>
-    <string name="description_grtv_18">Suitable only for adults profanity before midnight is punishable by fine, except when used in the context of the program</string>
+    <string name="description_grtv_all" translatable="false">Suitable for all ages</string>
+    <string name="description_grtv_10" translatable="false">Parental consent suggested</string>
+    <string name="description_grtv_12" translatable="false">Required parental consent</string>
+    <string name="description_grtv_15" translatable="false">Suitable for minors over the age of 15</string>
+    <string name="description_grtv_18" translatable="false">Suitable only for adults profanity before midnight is punishable by fine, except when used in the context of the program</string>
 
     <!-- TV content rating system strings for HK TV -->
     <string name="display_name_hktv" translatable="false">HK-TV</string>
     <string name="display_name_hktv_g" translatable="false">G</string>
     <string name="display_name_hktv_pg" translatable="false">PG</string>
     <string name="display_name_hktv_m" translatable="false">M</string>
-    <string name="description_hktv_g">For general audiences</string>
-    <string name="description_hktv_pg">Programs are unsuitable for children, parental guidance is recommended</string>
-    <string name="description_hktv_m">Programs are recommended only for adult viewers above the age of 18</string>
+    <string name="description_hktv_g" translatable="false">For general audiences</string>
+    <string name="description_hktv_pg" translatable="false">Programs are unsuitable for children, parental guidance is recommended</string>
+    <string name="description_hktv_m" translatable="false">Programs are recommended only for adult viewers above the age of 18</string>
 
     <!-- TV content rating system strings for HU TV -->
     <string name="display_name_hutv" translatable="false">HU-TV</string>
@@ -5089,12 +5099,12 @@
     <string name="display_name_hutv_12" translatable="false">12</string>
     <string name="display_name_hutv_16" translatable="false">16</string>
     <string name="display_name_hutv_18" translatable="false">18</string>
-    <string name="description_hutv_u">Programs can be viewed by any age</string>
-    <string name="description_hutv_cf">Programs recommended for children. It is an optional rating, there is no obligation for broadcasters to indicate it</string>
-    <string name="description_hutv_6">Programs not recommended for children below the age of 6, may not contain any violence or sexual content</string>
-    <string name="description_hutv_12">Programs not recommended for children below the age of 12, may contain light sexual content or explicit language</string>
-    <string name="description_hutv_16">Programs not recommended for teens and children below the age of 16, may contain more intensive violence and sexual content</string>
-    <string name="description_hutv_18">The program is recommended only for adult viewers (for ages 18 and up), may contain explicit violence and explicit sexual content</string>
+    <string name="description_hutv_u" translatable="false">Programs can be viewed by any age</string>
+    <string name="description_hutv_cf" translatable="false">Programs recommended for children. It is an optional rating, there is no obligation for broadcasters to indicate it</string>
+    <string name="description_hutv_6" translatable="false">Programs not recommended for children below the age of 6, may not contain any violence or sexual content</string>
+    <string name="description_hutv_12" translatable="false">Programs not recommended for children below the age of 12, may contain light sexual content or explicit language</string>
+    <string name="description_hutv_16" translatable="false">Programs not recommended for teens and children below the age of 16, may contain more intensive violence and sexual content</string>
+    <string name="description_hutv_18" translatable="false">The program is recommended only for adult viewers (for ages 18 and up), may contain explicit violence and explicit sexual content</string>
 
     <!-- TV content rating system strings for ID TV -->
     <string name="display_name_idtv" translatable="false">ID-TV</string>
@@ -5106,14 +5116,14 @@
     <string name="display_name_idtv_r" translatable="false">R</string>
     <string name="display_name_idtv_r_bo" translatable="false">R-BO</string>
     <string name="display_name_idtv_d" translatable="false">D</string>
-    <string name="description_idtv_p">Suitable for children from ages 2 through 11</string>
-    <string name="description_idtv_a">Suitable for teens and children from ages 7 through 16</string>
-    <string name="description_idtv_a_bo">Suitable for children ages 5 through 10, with parental guidance or permission</string>
-    <string name="description_idtv_su">Suitable for general audiences</string>
-    <string name="description_idtv_bo">Parental guidance suggested for ages 5 and under</string>
-    <string name="description_idtv_r">Suitable for teens from ages 13 through 17</string>
-    <string name="description_idtv_r_bo">Suitable for teens with parental guidance or permission</string>
-    <string name="description_idtv_d">Suitable for viewers over 18 and older only</string>
+    <string name="description_idtv_p" translatable="false">Suitable for children from ages 2 through 11</string>
+    <string name="description_idtv_a" translatable="false">Suitable for teens and children from ages 7 through 16</string>
+    <string name="description_idtv_a_bo" translatable="false">Suitable for children ages 5 through 10, with parental guidance or permission</string>
+    <string name="description_idtv_su" translatable="false">Suitable for general audiences</string>
+    <string name="description_idtv_bo" translatable="false">Parental guidance suggested for ages 5 and under</string>
+    <string name="description_idtv_r" translatable="false">Suitable for teens from ages 13 through 17</string>
+    <string name="description_idtv_r_bo" translatable="false">Suitable for teens with parental guidance or permission</string>
+    <string name="description_idtv_d" translatable="false">Suitable for viewers over 18 and older only</string>
 
     <!-- TV content rating system strings for IE TV -->
     <string name="display_name_ietv" translatable="false">RTÉ programme classifications</string>
@@ -5122,11 +5132,11 @@
     <string name="display_name_ietv_ya" translatable="false">YA</string>
     <string name="display_name_ietv_ps" translatable="false">PS</string>
     <string name="display_name_ietv_ma" translatable="false">MA</string>
-    <string name="description_ietv_ga">Suitable for all ages</string>
-    <string name="description_ietv_ch">Suitable for children ages 5 to 10, may contain comedic violence or action fantasy violence</string>
-    <string name="description_ietv_ya">Suitable for adolescent audiences, may contain thematic elements that would appeal to teenagers</string>
-    <string name="description_ietv_ps">Suitable for more mature viewers, more mature themes may be present</string>
-    <string name="description_ietv_ma">Most restrictive classification, allowing for heavy subject matter and coarse language</string>
+    <string name="description_ietv_ga" translatable="false">Suitable for all ages</string>
+    <string name="description_ietv_ch" translatable="false">Suitable for children ages 5 to 10, may contain comedic violence or action fantasy violence</string>
+    <string name="description_ietv_ya" translatable="false">Suitable for adolescent audiences, may contain thematic elements that would appeal to teenagers</string>
+    <string name="description_ietv_ps" translatable="false">Suitable for more mature viewers, more mature themes may be present</string>
+    <string name="description_ietv_ma" translatable="false">Most restrictive classification, allowing for heavy subject matter and coarse language</string>
 
     <!-- TV content rating system strings for IL TV -->
     <string name="display_name_iltv" translatable="false">IL-TV</string>
@@ -5135,11 +5145,11 @@
     <string name="display_name_iltv_15" translatable="false">15+</string>
     <string name="display_name_iltv_18" translatable="false">18+</string>
     <string name="display_name_iltv_e" translatable="false">E</string>
-    <string name="description_iltv_g">General audience; anyone, regardless of age, can view the program, usually news and children\'s programming</string>
-    <string name="description_iltv_12">Suitable for teens and children ages 12 and over, no child under 12 are permitted to view the program</string>
-    <string name="description_iltv_15">Suitable for teens ages 15 and over, no child under 15 may view the programme</string>
-    <string name="description_iltv_18">Suitable for adults only, no minors may view the programme</string>
-    <string name="description_iltv_e">Exempt from classification</string>
+    <string name="description_iltv_g" translatable="false">General audience; anyone, regardless of age, can view the program, usually news and children\'s programming</string>
+    <string name="description_iltv_12" translatable="false">Suitable for teens and children ages 12 and over, no child under 12 are permitted to view the program</string>
+    <string name="description_iltv_15" translatable="false">Suitable for teens ages 15 and over, no child under 15 may view the programme</string>
+    <string name="description_iltv_18" translatable="false">Suitable for adults only, no minors may view the programme</string>
+    <string name="description_iltv_e" translatable="false">Exempt from classification</string>
 
     <!-- TV content rating system strings for IN TV -->
     <string name="display_name_intv" translatable="false">IN-TV</string>
@@ -5147,10 +5157,10 @@
     <string name="display_name_intv_u/a" translatable="false">U/A</string>
     <string name="display_name_intv_a" translatable="false">A</string>
     <string name="display_name_intv_s" translatable="false">S</string>
-    <string name="description_intv_u">Unrestricted public exhibition</string>
-    <string name="description_intv_u/a">Unrestricted public exhibition, but with a caution regarding parental guidance to those under 12 years of age</string>
-    <string name="description_intv_a">Public exhibition restricted to adults 18 years of age and older only</string>
-    <string name="description_intv_s">Public exhibition restricted to members of any profession or any class of persons</string>
+    <string name="description_intv_u" translatable="false">Unrestricted public exhibition</string>
+    <string name="description_intv_u/a" translatable="false">Unrestricted public exhibition, but with a caution regarding parental guidance to those under 12 years of age</string>
+    <string name="description_intv_a" translatable="false">Public exhibition restricted to adults 18 years of age and older only</string>
+    <string name="description_intv_s" translatable="false">Public exhibition restricted to members of any profession or any class of persons</string>
 
     <!-- TV content rating system strings for IS TV -->
     <string name="display_name_istv" translatable="false">IS-TV</string>
@@ -5161,13 +5171,13 @@
     <string name="display_name_istv_14" translatable="false">14</string>
     <string name="display_name_istv_16" translatable="false">16</string>
     <string name="display_name_istv_18" translatable="false">18</string>
-    <string name="description_istv_l">Programs suitable for all ages</string>
-    <string name="description_istv_7">Programs suitable for ages 7 and older</string>
-    <string name="description_istv_10">Programs suitable for ages 10 and older</string>
-    <string name="description_istv_12">Programs suitable for ages 12 and older</string>
-    <string name="description_istv_14">Programs suitable for ages 14 and older</string>
-    <string name="description_istv_16">Programs suitable for ages 16 and older</string>
-    <string name="description_istv_18">Programs suitable for ages 18 and older</string>
+    <string name="description_istv_l" translatable="false">Programs suitable for all ages</string>
+    <string name="description_istv_7" translatable="false">Programs suitable for ages 7 and older</string>
+    <string name="description_istv_10" translatable="false">Programs suitable for ages 10 and older</string>
+    <string name="description_istv_12" translatable="false">Programs suitable for ages 12 and older</string>
+    <string name="description_istv_14" translatable="false">Programs suitable for ages 14 and older</string>
+    <string name="description_istv_16" translatable="false">Programs suitable for ages 16 and older</string>
+    <string name="description_istv_18" translatable="false">Programs suitable for ages 18 and older</string>
 
     <!-- TV content rating system strings for KR TV -->
     <string name="display_name_krtv" translatable="false">KR-TV</string>
@@ -5176,11 +5186,11 @@
     <string name="display_name_krtv_12" translatable="false">12세이상시청가</string>
     <string name="display_name_krtv_15" translatable="false">15세이상시청가</string>
     <string name="display_name_krtv_19" translatable="false">19세이상시청가</string>
-    <string name="description_krtv_all">Appropriate for all ages</string>
-    <string name="description_krtv_7">May contain material inappropriate for children younger than 7, and parental discretion should be used</string>
-    <string name="description_krtv_12">May deemed inappropriate for those younger than 12, and parental discretion should be used</string>
-    <string name="description_krtv_15">May be inappropriate for children under 15, and that parental discretion should be used</string>
-    <string name="description_krtv_19">For adults only</string>
+    <string name="description_krtv_all" translatable="false">Appropriate for all ages</string>
+    <string name="description_krtv_7" translatable="false">May contain material inappropriate for children younger than 7, and parental discretion should be used</string>
+    <string name="description_krtv_12" translatable="false">May deemed inappropriate for those younger than 12, and parental discretion should be used</string>
+    <string name="description_krtv_15" translatable="false">May be inappropriate for children under 15, and that parental discretion should be used</string>
+    <string name="description_krtv_19" translatable="false">For adults only</string>
 
     <!-- TV content rating system strings for MV TV -->
     <string name="display_name_mvtv" translatable="false">MV-TV</string>
@@ -5193,15 +5203,15 @@
     <string name="display_name_mvtv_18" translatable="false">18+</string>
     <string name="display_name_mvtv_21" translatable="false">21+</string>
     <string name="display_name_mvtv_x" translatable="false">X</string>
-    <string name="description_mvtv_y">Young children</string>
-    <string name="description_mvtv_g">General viewing for all ages</string>
-    <string name="description_mvtv_pg">Parental guidance is required unaccompanied children</string>
-    <string name="description_mvtv_pg-12">Parental guidance is required for children under the age of 12</string>
-    <string name="description_mvtv_12">Teens and children aged 12 and older may watch, otherwise restricted</string>
-    <string name="description_mvtv_15">Restricted to viewers aged 15 and above</string>
-    <string name="description_mvtv_18">Restricted to viewers aged 18 and above</string>
-    <string name="description_mvtv_21">Restricted to viewers aged 21 and above</string>
-    <string name="description_mvtv_x">Most restrictive classification, only adults ages 25 and above may view</string>
+    <string name="description_mvtv_y" translatable="false">Young children</string>
+    <string name="description_mvtv_g" translatable="false">General viewing for all ages</string>
+    <string name="description_mvtv_pg" translatable="false">Parental guidance is required unaccompanied children</string>
+    <string name="description_mvtv_pg-12" translatable="false">Parental guidance is required for children under the age of 12</string>
+    <string name="description_mvtv_12" translatable="false">Teens and children aged 12 and older may watch, otherwise restricted</string>
+    <string name="description_mvtv_15" translatable="false">Restricted to viewers aged 15 and above</string>
+    <string name="description_mvtv_18" translatable="false">Restricted to viewers aged 18 and above</string>
+    <string name="description_mvtv_21" translatable="false">Restricted to viewers aged 21 and above</string>
+    <string name="description_mvtv_x" translatable="false">Most restrictive classification, only adults ages 25 and above may view</string>
 
     <!-- TV content rating system strings for MX TV -->
     <string name="display_name_mxtv" translatable="false">MX-TV</string>
@@ -5211,21 +5221,21 @@
     <string name="display_name_mxtv_c" translatable="false">C</string>
     <string name="display_name_mxtv_d" translatable="false">D</string>
     <string name="display_name_mxtv_rc" translatable="false">RC</string>
-    <string name="description_mxtv_a">Appropriate for all ages, parental guidance is recommended for children under 7 years</string>
-    <string name="description_mxtv_b">Designed for ages 12 and older, may contain some sexual situations, mild violence, and mild language</string>
-    <string name="description_mxtv_b-15">Designed for ages 15 and up, slightly more intensive than the \'A\' and \'B\' ratings</string>
-    <string name="description_mxtv_c">Designed to be viewed by adults aged 18 or older only, generally more intensive content </string>
-    <string name="description_mxtv_d">Designed to be viewed only by mature adults (at least 21 years of age and over), contains extreme content matter</string>
-    <string name="description_mxtv_rc">Banned from public television in Mexico</string>
+    <string name="description_mxtv_a" translatable="false">Appropriate for all ages, parental guidance is recommended for children under 7 years</string>
+    <string name="description_mxtv_b" translatable="false">Designed for ages 12 and older, may contain some sexual situations, mild violence, and mild language</string>
+    <string name="description_mxtv_b-15" translatable="false">Designed for ages 15 and up, slightly more intensive than the \'A\' and \'B\' ratings</string>
+    <string name="description_mxtv_c" translatable="false">Designed to be viewed by adults aged 18 or older only, generally more intensive content </string>
+    <string name="description_mxtv_d" translatable="false">Designed to be viewed only by mature adults (at least 21 years of age and over), contains extreme content matter</string>
+    <string name="description_mxtv_rc" translatable="false">Banned from public television in Mexico</string>
 
     <!-- TV content rating system strings for MY TV -->
     <string name="display_name_mytv" translatable="false">MY-TV</string>
     <string name="display_name_mytv_u" translatable="false">U</string>
     <string name="display_name_mytv_p13" translatable="false">P13</string>
     <string name="display_name_mytv_18" translatable="false">18</string>
-    <string name="description_mytv_u">General viewing for all ages, can be broadcast anytime</string>
-    <string name="description_mytv_p13">For viewers ages 13 and above, children under 13 needs parental guidance, can be broadcast anytime, but some elements may only be broadcast at night</string>
-    <string name="description_mytv_18">For viewers ages 18 and above only</string>
+    <string name="description_mytv_u" translatable="false">General viewing for all ages, can be broadcast anytime</string>
+    <string name="description_mytv_p13" translatable="false">For viewers ages 13 and above, children under 13 needs parental guidance, can be broadcast anytime, but some elements may only be broadcast at night</string>
+    <string name="description_mytv_18" translatable="false">For viewers ages 18 and above only</string>
 
     <!-- TV content rating system strings for NL TV -->
     <string name="display_name_nltv" translatable="false">NICAM</string>
@@ -5240,31 +5250,31 @@
     <string name="display_name_nltv_9" translatable="false">Let op met kinderen tot 9 jaar</string>
     <string name="display_name_nltv_12" translatable="false">Let op met kinderen tot 12 jaar</string>
     <string name="display_name_nltv_16" translatable="false">Let op met kinderen tot 16 jaar</string>
-    <string name="description_nltv_v">Violence</string>
-    <string name="description_nltv_f">Scary or Disturbing Content </string>
-    <string name="description_nltv_s">Sexual Content</string>
-    <string name="description_nltv_d">Discrimination</string>
-    <string name="description_nltv_da">Drug and/or Alcohol abuse</string>
-    <string name="description_nltv_l">Bad Language</string>
-    <string name="description_nltv_al">All Ages</string>
-    <string name="description_nltv_6">Parental advisory for children under 6</string>
-    <string name="description_nltv_9">Parental advisory for children under 9</string>
-    <string name="description_nltv_12">Parental advisory for children under 12</string>
-    <string name="description_nltv_16">Parental advisory for children under 16</string>
+    <string name="description_nltv_v" translatable="false">Violence\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_f" translatable="false">Scary or Disturbing ContentViolence\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_s" translatable="false">Sexual Content\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_d" translatable="false">Discrimination\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_da" translatable="false">Drug and/or Alcohol abuse\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_l" translatable="false">Bad Language\nApplicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</string>
+    <string name="description_nltv_al" translatable="false">All Ages</string>
+    <string name="description_nltv_6" translatable="false">Parental advisory for children under 6</string>
+    <string name="description_nltv_9" translatable="false">Parental advisory for children under 9</string>
+    <string name="description_nltv_12" translatable="false">Parental advisory for children under 12</string>
+    <string name="description_nltv_16" translatable="false">Parental advisory for children under 16</string>
 
     <!-- TV content rating system strings for NZF(Free) TV -->
     <string name="display_name_nzftv" translatable="false">NZ-Free-TV</string>
-    <string name="description_nzftv">New Zealand\'s free-to-air TV content rating system</string>
+    <string name="description_nzftv" translatable="false">TV content rating system for free-to-air channels in New Zealand</string>
     <string name="display_name_nzftv_g" translatable="false">G</string>
     <string name="display_name_nzftv_pgr" translatable="false">PGR</string>
     <string name="display_name_nzftv_ao" translatable="false">AO</string>
-    <string name="description_nzftv_g">These exclude material likely to harm children under 14 and can screen at any time. Programmes may not necessarily be designed for younger viewers, but must not contain material likely to cause them undue distress or discomfort</string>
-    <string name="description_nzftv_pgr">Programmes more suited to more mature viewers. These are not necessarily unsuitable for children, but viewer discretion is advised, and parents and guardians are encouraged to supervise younger viewers</string>
-    <string name="description_nzftv_ao">Contain material of an adult nature handled in such a way that it is unsuitable for children</string>
+    <string name="description_nzftv_g" translatable="false">These exclude material likely to harm children under 14 and can screen at any time. Programmes may not necessarily be designed for younger viewers, but must not contain material likely to cause them undue distress or discomfort</string>
+    <string name="description_nzftv_pgr" translatable="false">Programmes more suited to more mature viewers. These are not necessarily unsuitable for children, but viewer discretion is advised, and parents and guardians are encouraged to supervise younger viewers</string>
+    <string name="description_nzftv_ao" translatable="false">Contain material of an adult nature handled in such a way that it is unsuitable for children</string>
 
     <!-- TV content rating system strings for NZP(Pay) TV -->
     <string name="display_name_nzptv" translatable="false">NZ-Pay-TV</string>
-    <string name="description_nzptv">New Zealand\'s pay TV content rating system</string>
+    <string name="description_nzptv" translatable="false">TV content rating system for Pay TV channels in New Zealand</string>
     <string name="display_name_nzptv_c" translatable="false">C</string>
     <string name="display_name_nzptv_v" translatable="false">V</string>
     <string name="display_name_nzptv_l" translatable="false">L</string>
@@ -5274,46 +5284,46 @@
     <string name="display_name_nzptv_m" translatable="false">M</string>
     <string name="display_name_nzptv_16" translatable="false">16</string>
     <string name="display_name_nzptv_18" translatable="false">18</string>
-    <string name="description_nzptv_c">Content may offend</string>
-    <string name="description_nzptv_v">Violence</string>
-    <string name="description_nzptv_l">Language</string>
-    <string name="description_nzptv_s">Sexual content</string>
-    <string name="description_nzptv_g">suitable for general audiences</string>
-    <string name="description_nzptv_pg">Parental guidance recommended for under 10</string>
-    <string name="description_nzptv_m">Suitable for mature audiences 13 and up</string>
-    <string name="description_nzptv_16">Suitable for viewers 16 and up</string>
-    <string name="description_nzptv_18">Suitable for viewers 18 and up</string>
+    <string name="description_nzptv_c" translatable="false">Content may offend\nApplicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</string>
+    <string name="description_nzptv_v" translatable="false">Violence\nApplicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</string>
+    <string name="description_nzptv_l" translatable="false">Language\nApplicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</string>
+    <string name="description_nzptv_s" translatable="false">Sexual content\nApplicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</string>
+    <string name="description_nzptv_g" translatable="false">suitable for general audiences</string>
+    <string name="description_nzptv_pg" translatable="false">Parental guidance recommended for under 10</string>
+    <string name="description_nzptv_m" translatable="false">Suitable for mature audiences 13 and up</string>
+    <string name="description_nzptv_16" translatable="false">Suitable for viewers 16 and up</string>
+    <string name="description_nzptv_18" translatable="false">Suitable for viewers 18 and up</string>
 
     <!-- TV content rating system strings for PE TV -->
     <string name="display_name_petv" translatable="false">PE-TV</string>
-    <string name="description_petv">TV content rating system for some Peruvian channels in Peru</string>
+    <string name="description_petv" translatable="false">TV content rating system for some Peruvian channels in Peru</string>
     <string name="display_name_petv_a" translatable="false">Apt</string>
     <string name="display_name_petv_14" translatable="false">14</string>
     <string name="display_name_petv_18" translatable="false">18</string>
-    <string name="description_petv_a">Suitable for all audiences</string>
-    <string name="description_petv_14">Suitable for people aged 14 and above only</string>
-    <string name="description_petv_18">Suitable for people aged 18 and above only</string>
+    <string name="description_petv_a" translatable="false">Suitable for all audiences</string>
+    <string name="description_petv_14" translatable="false">Suitable for people aged 14 and above only</string>
+    <string name="description_petv_18" translatable="false">Suitable for people aged 18 and above only</string>
 
     <!-- TV content rating system strings for America TV in PE -->
     <string name="display_name_peatv" translatable="false">PE-ATV</string>
-    <string name="description_peatv">TV content rating system for America Television in Peru that uses its own rating system</string>
+    <string name="description_peatv" translatable="false">TV content rating system for America Television in Peru that uses its own rating system</string>
     <string name="display_name_peatv_gp" translatable="false">GP</string>
     <string name="display_name_peatv_pg" translatable="false">PG</string>
     <string name="display_name_peatv_14" translatable="false">TV-14</string>
     <string name="display_name_peatv_18" translatable="false">TV-18</string>
-    <string name="description_peatv_gp">General audience</string>
-    <string name="description_peatv_pg">Parental guidance required for under 6</string>
-    <string name="description_peatv_14">Suitable for people aged 14 and above only</string>
-    <string name="description_peatv_18">Suitable for people aged 18 and above only</string>
+    <string name="description_peatv_gp" translatable="false">General audience</string>
+    <string name="description_peatv_pg" translatable="false">Parental guidance required for under 6</string>
+    <string name="description_peatv_14" translatable="false">Suitable for people aged 14 and above only</string>
+    <string name="description_peatv_18" translatable="false">Suitable for people aged 18 and above only</string>
 
     <!-- TV content rating system strings for PH TV -->
     <string name="display_name_phtv" translatable="false">MTRCB</string>
     <string name="display_name_phtv_g" translatable="false">G</string>
     <string name="display_name_phtv_pg" translatable="false">PG</string>
     <string name="display_name_phtv_spg" translatable="false">SPG</string>
-    <string name="description_phtv_g">Suitable for all public viewers</string>
-    <string name="description_phtv_pg">Programmes rated PG may contain scenes or other content that are unsuitable for children without the guidance of a parent</string>
-    <string name="description_phtv_spg">Contains mature themes or moderate to intense violence, which may be deemed unfit for children to watch without strict parental supervision</string>
+    <string name="description_phtv_g" translatable="false">Suitable for all public viewers</string>
+    <string name="description_phtv_pg" translatable="false">Programmes rated PG may contain scenes or other content that are unsuitable for children without the guidance of a parent</string>
+    <string name="description_phtv_spg" translatable="false">Contains mature themes or moderate to intense violence, which may be deemed unfit for children to watch without strict parental supervision</string>
 
     <!-- TV content rating system strings for PL TV -->
     <string name="display_name_pltv" translatable="false">PL-TV</string>
@@ -5322,11 +5332,11 @@
     <string name="display_name_pltv_12" translatable="false">12</string>
     <string name="display_name_pltv_16" translatable="false">16</string>
     <string name="display_name_pltv_18" translatable="false">18</string>
-    <string name="description_pltv_g">Positive or neutral view of the world, little to no violence, non-sexual love, and no sexual content</string>
-    <string name="description_pltv_7">Age 7 and above. May additionally contain some mild language, bloodless violence, and a more negative view of the world</string>
-    <string name="description_pltv_12">Age 12 and above. May contain some foul language, some violence, and some sexual content</string>
-    <string name="description_pltv_16">Age 16 and above. Deviant social behaviour, world filled with violence and sexuality, simplified picture of adulthood, display of physical force, especially in controversial social context, immoral behaviour without ethic dilemma, putting the blame on the victim, excessive concentration on material possessions</string>
-    <string name="description_pltv_18">Age 18 and above. One-sided display of the joys of adult life without showing responsibilities, social justification of violent behaviour, excessive vulgarity, use of racial slurs and social stereotypes, explicit sexual content, praise of aggression or vulgarity</string>
+    <string name="description_pltv_g" translatable="false">Positive or neutral view of the world, little to no violence, non-sexual love, and no sexual content</string>
+    <string name="description_pltv_7" translatable="false">Age 7 and above. May additionally contain some mild language, bloodless violence, and a more negative view of the world</string>
+    <string name="description_pltv_12" translatable="false">Age 12 and above. May contain some foul language, some violence, and some sexual content</string>
+    <string name="description_pltv_16" translatable="false">Age 16 and above. Deviant social behaviour, world filled with violence and sexuality, simplified picture of adulthood, display of physical force, especially in controversial social context, immoral behaviour without ethic dilemma, putting the blame on the victim, excessive concentration on material possessions</string>
+    <string name="description_pltv_18" translatable="false">Age 18 and above. One-sided display of the joys of adult life without showing responsibilities, social justification of violent behaviour, excessive vulgarity, use of racial slurs and social stereotypes, explicit sexual content, praise of aggression or vulgarity</string>
 
     <!-- TV content rating system strings for PT TV -->
     <string name="display_name_pttv" translatable="false">PT-TV</string>
@@ -5334,10 +5344,10 @@
     <string name="display_name_pttv_10" translatable="false">10</string>
     <string name="display_name_pttv_12" translatable="false">12</string>
     <string name="display_name_pttv_16" translatable="false">16</string>
-    <string name="description_pttv_t">Suitable for all</string>
-    <string name="description_pttv_10">May not be suitable for children under 10, parental guidance advised</string>
-    <string name="description_pttv_12">May not be suitable for children under 12, parental guidance advised</string>
-    <string name="description_pttv_16">Not suitable for children under 16</string>
+    <string name="description_pttv_t" translatable="false">Suitable for all</string>
+    <string name="description_pttv_10" translatable="false">May not be suitable for children under 10, parental guidance advised</string>
+    <string name="description_pttv_12" translatable="false">May not be suitable for children under 12, parental guidance advised</string>
+    <string name="description_pttv_16" translatable="false">Not suitable for children under 16</string>
 
     <!-- TV content rating system strings for RO TV -->
     <string name="display_name_rotv" translatable="false">RO-TV</string>
@@ -5347,12 +5357,12 @@
     <string name="display_name_rotv_12" translatable="false">12</string>
     <string name="display_name_rotv_15" translatable="false">15</string>
     <string name="display_name_rotv_18" translatable="false">18</string>
-    <string name="description_rotv_y">Young Ages</string>
-    <string name="description_rotv_g">General Exhibition</string>
-    <string name="description_rotv_ap">Parental guidance is recommended for children below the age of 12</string>
-    <string name="description_rotv_12">Forbidden for children under 12 years of age</string>
-    <string name="description_rotv_15">Forbidden for children under 15 years of age</string>
-    <string name="description_rotv_18">Forbidden for children under 18 years of age</string>
+    <string name="description_rotv_y" translatable="false">Young Ages</string>
+    <string name="description_rotv_g" translatable="false">General Exhibition</string>
+    <string name="description_rotv_ap" translatable="false">Parental guidance is recommended for children below the age of 12</string>
+    <string name="description_rotv_12" translatable="false">Forbidden for children under 12 years of age</string>
+    <string name="description_rotv_15" translatable="false">Forbidden for children under 15 years of age</string>
+    <string name="description_rotv_18" translatable="false">Forbidden for children under 18 years of age</string>
 
     <!-- TV content rating system strings for RU TV -->
     <string name="display_name_rutv" translatable="false">RU-TV</string>
@@ -5361,11 +5371,11 @@
     <string name="display_name_rutv_12" translatable="false">12+</string>
     <string name="display_name_rutv_16" translatable="false">16+</string>
     <string name="display_name_rutv_18" translatable="false">18+</string>
-    <string name="description_rutv_0">Can be watched by Any Age</string>
-    <string name="description_rutv_6">Only kids the age of 6 or older can watch</string>
-    <string name="description_rutv_12">Only kids the age of 12 or older can watch</string>
-    <string name="description_rutv_16">Only teens the age of 16 or older can watch</string>
-    <string name="description_rutv_18">Restricted to children ONLY people 18 or older</string>
+    <string name="description_rutv_0" translatable="false">Can be watched by Any Age</string>
+    <string name="description_rutv_6" translatable="false">Only kids the age of 6 or older can watch</string>
+    <string name="description_rutv_12" translatable="false">Only kids the age of 12 or older can watch</string>
+    <string name="description_rutv_16" translatable="false">Only teens the age of 16 or older can watch</string>
+    <string name="description_rutv_18" translatable="false">Restricted to children ONLY people 18 or older</string>
 
     <!-- TV content rating system strings for RS TV -->
     <string name="display_name_rstv" translatable="false">RS-TV</string>
@@ -5376,27 +5386,27 @@
     <string name="display_name_rstv_16" translatable="false">16</string>
     <string name="display_name_rstv_17" translatable="false">17</string>
     <string name="display_name_rstv_18" translatable="false">18</string>
-    <string name="description_rstv_g">Program suitable for all ages</string>
-    <string name="description_rstv_12">Program not suitable for children under the age of 12 </string>
-    <string name="description_rstv_14">Program not suitable for children/teens under the age of 14</string>
-    <string name="description_rstv_15">Program not suitable for children/teens under the age of 15</string>
-    <string name="description_rstv_16">Program not suitable for children/teens under the age of 16</string>
-    <string name="description_rstv_17">Program not suitable for children/teens under the age of 17</string>
-    <string name="description_rstv_18">Program not suitable for minors under the age of 18</string>
+    <string name="description_rstv_g" translatable="false">Program suitable for all ages</string>
+    <string name="description_rstv_12" translatable="false">Program not suitable for children under the age of 12 </string>
+    <string name="description_rstv_14" translatable="false">Program not suitable for children/teens under the age of 14</string>
+    <string name="description_rstv_15" translatable="false">Program not suitable for children/teens under the age of 15</string>
+    <string name="description_rstv_16" translatable="false">Program not suitable for children/teens under the age of 16</string>
+    <string name="description_rstv_17" translatable="false">Program not suitable for children/teens under the age of 17</string>
+    <string name="description_rstv_18" translatable="false">Program not suitable for minors under the age of 18</string>
 
     <!-- TV content rating system strings for SGF(Free-to-Air) TV -->
     <string name="display_name_sgftv" translatable="false">SG-Free-TV</string>
     <string name="display_name_sgftv_pg" translatable="false">PG</string>
     <string name="display_name_sgftv_pg13" translatable="false">PG13</string>
-    <string name="description_sgftv_pg">Suitable for most but parents should guide their young</string>
-    <string name="description_sgftv_pg13">Parental Guidance Strongly Cautioned – Suitable for 13 And Above</string>
+    <string name="description_sgftv_pg" translatable="false">Suitable for most but parents should guide their young</string>
+    <string name="description_sgftv_pg13" translatable="false">Parental Guidance Strongly Cautioned - Suitable for 13 And Above</string>
 
     <!-- TV content rating system strings for SGP(Pay TV) TV -->
     <string name="display_name_sgptv" translatable="false">SG-Pay-TV</string>
     <string name="display_name_sgptv_nc16" translatable="false">NC16</string>
     <string name="display_name_sgptv_m18" translatable="false">M18</string>
-    <string name="description_sgptv_nc16">No Children Under 16</string>
-    <string name="description_sgptv_m18">Nobody under age 18 is admitted</string>
+    <string name="description_sgptv_nc16" translatable="false">No Children Under 16</string>
+    <string name="description_sgptv_m18" translatable="false">Nobody under age 18 is admitted</string>
 
     <!-- TV content rating system strings for SI TV -->
     <string name="display_name_sitv" translatable="false">SI-TV</string>
@@ -5404,10 +5414,10 @@
     <string name="display_name_sitv_12" translatable="false">+12</string>
     <string name="display_name_sitv_15" translatable="false">+15</string>
     <string name="display_name_sitv_ad" translatable="false">AD</string>
-    <string name="description_sitv_vs">Parental guidance suggested (for children under 6)</string>
-    <string name="description_sitv_12">Content suitable for teens over 12 years</string>
-    <string name="description_sitv_15">Content suitable for teens over 15 years</string>
-    <string name="description_sitv_ad">Content exclusively for adults</string>
+    <string name="description_sitv_vs" translatable="false">Parental guidance suggested (for children under 6)</string>
+    <string name="description_sitv_12" translatable="false">Content suitable for teens over 12 years</string>
+    <string name="description_sitv_15" translatable="false">Content suitable for teens over 15 years</string>
+    <string name="description_sitv_ad" translatable="false">Content exclusively for adults</string>
 
     <!-- TV content rating system strings for TH TV -->
     <string name="display_name_thtv" translatable="false">TH-TV</string>
@@ -5417,12 +5427,12 @@
     <string name="display_name_thtv_pg13" translatable="false">PG13</string>
     <string name="display_name_thtv_pg18" translatable="false">PG18</string>
     <string name="display_name_thtv_adults" translatable="false">Adults</string>
-    <string name="description_thtv_primary">Content suitable for primary school aged children</string>
-    <string name="description_thtv_children">Content suitable for children between 6–12 years old</string>
-    <string name="description_thtv_general">Content suitable for general audiences</string>
-    <string name="description_thtv_pg13">Content suitable for people aged 13 and above, but can be watched by those who are under the recommended age if parental guidance is provided</string>
-    <string name="description_thtv_pg18">Content suitable for people aged above 18 years old; those who are younger that 18 must be provided with parental guidance</string>
-    <string name="description_thtv_adults">Content unsuitable for children and youngsters</string>
+    <string name="description_thtv_primary" translatable="false">Content suitable for primary school aged children</string>
+    <string name="description_thtv_children" translatable="false">Content suitable for children between 6-12 years old</string>
+    <string name="description_thtv_general" translatable="false">Content suitable for general audiences</string>
+    <string name="description_thtv_pg13" translatable="false">Content suitable for people aged 13 and above, but can be watched by those who are under the recommended age if parental guidance is provided</string>
+    <string name="description_thtv_pg18" translatable="false">Content suitable for people aged above 18 years old; those who are younger that 18 must be provided with parental guidance</string>
+    <string name="description_thtv_adults" translatable="false">Content unsuitable for children and youngsters</string>
 
     <!-- TV content rating system strings for TR TV -->
     <string name="display_name_trtv" translatable="false">TR-TV</string>
@@ -5430,10 +5440,10 @@
     <string name="display_name_trtv_7" translatable="false">7+</string>
     <string name="display_name_trtv_13" translatable="false">13+</string>
     <string name="display_name_trtv_18" translatable="false">18+</string>
-    <string name="description_trtv_g">General audience. Suitable for all ages</string>
-    <string name="description_trtv_7">Suitable for ages 7 and over</string>
-    <string name="description_trtv_13">Suitable for ages 13 and over</string>
-    <string name="description_trtv_18">Suitable for ages 13 and over</string>
+    <string name="description_trtv_g" translatable="false">General audience. Suitable for all ages</string>
+    <string name="description_trtv_7" translatable="false">Suitable for ages 7 and over</string>
+    <string name="description_trtv_13" translatable="false">Suitable for ages 13 and over</string>
+    <string name="description_trtv_18" translatable="false">Suitable for ages 13 and over</string>
 
     <!-- TV content rating system strings for TW TV -->
     <string name="display_name_twtv" translatable="false">TW-TV</string>
@@ -5441,54 +5451,54 @@
     <string name="display_name_twtv_p" translatable="false">Protected category</string>
     <string name="display_name_twtv_pg" translatable="false">Parental guidance category</string>
     <string name="display_name_twtv_r" translatable="false">Restricted category</string>
-    <string name="description_twtv_g">For all ages</string>
-    <string name="description_twtv_p">Not suitable for children under 6 years old. People aged 6 but under 12 require guidance from accompanying adults to watch</string>
-    <string name="description_twtv_pg">Not suitable for people under 12 years of age. Parental guidance is required for people aged 12 but under 18</string>
-    <string name="description_twtv_r">For adults only and people under 18 years of age must not watch</string>
+    <string name="description_twtv_g" translatable="false">For all ages</string>
+    <string name="description_twtv_p" translatable="false">Not suitable for children under 6 years old. People aged 6 but under 12 require guidance from accompanying adults to watch</string>
+    <string name="description_twtv_pg" translatable="false">Not suitable for people under 12 years of age. Parental guidance is required for people aged 12 but under 18</string>
+    <string name="description_twtv_r" translatable="false">For adults only and people under 18 years of age must not watch</string>
 
     <!-- TV content rating system strings for UA TV -->
     <string name="display_name_uatv" translatable="false">UA-TV</string>
     <string name="display_name_uatv_green circle" translatable="false">Green Circle</string>
     <string name="display_name_uatv_yellow triangle" translatable="false">Yellow Triangle</string>
     <string name="display_name_uatv_red square" translatable="false">Red Square</string>
-    <string name="description_uatv_green circle">This program does not have age restrictions</string>
-    <string name="description_uatv_yellow triangle">Children must view this program with parents. In it program there are fragments, which unsuitable for children</string>
-    <string name="description_uatv_red square">This program is only for adult viewers. In it there are scenes with nudity, drug use, or violence</string>
+    <string name="description_uatv_green circle" translatable="false">This program does not have age restrictions</string>
+    <string name="description_uatv_yellow triangle" translatable="false">Children must view this program with parents. In it program there are fragments, which unsuitable for children</string>
+    <string name="description_uatv_red square" translatable="false">This program is only for adult viewers. In it there are scenes with nudity, drug use, or violence</string>
 
     <!-- TV content rating system strings for US TV -->
-    <string name="display_name_ustvpg" translatable="false">US-TV</string>
-    <string name="description_ustvpg">The TV Parental Guidelines</string>
-    <string name="display_name_ustvpg_d" translatable="false">D</string>
-    <string name="display_name_ustvpg_l" translatable="false">L</string>
-    <string name="display_name_ustvpg_s" translatable="false">S</string>
-    <string name="display_name_ustvpg_v" translatable="false">V</string>
-    <string name="display_name_ustvpg_fv" translatable="false">FV</string>
-    <string name="display_name_ustvpg_y" translatable="false">TV-Y</string>
-    <string name="display_name_ustvpg_y7" translatable="false">TV-Y7</string>
-    <string name="display_name_ustvpg_g" translatable="false">TV-G</string>
-    <string name="display_name_ustvpg_pg" translatable="false">TV-PG</string>
-    <string name="display_name_ustvpg_14" translatable="false">TV-14</string>
-    <string name="display_name_ustvpg_ma" translatable="false">TV-MA</string>
-    <string name="description_ustvpg_d">Suggestive dialogue (Usually means talks about sex)</string>
-    <string name="description_ustvpg_l">Coarse language</string>
-    <string name="description_ustvpg_s">Sexual content</string>
-    <string name="description_ustvpg_v">Violence</string>
-    <string name="description_ustvpg_fv">Fantasy violence (Children\'s programming only)</string>
-    <string name="description_ustvpg_y">This program is designed to be appropriate for all children</string>
-    <string name="description_ustvpg_y7">This program is designed for children age 7 and above</string>
-    <string name="description_ustvpg_g">Most parents would find this program suitable for all ages</string>
-    <string name="description_ustvpg_pg">This program contains material that parents may find unsuitable for younger children</string>
-    <string name="description_ustvpg_14">This program contains some material that many parents would find unsuitable for children under 14 years of age</string>
-    <string name="description_ustvpg_ma">This program is specifically designed to be viewed by adults and therefore may be unsuitable for children under 17</string>
+    <string name="display_name_ustv" translatable="false">US-TV</string>
+    <string name="description_ustv" translatable="false">TV content rating system for United States</string>
+    <string name="display_name_ustv_d" translatable="false">D</string>
+    <string name="display_name_ustv_l" translatable="false">L</string>
+    <string name="display_name_ustv_s" translatable="false">S</string>
+    <string name="display_name_ustv_v" translatable="false">V</string>
+    <string name="display_name_ustv_fv" translatable="false">FV</string>
+    <string name="display_name_ustv_y" translatable="false">TV-Y</string>
+    <string name="display_name_ustv_y7" translatable="false">TV-Y7</string>
+    <string name="display_name_ustv_g" translatable="false">TV-G</string>
+    <string name="display_name_ustv_pg" translatable="false">TV-PG</string>
+    <string name="display_name_ustv_14" translatable="false">TV-14</string>
+    <string name="display_name_ustv_ma" translatable="false">TV-MA</string>
+    <string name="description_ustv_d" translatable="false">Suggestive dialogue (Usually means talks about sex)\nApplicable to US_TV_PG, US_TV_14, US_TV</string>
+    <string name="description_ustv_l" translatable="false">Coarse language\nApplicable to US_TV_PG, US_TV_14</string>
+    <string name="description_ustv_s" translatable="false">Sexual content\nApplicable to US_TV_PG, US_TV_14, US_TV_MA</string>
+    <string name="description_ustv_v" translatable="false">Violence\nApplicable to US_TV_PG, US_TV_14, US_TV_MA</string>
+    <string name="description_ustv_fv" translatable="false">Fantasy violence (Children\'s programming only)\nApplicable to US_TV_Y7</string>
+    <string name="description_ustv_y" translatable="false">This program is designed to be appropriate for all children</string>
+    <string name="description_ustv_y7" translatable="false">This program is designed for children age 7 and above</string>
+    <string name="description_ustv_g" translatable="false">Most parents would find this program suitable for all ages</string>
+    <string name="description_ustv_pg" translatable="false">This program contains material that parents may find unsuitable for younger children</string>
+    <string name="description_ustv_14" translatable="false">This program contains some material that many parents would find unsuitable for children under 14 years of age</string>
+    <string name="description_ustv_ma" translatable="false">This program is specifically designed to be viewed by adults and therefore may be unsuitable for children under 17</string>
 
     <!-- TV content rating system strings for VE TV -->
     <string name="display_name_vetv" translatable="false">VE-TV</string>
     <string name="display_name_vetv_tu" translatable="false">TU</string>
     <string name="display_name_vetv_su" translatable="false">SU</string>
     <string name="display_name_vetv_a" translatable="false">A</string>
-    <string name="description_vetv_tu">For all ages</string>
-    <string name="description_vetv_su">Parental guidance for young viewers</string>
-    <string name="description_vetv_a">Mature viewers</string>
+    <string name="description_vetv_tu" translatable="false">For all ages</string>
+    <string name="description_vetv_su" translatable="false">Parental guidance for young viewers</string>
+    <string name="description_vetv_a" translatable="false">Mature viewers</string>
 
     <!-- TV content rating system strings for ZA TV -->
     <string name="display_name_zatv" translatable="false">ZA-TV</string>
@@ -5504,19 +5514,22 @@
     <string name="display_name_zatv_16" translatable="false">16</string>
     <string name="display_name_zatv_18" translatable="false">18</string>
     <string name="display_name_zatv_r18" translatable="false">R18</string>
-    <string name="description_zatv_d">Drug</string>
-    <string name="description_zatv_v">Violence</string>
-    <string name="description_zatv_n">Nudity</string>
-    <string name="description_zatv_p">Prejudice</string>
-    <string name="description_zatv_s">Sex</string>
-    <string name="description_zatv_l">Language</string>
-    <string name="description_zatv_f">This is a program/film that does not contain any obscenity, and is suitable for family viewing. A logo must be displayed in the corner of the screen for 30 seconds after each commercial break</string>
-    <string name="description_zatv_pg">Children under 6 may watch this program/film, but must be accompanied by an adult. This program contains an adult related theme, which might include very mild language, violence and sexual innuendo. A logo must be displayed in the corner of the screen for one minute after each commercial break</string>
-    <string name="description_zatv_13">Children under 13 are prohibited from watching this program/film. This program contains mild language, violence and sexual innuendo. A logo must be displayed in the corner of the screen for two minutes after each commercial break</string>
-    <string name="description_zatv_16">Children under 16 are prohibited from watching this program/film. It contains moderate violence, language, and some sexual situations. In the case of television, this program may only be broadcast after 9pm–4:30am. A logo must be displayed in the corner of the screen for five minutes after each commercial break. A full-screen warning must be issued before the start of the program. If the program is longer than an hour, a warning must be displayed every half an hour</string>
-    <string name="description_zatv_18">Children under 18 are prohibited from watching this program/film. It contains extreme violence, language and/or graphic sexual content. In the case of television, this program may only be broadcast from 10pm–4:30am. A logo must be displayed in the corner of the screen for the duration of the program. A full-screen warning must be issued before the start of the program and after each commercial break</string>
-    <string name="description_zatv_r18">This is reserved for films of an extreme sexual nature (pornography). R18 films may only be distributed in the form of video and DVD in a controlled environment (e.g. Adult Shops). No public viewing of this film may take place. R18 films may not be broadcast on television and in cinemas</string>
+    <string name="description_zatv_d" translatable="false">Drug\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_v" translatable="false">Violence\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_n" translatable="false">Nudity\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_p" translatable="false">Prejudice\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_s" translatable="false">Sex\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_l" translatable="false">Language\nApplicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</string>
+    <string name="description_zatv_f" translatable="false">This is a program/film that does not contain any obscenity, and is suitable for family viewing. A logo must be displayed in the corner of the screen for 30 seconds after each commercial break</string>
+    <string name="description_zatv_pg" translatable="false">Children under 6 may watch this program/film, but must be accompanied by an adult. This program contains an adult related theme, which might include very mild language, violence and sexual innuendo. A logo must be displayed in the corner of the screen for one minute after each commercial break</string>
+    <string name="description_zatv_13" translatable="false">Children under 13 are prohibited from watching this program/film. This program contains mild language, violence and sexual innuendo. A logo must be displayed in the corner of the screen for two minutes after each commercial break</string>
+    <string name="description_zatv_16" translatable="false">Children under 16 are prohibited from watching this program/film. It contains moderate violence, language, and some sexual situations. In the case of television, this program may only be broadcast after 9pm-4:30am. A logo must be displayed in the corner of the screen for five minutes after each commercial break. A full-screen warning must be issued before the start of the program. If the program is longer than an hour, a warning must be displayed every half an hour</string>
+    <string name="description_zatv_18" translatable="false">Children under 18 are prohibited from watching this program/film. It contains extreme violence, language and/or graphic sexual content. In the case of television, this program may only be broadcast from 10pm-4:30am. A logo must be displayed in the corner of the screen for the duration of the program. A full-screen warning must be issued before the start of the program and after each commercial break</string>
+    <string name="description_zatv_r18" translatable="false">This is reserved for films of an extreme sexual nature (pornography). R18 films may only be distributed in the form of video and DVD in a controlled environment (e.g. Adult Shops). No public viewing of this film may take place. R18 films may not be broadcast on television and in cinemas</string>
 
     <!-- [CHAR_LIMIT=NONE] Battery saver: Feature description -->
     <string name="battery_saver_description">To help improve battery life, battery saver reduces your device’s performance and limits vibration and most background data. Email, messaging, and other apps that rely on syncing may not update unless you open them.\n\nBattery saver turns off automatically when your device is charging</string>
+
+    <!-- [CHAR_LIMIT=NONE] Zen mode: Condition summary for built-in downtime condition, if active -->
+    <string name="downtime_condition_summary">Until your downtime ends at <xliff:g id="formattedTime" example="10.00 PM">%1$s</xliff:g></string>
 </resources>
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index e693d91..8fc9bac 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -1359,8 +1359,8 @@
         <item name="lightY">-200dp</item>
         <item name="lightZ">800dp</item>
         <item name="lightRadius">800dp</item>
-        <item name="ambientShadowAlpha">0.0471</item>
-        <item name="spotShadowAlpha">0.1765</item>
+        <item name="ambientShadowAlpha">0.06</item>
+        <item name="spotShadowAlpha">0.16</item>
     </style>
 
 </resources>
diff --git a/core/res/res/values/styles_leanback.xml b/core/res/res/values/styles_leanback.xml
index 256ef00..da83c36 100644
--- a/core/res/res/values/styles_leanback.xml
+++ b/core/res/res/values/styles_leanback.xml
@@ -39,26 +39,36 @@
     <style name="TextAppearance.Leanback.FormWizard" parent="@style/TextAppearance.Material">
         <item name="textSize">18sp</item>
         <item name="fontFamily">sans-serif-light</item>
+        <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
     <style name="TextAppearance.Leanback.FormWizard.Small" parent="@style/TextAppearance.Material.Small">
         <item name="textSize">18sp</item>
         <item name="fontFamily">sans-serif-light</item>
+        <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
     <style name="TextAppearance.Leanback.FormWizard.Medium" parent="@style/TextAppearance.Material.Medium">
         <item name="textSize">36sp</item>
         <item name="fontFamily">sans-serif-thin</item>
+        <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
     <style name="TextAppearance.Leanback.FormWizard.Large" parent="@style/TextAppearance.Material.Large">
         <item name="textSize">56sp</item>
         <item name="fontFamily">sans-serif-thin</item>
+        <item name="textColor">?attr/textColorPrimary</item>
     </style>
 
     <style name="TextAppearance.Leanback.FormWizard.ListItem" parent="@style/TextAppearance.Material.Subhead">
-        <item name="textSize">18sp</item>
+        <item name="textSize">16sp</item>
         <item name="fontFamily">sans-serif-condensed</item>
     </style>
 
+    <style name="WindowAnimationStyle.Leanback.Setup" parent="@style/Animation.Material.Activity">
+        <item name="android:fragmentOpenEnterAnimation">@animator/leanback_setup_fragment_open_enter</item>
+        <item name="android:fragmentOpenExitAnimation">@animator/leanback_setup_fragment_open_exit</item>
+        <item name="android:fragmentCloseEnterAnimation">@animator/leanback_setup_fragment_close_enter</item>
+        <item name="android:fragmentCloseExitAnimation">@animator/leanback_setup_fragment_close_exit</item>
+    </style>
 </resources>
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 97d4bf6..0f27824 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -343,37 +343,37 @@
 
     <style name="TextAppearance.Material.TimePicker.TimeLabel" parent="TextAppearance.Material">
         <item name="textSize">@dimen/timepicker_time_label_size</item>
-        <item name="textColor">?attr/textColorPrimary</item>
+        <item name="textColor">?attr/textColorSecondaryInverse</item>
     </style>
 
     <style name="TextAppearance.Material.TimePicker.AmPmLabel" parent="TextAppearance.Material">
         <item name="textSize">@dimen/timepicker_ampm_label_size</item>
         <item name="textAllCaps">true</item>
-        <item name="textColor">?attr/textColorPrimary</item>
+        <item name="textColor">?attr/textColorSecondaryInverse</item>
         <item name="textStyle">bold</item>
     </style>
 
     <style name="TextAppearance.Material.DatePicker.DayOfWeekLabel" parent="TextAppearance.Material">
         <item name="includeFontPadding">false</item>
-        <item name="textColor">?attr/textColorPrimary</item>
+        <item name="textColor">?attr/textColorPrimaryInverse</item>
         <item name="textSize">@dimen/datepicker_header_text_size</item>
     </style>
 
     <style name="TextAppearance.Material.DatePicker.MonthLabel" parent="TextAppearance.Material">
         <item name="includeFontPadding">false</item>
-        <item name="textColor">?attr/textColorPrimary</item> <!-- selected should be accent -->
+        <item name="textColor">?attr/textColorSecondaryInverse</item> <!-- selected should be accent -->
         <item name="textSize">@dimen/datepicker_selected_date_month_size</item>
     </style>
 
     <style name="TextAppearance.Material.DatePicker.DayOfMonthLabel" parent="TextAppearance.Material">
         <item name="includeFontPadding">false</item>
-        <item name="textColor">?attr/textColorPrimary</item> <!-- selected should be accent -->
+        <item name="textColor">?attr/textColorSecondaryInverse</item> <!-- selected should be accent -->
         <item name="textSize">@dimen/datepicker_selected_date_day_size</item>
     </style>
 
     <style name="TextAppearance.Material.DatePicker.YearLabel" parent="TextAppearance.Material">
         <item name="includeFontPadding">false</item>
-        <item name="textColor">?attr/textColorPrimary</item> <!-- selected should be accent -->
+        <item name="textColor">?attr/textColorSecondaryInverse</item> <!-- selected should be accent -->
         <item name="textSize">@dimen/datepicker_selected_date_year_size</item>
     </style>
 
@@ -426,7 +426,6 @@
     <style name="Widget.Material.Button" parent="Widget.Button">
         <item name="background">@drawable/btn_default_material</item>
         <item name="textAppearance">?attr/textAppearanceButton</item>
-        <item name="textColor">?attr/textColorPrimary</item>
         <item name="minHeight">48dip</item>
         <item name="minWidth">88dip</item>
         <item name="stateListAnimator">@anim/button_state_list_anim_material</item>
@@ -472,6 +471,10 @@
 
     <style name="Widget.Material.ButtonBar.AlertDialog">
         <item name="background">@null</item>
+        <item name="paddingStart">16dp</item>
+        <item name="paddingEnd">16dp</item>
+        <item name="paddingBottom">16dp</item>
+        <item name="minHeight">@dimen/alert_dialog_button_bar_height</item>
     </style>
 
     <style name="Widget.Material.SearchView">
@@ -593,10 +596,10 @@
         <item name="internalLayout">@layout/time_picker_holo</item>
         <item name="headerTimeTextAppearance">@style/TextAppearance.Material.TimePicker.TimeLabel</item>
         <item name="headerAmPmTextAppearance">@style/TextAppearance.Material.TimePicker.AmPmLabel</item>
-        <item name="headerSelectedTextColor">?attr/colorControlActivated</item>
-        <item name="headerBackgroundColor">@color/transparent</item>
+        <item name="headerSelectedTextColor">?attr/textColorPrimaryInverse</item>
+        <item name="headerBackgroundColor">?attr/colorAccent</item>
         <item name="numbersTextColor">?attr/textColorSecondary</item>
-        <item name="numbersBackgroundColor">@color/transparent</item>
+        <item name="numbersBackgroundColor">#10ffffff</item>
         <item name="amPmTextColor">?attr/textColorSecondary</item>
         <item name="amPmBackgroundColor">@color/transparent</item>
         <item name="amPmSelectedBackgroundColor">?attr/colorControlActivated</item>
@@ -609,13 +612,13 @@
         <!-- Attributes for new-style DatePicker. -->
         <item name="internalLayout">@layout/date_picker_holo</item>
         <item name="calendarViewShown">true</item>
-        <item name="dayOfWeekBackgroundColor">@color/transparent</item>
+        <item name="dayOfWeekBackgroundColor">#10000000</item>
         <item name="dayOfWeekTextAppearance">@style/TextAppearance.Material.DatePicker.DayOfWeekLabel</item>
         <item name="headerMonthTextAppearance">@style/TextAppearance.Material.DatePicker.MonthLabel</item>
         <item name="headerDayOfMonthTextAppearance">@style/TextAppearance.Material.DatePicker.DayOfMonthLabel</item>
         <item name="headerYearTextAppearance">@style/TextAppearance.Material.DatePicker.YearLabel</item>
-        <item name="headerSelectedTextColor">?attr/colorControlActivated</item>
-        <item name="headerBackgroundColor">@color/transparent</item>
+        <item name="headerSelectedTextColor">?attr/textColorPrimaryInverse</item>
+        <item name="headerBackgroundColor">?attr/colorAccent</item>
         <item name="yearListItemTextAppearance">@style/TextAppearance.Material.DatePicker.List.YearLabel</item>
         <item name="yearListSelectorColor">?attr/colorControlActivated</item>
         <item name="calendarTextColor">?attr/textColorSecondary</item>
@@ -633,7 +636,10 @@
         <item name="listSelector">?attr/listChoiceBackgroundIndicator</item>
     </style>
 
-    <style name="Widget.Material.ListView.DropDown"/>
+    <style name="Widget.Material.ListView.DropDown">
+        <item name="divider">@null</item>
+    </style>
+
     <style name="Widget.Material.ListView.White"/>
 
     <style name="Widget.Material.PopupWindow" parent="Widget.PopupWindow"/>
@@ -725,6 +731,10 @@
         <item name="overlapAnchor">true</item>
     </style>
 
+    <style name="Widget.Material.Spinner.Form">
+        <item name="background">@drawable/spinner_textfield_background_material</item>
+    </style>
+
     <style name="Widget.Material.TabWidget" parent="Widget.TabWidget">
         <item name="tabStripLeft">@null</item>
         <item name="tabStripRight">@null</item>
@@ -936,7 +946,11 @@
     </style>
 
     <style name="Widget.Material.Light.NumberPicker" parent="Widget.Material.NumberPicker"/>
-    <style name="Widget.Material.Light.TimePicker" parent="Widget.Material.TimePicker" />
+
+    <style name="Widget.Material.Light.TimePicker" parent="Widget.Material.TimePicker">
+        <item name="numbersBackgroundColor">#10000000</item>
+    </style>
+
     <style name="Widget.Material.Light.DatePicker" parent="Widget.Material.DatePicker" />
     <style name="Widget.Material.Light.ActivityChooserView" parent="Widget.Material.ActivityChooserView" />
     <style name="Widget.Material.Light.ImageWell" parent="Widget.Material.ImageWell"/>
@@ -974,6 +988,7 @@
     <style name="Widget.Material.Light.Spinner" parent="Widget.Material.Spinner" />
     <style name="Widget.Material.Light.Spinner.DropDown" parent="Widget.Material.Spinner.DropDown"/>
     <style name="Widget.Material.Light.Spinner.DropDown.ActionBar" parent="Widget.Material.Spinner.DropDown.ActionBar"/>
+    <style name="Widget.Material.Light.Spinner.Form" parent="Widget.Material.Spinner.Form" />
     <style name="Widget.Material.Light.TabWidget" parent="Widget.Material.TabWidget"/>
     <style name="Widget.Material.Light.WebTextView" parent="Widget.Material.WebTextView"/>
     <style name="Widget.Material.Light.WebView" parent="Widget.Material.WebView"/>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 78e237f..426a82d 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -349,6 +349,7 @@
   <java-symbol type="dimen" name="notification_text_size" />
   <java-symbol type="dimen" name="notification_title_text_size" />
   <java-symbol type="dimen" name="notification_subtext_size" />
+  <java-symbol type="dimen" name="notification_large_font_vert_pad" />
   <java-symbol type="dimen" name="immersive_mode_cling_width" />
   <java-symbol type="dimen" name="circular_display_mask_offset" />
 
@@ -609,9 +610,11 @@
   <java-symbol type="string" name="last_month" />
   <java-symbol type="string" name="launchBrowserDefault" />
   <java-symbol type="string" name="lock_to_app_toast" />
+  <java-symbol type="string" name="lock_to_app_toast_accessible" />
   <java-symbol type="string" name="lock_to_app_toast_locked" />
   <java-symbol type="string" name="lock_to_app_title" />
   <java-symbol type="string" name="lock_to_app_description" />
+  <java-symbol type="string" name="lock_to_app_description_accessible" />
   <java-symbol type="string" name="lock_to_app_negative" />
   <java-symbol type="string" name="lock_to_app_positive" />
   <java-symbol type="layout" name="lock_to_app_checkbox" />
@@ -1041,14 +1044,12 @@
   <java-symbol type="drawable" name="text_edit_side_paste_window" />
   <java-symbol type="drawable" name="text_edit_paste_window" />
   <java-symbol type="drawable" name="btn_check_off" />
-  <java-symbol type="drawable" name="btn_code_lock_default_mtrl_alpha" />
-  <java-symbol type="drawable" name="btn_code_lock_touched_mtrl_alpha" />
-  <java-symbol type="drawable" name="indicator_code_lock_point_area_default_mtrl_alpha" />
-  <java-symbol type="drawable" name="indicator_code_lock_point_area_mtrl_alpha" />
-  <java-symbol type="drawable" name="indicator_code_lock_drag_direction_up_mtrl_alpha" />
   <java-symbol type="color" name="lock_pattern_view_regular_color" />
   <java-symbol type="color" name="lock_pattern_view_success_color" />
   <java-symbol type="color" name="lock_pattern_view_error_color" />
+  <java-symbol type="dimen" name="lock_pattern_dot_line_width" />
+  <java-symbol type="dimen" name="lock_pattern_dot_size" />
+  <java-symbol type="dimen" name="lock_pattern_dot_size_activated" />
   <java-symbol type="drawable" name="clock_dial" />
   <java-symbol type="drawable" name="clock_hand_hour" />
   <java-symbol type="drawable" name="clock_hand_minute" />
@@ -1328,7 +1329,6 @@
   <java-symbol type="anim" name="voice_activity_open_exit" />
   <java-symbol type="anim" name="voice_activity_open_enter" />
 
-  <java-symbol type="array" name="config_hdmiCecLogicalDeviceType" />
   <java-symbol type="array" name="config_keyboardTapVibePattern" />
   <java-symbol type="array" name="config_longPressVibePattern" />
   <java-symbol type="array" name="config_safeModeDisabledVibePattern" />
@@ -1702,7 +1702,6 @@
   <java-symbol type="layout" name="notification_template_material_base" />
   <java-symbol type="layout" name="notification_template_material_big_base" />
   <java-symbol type="layout" name="notification_template_material_big_picture" />
-  <java-symbol type="layout" name="notification_template_material_big_text" />
   <java-symbol type="layout" name="notification_template_material_inbox" />
   <java-symbol type="layout" name="notification_template_material_media" />
   <java-symbol type="layout" name="notification_template_material_big_media" />
@@ -1723,10 +1722,12 @@
   <java-symbol type="anim" name="push_up_in" />
   <java-symbol type="anim" name="push_up_out" />
   <java-symbol type="anim" name="lock_screen_behind_enter" />
+  <java-symbol type="anim" name="lock_screen_behind_enter_wallpaper" />
+  <java-symbol type="anim" name="lock_screen_behind_enter_fade_in" />
+  <java-symbol type="anim" name="lock_screen_wallpaper_exit" />
 
   <java-symbol type="bool" name="config_alwaysUseCdmaRssi" />
   <java-symbol type="dimen" name="status_bar_icon_size" />
-  <java-symbol type="dimen" name="system_bar_icon_size" />
   <java-symbol type="drawable" name="list_selector_pressed_holo_dark" />
   <java-symbol type="drawable" name="scrubber_control_disabled_holo" />
   <java-symbol type="drawable" name="scrubber_control_selector_holo" />
@@ -1869,8 +1870,6 @@
   <java-symbol type="id" name="ampm_label" />
   <java-symbol type="id" name="radial_picker" />
   <java-symbol type="id" name="separator" />
-  <java-symbol type="id" name="layout_buttons" />
-  <java-symbol type="id" name="done_button" />
   <java-symbol type="id" name="date_picker_header" />
   <java-symbol type="id" name="date_picker_month_and_day_layout" />
   <java-symbol type="id" name="day_picker_selector_layout" />
@@ -1878,7 +1877,6 @@
   <java-symbol type="id" name="date_picker_day" />
   <java-symbol type="id" name="date_picker_year" />
   <java-symbol type="id" name="animator" />
-  <java-symbol type="id" name="done" />
 
   <java-symbol type="string" name="done_label" />
   <java-symbol type="string" name="hour_picker_description" />
@@ -1902,6 +1900,7 @@
   <java-symbol type="string" name="timepicker_transition_mid_radius_multiplier" />
   <java-symbol type="string" name="timepicker_transition_end_radius_multiplier" />
   <java-symbol type="string" name="battery_saver_description" />
+  <java-symbol type="string" name="downtime_condition_summary" />
 
   <java-symbol type="string" name="item_is_selected" />
   <java-symbol type="string" name="day_of_week_label_typeface" />
@@ -1979,4 +1978,8 @@
   <java-symbol type="bool" name="config_sms_decode_gsm_8bit_data" />
   <java-symbol type="string" name="time_picker_am_label" />
   <java-symbol type="string" name="time_picker_pm_label" />
+  <java-symbol type="dimen" name="text_size_small_material" />
+  <java-symbol type="attr" name="checkMarkGravity" />
+  <java-symbol type="layout" name="select_dialog_singlechoice_material" />
+  <java-symbol type="layout" name="select_dialog_multichoice_material" />
 </resources>
diff --git a/core/res/res/values/themes_leanback.xml b/core/res/res/values/themes_leanback.xml
index 321b827..0a2c0a4 100644
--- a/core/res/res/values/themes_leanback.xml
+++ b/core/res/res/values/themes_leanback.xml
@@ -57,5 +57,7 @@
         <item name="textAppearanceLarge">@style/TextAppearance.Leanback.FormWizard.Large</item>
         <item name="textAppearanceListItem">@style/TextAppearance.Leanback.FormWizard.ListItem</item>
         <item name="textAppearance">@style/TextAppearance.Leanback.FormWizard</item>
+        <item name="textColorPrimary">@color/primary_text_leanback_formwizard_dark</item>
+        <item name="windowAnimationStyle">@style/WindowAnimationStyle.Leanback.Setup</item>
     </style>
 </resources>
diff --git a/core/res/res/values/themes_material.xml b/core/res/res/values/themes_material.xml
index 1376dfa..691ddb1 100644
--- a/core/res/res/values/themes_material.xml
+++ b/core/res/res/values/themes_material.xml
@@ -354,10 +354,10 @@
         <item name="timePickerStyle">@style/Widget.Material.TimePicker</item>
 
         <!-- TimePicker dialog theme -->
-        <item name="timePickerDialogTheme">?attr/alertDialogTheme</item>
+        <item name="timePickerDialogTheme">?attr/dialogTheme</item>
 
         <!-- DatePicker style -->
-        <item name="datePickerStyle">?attr/alertDialogTheme</item>
+        <item name="datePickerStyle">?attr/dialogTheme</item>
 
         <!-- DatePicker dialog theme -->
         <item name="datePickerDialogTheme">@style/Theme.Material.Dialog.Alert</item>
@@ -697,13 +697,13 @@
         <item name="timePickerStyle">@style/Widget.Material.Light.TimePicker</item>
 
         <!-- TimePicker dialog theme -->
-        <item name="timePickerDialogTheme">?attr/alertDialogTheme</item>
+        <item name="timePickerDialogTheme">?attr/dialogTheme</item>
 
         <!-- DatePicker style -->
         <item name="datePickerStyle">@style/Widget.Material.Light.DatePicker</item>
 
         <!-- DatePicker dialog theme -->
-        <item name="datePickerDialogTheme">?attr/alertDialogTheme</item>
+        <item name="datePickerDialogTheme">?attr/dialogTheme</item>
 
         <item name="fastScrollThumbDrawable">@drawable/fastscroll_thumb_material</item>
         <item name="fastScrollPreviewBackgroundLeft">@drawable/fastscroll_label_left_holo_light</item>
@@ -1187,19 +1187,6 @@
          AlertDialog theme. -->
     <style name="Theme.Material.Light.Dialog.Alert" parent="Theme.Material.Light.Dialog.BaseAlert"/>
 
-    <!-- Base theme used to prevent circular references in Leanback overrides. -->
-    <style name="Theme.Material.Light.Dialog.BaseTimePicker" />
-
-    <!-- Material Light theme for the TimePicker dialog windows, which is used by the
-         {@link android.app.TimePickerDialog} class. -->
-    <style name="Theme.Material.Light.Dialog.TimePicker" parent="Theme.Material.Light.Dialog.BaseTimePicker" />
-
-    <style name="Theme.Material.Light.Dialog.BaseDatePicker" />
-
-    <!-- Material Light theme for the DatePicker dialog windows, which is used by the
-         {@link android.app.DatePickerDialog} class. -->
-    <style name="Theme.Material.Light.Dialog.DatePicker" parent="Theme.Material.Light.Dialog.BaseDatePicker"/>
-
     <!-- Theme for a presentation window on a secondary display. -->
     <style name="Theme.Material.Light.Dialog.Presentation" parent="@style/Theme.Material.Light.NoActionBar.Fullscreen" />
 
diff --git a/core/res/res/xml/tv_content_rating_systems.xml b/core/res/res/xml/tv_content_rating_systems.xml
index 881b339..1318274 100644
--- a/core/res/res/xml/tv_content_rating_systems.xml
+++ b/core/res/res/xml/tv_content_rating_systems.xml
@@ -16,7 +16,7 @@
 ** limitations under the License.
 */
 -->
-<rating-system-definitions>
+<rating-system-definitions version="1.0">
     <!-- Range specific TV content rating system for AM TV-->
     <rating-system-definition id="AM_TV_RS"
         displayName="@string/display_name_amtvrs"
@@ -1549,75 +1549,75 @@
     </rating-system-definition>
 
     <!-- TV content rating system for US TV -->
-    <rating-system-definition id="US_TVPG"
-        displayName="@string/display_name_ustvpg"
-        description="@string/description_ustvpg"
+    <rating-system-definition id="US_TV"
+        displayName="@string/display_name_ustv"
+        description="@string/description_ustv"
         country="US">
-        <sub-rating-definition id="US_TVPG_D"
-            displayName="@string/display_name_ustvpg_d"
-            description="@string/description_ustvpg_d" />
-        <sub-rating-definition id="US_TVPG_L"
-            displayName="@string/display_name_ustvpg_l"
-            description="@string/description_ustvpg_l" />
-        <sub-rating-definition id="US_TVPG_S"
-            displayName="@string/display_name_ustvpg_s"
-            description="@string/description_ustvpg_s" />
-        <sub-rating-definition id="US_TVPG_V"
-            displayName="@string/display_name_ustvpg_v"
-            description="@string/description_ustvpg_v" />
-        <sub-rating-definition id="US_TVPG_FV"
-            displayName="@string/display_name_ustvpg_fv"
-            description="@string/description_ustvpg_fv" />
+        <sub-rating-definition id="US_TV_D"
+            displayName="@string/display_name_ustv_d"
+            description="@string/description_ustv_d" />
+        <sub-rating-definition id="US_TV_L"
+            displayName="@string/display_name_ustv_l"
+            description="@string/description_ustv_l" />
+        <sub-rating-definition id="US_TV_S"
+            displayName="@string/display_name_ustv_s"
+            description="@string/description_ustv_s" />
+        <sub-rating-definition id="US_TV_V"
+            displayName="@string/display_name_ustv_v"
+            description="@string/description_ustv_v" />
+        <sub-rating-definition id="US_TV_FV"
+            displayName="@string/display_name_ustv_fv"
+            description="@string/description_ustv_fv" />
 
-        <rating-definition id="US_TVPG_TV_Y"
-            displayName="@string/display_name_ustvpg_y"
-            description="@string/description_ustvpg_y"
+        <rating-definition id="US_TV_Y"
+            displayName="@string/display_name_ustv_y"
+            description="@string/description_ustv_y"
             ageHint="0" />
-        <rating-definition id="US_TVPG_TV_Y7"
-            displayName="@string/display_name_ustvpg_y7"
-            description="@string/description_ustvpg_y7"
+        <rating-definition id="US_TV_Y7"
+            displayName="@string/display_name_ustv_y7"
+            description="@string/description_ustv_y7"
             ageHint="7">
-            <sub-rating id="US_TVPG_FV" />
+            <sub-rating id="US_TV_FV" />
         </rating-definition>
-        <rating-definition id="US_TVPG_TV_G"
-            displayName="@string/display_name_ustvpg_g"
-            description="@string/description_ustvpg_g"
+        <rating-definition id="US_TV_G"
+            displayName="@string/display_name_ustv_g"
+            description="@string/description_ustv_g"
             ageHint="0" />
-        <rating-definition id="US_TVPG_TV_PG"
-            displayName="@string/display_name_ustvpg_pg"
-            description="@string/description_ustvpg_pg"
+        <rating-definition id="US_TV_PG"
+            displayName="@string/display_name_ustv_pg"
+            description="@string/description_ustv_pg"
             ageHint="14">
-            <sub-rating id="US_TVPG_D" />
-            <sub-rating id="US_TVPG_L" />
-            <sub-rating id="US_TVPG_S" />
-            <sub-rating id="US_TVPG_V" />
+            <sub-rating id="US_TV_D" />
+            <sub-rating id="US_TV_L" />
+            <sub-rating id="US_TV_S" />
+            <sub-rating id="US_TV_V" />
         </rating-definition>
-        <rating-definition id="US_TVPG_TV_14"
-            displayName="@string/display_name_ustvpg_14"
-            description="@string/description_ustvpg_14"
+        <rating-definition id="US_TV_14"
+            displayName="@string/display_name_ustv_14"
+            description="@string/description_ustv_14"
             ageHint="14">
-            <sub-rating id="US_TVPG_D" />
-            <sub-rating id="US_TVPG_L" />
-            <sub-rating id="US_TVPG_S" />
-            <sub-rating id="US_TVPG_V" />
+            <sub-rating id="US_TV_D" />
+            <sub-rating id="US_TV_L" />
+            <sub-rating id="US_TV_S" />
+            <sub-rating id="US_TV_V" />
         </rating-definition>
-        <rating-definition id="US_TVPG_TV_MA"
-            displayName="@string/display_name_ustvpg_ma"
-            description="@string/description_ustvpg_ma"
+        <rating-definition id="US_TV_MA"
+            displayName="@string/display_name_ustv_ma"
+            description="@string/description_ustv_ma"
             ageHint="17">
-            <sub-rating id="US_TVPG_L" />
-            <sub-rating id="US_TVPG_S" />
-            <sub-rating id="US_TVPG_V" />
+            <sub-rating id="US_TV_L" />
+            <sub-rating id="US_TV_S" />
+            <sub-rating id="US_TV_V" />
         </rating-definition>
         <order>
-            <rating id="US_TVPG_TV_Y" />
-            <rating id="US_TVPG_TV_Y7" />
+            <rating id="US_TV_Y" />
+            <rating id="US_TV_Y7" />
         </order>
         <order>
-            <rating id="US_TVPG_TV_G" />
-            <rating id="US_TVPG_TV_PG" />
-            <rating id="US_TVPG_TV_14" />
-            <rating id="US_TVPG_TV_MA" />
+            <rating id="US_TV_G" />
+            <rating id="US_TV_PG" />
+            <rating id="US_TV_14" />
+            <rating id="US_TV_MA" />
         </order>
     </rating-system-definition>
 
diff --git a/core/tests/coretests/src/android/net/RouteInfoTest.java b/core/tests/coretests/src/android/net/RouteInfoTest.java
index dcacd11..0b88bc7 100644
--- a/core/tests/coretests/src/android/net/RouteInfoTest.java
+++ b/core/tests/coretests/src/android/net/RouteInfoTest.java
@@ -214,6 +214,29 @@
       assertFalse(r.isIPv6Default());
     }
 
+    public void testTruncation() {
+      LinkAddress l;
+      RouteInfo r;
+
+      l = new LinkAddress("192.0.2.5/30");
+      r = new RouteInfo(l, Address("192.0.2.1"), "wlan0");
+      assertEquals("192.0.2.4", r.getDestination().getAddress().getHostAddress());
+
+      l = new LinkAddress("2001:db8:1:f::5/63");
+      r = new RouteInfo(l, Address("2001:db8:5::1"), "wlan0");
+      assertEquals("2001:db8:1:e::", r.getDestination().getAddress().getHostAddress());
+    }
+
+    // Make sure that creating routes to multicast addresses doesn't throw an exception. Even though
+    // there's nothing we can do with them, we don't want to crash if, e.g., someone calls
+    // requestRouteToHostAddress("230.0.0.0", MOBILE_HIPRI);
+    public void testMulticastRoute() {
+      RouteInfo r;
+      r = new RouteInfo(Prefix("230.0.0.0/32"), Address("192.0.2.1"), "wlan0");
+      r = new RouteInfo(Prefix("ff02::1/128"), Address("2001:db8::1"), "wlan0");
+      // No exceptions? Good.
+    }
+
     public RouteInfo passThroughParcel(RouteInfo r) {
         Parcel p = Parcel.obtain();
         RouteInfo r2 = null;
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 2a2417a..1e5fc4d 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -64,7 +64,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 7, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 12, 2014.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -95,7 +95,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 7, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 12, 2014.
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
 
@@ -114,7 +114,7 @@
 
 
 <img alt="" style="float:right"
-src="//chart.googleapis.com/chart?chs=400x250&cht=p&chd=t%3A0.1%2C81.7%2C18.2&chf=bg%2Cs%2C00000000&chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chco=c4df9b%2C6fad0c" />
+src="//chart.googleapis.com/chart?chs=400x250&cht=p&chd=t%3A0.1%2C80.2%2C19.7&chf=bg%2Cs%2C00000000&chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chco=c4df9b%2C6fad0c" />
 
 <p>To declare which version of OpenGL ES your application requires, you should use the {@code
 android:glEsVersion} attribute of the <a
@@ -136,17 +136,17 @@
 </tr>
 <tr>
 <td>2.0</th>
-<td>81.7%</td>
+<td>80.2%</td>
 </tr>
 <tr>
 <td>3.0</th>
-<td>18.2%</td>
+<td>19.7%</td>
 </tr>
 </table>
 
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on July 7, 2014</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on August 12, 2014</em></p>
 
 
 
@@ -164,7 +164,7 @@
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?cht=p&chs=500x250&chf=bg%2Cs%2C00000000&chd=t%3A0.7%2C13.5%2C11.4%2C56.5%2C17.9&chco=c4df9b%2C6fad0c&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat",
+    "chart": "//chart.googleapis.com/chart?cht=p&chs=500x250&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chd=t%3A0.7%2C13.6%2C10.6%2C54.2%2C20.9&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c",
     "data": [
       {
         "api": 8,
@@ -174,32 +174,32 @@
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "13.5"
+        "perc": "13.6"
       },
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "11.4"
+        "perc": "10.6"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "27.8"
+        "perc": "26.5"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "19.7"
+        "perc": "19.8"
       },
       {
         "api": 18,
         "name": "Jelly Bean",
-        "perc": "9.0"
+        "perc": "7.9"
       },
       {
         "api": 19,
         "name": "KitKat",
-        "perc": "17.9"
+        "perc": "20.9"
       }
     ]
   }
@@ -215,28 +215,28 @@
     "data": {
       "Large": {
         "hdpi": "0.6",
-        "ldpi": "0.6",
-        "mdpi": "4.5",
-        "tvdpi": "1.7",
-        "xhdpi": "0.6"
+        "ldpi": "0.5",
+        "mdpi": "4.2",
+        "tvdpi": "1.6",
+        "xhdpi": "0.5"
       },
       "Normal": {
-        "hdpi": "34.5",
-        "mdpi": "11.4",
-        "xhdpi": "19.4",
-        "xxhdpi": "15.3"
+        "hdpi": "35.5",
+        "mdpi": "11.8",
+        "xhdpi": "18.4",
+        "xxhdpi": "15.2"
       },
       "Small": {
-        "ldpi": "6.8"
+        "ldpi": "7.4"
       },
       "Xlarge": {
         "hdpi": "0.3",
-        "mdpi": "3.9",
+        "mdpi": "3.6",
         "xhdpi": "0.4"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chf=bg%2Cs%2C00000000&chd=t%3A7.4%2C19.8%2C1.7%2C35.4%2C20.4%2C15.3&chco=c4df9b%2C6fad0c&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi",
-    "layoutchart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chf=bg%2Cs%2C00000000&chd=t%3A4.6%2C8.0%2C80.6%2C6.8&chco=c4df9b%2C6fad0c&chl=Xlarge%7CLarge%7CNormal%7CSmall"
+    "densitychart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A7.9%2C19.6%2C1.6%2C36.4%2C19.3%2C15.2&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c",
+    "layoutchart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.3%2C7.4%2C80.9%2C7.4&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c"
   }
 ];
 
diff --git a/docs/html/google/gcm/ccs.jd b/docs/html/google/gcm/ccs.jd
index 90d8d4c..1c7c802 100644
--- a/docs/html/google/gcm/ccs.jd
+++ b/docs/html/google/gcm/ccs.jd
@@ -40,8 +40,6 @@
 <li><a href="{@docRoot}google/gcm/gs.html">Getting Started</a></li>
 <li><a href="{@docRoot}google/gcm/server.html">Implementing GCM Server</a></li>
 <li><a href="{@docRoot}google/gcm/client.html">Implementing GCM Client</a></li>
-<li><a href="https://services.google.com/fb/forms/gcm/" class="external-link"
-target="_android">CCS and User Notifications Signup Form</a></li>
 </ol>
 
 </div>
diff --git a/docs/html/google/gcm/gs.jd b/docs/html/google/gcm/gs.jd
index 4cfe1bc..ae57b6d 100644
--- a/docs/html/google/gcm/gs.jd
+++ b/docs/html/google/gcm/gs.jd
@@ -20,7 +20,6 @@
 <ol class="toc">
 <li><a href="https://cloud.google.com/console">Google Cloud Console</a></li>
 <li><a href="https://developers.google.com/console/help/new/">Google Cloud Console Help</a></li>
-<li><a href="https://services.google.com/fb/forms/gcm/" class="external-link" target="_android">CCS and User Notifications Signup Form</a></li>
 </ol>
 
 </div>
diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd
index cf594dc..beea0ca 100644
--- a/docs/html/preview/api-overview.jd
+++ b/docs/html/preview/api-overview.jd
@@ -19,6 +19,7 @@
       <li><a href="#BehaviorNotifications">If your app implements notifications...</a></li>
       <li><a href="#BehaviorMediaControl">If your app uses RemoteControlClient...</a></li>
 <li><a href="#BehaviorGetRecentTasks">If your app uses ActivityManager.getRecentTasks()...</a></li>
+<li><a href="#64BitSupport">If you are using the Android Native Development Kit (NDK)...</a></li>
     </ol>
   </li>
   <li><a href="#UI">User Interface</a>
@@ -246,6 +247,29 @@
 its own tasks, use {@code android.app.ActivityManager.getAppTasks()} instead to
 retrieve that information.</p>
 
+<h3 id="64BitSupport">If you are using the Android Native Development Kit (NDK)...</h3>
+
+<p>The L Developer Preview introduces support for 64-bit systems and other
+  preview NDK APIs. The 64-bit enhancement adds needed address space as Android
+  usage diversifies and increases performance while still supporting existing
+  32-bit apps fully. Use of OpenSSL for cryptography in the platform is also
+  faster. In addition, this release introduces new native audio and media NDK
+  APIs and native OpenGL ES (GLES) 3.1 support.</p>
+
+<p>To use this enhancement, download and install NDK Revision 10 from the
+<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK page</a>. Refer to the
+Revision 10 <a href="{@docRoot}tools/sdk/ndk/index.html#Revisions">release notes</a>
+for more information about important changes and bug fixes to the NDK.</p>
+
+<p>If you are using the NDK and want to use the features provided in the L
+  Developer Preview, download the {@code android-ndk64-r10} package for your
+  target platform. Due to a
+  <a href="https://code.google.com/p/android/issues/detail?id=73705">known issue</a>,
+  you must still download the 64-bit package even if you only want to compile
+  apps for 32-bit systems. The package also includes
+  the {@code gcc-4.9} compiler for both 32- and 64-bit apps. The L Developer
+  Preview API library is located under the {@code platforms/android-L/} API directory.</p>
+
 <h2 id="UI">User Interface</h2>
 
 <h3 id="MaterialDesign">Material design support</h3>
diff --git a/docs/html/preview/support.jd b/docs/html/preview/support.jd
index 9d7844b..3220d63 100644
--- a/docs/html/preview/support.jd
+++ b/docs/html/preview/support.jd
@@ -106,3 +106,15 @@
 <li>Deleting a Android work profile may take several minutes to complete. You
 cannot create a new Android work profile until the deletion operation is over.</li>
 </ul>
+
+<h3 id="64bitsupport">64-bit support</h3>
+<ul>
+<li><p>If you are using the NDK to compile apps for 32- or 64-bit systems and
+want to use the features provided in the L Developer Preview, download the
+{@code android-ndk64-r10} package for your target platform from the
+<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK page</a>. The
+{@code android-ndk64-r10} package contains the L Developer Preview API
+library (located under the {@code platforms/android-L/} API directory) for both
+32- and 64-bit systems. The package also includes the {@code gcc-4.9} compiler
+for both 32- and 64-bit apps.</p></li>
+</ul>
diff --git a/docs/html/training/volley/index.jd b/docs/html/training/volley/index.jd
index ba5b09f..97bddae 100644
--- a/docs/html/training/volley/index.jd
+++ b/docs/html/training/volley/index.jd
@@ -20,21 +20,6 @@
   <li>Android 1.6 (API Level 4) or higher</li>
 </ul>
 
-<h2>You should also see</h2>
-<ul>
-  <li>For a production quality app that uses Volley, see the 2013 Google I/O
-  <a href="https://github.com/google/iosched">schedule app</a>. In particular, see:
-    <ul>
-      <li><a
-      href="https://github.com/google/iosched/blob/master/android/src/main/java/com/google/android/apps/iosched/util/ImageLoader.java">
-      ImageLoader</a></li>
-      <li><a
-      href="https://github.com/google/iosched/blob/master/android/src/main/java/com/google/android/apps/iosched/util/BitmapCache.java">
-      BitmapCache</a></li>
-    </ul>
-  </li>
-</ul>
-
 </div>
 </div>
 
diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java
index 0dc903a..06586ca 100644
--- a/graphics/java/android/graphics/Typeface.java
+++ b/graphics/java/android/graphics/Typeface.java
@@ -132,6 +132,9 @@
      * @return The best matching typeface.
      */
     public static Typeface create(Typeface family, int style) {
+        if (style < 0 || style > 3) {
+            style = 0;
+        }
         long ni = 0;
         if (family != null) {
             // Return early if we're asked for the same face/style
diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
index e3c03a9..0bc4fdf 100644
--- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java
@@ -275,7 +275,7 @@
         final int res = a.getResourceId(R.styleable.AnimatedRotateDrawable_drawable, 0);
         Drawable drawable = null;
         if (res > 0) {
-            drawable = r.getDrawable(res);
+            drawable = r.getDrawable(res, theme);
         }
 
         a.recycle();
diff --git a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
index 2cb7b03..14aa570 100644
--- a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java
@@ -119,11 +119,11 @@
      *
      * @param fromId Unique identifier of the starting keyframe
      * @param toId Unique identifier of the ending keyframe
-     * @param transition An animatable drawable to use as a transition, may not be null
+     * @param transition An {@link Animatable} drawable to use as a transition, may not be null
      * @param reversible Whether the transition can be reversed
      */
-    public void addTransition(int fromId, int toId, @NonNull Drawable transition,
-            boolean reversible) {
+    public <T extends Drawable & Animatable> void addTransition(int fromId, int toId,
+            @NonNull T transition, boolean reversible) {
         if (transition == null) {
             throw new IllegalArgumentException("Transition drawable must not be null");
         }
@@ -427,7 +427,7 @@
 
         final Drawable dr;
         if (drawableRes != 0) {
-            dr = r.getDrawable(drawableRes);
+            dr = r.getDrawable(drawableRes, theme);
         } else {
             int type;
             while ((type = parser.next()) == XmlPullParser.TEXT) {
@@ -473,7 +473,7 @@
 
         final Drawable dr;
         if (drawableRes != 0) {
-            dr = r.getDrawable(drawableRes);
+            dr = r.getDrawable(drawableRes, theme);
         } else {
             int type;
             while ((type = parser.next()) == XmlPullParser.TEXT) {
diff --git a/graphics/java/android/graphics/drawable/AnimationDrawable.java b/graphics/java/android/graphics/drawable/AnimationDrawable.java
index cef3377..5318fa7 100644
--- a/graphics/java/android/graphics/drawable/AnimationDrawable.java
+++ b/graphics/java/android/graphics/drawable/AnimationDrawable.java
@@ -313,7 +313,7 @@
 
             Drawable dr;
             if (drawableRes != 0) {
-                dr = r.getDrawable(drawableRes);
+                dr = r.getDrawable(drawableRes, theme);
             } else {
                 while ((type=parser.next()) == XmlPullParser.TEXT) {
                     // Empty
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index f5e63ae..40adf94 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -16,6 +16,7 @@
 
 package android.graphics.drawable;
 
+import android.annotation.NonNull;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
@@ -27,6 +28,7 @@
 import android.graphics.ColorFilter;
 import android.graphics.Insets;
 import android.graphics.Matrix;
+import android.graphics.Outline;
 import android.graphics.Paint;
 import android.graphics.PixelFormat;
 import android.graphics.PorterDuff;
@@ -598,6 +600,16 @@
     }
 
     @Override
+    public void getOutline(@NonNull Outline outline) {
+        super.getOutline(outline);
+        if (mBitmapState.mBitmap.hasAlpha()) {
+            // Bitmaps with alpha can't report a non-0 alpha,
+            // since they may not fill their rectangular bounds
+            outline.setAlpha(0.0f);
+        }
+    }
+
+    @Override
     public void setAlpha(int alpha) {
         final int oldAlpha = mBitmapState.mPaint.getAlpha();
         if (alpha != oldAlpha) {
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index a6dbcb0..0aa1b0d 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -17,6 +17,7 @@
 package android.graphics.drawable;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
@@ -609,16 +610,17 @@
             // Empty constructor.
         }
 
-        NinePatchState(NinePatch ninePatch, Rect padding) {
+        NinePatchState(@NonNull NinePatch ninePatch, @Nullable Rect padding) {
             this(ninePatch, padding, null, DEFAULT_DITHER, false);
         }
 
-        NinePatchState(NinePatch ninePatch, Rect padding, Rect opticalInsets) {
+        NinePatchState(@NonNull NinePatch ninePatch, @Nullable Rect padding,
+                @Nullable Rect opticalInsets) {
             this(ninePatch, padding, opticalInsets, DEFAULT_DITHER, false);
         }
 
-        NinePatchState(NinePatch ninePatch, Rect padding, Rect opticalInsets, boolean dither,
-                boolean autoMirror) {
+        NinePatchState(@NonNull NinePatch ninePatch, @Nullable Rect padding,
+                @Nullable Rect opticalInsets, boolean dither, boolean autoMirror) {
             mNinePatch = ninePatch;
             mPadding = padding;
             mOpticalInsets = Insets.of(opticalInsets);
@@ -626,7 +628,7 @@
             mAutoMirrored = autoMirror;
 
             // Sanity check for valid padding when we have optical insets.
-            if (!opticalInsets.isEmpty()) {
+            if (opticalInsets != null && !opticalInsets.isEmpty()) {
                 if (mPadding == null) {
                     mPadding = new Rect();
                 }
@@ -643,7 +645,7 @@
 
         // Copy constructor
 
-        NinePatchState(NinePatchState state) {
+        NinePatchState(@NonNull NinePatchState state) {
             // We don't deep-copy any fields because they are all immutable.
             mNinePatch = state.mNinePatch;
             mTint = state.mTint;
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index f097239..0447e17 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -157,6 +157,12 @@
     private boolean mOverrideBounds;
 
     /**
+     * Whether hotspots are being cleared. Used to prevent re-entry by
+     * animation finish listeners.
+     */
+    private boolean mClearingHotspots;
+
+    /**
      * Constructor used for drawable inflation.
      */
     RippleDrawable() {
@@ -389,8 +395,12 @@
             mState.mColor = color;
         }
 
-        // If we're not waiting on a theme, verify required attributes.
-        if (state.mTouchThemeAttrs == null && mState.mColor == null) {
+        verifyRequiredAttributes(a);
+    }
+
+    private void verifyRequiredAttributes(TypedArray a) throws XmlPullParserException {
+        if (mState.mColor == null && (mState.mTouchThemeAttrs == null
+                || mState.mTouchThemeAttrs[R.styleable.RippleDrawable_color] == 0)) {
             throw new XmlPullParserException(a.getPositionDescription() +
                     ": <ripple> requires a valid color attribute");
         }
@@ -524,6 +534,8 @@
     }
 
     private void clearHotspots() {
+        mClearingHotspots = true;
+
         final int count = mAnimatingRipplesCount;
         final Ripple[] ripples = mAnimatingRipples;
         for (int i = 0; i < count; i++) {
@@ -532,11 +544,6 @@
             final Ripple ripple = ripples[i];
             ripples[i] = null;
             ripple.cancel();
-
-            // The active ripple may also be animating. Don't cancel it twice.
-            if (mRipple == ripple) {
-                mRipple = null;
-            }
         }
 
         if (mRipple != null) {
@@ -549,6 +556,7 @@
             mBackground = null;
         }
 
+        mClearingHotspots = false;
         mAnimatingRipplesCount = 0;
         invalidateSelf();
     }
@@ -647,15 +655,17 @@
      * @param ripple the ripple to remove
      */
     void removeRipple(Ripple ripple) {
-        // Ripple ripple ripple ripple. Ripple ripple.
-        final Ripple[] ripples = mAnimatingRipples;
-        final int count = mAnimatingRipplesCount;
-        final int index = getRippleIndex(ripple);
-        if (index >= 0) {
-            System.arraycopy(ripples, index + 1, ripples, index + 1 - 1, count - (index + 1));
-            ripples[count - 1] = null;
-            mAnimatingRipplesCount--;
-            invalidateSelf();
+        if (!mClearingHotspots) {
+            // Ripple ripple ripple ripple. Ripple ripple.
+            final Ripple[] ripples = mAnimatingRipples;
+            final int count = mAnimatingRipplesCount;
+            final int index = getRippleIndex(ripple);
+            if (index >= 0) {
+                System.arraycopy(ripples, index + 1, ripples, index + 1 - 1, count - (index + 1));
+                ripples[count - 1] = null;
+                mAnimatingRipplesCount--;
+                invalidateSelf();
+            }
         }
     }
 
@@ -885,7 +895,7 @@
 
     static class RippleState extends LayerState {
         int[] mTouchThemeAttrs;
-        ColorStateList mColor = null;
+        ColorStateList mColor = ColorStateList.valueOf(Color.MAGENTA);
         int mMaxRadius = RADIUS_AUTO;
 
         public RippleState(RippleState orig, RippleDrawable owner, Resources res) {
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index 983eb3b..63b9e02 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -436,7 +436,7 @@
                 com.android.internal.R.styleable.RotateDrawable_drawable, 0);
         Drawable drawable = null;
         if (res > 0) {
-            drawable = r.getDrawable(res);
+            drawable = r.getDrawable(res, theme);
         }
 
         a.recycle();
diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java
index f359fdd..4c513e9 100644
--- a/graphics/java/android/graphics/drawable/StateListDrawable.java
+++ b/graphics/java/android/graphics/drawable/StateListDrawable.java
@@ -16,6 +16,8 @@
 
 package android.graphics.drawable;
 
+import com.android.internal.R;
+
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -116,32 +118,27 @@
     public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme)
             throws XmlPullParserException, IOException {
 
-        TypedArray a = r.obtainAttributes(attrs,
-                com.android.internal.R.styleable.StateListDrawable);
+        final TypedArray a = r.obtainAttributes(attrs, R.styleable.StateListDrawable);
 
         super.inflateWithAttributes(r, parser, a,
-                com.android.internal.R.styleable.StateListDrawable_visible);
+                R.styleable.StateListDrawable_visible);
 
         mStateListState.setVariablePadding(a.getBoolean(
-                com.android.internal.R.styleable.StateListDrawable_variablePadding, false));
+                R.styleable.StateListDrawable_variablePadding, false));
         mStateListState.setConstantSize(a.getBoolean(
-                com.android.internal.R.styleable.StateListDrawable_constantSize, false));
+                R.styleable.StateListDrawable_constantSize, false));
         mStateListState.setEnterFadeDuration(a.getInt(
-                com.android.internal.R.styleable.StateListDrawable_enterFadeDuration, 0));
+                R.styleable.StateListDrawable_enterFadeDuration, 0));
         mStateListState.setExitFadeDuration(a.getInt(
-                com.android.internal.R.styleable.StateListDrawable_exitFadeDuration, 0));
+                R.styleable.StateListDrawable_exitFadeDuration, 0));
 
-        setDither(a.getBoolean(com.android.internal.R.styleable.StateListDrawable_dither,
-                               DEFAULT_DITHER));
-
-        setAutoMirrored(a.getBoolean(
-                com.android.internal.R.styleable.StateListDrawable_autoMirrored, false));
+        setDither(a.getBoolean(R.styleable.StateListDrawable_dither, DEFAULT_DITHER));
+        setAutoMirrored(a.getBoolean(R.styleable.StateListDrawable_autoMirrored, false));
 
         a.recycle();
 
-        int type;
-
         final int innerDepth = parser.getDepth() + 1;
+        int type;
         int depth;
         while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
                 && ((depth = parser.getDepth()) >= innerDepth
@@ -163,7 +160,7 @@
             for (i = 0; i < numAttrs; i++) {
                 final int stateResId = attrs.getAttributeNameResource(i);
                 if (stateResId == 0) break;
-                if (stateResId == com.android.internal.R.attr.drawable) {
+                if (stateResId == R.attr.drawable) {
                     drawableRes = attrs.getAttributeResourceValue(i, 0);
                 } else {
                     states[j++] = attrs.getAttributeBooleanValue(i, false)
@@ -173,9 +170,9 @@
             }
             states = StateSet.trimStateSet(states, j);
 
-            Drawable dr;
+            final Drawable dr;
             if (drawableRes != 0) {
-                dr = r.getDrawable(drawableRes);
+                dr = r.getDrawable(drawableRes, theme);
             } else {
                 while ((type = parser.next()) == XmlPullParser.TEXT) {
                 }
diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java
index c2cec32..9ac6927 100644
--- a/graphics/java/android/graphics/drawable/VectorDrawable.java
+++ b/graphics/java/android/graphics/drawable/VectorDrawable.java
@@ -49,7 +49,7 @@
 import java.util.Stack;
 
 /**
- * This lets you create a drawable based on an XML vector graphic It can be
+ * This lets you create a drawable based on an XML vector graphic. It can be
  * defined in an XML file with the <code>&lt;vector></code> element.
  * <p/>
  * The vector drawable has the following elements:
@@ -238,14 +238,13 @@
 
     @Override
     public void draw(Canvas canvas) {
-        final int saveCount = canvas.save();
         final Rect bounds = getBounds();
-
         if (bounds.width() == 0 || bounds.height() == 0) {
             // too small to draw
             return;
         }
 
+        final int saveCount = canvas.save();
         final boolean needMirroring = needMirroring();
 
         canvas.translate(bounds.left, bounds.top);
diff --git a/graphics/java/android/graphics/drawable/shapes/Shape.java b/graphics/java/android/graphics/drawable/shapes/Shape.java
index 589fbaa..eab8666 100644
--- a/graphics/java/android/graphics/drawable/shapes/Shape.java
+++ b/graphics/java/android/graphics/drawable/shapes/Shape.java
@@ -16,6 +16,7 @@
 
 package android.graphics.drawable.shapes;
 
+import android.annotation.NonNull;
 import android.graphics.Canvas;
 import android.graphics.Outline;
 import android.graphics.Paint;
@@ -93,11 +94,12 @@
     protected void onResize(float width, float height) {}
 
     /**
-     * Compute the Outline of the shape.
+     * Compute the Outline of the shape and return it in the supplied Outline
+     * parameter. The default implementation does nothing and {@code outline} is not changed.
      *
-     * The default implementation does not supply an outline.
+     * @param outline The Outline to be populated with the result. Should not be null.
      */
-    public void getOutline(Outline outline) {}
+    public void getOutline(@NonNull Outline outline) {}
 
     @Override
     public Shape clone() throws CloneNotSupportedException {
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 7661d58..2a4dec0 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -802,11 +802,16 @@
 const String8 ResStringPool::string8ObjectAt(size_t idx) const
 {
     size_t len;
-    const char *str = (const char*)string8At(idx, &len);
+    const char *str = string8At(idx, &len);
     if (str != NULL) {
-        return String8(str);
+        return String8(str, len);
     }
-    return String8(stringAt(idx, &len));
+
+    const char16_t *str16 = stringAt(idx, &len);
+    if (str16 != NULL) {
+        return String8(str16, len);
+    }
+    return String8();
 }
 
 const ResStringPool_span* ResStringPool::styleAt(const ResStringPool_ref& ref) const
@@ -2691,6 +2696,9 @@
             case ResTable_config::DENSITY_XXHIGH:
                 res.append("xxhdpi");
                 break;
+            case ResTable_config::DENSITY_XXXHIGH:
+                res.append("xxxhdpi");
+                break;
             case ResTable_config::DENSITY_NONE:
                 res.append("nodpi");
                 break;
@@ -6204,11 +6212,6 @@
     if (mError != 0) {
         printf("mError=0x%x (%s)\n", mError, strerror(mError));
     }
-#if 0
-    char localeStr[RESTABLE_MAX_LOCALE_LEN];
-    mParams.getBcp47Locale(localeStr);
-    printf("mParams=%s,\n" localeStr);
-#endif
     size_t pgCount = mPackageGroups.size();
     printf("Package Groups (%d)\n", (int)pgCount);
     for (size_t pgIndex=0; pgIndex<pgCount; pgIndex++) {
diff --git a/libs/androidfw/tests/ResTable_test.cpp b/libs/androidfw/tests/ResTable_test.cpp
index 8016a82..89d271d0 100644
--- a/libs/androidfw/tests/ResTable_test.cpp
+++ b/libs/androidfw/tests/ResTable_test.cpp
@@ -195,4 +195,20 @@
     ASSERT_EQ(uint32_t(400), val.data);
 }
 
+TEST(ResTableTest, emptyTableHasSensibleDefaults) {
+    const int32_t assetCookie = 1;
+
+    ResTable table;
+    ASSERT_EQ(NO_ERROR, table.addEmpty(assetCookie));
+
+    // Adding an empty table gives us one table!
+    ASSERT_EQ(uint32_t(1), table.getTableCount());
+
+    // Adding an empty table doesn't mean we get packages.
+    ASSERT_EQ(uint32_t(0), table.getBasePackageCount());
+
+    Res_value val;
+    ASSERT_LT(table.getResource(base::R::integer::number1, &val, MAY_NOT_BE_BAG), 0);
+}
+
 }
diff --git a/libs/hwui/AmbientShadow.cpp b/libs/hwui/AmbientShadow.cpp
index 181230a..9cc83ed 100644
--- a/libs/hwui/AmbientShadow.cpp
+++ b/libs/hwui/AmbientShadow.cpp
@@ -117,10 +117,13 @@
 
         // inner ring of points
         float opacity = 1.0 / (1 + rayHeight[rayIndex] * heightFactor);
+        // NOTE: Shadow alpha values are transformed when stored in alphavertices,
+        // so that they can be consumed directly by gFS_Main_ApplyVertexAlphaShadowInterp
+        float transformedOpacity = acos(1.0f - 2.0f * opacity);
         AlphaVertex::set(&shadowVertices[rays + rayIndex],
                 intersection.x,
                 intersection.y,
-                opacity);
+                transformedOpacity);
     }
 
     if (isCasterOpaque) {
diff --git a/libs/hwui/Animator.cpp b/libs/hwui/Animator.cpp
index 5ecd77a..78d569d 100644
--- a/libs/hwui/Animator.cpp
+++ b/libs/hwui/Animator.cpp
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "RT-Animator"
-
 #include "Animator.h"
 
 #include <inttypes.h>
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index 7bd0798..5689e17 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -703,6 +703,8 @@
     propertyLightPosY = -1.0f;
     propertyLightPosZ = -1.0f;
     propertyAmbientRatio = -1.0f;
+    propertyAmbientShadowStrength = -1;
+    propertySpotShadowStrength = -1;
 }
 
 void Caches::setTempProperty(const char* name, const char* value) {
@@ -723,6 +725,14 @@
         propertyLightPosZ = fmin(fmax(atof(value), 0.0), 3000.0);
         ALOGD("lightPos Z = %.2f", propertyLightPosZ);
         return;
+    } else if (!strcmp(name, "ambientShadowStrength")) {
+        propertyAmbientShadowStrength = atoi(value);
+        ALOGD("ambient shadow strength = 0x%x out of 0xff", propertyAmbientShadowStrength);
+        return;
+    } else if (!strcmp(name, "spotShadowStrength")) {
+        propertySpotShadowStrength = atoi(value);
+        ALOGD("spot shadow strength = 0x%x out of 0xff", propertySpotShadowStrength);
+        return;
     }
     ALOGD("    failed");
 }
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index e00cb0b..0482430 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -366,6 +366,9 @@
     float propertyLightPosY;
     float propertyLightPosZ;
     float propertyAmbientRatio;
+    int propertyAmbientShadowStrength;
+    int propertySpotShadowStrength;
+
 private:
     enum OverdrawColorSet {
         kColorSet_Default = 0,
diff --git a/libs/hwui/DamageAccumulator.cpp b/libs/hwui/DamageAccumulator.cpp
index 15bed58..054a164 100644
--- a/libs/hwui/DamageAccumulator.cpp
+++ b/libs/hwui/DamageAccumulator.cpp
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "DamageAccumulator"
-
 #include "DamageAccumulator.h"
 
 #include <cutils/log.h>
@@ -26,12 +24,6 @@
 namespace android {
 namespace uirenderer {
 
-NullDamageAccumulator NullDamageAccumulator::sInstance;
-
-NullDamageAccumulator* NullDamageAccumulator::instance() {
-    return &sInstance;
-}
-
 enum TransformType {
     TransformInvalid = 0,
     TransformRenderNode,
@@ -60,6 +52,30 @@
     mHead->type = TransformNone;
 }
 
+static void computeTransformImpl(const DirtyStack* currentFrame, Matrix4* outMatrix) {
+    if (currentFrame->prev != currentFrame) {
+        computeTransformImpl(currentFrame->prev, outMatrix);
+    }
+    switch (currentFrame->type) {
+    case TransformRenderNode:
+        currentFrame->renderNode->applyViewPropertyTransforms(*outMatrix);
+        break;
+    case TransformMatrix4:
+        outMatrix->multiply(*currentFrame->matrix4);
+        break;
+    case TransformNone:
+        // nothing to be done
+        break;
+    default:
+        LOG_ALWAYS_FATAL("Tried to compute transform with an invalid type: %d", currentFrame->type);
+    }
+}
+
+void DamageAccumulator::computeCurrentTransform(Matrix4* outMatrix) const {
+    outMatrix->loadIdentity();
+    computeTransformImpl(mHead, outMatrix);
+}
+
 void DamageAccumulator::pushCommon() {
     if (!mHead->next) {
         DirtyStack* nextFrame = (DirtyStack*) mAllocator.alloc(sizeof(DirtyStack));
diff --git a/libs/hwui/DamageAccumulator.h b/libs/hwui/DamageAccumulator.h
index 90d9425..6f0bd8c 100644
--- a/libs/hwui/DamageAccumulator.h
+++ b/libs/hwui/DamageAccumulator.h
@@ -31,18 +31,7 @@
 class RenderNode;
 class Matrix4;
 
-class IDamageAccumulator {
-public:
-    virtual void pushTransform(const RenderNode* transform) = 0;
-    virtual void pushTransform(const Matrix4* transform) = 0;
-    virtual void popTransform() = 0;
-    virtual void dirty(float left, float top, float right, float bottom) = 0;
-    virtual void peekAtDirty(SkRect* dest) = 0;
-protected:
-    virtual ~IDamageAccumulator() {}
-};
-
-class DamageAccumulator : public IDamageAccumulator {
+class DamageAccumulator {
     PREVENT_COPY_AND_ASSIGN(DamageAccumulator);
 public:
     DamageAccumulator();
@@ -51,17 +40,19 @@
     // Push a transform node onto the stack. This should be called prior
     // to any dirty() calls. Subsequent calls to dirty()
     // will be affected by the transform when popTransform() is called.
-    virtual void pushTransform(const RenderNode* transform);
-    virtual void pushTransform(const Matrix4* transform);
+    void pushTransform(const RenderNode* transform);
+    void pushTransform(const Matrix4* transform);
 
     // Pops a transform node from the stack, propagating the dirty rect
     // up to the parent node. Returns the IDamageTransform that was just applied
-    virtual void popTransform();
+    void popTransform();
 
-    virtual void dirty(float left, float top, float right, float bottom);
+    void dirty(float left, float top, float right, float bottom);
 
     // Returns the current dirty area, *NOT* transformed by pushed transforms
-    virtual void peekAtDirty(SkRect* dest);
+    void peekAtDirty(SkRect* dest);
+
+    void computeCurrentTransform(Matrix4* outMatrix) const;
 
     void finish(SkRect* totalDirty);
 
@@ -74,24 +65,6 @@
     DirtyStack* mHead;
 };
 
-class NullDamageAccumulator : public IDamageAccumulator {
-    PREVENT_COPY_AND_ASSIGN(NullDamageAccumulator);
-public:
-    virtual void pushTransform(const RenderNode* transform) { }
-    virtual void pushTransform(const Matrix4* transform) { }
-    virtual void popTransform() { }
-    virtual void dirty(float left, float top, float right, float bottom) { }
-    virtual void peekAtDirty(SkRect* dest) { dest->setEmpty(); }
-
-    ANDROID_API static NullDamageAccumulator* instance();
-
-private:
-    NullDamageAccumulator() {}
-    ~NullDamageAccumulator() {}
-
-    static NullDamageAccumulator sInstance;
-};
-
 } /* namespace uirenderer */
 } /* namespace android */
 
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index b210e64..94162fc 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -66,7 +66,7 @@
             "prepareDirty called a second time during a recording!");
     mDisplayListData = new DisplayListData();
 
-    initializeSaveStack(0, 0, getWidth(), getHeight());
+    initializeSaveStack(0, 0, getWidth(), getHeight(), Vector3());
 
     mDirtyClip = opaque;
     mRestoreSaveCount = -1;
@@ -176,15 +176,15 @@
 status_t DisplayListRenderer::drawRenderNode(RenderNode* renderNode, Rect& dirty, int32_t flags) {
     // dirty is an out parameter and should not be recorded,
     // it matters only when replaying the display list
+    DrawRenderNodeOp* op = new (alloc()) DrawRenderNodeOp(renderNode, flags, *currentTransform());
+    int opIndex = addDrawOp(op);
+    mDisplayListData->addChild(op);
 
     if (renderNode->stagingProperties().isProjectionReceiver()) {
         // use staging property, since recording on UI thread
-        mDisplayListData->projectionReceiveIndex = mDisplayListData->displayListOps.size();
+        mDisplayListData->projectionReceiveIndex = opIndex;
     }
 
-    DrawRenderNodeOp* op = new (alloc()) DrawRenderNodeOp(renderNode, flags, *currentTransform());
-    addDrawOp(op);
-    mDisplayListData->addChild(op);
     return DrawGlInfo::kStatusDone;
 }
 
@@ -447,11 +447,11 @@
     }
 }
 
-void DisplayListRenderer::addStateOp(StateOp* op) {
-    addOpInternal(op);
+int DisplayListRenderer::addStateOp(StateOp* op) {
+    return addOpInternal(op);
 }
 
-void DisplayListRenderer::addDrawOp(DrawOp* op) {
+int DisplayListRenderer::addDrawOp(DrawOp* op) {
     Rect localBounds;
     if (op->getLocalBounds(localBounds)) {
         bool rejected = quickRejectConservative(localBounds.left, localBounds.top,
@@ -460,7 +460,7 @@
     }
 
     mDisplayListData->hasDrawOps = true;
-    addOpInternal(op);
+    return addOpInternal(op);
 }
 
 }; // namespace uirenderer
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 1b3a48a..b5c0159 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -158,12 +158,14 @@
     void insertTranslate();
 
     LinearAllocator& alloc() { return mDisplayListData->allocator; }
-    void addStateOp(StateOp* op);
-    void addDrawOp(DrawOp* op);
-    void addOpInternal(DisplayListOp* op) {
+
+    // Each method returns final index of op
+    int addStateOp(StateOp* op);
+    int addDrawOp(DrawOp* op);
+    int addOpInternal(DisplayListOp* op) {
         insertRestoreToCount();
         insertTranslate();
-        mDisplayListData->displayListOps.add(op);
+        return mDisplayListData->displayListOps.add(op);
     }
 
     template<class T>
diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp
index d05cabc..8639ae1 100644
--- a/libs/hwui/Layer.cpp
+++ b/libs/hwui/Layer.cpp
@@ -53,6 +53,7 @@
     deferredList = NULL;
     convexMask = NULL;
     caches.resourceCache.incrementRefcount(this);
+    rendererLightPosDirty = true;
 }
 
 Layer::~Layer() {
@@ -80,6 +81,17 @@
     }
 }
 
+void Layer::updateLightPosFromRenderer(const OpenGLRenderer& rootRenderer) {
+    if (renderer && rendererLightPosDirty) {
+        // re-init renderer's light position, based upon last cached location in window
+        Vector3 lightPos = rootRenderer.getLightCenter();
+        cachedInvTransformInWindow.mapPoint3d(lightPos);
+        renderer->initLight(lightPos, rootRenderer.getLightRadius(),
+                rootRenderer.getAmbientShadowAlpha(), rootRenderer.getSpotShadowAlpha());
+        rendererLightPosDirty = false;
+    }
+}
+
 bool Layer::resize(const uint32_t width, const uint32_t height) {
     uint32_t desiredWidth = computeIdealWidth(width);
     uint32_t desiredHeight = computeIdealWidth(height);
@@ -203,7 +215,8 @@
     }
 }
 
-void Layer::defer() {
+void Layer::defer(const OpenGLRenderer& rootRenderer) {
+    updateLightPosFromRenderer(rootRenderer);
     const float width = layer.getWidth();
     const float height = layer.getHeight();
 
@@ -253,7 +266,8 @@
     }
 }
 
-void Layer::render() {
+void Layer::render(const OpenGLRenderer& rootRenderer) {
+    updateLightPosFromRenderer(rootRenderer);
     renderer->setViewport(layer.getWidth(), layer.getHeight());
     renderer->prepareDirty(dirtyRect.left, dirtyRect.top, dirtyRect.right, dirtyRect.bottom,
             !isBlend());
diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h
index 0bf05d0..38c29c7 100644
--- a/libs/hwui/Layer.h
+++ b/libs/hwui/Layer.h
@@ -86,6 +86,11 @@
         regionRect.translate(layer.left, layer.top);
     }
 
+    void setWindowTransform(Matrix4& windowTransform) {
+        cachedInvTransformInWindow.loadInverse(windowTransform);
+        rendererLightPosDirty = true;
+    }
+
     void updateDeferred(RenderNode* renderNode, int left, int top, int right, int bottom);
 
     inline uint32_t getWidth() const {
@@ -257,10 +262,10 @@
         return transform;
     }
 
-    void defer();
+    void defer(const OpenGLRenderer& rootRenderer);
     void cancelDefer();
     void flush();
-    void render();
+    void render(const OpenGLRenderer& rootRenderer);
 
     /**
      * Bounds of the layer.
@@ -304,6 +309,7 @@
 
 private:
     void requireRenderer();
+    void updateLightPosFromRenderer(const OpenGLRenderer& rootRenderer);
 
     Caches& caches;
 
@@ -383,6 +389,12 @@
     mat4 transform;
 
     /**
+     * Cached transform of layer in window, updated only on creation / resize
+     */
+    mat4 cachedInvTransformInWindow;
+    bool rendererLightPosDirty;
+
+    /**
      * Used to defer display lists when the layer is updated with a
      * display list.
      */
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 636f218..721ab3d 100755
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -188,8 +188,7 @@
 void OpenGLRenderer::setupFrameState(float left, float top,
         float right, float bottom, bool opaque) {
     mCaches.clearGarbage();
-
-    initializeSaveStack(left, top, right, bottom);
+    initializeSaveStack(left, top, right, bottom, mLightCenter);
     mOpaque = opaque;
     mTilingClip.set(left, top, right, bottom);
 }
@@ -481,9 +480,9 @@
         }
 
         if (CC_UNLIKELY(inFrame || mCaches.drawDeferDisabled)) {
-            layer->render();
+            layer->render(*this);
         } else {
-            layer->defer();
+            layer->defer(*this);
         }
 
         if (inFrame) {
@@ -1641,8 +1640,9 @@
     mCaches.disableTexCoordsVertexArray();
 }
 
-void OpenGLRenderer::setupDrawAA() {
-    mDescription.isAA = true;
+void OpenGLRenderer::setupDrawVertexAlpha(bool useShadowAlphaInterp) {
+    mDescription.hasVertexAlpha = true;
+    mDescription.useShadowAlphaInterp = useShadowAlphaInterp;
 }
 
 void OpenGLRenderer::setupDrawColor(int color, int alpha) {
@@ -2365,7 +2365,7 @@
 }
 
 status_t OpenGLRenderer::drawVertexBuffer(float translateX, float translateY,
-        const VertexBuffer& vertexBuffer, const SkPaint* paint, bool useOffset) {
+        const VertexBuffer& vertexBuffer, const SkPaint* paint, int displayFlags) {
     // not missing call to quickReject/dirtyLayer, always done at a higher level
     if (!vertexBuffer.getVertexCount()) {
         // no vertices to draw
@@ -2381,13 +2381,14 @@
 
     setupDraw();
     setupDrawNoTexture();
-    if (isAA) setupDrawAA();
+    if (isAA) setupDrawVertexAlpha((displayFlags & kVertexBuffer_ShadowInterp));
     setupDrawColor(color, ((color >> 24) & 0xFF) * mSnapshot->alpha);
     setupDrawColorFilter(getColorFilter(paint));
     setupDrawShader(getShader(paint));
     setupDrawBlending(paint, isAA);
     setupDrawProgram();
-    setupDrawModelView(kModelViewMode_Translate, useOffset, translateX, translateY, 0, 0);
+    setupDrawModelView(kModelViewMode_Translate, (displayFlags & kVertexBuffer_Offset),
+            translateX, translateY, 0, 0);
     setupDrawColorUniforms(getShader(paint));
     setupDrawColorFilterUniforms(getColorFilter(paint));
     setupDrawShaderUniforms(getShader(paint));
@@ -2397,7 +2398,6 @@
     mCaches.bindPositionVertexPointer(true, vertices, isAA ? gAlphaVertexStride : gVertexStride);
     mCaches.resetTexCoordsVertexPointer();
 
-
     int alphaSlot = -1;
     if (isAA) {
         void* alphaCoords = ((GLbyte*) vertices) + gVertexAlphaOffset;
@@ -2466,8 +2466,8 @@
         return DrawGlInfo::kStatusDone;
     }
 
-    bool useOffset = !paint->isAntiAlias();
-    return drawVertexBuffer(buffer, paint, useOffset);
+    int displayFlags = paint->isAntiAlias() ? 0 : kVertexBuffer_Offset;
+    return drawVertexBuffer(buffer, paint, displayFlags);
 }
 
 status_t OpenGLRenderer::drawPoints(const float* points, int count, const SkPaint* paint) {
@@ -2483,8 +2483,8 @@
         return DrawGlInfo::kStatusDone;
     }
 
-    bool useOffset = !paint->isAntiAlias();
-    return drawVertexBuffer(buffer, paint, useOffset);
+    int displayFlags = paint->isAntiAlias() ? 0 : kVertexBuffer_Offset;
+    return drawVertexBuffer(buffer, paint, displayFlags);
 }
 
 status_t OpenGLRenderer::drawColor(int color, SkXfermode::Mode mode) {
@@ -3165,14 +3165,23 @@
     SkPaint paint;
     paint.setAntiAlias(true); // want to use AlphaVertex
 
-    if (ambientShadowVertexBuffer && mAmbientShadowAlpha > 0) {
-        paint.setARGB(casterAlpha * mAmbientShadowAlpha, 0, 0, 0);
-        drawVertexBuffer(*ambientShadowVertexBuffer, &paint);
+    // The caller has made sure casterAlpha > 0.
+    float ambientShadowAlpha = mAmbientShadowAlpha;
+    if (CC_UNLIKELY(mCaches.propertyAmbientShadowStrength >= 0)) {
+        ambientShadowAlpha = mCaches.propertyAmbientShadowStrength;
+    }
+    if (ambientShadowVertexBuffer && ambientShadowAlpha > 0) {
+        paint.setARGB(casterAlpha * ambientShadowAlpha, 0, 0, 0);
+        drawVertexBuffer(*ambientShadowVertexBuffer, &paint, kVertexBuffer_ShadowInterp);
     }
 
-    if (spotShadowVertexBuffer && mSpotShadowAlpha > 0) {
-        paint.setARGB(casterAlpha * mSpotShadowAlpha, 0, 0, 0);
-        drawVertexBuffer(*spotShadowVertexBuffer, &paint);
+    float spotShadowAlpha = mSpotShadowAlpha;
+    if (CC_UNLIKELY(mCaches.propertySpotShadowStrength >= 0)) {
+        spotShadowAlpha = mCaches.propertySpotShadowStrength;
+    }
+    if (spotShadowVertexBuffer && spotShadowAlpha > 0) {
+        paint.setARGB(casterAlpha * spotShadowAlpha, 0, 0, 0);
+        drawVertexBuffer(*spotShadowVertexBuffer, &paint, kVertexBuffer_ShadowInterp);
     }
 
     return DrawGlInfo::kStatusDrew;
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index fd228db..e9ca5d9 100755
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -94,6 +94,11 @@
     kClipSide_ConservativeFull = 0x1F
 };
 
+enum VertexBufferDisplayFlags {
+    kVertexBuffer_Offset = 0x1,
+    kVertexBuffer_ShadowInterp = 0x2,
+};
+
 /**
  * Defines additional transformation that should be applied by the model view matrix, beyond that of
  * the currentTransform()
@@ -340,8 +345,10 @@
     }
 #endif
 
-    const Vector3& getLightCenter() const { return mLightCenter; }
+    const Vector3& getLightCenter() const { return currentSnapshot()->getRelativeLightCenter(); }
     float getLightRadius() const { return mLightRadius; }
+    uint8_t getAmbientShadowAlpha() const { return mAmbientShadowAlpha; }
+    uint8_t getSpotShadowAlpha() const { return mSpotShadowAlpha; }
 
 protected:
     /**
@@ -656,17 +663,17 @@
      *
      * @param vertexBuffer The VertexBuffer to be drawn
      * @param paint The paint to render with
-     * @param useOffset Offset the vertexBuffer (used in drawing non-AA lines)
+     * @param flags flags with which to draw
      */
     status_t drawVertexBuffer(float translateX, float translateY, const VertexBuffer& vertexBuffer,
-            const SkPaint* paint, bool useOffset = false);
+            const SkPaint* paint, int flags = 0);
 
     /**
      * Convenience for translating method
      */
     status_t drawVertexBuffer(const VertexBuffer& vertexBuffer,
-            const SkPaint* paint, bool useOffset = false) {
-        return drawVertexBuffer(0.0f, 0.0f, vertexBuffer, paint, useOffset);
+            const SkPaint* paint, int flags = 0) {
+        return drawVertexBuffer(0.0f, 0.0f, vertexBuffer, paint, flags);
     }
 
     /**
@@ -842,7 +849,7 @@
     void setupDrawWithTextureAndColor(bool isAlpha8 = false);
     void setupDrawWithExternalTexture();
     void setupDrawNoTexture();
-    void setupDrawAA();
+    void setupDrawVertexAlpha(bool useShadowAlphaInterp);
     void setupDrawColor(int color, int alpha);
     void setupDrawColor(float r, float g, float b, float a);
     void setupDrawAlpha8Color(int color, int alpha);
diff --git a/libs/hwui/Program.h b/libs/hwui/Program.h
index 3e191d0..56773f4 100644
--- a/libs/hwui/Program.h
+++ b/libs/hwui/Program.h
@@ -71,20 +71,21 @@
 #define PROGRAM_GRADIENT_TYPE_SHIFT 33 // 2 bits for gradient type
 #define PROGRAM_MODULATE_SHIFT 35
 
-#define PROGRAM_HAS_AA_SHIFT 36
+#define PROGRAM_HAS_VERTEX_ALPHA_SHIFT 36
+#define PROGRAM_USE_SHADOW_ALPHA_INTERP_SHIFT 37
 
-#define PROGRAM_HAS_EXTERNAL_TEXTURE_SHIFT 37
-#define PROGRAM_HAS_TEXTURE_TRANSFORM_SHIFT 38
+#define PROGRAM_HAS_EXTERNAL_TEXTURE_SHIFT 38
+#define PROGRAM_HAS_TEXTURE_TRANSFORM_SHIFT 39
 
-#define PROGRAM_HAS_GAMMA_CORRECTION 39
+#define PROGRAM_HAS_GAMMA_CORRECTION 40
 
-#define PROGRAM_IS_SIMPLE_GRADIENT 40
+#define PROGRAM_IS_SIMPLE_GRADIENT 41
 
-#define PROGRAM_HAS_COLORS 41
+#define PROGRAM_HAS_COLORS 42
 
-#define PROGRAM_HAS_DEBUG_HIGHLIGHT 42
-#define PROGRAM_EMULATE_STENCIL 43
-#define PROGRAM_HAS_ROUND_RECT_CLIP 44
+#define PROGRAM_HAS_DEBUG_HIGHLIGHT 43
+#define PROGRAM_EMULATE_STENCIL 44
+#define PROGRAM_HAS_ROUND_RECT_CLIP 45
 
 ///////////////////////////////////////////////////////////////////////////////
 // Types
@@ -134,7 +135,8 @@
     bool hasBitmap;
     bool isBitmapNpot;
 
-    bool isAA; // drawing with a per-vertex alpha
+    bool hasVertexAlpha;
+    bool useShadowAlphaInterp;
 
     bool hasGradient;
     Gradient gradientType;
@@ -174,7 +176,8 @@
 
         hasColors = false;
 
-        isAA = false;
+        hasVertexAlpha = false;
+        useShadowAlphaInterp = false;
 
         modulate = false;
 
@@ -261,7 +264,8 @@
         key |= (framebufferMode & PROGRAM_MAX_XFERMODE) << PROGRAM_XFERMODE_FRAMEBUFFER_SHIFT;
         if (swapSrcDst) key |= PROGRAM_KEY_SWAP_SRC_DST;
         if (modulate) key |= programid(0x1) << PROGRAM_MODULATE_SHIFT;
-        if (isAA) key |= programid(0x1) << PROGRAM_HAS_AA_SHIFT;
+        if (hasVertexAlpha) key |= programid(0x1) << PROGRAM_HAS_VERTEX_ALPHA_SHIFT;
+        if (useShadowAlphaInterp) key |= programid(0x1) << PROGRAM_USE_SHADOW_ALPHA_INTERP_SHIFT;
         if (hasExternalTexture) key |= programid(0x1) << PROGRAM_HAS_EXTERNAL_TEXTURE_SHIFT;
         if (hasTextureTransform) key |= programid(0x1) << PROGRAM_HAS_TEXTURE_TRANSFORM_SHIFT;
         if (hasGammaCorrection) key |= programid(0x1) << PROGRAM_HAS_GAMMA_CORRECTION;
diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp
index 3ef2a71..c802b18 100644
--- a/libs/hwui/ProgramCache.cpp
+++ b/libs/hwui/ProgramCache.cpp
@@ -46,7 +46,7 @@
         "attribute vec2 texCoords;\n";
 const char* gVS_Header_Attributes_Colors =
         "attribute vec4 colors;\n";
-const char* gVS_Header_Attributes_AAVertexShapeParameters =
+const char* gVS_Header_Attributes_VertexAlphaParameters =
         "attribute float vtxAlpha;\n";
 const char* gVS_Header_Uniforms_TextureTransform =
         "uniform mat4 mainTextureTransform;\n";
@@ -64,7 +64,7 @@
         "varying vec2 outTexCoords;\n";
 const char* gVS_Header_Varyings_HasColors =
         "varying vec4 outColors;\n";
-const char* gVS_Header_Varyings_IsAAVertexShape =
+const char* gVS_Header_Varyings_HasVertexAlpha =
         "varying float alpha;\n";
 const char* gVS_Header_Varyings_HasBitmap =
         "varying highp vec2 outBitmapTexCoords;\n";
@@ -121,8 +121,10 @@
 const char* gVS_Main_Position =
         "    vec4 transformedPosition = projection * transform * position;\n"
         "    gl_Position = transformedPosition;\n";
-const char* gVS_Main_AAVertexShape =
+
+const char* gVS_Main_VertexAlpha =
         "    alpha = vtxAlpha;\n";
+
 const char* gVS_Main_HasRoundRectClip =
         "    roundRectPos = (roundRectInvTransform * transformedPosition).xy;\n";
 const char* gVS_Footer =
@@ -235,8 +237,10 @@
         "    fragColor = color;\n";
 const char* gFS_Main_ModulateColor =
         "    fragColor *= color.a;\n";
-const char* gFS_Main_AccountForAAVertexShape =
+const char* gFS_Main_ApplyVertexAlphaLinearInterp =
         "    fragColor *= alpha;\n";
+const char* gFS_Main_ApplyVertexAlphaShadowInterp =
+        "    fragColor *= (1.0 - cos(alpha)) / 2.0;\n";
 
 const char* gFS_Main_FetchTexture[2] = {
         // Don't modulate
@@ -467,8 +471,8 @@
     if (description.hasTexture || description.hasExternalTexture) {
         shader.append(gVS_Header_Attributes_TexCoords);
     }
-    if (description.isAA) {
-        shader.append(gVS_Header_Attributes_AAVertexShapeParameters);
+    if (description.hasVertexAlpha) {
+        shader.append(gVS_Header_Attributes_VertexAlphaParameters);
     }
     if (description.hasColors) {
         shader.append(gVS_Header_Attributes_Colors);
@@ -491,8 +495,8 @@
     if (description.hasTexture || description.hasExternalTexture) {
         shader.append(gVS_Header_Varyings_HasTexture);
     }
-    if (description.isAA) {
-        shader.append(gVS_Header_Varyings_IsAAVertexShape);
+    if (description.hasVertexAlpha) {
+        shader.append(gVS_Header_Varyings_HasVertexAlpha);
     }
     if (description.hasColors) {
         shader.append(gVS_Header_Varyings_HasColors);
@@ -514,8 +518,8 @@
         } else if (description.hasTexture || description.hasExternalTexture) {
             shader.append(gVS_Main_OutTexCoords);
         }
-        if (description.isAA) {
-            shader.append(gVS_Main_AAVertexShape);
+        if (description.hasVertexAlpha) {
+            shader.append(gVS_Main_VertexAlpha);
         }
         if (description.hasColors) {
             shader.append(gVS_Main_OutColors);
@@ -565,8 +569,8 @@
     if (description.hasTexture || description.hasExternalTexture) {
         shader.append(gVS_Header_Varyings_HasTexture);
     }
-    if (description.isAA) {
-        shader.append(gVS_Header_Varyings_IsAAVertexShape);
+    if (description.hasVertexAlpha) {
+        shader.append(gVS_Header_Varyings_HasVertexAlpha);
     }
     if (description.hasColors) {
         shader.append(gVS_Header_Varyings_HasColors);
@@ -607,7 +611,7 @@
     }
 
     // Optimization for common cases
-    if (!description.isAA
+    if (!description.hasVertexAlpha
             && !blendFramebuffer
             && !description.hasColors
             && description.colorOp == ProgramDescription::kColorNone
@@ -749,8 +753,12 @@
         // Apply the color op if needed
         shader.append(gFS_Main_ApplyColorOp[description.colorOp]);
 
-        if (description.isAA) {
-            shader.append(gFS_Main_AccountForAAVertexShape);
+        if (description.hasVertexAlpha) {
+            if (description.useShadowAlphaInterp) {
+                shader.append(gFS_Main_ApplyVertexAlphaShadowInterp);
+            } else {
+                shader.append(gFS_Main_ApplyVertexAlphaLinearInterp);
+            }
         }
 
         // Output the fragment
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index c59b010..0db6198 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -116,6 +116,7 @@
 
 void RenderNode::prepareTree(TreeInfo& info) {
     ATRACE_CALL();
+    LOG_ALWAYS_FATAL_IF(!info.damageAccumulator, "DamageAccumulator missing");
 
     prepareTreeImpl(info);
 }
@@ -163,16 +164,26 @@
         return;
     }
 
+    bool transformUpdateNeeded = false;
     if (!mLayer) {
         mLayer = LayerRenderer::createRenderLayer(info.renderState, getWidth(), getHeight());
         applyLayerPropertiesToLayer(info);
         damageSelf(info);
+        transformUpdateNeeded = true;
     } else if (mLayer->layer.getWidth() != getWidth() || mLayer->layer.getHeight() != getHeight()) {
         if (!LayerRenderer::resizeLayer(mLayer, getWidth(), getHeight())) {
             LayerRenderer::destroyLayer(mLayer);
             mLayer = 0;
         }
         damageSelf(info);
+        transformUpdateNeeded = true;
+    }
+
+    if (transformUpdateNeeded) {
+        // update the transform in window of the layer to reset its origin wrt light source position
+        Matrix4 windowTransform;
+        info.damageAccumulator->computeCurrentTransform(&windowTransform);
+        mLayer->setWindowTransform(windowTransform);
     }
 
     SkRect dirty;
@@ -406,7 +417,7 @@
  * If true3dTransform is set to true, the transform applied to the input matrix will use true 4x4
  * matrix computation instead of the Skia 3x3 matrix + camera hackery.
  */
-void RenderNode::applyViewPropertyTransforms(mat4& matrix, bool true3dTransform) {
+void RenderNode::applyViewPropertyTransforms(mat4& matrix, bool true3dTransform) const {
     if (properties().getLeft() != 0 || properties().getTop() != 0) {
         matrix.translate(properties().getLeft(), properties().getTop());
     }
@@ -741,15 +752,24 @@
     const SkPath* projectionReceiverOutline = properties().getOutline().getPath();
     int restoreTo = renderer.getSaveCount();
 
+    LinearAllocator& alloc = handler.allocator();
+    handler(new (alloc) SaveOp(SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag),
+            PROPERTY_SAVECOUNT, properties().getClipToBounds());
+
+    // Transform renderer to match background we're projecting onto
+    // (by offsetting canvas by translationX/Y of background rendernode, since only those are set)
+    const DisplayListOp* op =
+            (mDisplayListData->displayListOps[mDisplayListData->projectionReceiveIndex]);
+    const DrawRenderNodeOp* backgroundOp = reinterpret_cast<const DrawRenderNodeOp*>(op);
+    const RenderProperties& backgroundProps = backgroundOp->mRenderNode->properties();
+    renderer.translate(backgroundProps.getTranslationX(), backgroundProps.getTranslationY());
+
     // If the projection reciever has an outline, we mask each of the projected rendernodes to it
     // Either with clipRect, or special saveLayer masking
-    LinearAllocator& alloc = handler.allocator();
     if (projectionReceiverOutline != NULL) {
         const SkRect& outlineBounds = projectionReceiverOutline->getBounds();
         if (projectionReceiverOutline->isRect(NULL)) {
             // mask to the rect outline simply with clipRect
-            handler(new (alloc) SaveOp(SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag),
-                    PROPERTY_SAVECOUNT, properties().getClipToBounds());
             ClipRectOp* clipOp = new (alloc) ClipRectOp(
                     outlineBounds.left(), outlineBounds.top(),
                     outlineBounds.right(), outlineBounds.bottom(), SkRegion::kIntersect_Op);
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h
index fa310e0..afa17d5 100644
--- a/libs/hwui/RenderNode.h
+++ b/libs/hwui/RenderNode.h
@@ -174,6 +174,8 @@
     // UI thread only!
     ANDROID_API void addAnimator(const sp<BaseRenderNodeAnimator>& animator);
 
+    void applyViewPropertyTransforms(mat4& matrix, bool true3dTransform = false) const;
+
 private:
     typedef key_value_pair_t<float, DrawRenderNodeOp*> ZDrawRenderNodeOpPair;
 
@@ -189,8 +191,6 @@
         kPositiveZChildren
     };
 
-    void applyViewPropertyTransforms(mat4& matrix, bool true3dTransform = false);
-
     void computeOrderingImpl(DrawRenderNodeOp* opState,
             const SkPath* outlineOfProjectionSurface,
             Vector<DrawRenderNodeOp*>* compositedChildrenOfProjectionSurface,
diff --git a/libs/hwui/Snapshot.cpp b/libs/hwui/Snapshot.cpp
index 6f19275..ecc47d2 100644
--- a/libs/hwui/Snapshot.cpp
+++ b/libs/hwui/Snapshot.cpp
@@ -55,7 +55,8 @@
         , empty(false)
         , alpha(s->alpha)
         , roundRectClipState(s->roundRectClipState)
-        , mViewportData(s->mViewportData) {
+        , mViewportData(s->mViewportData)
+        , mRelativeLightCenter(s->mRelativeLightCenter) {
     if (saveFlags & SkCanvas::kMatrix_SaveFlag) {
         mTransformRoot.load(*s->transform);
         transform = &mTransformRoot;
@@ -200,6 +201,13 @@
 ///////////////////////////////////////////////////////////////////////////////
 
 void Snapshot::resetTransform(float x, float y, float z) {
+    // before resetting, map current light pos with inverse of current transform
+    Vector3 center = mRelativeLightCenter;
+    mat4 inverse;
+    inverse.loadInverse(*transform);
+    inverse.mapPoint3d(center);
+    mRelativeLightCenter = center;
+
     transform = &mTransformRoot;
     transform->loadTranslate(x, y, z);
 }
diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h
index 98e2440..ad4ee9d 100644
--- a/libs/hwui/Snapshot.h
+++ b/libs/hwui/Snapshot.h
@@ -161,6 +161,9 @@
     int getViewportHeight() const { return mViewportData.mHeight; }
     const Matrix4& getOrthoMatrix() const { return mViewportData.mOrthoMatrix; }
 
+    const Vector3& getRelativeLightCenter() const { return mRelativeLightCenter; }
+    void setRelativeLightCenter(const Vector3& lightCenter) { mRelativeLightCenter = lightCenter; }
+
     /**
      * Sets (and replaces) the current clipping outline
      */
@@ -302,6 +305,7 @@
 
     SkRegion mClipRegionRoot;
     ViewportData mViewportData;
+    Vector3 mRelativeLightCenter;
 
 }; // class Snapshot
 
diff --git a/libs/hwui/SpotShadow.cpp b/libs/hwui/SpotShadow.cpp
index 8c3077b..d726538 100644
--- a/libs/hwui/SpotShadow.cpp
+++ b/libs/hwui/SpotShadow.cpp
@@ -754,9 +754,13 @@
     AlphaVertex* shadowVertices =
             shadowTriangleStrip.alloc<AlphaVertex>(SHADOW_VERTEX_COUNT);
 
+    // NOTE: Shadow alpha values are transformed when stored in alphavertices,
+    // so that they can be consumed directly by gFS_Main_ApplyVertexAlphaShadowInterp
+    float transformedMaxAlpha = M_PI;
+
     // Calculate the vertices (x, y, alpha) in the shadow area.
     AlphaVertex centroidXYA;
-    AlphaVertex::set(&centroidXYA, centroid.x, centroid.y, 1.0f);
+    AlphaVertex::set(&centroidXYA, centroid.x, centroid.y, transformedMaxAlpha);
     for (int rayIndex = 0; rayIndex < rays; rayIndex++) {
         float dx = cosf(step * rayIndex);
         float dy = sinf(step * rayIndex);
@@ -770,14 +774,16 @@
         // umbra ring
         float umbraDistance = umbraDistPerRay[rayIndex];
         AlphaVertex::set(&shadowVertices[rays + rayIndex],
-                dx * umbraDistance + centroid.x, dy * umbraDistance + centroid.y, 1.0f);
+                dx * umbraDistance + centroid.x,
+                dy * umbraDistance + centroid.y,
+                transformedMaxAlpha);
 
         // occluded umbra ring
         if (hasOccludedUmbraArea) {
             float occludedUmbraDistance = occludedUmbraDistPerRay[rayIndex];
             AlphaVertex::set(&shadowVertices[2 * rays + rayIndex],
                     dx * occludedUmbraDistance + centroid.x,
-                    dy * occludedUmbraDistance + centroid.y, 1.0f);
+                    dy * occludedUmbraDistance + centroid.y, transformedMaxAlpha);
         } else {
             // Put all vertices of the occluded umbra ring at the centroid.
             shadowVertices[2 * rays + rayIndex] = centroidXYA;
diff --git a/libs/hwui/StatefulBaseRenderer.cpp b/libs/hwui/StatefulBaseRenderer.cpp
index dc41157..06c5ab4 100644
--- a/libs/hwui/StatefulBaseRenderer.cpp
+++ b/libs/hwui/StatefulBaseRenderer.cpp
@@ -35,11 +35,12 @@
 }
 
 void StatefulBaseRenderer::initializeSaveStack(float clipLeft, float clipTop,
-        float clipRight, float clipBottom) {
+        float clipRight, float clipBottom, const Vector3& lightCenter) {
     mSnapshot = new Snapshot(mFirstSnapshot,
             SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
     mSnapshot->setClip(clipLeft, clipTop, clipRight, clipBottom);
     mSnapshot->fbo = getTargetFbo();
+    mSnapshot->setRelativeLightCenter(lightCenter);
     mSaveCount = 1;
 }
 
diff --git a/libs/hwui/StatefulBaseRenderer.h b/libs/hwui/StatefulBaseRenderer.h
index 6d83b4c..3957d36 100644
--- a/libs/hwui/StatefulBaseRenderer.h
+++ b/libs/hwui/StatefulBaseRenderer.h
@@ -52,7 +52,8 @@
      * the render target.
      */
     virtual void setViewport(int width, int height);
-    void initializeSaveStack(float clipLeft, float clipTop, float clipRight, float clipBottom);
+    void initializeSaveStack(float clipLeft, float clipTop, float clipRight, float clipBottom,
+            const Vector3& lightCenter);
 
     // getters
     bool hasRectToRectTransform() const {
diff --git a/libs/hwui/TessellationCache.cpp b/libs/hwui/TessellationCache.cpp
index c5fc21f..0a9aeb8 100644
--- a/libs/hwui/TessellationCache.cpp
+++ b/libs/hwui/TessellationCache.cpp
@@ -14,9 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "OpenGLRenderer"
-#define ATRACE_TAG ATRACE_TAG_VIEW
-
 #include <utils/JenkinsHash.h>
 #include <utils/Trace.h>
 
diff --git a/libs/hwui/TreeInfo.h b/libs/hwui/TreeInfo.h
index de09755..331f157 100644
--- a/libs/hwui/TreeInfo.h
+++ b/libs/hwui/TreeInfo.h
@@ -65,7 +65,7 @@
         , frameTimeMs(0)
         , animationHook(NULL)
         , prepareTextures(mode == MODE_FULL)
-        , damageAccumulator(NullDamageAccumulator::instance())
+        , damageAccumulator(NULL)
         , renderState(renderState)
         , renderer(NULL)
         , errorHandler(NULL)
@@ -88,8 +88,9 @@
     // TODO: Remove this? Currently this is used to signal to stop preparing
     // textures if we run out of cache space.
     bool prepareTextures;
-    // Must not be null
-    IDamageAccumulator* damageAccumulator;
+
+    // Must not be null during actual usage
+    DamageAccumulator* damageAccumulator;
     RenderState& renderState;
     // The renderer that will be drawing the next frame. Use this to push any
     // layer updates or similar. May be NULL.
diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp
index 2ea6c8c..ba878ba 100644
--- a/libs/hwui/font/Font.cpp
+++ b/libs/hwui/font/Font.cpp
@@ -140,12 +140,12 @@
 
 void Font::measureCachedGlyph(CachedGlyphInfo *glyph, int x, int y,
         uint8_t* bitmap, uint32_t bitmapW, uint32_t bitmapH, Rect* bounds, const float* pos) {
-    int nPenX = x + glyph->mBitmapLeft;
-    int nPenY = y + glyph->mBitmapTop;
-
     int width = (int) glyph->mBitmapWidth;
     int height = (int) glyph->mBitmapHeight;
 
+    int nPenX = x + glyph->mBitmapLeft;
+    int nPenY = y + glyph->mBitmapTop;
+
     if (bounds->bottom > nPenY) {
         bounds->bottom = nPenY;
     }
@@ -162,12 +162,12 @@
 
 void Font::drawCachedGlyph(CachedGlyphInfo* glyph, int x, int y,
         uint8_t* bitmap, uint32_t bitmapW, uint32_t bitmapH, Rect* bounds, const float* pos) {
-    float nPenX = x + glyph->mBitmapLeft;
-    float nPenY = y + glyph->mBitmapTop + glyph->mBitmapHeight;
-
     float width = (float) glyph->mBitmapWidth;
     float height = (float) glyph->mBitmapHeight;
 
+    float nPenX = x + glyph->mBitmapLeft;
+    float nPenY = y + glyph->mBitmapTop + height;
+
     float u1 = glyph->mBitmapMinU;
     float u2 = glyph->mBitmapMaxU;
     float v1 = glyph->mBitmapMinV;
@@ -181,10 +181,13 @@
 
 void Font::drawCachedGlyphTransformed(CachedGlyphInfo* glyph, int x, int y,
         uint8_t* bitmap, uint32_t bitmapW, uint32_t bitmapH, Rect* bounds, const float* pos) {
+    float width = (float) glyph->mBitmapWidth;
+    float height = (float) glyph->mBitmapHeight;
+
     SkPoint p[4];
-    p[0].iset(glyph->mBitmapLeft, glyph->mBitmapTop + glyph->mBitmapHeight);
-    p[1].iset(glyph->mBitmapLeft + glyph->mBitmapWidth, glyph->mBitmapTop + glyph->mBitmapHeight);
-    p[2].iset(glyph->mBitmapLeft + glyph->mBitmapWidth, glyph->mBitmapTop);
+    p[0].iset(glyph->mBitmapLeft, glyph->mBitmapTop + height);
+    p[1].iset(glyph->mBitmapLeft + width, glyph->mBitmapTop + height);
+    p[2].iset(glyph->mBitmapLeft + width, glyph->mBitmapTop);
     p[3].iset(glyph->mBitmapLeft, glyph->mBitmapTop);
 
     mDescription.mInverseLookupTransform.mapPoints(p, 4);
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 756f660..e673b0d 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "CanvasContext"
-
 #include "CanvasContext.h"
 
 #include <private/hwui/DrawGlInfo.h>
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 986e808..d9b96f6 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "RenderProxy"
-
 #include "RenderProxy.h"
 
 #include "CanvasContext.h"
diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp
index 03e98d5..403e164 100644
--- a/libs/hwui/renderthread/RenderThread.cpp
+++ b/libs/hwui/renderthread/RenderThread.cpp
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-#define LOG_TAG "RenderThread"
-
 #include "RenderThread.h"
 
+#if defined(HAVE_PTHREADS)
+#include <sys/resource.h>
+#endif
 #include <gui/DisplayEventReceiver.h>
 #include <utils/Log.h>
 
@@ -244,6 +245,9 @@
 }
 
 bool RenderThread::threadLoop() {
+#if defined(HAVE_PTHREADS)
+    setpriority(PRIO_PROCESS, 0, PRIORITY_DISPLAY);
+#endif
     initThreadLocals();
 
     int timeoutMillis = -1;
diff --git a/libs/hwui/thread/TaskManager.cpp b/libs/hwui/thread/TaskManager.cpp
index 3d2b0d9..cb5401c 100644
--- a/libs/hwui/thread/TaskManager.cpp
+++ b/libs/hwui/thread/TaskManager.cpp
@@ -15,6 +15,9 @@
  */
 
 #include <sys/sysinfo.h>
+#if defined(HAVE_PTHREADS)
+#include <sys/resource.h>
+#endif
 
 #include "TaskManager.h"
 #include "Task.h"
@@ -79,6 +82,13 @@
 // Thread
 ///////////////////////////////////////////////////////////////////////////////
 
+status_t TaskManager::WorkerThread::readyToRun() {
+#if defined(HAVE_PTHREADS)
+    setpriority(PRIO_PROCESS, 0, PRIORITY_FOREGROUND);
+#endif
+    return NO_ERROR;
+}
+
 bool TaskManager::WorkerThread::threadLoop() {
     mSignal.wait();
     Vector<TaskWrapper> tasks;
diff --git a/libs/hwui/thread/TaskManager.h b/libs/hwui/thread/TaskManager.h
index f2a216f..5a933ab 100644
--- a/libs/hwui/thread/TaskManager.h
+++ b/libs/hwui/thread/TaskManager.h
@@ -84,6 +84,7 @@
         void exit();
 
     private:
+        virtual status_t readyToRun();
         virtual bool threadLoop();
 
         // Lock for the list of tasks
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index bd50142..6a76a71 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -1672,24 +1672,6 @@
 
     /**
      * @hide
-     * Checks whether any local or remote media playback is active.
-     * Local playback refers to playback for instance on the device's speakers or wired headphones.
-     * Remote playback refers to playback for instance on a wireless display mirroring the
-     *    devices's, or on a device using a Cast-like protocol.
-     * @return true if media playback, from which the device is aware, is active.
-     */
-    public boolean isLocalOrRemoteMusicActive() {
-        IAudioService service = getService();
-        try {
-            return service.isLocalOrRemoteMusicActive();
-        } catch (RemoteException e) {
-            Log.e(TAG, "Dead object in isLocalOrRemoteMusicActive()", e);
-            return false;
-        }
-    }
-
-    /**
-     * @hide
      * Checks whether the current audio focus is exclusive.
      * @return true if the top of the audio focus stack requested focus
      *     with {@link #AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE}
diff --git a/media/java/android/media/AudioManagerInternal.java b/media/java/android/media/AudioManagerInternal.java
new file mode 100644
index 0000000..6f1bdef
--- /dev/null
+++ b/media/java/android/media/AudioManagerInternal.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package android.media;
+
+import com.android.server.LocalServices;
+
+/**
+ * Class for system services to access extra AudioManager functionality. The
+ * AudioService is responsible for registering an implementation with
+ * {@link LocalServices}.
+ *
+ * @hide
+ */
+public abstract class AudioManagerInternal {
+
+    public abstract void adjustStreamVolumeForUid(int streamType, int direction, int flags,
+            String callingPackage, int uid);
+
+    public abstract void setStreamVolumeForUid(int streamType, int direction, int flags,
+            String callingPackage, int uid);
+}
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index fb7f0c6..0af2457 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -79,6 +79,7 @@
 
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.util.XmlUtils;
+import com.android.server.LocalServices;
 
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -481,11 +482,6 @@
     final RemoteCallbackList<IAudioRoutesObserver> mRoutesObservers
             = new RemoteCallbackList<IAudioRoutesObserver>();
 
-    /**
-     * A fake stream type to match the notion of remote media playback
-     */
-    public final static int STREAM_REMOTE_MUSIC = -200;
-
     // Devices for which the volume is fixed and VolumePanel slider should be disabled
     int mFixedVolumeDevices = AudioSystem.DEVICE_OUT_HDMI |
             AudioSystem.DEVICE_OUT_DGTL_DOCK_HEADSET |
@@ -635,6 +631,7 @@
         mMasterVolumeRamp = context.getResources().getIntArray(
                 com.android.internal.R.array.config_masterVolumeRamp);
 
+        LocalServices.addService(AudioManagerInternal.class, new AudioServiceInternal());
     }
 
     public void systemReady() {
@@ -896,27 +893,6 @@
     ///////////////////////////////////////////////////////////////////////////
     // IPC methods
     ///////////////////////////////////////////////////////////////////////////
-    /** @see AudioManager#isLocalOrRemoteMusicActive() */
-    public boolean isLocalOrRemoteMusicActive() {
-        if (AudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0)) {
-            // local / wired / BT playback active
-            if (DEBUG_VOL) Log.d(TAG, "isLocalOrRemoteMusicActive(): local");
-            return true;
-        }
-        if (mMediaFocusControl.checkUpdateRemoteStateIfActive(AudioSystem.STREAM_MUSIC)) {
-            // remote "cast-like" playback active
-            if (DEBUG_VOL) Log.d(TAG, "isLocalOrRemoteMusicActive(): has PLAYBACK_TYPE_REMOTE");
-            return true;
-        }
-        if (AudioSystem.isStreamActiveRemotely(AudioSystem.STREAM_MUSIC, 0)) {
-            // remote submix playback active
-            if (DEBUG_VOL) Log.d(TAG, "isLocalOrRemoteMusicActive(): remote submix");
-            return true;
-        }
-        if (DEBUG_VOL) Log.d(TAG, "isLocalOrRemoteMusicActive(): no");
-        return false;
-    }
-
     /** @see AudioManager#adjustVolume(int, int) */
     public void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags,
             String callingPackage) {
@@ -930,9 +906,8 @@
         }
         final int resolvedStream = mStreamVolumeAlias[streamType];
 
-        // Play sounds on STREAM_RING and STREAM_REMOTE_MUSIC only.
-        if ((streamType != STREAM_REMOTE_MUSIC) &&
-                (flags & AudioManager.FLAG_PLAY_SOUND) != 0 &&
+        // Play sounds on STREAM_RING only.
+        if ((flags & AudioManager.FLAG_PLAY_SOUND) != 0 &&
                 resolvedStream != AudioSystem.STREAM_RING) {
             flags &= ~AudioManager.FLAG_PLAY_SOUND;
         }
@@ -945,17 +920,17 @@
             if (DEBUG_VOL) Log.d(TAG, "Volume controller suppressed adjustment");
         }
 
-        if (streamType == STREAM_REMOTE_MUSIC) {
-            // TODO bounce it to MediaSessionService to find an appropriate
-            // session
-        } else {
-            adjustStreamVolume(streamType, direction, flags, callingPackage);
-        }
+        adjustStreamVolume(streamType, direction, flags, callingPackage);
     }
 
     /** @see AudioManager#adjustStreamVolume(int, int, int) */
     public void adjustStreamVolume(int streamType, int direction, int flags,
             String callingPackage) {
+        adjustStreamVolume(streamType, direction, flags, callingPackage, Binder.getCallingUid());
+    }
+
+    private void adjustStreamVolume(int streamType, int direction, int flags,
+            String callingPackage, int uid) {
         if (mUseFixedVolume) {
             return;
         }
@@ -984,8 +959,8 @@
             return;
         }
 
-        if (mAppOps.noteOp(STEAM_VOLUME_OPS[streamTypeAlias], Binder.getCallingUid(),
-                callingPackage) != AppOpsManager.MODE_ALLOWED) {
+        if (mAppOps.noteOp(STEAM_VOLUME_OPS[streamTypeAlias], uid, callingPackage)
+                != AppOpsManager.MODE_ALLOWED) {
             return;
         }
 
@@ -1161,6 +1136,11 @@
 
     /** @see AudioManager#setStreamVolume(int, int, int) */
     public void setStreamVolume(int streamType, int index, int flags, String callingPackage) {
+        setStreamVolume(streamType, index, flags, callingPackage, Binder.getCallingUid());
+    }
+
+    private void setStreamVolume(int streamType, int index, int flags, String callingPackage,
+            int uid) {
         if (mUseFixedVolume) {
             return;
         }
@@ -1179,8 +1159,8 @@
             return;
         }
 
-        if (mAppOps.noteOp(STEAM_VOLUME_OPS[streamTypeAlias], Binder.getCallingUid(),
-                callingPackage) != AppOpsManager.MODE_ALLOWED) {
+        if (mAppOps.noteOp(STEAM_VOLUME_OPS[streamTypeAlias], uid, callingPackage)
+                != AppOpsManager.MODE_ALLOWED) {
             return;
         }
 
@@ -1885,10 +1865,6 @@
                 }
             }
             int streamType = getActiveStreamType(AudioManager.USE_DEFAULT_STREAM_TYPE);
-            if (streamType == STREAM_REMOTE_MUSIC) {
-                // here handle remote media playback the same way as local playback
-                streamType = AudioManager.STREAM_MUSIC;
-            }
             int device = getDeviceForStream(streamType);
             int index = mStreamStates[mStreamVolumeAlias[streamType]].getIndex(device);
             setStreamVolumeInt(mStreamVolumeAlias[streamType], index, device, true);
@@ -2973,12 +2949,6 @@
                     if (DEBUG_VOL)
                         Log.v(TAG, "getActiveStreamType: Forcing STREAM_MUSIC stream active");
                     return AudioSystem.STREAM_MUSIC;
-                } else
-                    if (mMediaFocusControl.checkUpdateRemoteStateIfActive(AudioSystem.STREAM_MUSIC))
-                    {
-                        if (DEBUG_VOL)
-                            Log.v(TAG, "getActiveStreamType: Forcing STREAM_REMOTE_MUSIC");
-                        return STREAM_REMOTE_MUSIC;
                     } else {
                         if (DEBUG_VOL)
                             Log.v(TAG, "getActiveStreamType: Forcing STREAM_RING b/c default");
@@ -2992,19 +2962,8 @@
             break;
         case PLATFORM_TELEVISION:
             if (suggestedStreamType == AudioManager.USE_DEFAULT_STREAM_TYPE) {
-                if (isAfMusicActiveRecently(DEFAULT_STREAM_TYPE_OVERRIDE_DELAY_MS)) {
-                    if (DEBUG_VOL) Log.v(TAG, "getActiveStreamType: forcing STREAM_MUSIC");
+                    // TV always defaults to STREAM_MUSIC
                     return AudioSystem.STREAM_MUSIC;
-                } else if (mMediaFocusControl.checkUpdateRemoteStateIfActive(
-                                                                        AudioSystem.STREAM_MUSIC)) {
-                    if (DEBUG_VOL)
-                        Log.v(TAG, "getActiveStreamType: Forcing STREAM_REMOTE_MUSIC");
-                    return STREAM_REMOTE_MUSIC;
-                } else {
-                    if (DEBUG_VOL) Log.v(TAG,
-                            "getActiveStreamType: using STREAM_MUSIC as default");
-                    return AudioSystem.STREAM_MUSIC;
-                }
             }
             break;
         default:
@@ -3027,12 +2986,6 @@
                 if (isAfMusicActiveRecently(DEFAULT_STREAM_TYPE_OVERRIDE_DELAY_MS)) {
                     if (DEBUG_VOL) Log.v(TAG, "getActiveStreamType: forcing STREAM_MUSIC");
                     return AudioSystem.STREAM_MUSIC;
-                } else
-                    if (mMediaFocusControl.checkUpdateRemoteStateIfActive(AudioSystem.STREAM_MUSIC))
-                    {
-                        if (DEBUG_VOL)
-                            Log.v(TAG, "getActiveStreamType: Forcing STREAM_REMOTE_MUSIC");
-                        return STREAM_REMOTE_MUSIC;
                 } else {
                     if (DEBUG_VOL) Log.v(TAG,
                             "getActiveStreamType: using STREAM_NOTIFICATION as default");
@@ -4389,7 +4342,7 @@
             intent.setAction(Intent.ACTION_DIGITAL_AUDIO_DOCK_PLUG);
         } else if (device == AudioSystem.DEVICE_OUT_HDMI) {
             connType = AudioRoutesInfo.MAIN_HDMI;
-            intent.setAction(Intent.ACTION_HDMI_AUDIO_PLUG);
+            configureHdmiPlugIntent(intent, state);
         }
 
         synchronized (mCurAudioRoutes) {
@@ -4471,6 +4424,49 @@
         }
     }
 
+    private void configureHdmiPlugIntent(Intent intent, int state) {
+        intent.setAction(Intent.ACTION_HDMI_AUDIO_PLUG);
+        if (state == 1) {
+            ArrayList<AudioPort> ports = new ArrayList<AudioPort>();
+            int[] portGeneration = new int[1];
+            int status = AudioSystem.listAudioPorts(ports, portGeneration);
+            if (status == AudioManager.SUCCESS) {
+                for (AudioPort port : ports) {
+                    if (port instanceof AudioDevicePort) {
+                        final AudioDevicePort devicePort = (AudioDevicePort) port;
+                        if (devicePort.type() == AudioManager.DEVICE_OUT_HDMI) {
+                            // format the list of supported encodings
+                            int[] formats = devicePort.formats();
+                            if (formats.length > 0) {
+                                ArrayList<Integer> encodingList = new ArrayList(1);
+                                for (int format : formats) {
+                                    // a format in the list can be 0, skip it
+                                    if (format != AudioFormat.ENCODING_INVALID) {
+                                        encodingList.add(format);
+                                    }
+                                }
+                                int[] encodingArray = new int[encodingList.size()];
+                                for (int i = 0 ; i < encodingArray.length ; i++) {
+                                    encodingArray[i] = encodingList.get(i);
+                                }
+                                intent.putExtra("encodings", encodingArray);
+                            }
+                            // find the maximum supported number of channels
+                            int maxChannels = 0;
+                            for (int mask : devicePort.channelMasks()) {
+                                int channelCount = AudioFormat.channelCountFromOutChannelMask(mask);
+                                if (channelCount > maxChannels) {
+                                    maxChannels = channelCount;
+                                }
+                            }
+                            intent.putExtra("maxChannelCount", maxChannels);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
     /* cache of the address of the last dock the device was connected to */
     private String mDockAddress;
 
@@ -4575,8 +4571,8 @@
                 // in SettingsObserver. Here we should log that a USB device is connected
                 // and disconnected with its address (card , device) and force the
                 // connection or disconnection when the setting changes.
-                int isDisabled = Settings.System.getInt(mContentResolver,
-                        Settings.System.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, 0);
+                int isDisabled = Settings.Secure.getInt(mContentResolver,
+                        Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, 0);
                 if (isDisabled != 0) {
                     return;
                 }
@@ -5304,6 +5300,24 @@
         }
     }
 
+    /**
+     * Interface for system components to get some extra functionality through
+     * LocalServices.
+     */
+    final class AudioServiceInternal extends AudioManagerInternal {
+        @Override
+        public void adjustStreamVolumeForUid(int streamType, int direction, int flags,
+                String callingPackage, int uid) {
+            adjustStreamVolume(streamType, direction, flags, callingPackage, uid);
+        }
+
+        @Override
+        public void setStreamVolumeForUid(int streamType, int direction, int flags,
+                String callingPackage, int uid) {
+            setStreamVolume(streamType, direction, flags, callingPackage, uid);
+        }
+    }
+
     //==========================================================================================
     // Audio policy management
     //==========================================================================================
diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java
index 8bc2498..52bcbbb 100644
--- a/media/java/android/media/AudioTrack.java
+++ b/media/java/android/media/AudioTrack.java
@@ -94,6 +94,9 @@
     /** Maximum value for sample rate */
     private static final int SAMPLE_RATE_HZ_MAX = 48000;
 
+    /** Maximum value for AudioTrack channel count */
+    private static final int CHANNEL_COUNT_MAX = 8;
+
     /** indicates AudioTrack state is stopped */
     public static final int PLAYSTATE_STOPPED = 1;  // matches SL_PLAYSTATE_STOPPED
     /** indicates AudioTrack state is paused */
@@ -465,7 +468,9 @@
             AudioFormat.CHANNEL_OUT_LOW_FREQUENCY |
             AudioFormat.CHANNEL_OUT_BACK_LEFT |
             AudioFormat.CHANNEL_OUT_BACK_RIGHT |
-            AudioFormat.CHANNEL_OUT_BACK_CENTER;
+            AudioFormat.CHANNEL_OUT_BACK_CENTER |
+            AudioFormat.CHANNEL_OUT_SIDE_LEFT |
+            AudioFormat.CHANNEL_OUT_SIDE_RIGHT;
 
     // Convenience method for the constructor's parameter checks.
     // This is where constructor IllegalArgumentException-s are thrown
@@ -541,6 +546,12 @@
             loge("Channel configuration features unsupported channels");
             return false;
         }
+        final int channelCount = Integer.bitCount(channelConfig);
+        if (channelCount > CHANNEL_COUNT_MAX) {
+            loge("Channel configuration contains too many channels " +
+                    channelCount + ">" + CHANNEL_COUNT_MAX);
+            return false;
+        }
         // check for unsupported multichannel combinations:
         // - FL/FR must be present
         // - L/R channels must be paired (e.g. no single L channel)
@@ -558,6 +569,13 @@
                 return false;
             }
         }
+        final int sidePair =
+                AudioFormat.CHANNEL_OUT_SIDE_LEFT | AudioFormat.CHANNEL_OUT_SIDE_RIGHT;
+        if ((channelConfig & sidePair) != 0
+                && (channelConfig & sidePair) != sidePair) {
+            loge("Side channels can't be used independently");
+            return false;
+        }
         return true;
     }
 
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 7318660..6477055 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -37,8 +37,6 @@
  */
 interface IAudioService {
 
-    boolean isLocalOrRemoteMusicActive();
-
     void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags,
             String callingPackage);
 
diff --git a/media/java/android/media/IRingtonePlayer.aidl b/media/java/android/media/IRingtonePlayer.aidl
index 0872f1d..7c011e6 100644
--- a/media/java/android/media/IRingtonePlayer.aidl
+++ b/media/java/android/media/IRingtonePlayer.aidl
@@ -16,6 +16,7 @@
 
 package android.media;
 
+import android.media.AudioAttributes;
 import android.net.Uri;
 import android.os.UserHandle;
 
@@ -24,11 +25,11 @@
  */
 interface IRingtonePlayer {
     /** Used for Ringtone.java playback */
-    void play(IBinder token, in Uri uri, int streamType);
+    void play(IBinder token, in Uri uri, in AudioAttributes aa);
     void stop(IBinder token);
     boolean isPlaying(IBinder token);
 
     /** Used for Notification sound playback. */
-    void playAsync(in Uri uri, in UserHandle user, boolean looping, int streamType);
+    void playAsync(in Uri uri, in UserHandle user, boolean looping, in AudioAttributes aa);
     void stopAsync();
 }
diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java
index b6e03f5..ae2d024 100644
--- a/media/java/android/media/MediaCodecInfo.java
+++ b/media/java/android/media/MediaCodecInfo.java
@@ -450,10 +450,16 @@
             }
 
             private void applyLevelLimits() {
-                if (mParent.getMime().equalsIgnoreCase(
-                        MediaFormat.MIMETYPE_AUDIO_FLAC)) {
+                String mime = mParent.getMime();
+                if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_FLAC)) {
                     mComplexityRange = Range.create(0, 8);
                     mBitControl = (1 << BITRATE_MODE_CQ);
+                } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_AMR_NB)
+                        || mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_AMR_WB)
+                        || mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_G711_ALAW)
+                        || mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_G711_MLAW)
+                        || mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_MSGSM)) {
+                    mBitControl = (1 << BITRATE_MODE_CBR);
                 }
             }
 
@@ -514,11 +520,12 @@
 
             /** @hide */
             public void setDefaultFormat(MediaFormat format) {
-                if (mQualityRange.getUpper() != mQualityRange.getLower()
+                // don't list trivial quality/complexity as default for now
+                if (!mQualityRange.getUpper().equals(mQualityRange.getLower())
                         && mDefaultQuality != null) {
                     format.setInteger(MediaFormat.KEY_QUALITY, mDefaultQuality);
                 }
-                if (mComplexityRange.getUpper() != mComplexityRange.getLower()
+                if (!mComplexityRange.getUpper().equals(mComplexityRange.getLower())
                         && mDefaultComplexity != null) {
                     format.setInteger(MediaFormat.KEY_COMPLEXITY, mDefaultComplexity);
                 }
@@ -985,34 +992,34 @@
 
                 if ((mParent.mError & ERROR_UNSUPPORTED) != 0) {
                     // codec supports profiles that we don't know.
-                    // Extend ranges clipped to platform limits.
+                    // Use supplied values clipped to platform limits
                     if (widths != null) {
-                        mWidthRange = mWidthRange.extend(widths);
+                        mWidthRange = SIZE_RANGE.intersect(widths);
                     }
                     if (heights != null) {
-                        mHeightRange = mHeightRange.extend(heights);
+                        mHeightRange = SIZE_RANGE.intersect(heights);
                     }
                     if (counts != null) {
-                        mBlockCountRange = mBlockCountRange.extend(
+                        mBlockCountRange = POSITIVE_INTEGERS.intersect(
                                 Utils.factorRange(counts, mBlockWidth * mBlockHeight
                                         / blockSize.getWidth() / blockSize.getHeight()));
                     }
                     if (blockRates != null) {
-                        mBlocksPerSecondRange = mBlocksPerSecondRange.extend(
+                        mBlocksPerSecondRange = POSITIVE_LONGS.intersect(
                                 Utils.factorRange(blockRates, mBlockWidth * mBlockHeight
                                         / blockSize.getWidth() / blockSize.getHeight()));
                     }
                     if (blockRatios != null) {
-                        mBlockAspectRatioRange = mBlockAspectRatioRange.extend(
+                        mBlockAspectRatioRange = POSITIVE_RATIONALS.intersect(
                                 Utils.scaleRange(blockRatios,
                                         mBlockHeight / blockSize.getHeight(),
                                         mBlockWidth / blockSize.getWidth()));
                     }
                     if (ratios != null) {
-                        mAspectRatioRange = mAspectRatioRange.extend(ratios);
+                        mAspectRatioRange = POSITIVE_RATIONALS.intersect(ratios);
                     }
                     if (frameRates != null) {
-                        mFrameRateRange = mFrameRateRange.extend(frameRates);
+                        mFrameRateRange = FRAME_RATE_RANGE.intersect(frameRates);
                     }
                 } else {
                     // no unsupported profile/levels, so restrict values to known limits
@@ -1235,7 +1242,6 @@
                                 Log.w(TAG, "Unrecognized level "
                                         + profileLevel.level + " for " + mime);
                                 errors |= ERROR_UNRECOGNIZED;
-                                supported = false;
                         }
                         switch (profileLevel.profile) {
                             case CodecProfileLevel.AVCProfileHigh:
@@ -1245,7 +1251,7 @@
                             case CodecProfileLevel.AVCProfileExtended:
                             case CodecProfileLevel.AVCProfileHigh422:
                             case CodecProfileLevel.AVCProfileHigh444:
-                                Log.w(TAG, "Unrecognized profile "
+                                Log.w(TAG, "Unsupported profile "
                                         + profileLevel.profile + " for " + mime);
                                 errors |= ERROR_UNSUPPORTED;
                                 supported = false;
@@ -1271,7 +1277,9 @@
                     int maxLengthInBlocks = (int)(Math.sqrt(maxBlocks * 8));
                     applyMacroBlockLimits(
                             maxLengthInBlocks, maxLengthInBlocks,
-                            maxBlocks, maxBlocksPerSecond, 16, 16, 1, 1);
+                            maxBlocks, maxBlocksPerSecond,
+                            16 /* blockWidth */, 16 /* blockHeight */,
+                            1 /* widthAlignment */, 1 /* heightAlignment */);
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_MPEG4)) {
                     int maxWidth = 11, maxHeight = 9, maxRate = 15;
                     maxBlocks = 99;
@@ -1369,7 +1377,9 @@
                         maxRate = Math.max(FR, maxRate);
                     }
                     applyMacroBlockLimits(maxWidth, maxHeight,
-                            maxBlocks, maxBlocksPerSecond, 16, 16, 1, 1);
+                            maxBlocks, maxBlocksPerSecond,
+                            16 /* blockWidth */, 16 /* blockHeight */,
+                            1 /* widthAlignment */, 1 /* heightAlignment */);
                     mFrameRateRange = mFrameRateRange.intersect(12, maxRate);
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_H263)) {
                     int maxWidth = 11, maxHeight = 9, maxRate = 15;
@@ -1432,7 +1442,9 @@
                         maxRate = Math.max(FR, maxRate);
                     }
                     applyMacroBlockLimits(maxWidth, maxHeight,
-                            maxBlocks, maxBlocksPerSecond, 16, 16, 1, 1);
+                            maxBlocks, maxBlocksPerSecond,
+                            16 /* blockWidth */, 16 /* blockHeight */,
+                            1 /* widthAlignment */, 1 /* heightAlignment */);
                     mFrameRateRange = Range.create(1, maxRate);
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_VP8) ||
                         mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_VP9)) {
@@ -1465,6 +1477,12 @@
                         }
                         errors &= ~ERROR_NONE_SUPPORTED;
                     }
+
+                    final int blockSize =
+                        mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_VP8) ? 16 : 8;
+                    applyMacroBlockLimits(Short.MAX_VALUE, Short.MAX_VALUE,
+                            maxBlocks, maxBlocksPerSecond, blockSize, blockSize,
+                            1 /* widthAlignment */, 1 /* heightAlignment */);
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_HEVC)) {
                     maxBlocks = 36864;
                     maxBlocksPerSecond = maxBlocks * 15;
@@ -1493,17 +1511,17 @@
                                 FR =    30; FS =  2228224; BR =  12000; break;
                             case CodecProfileLevel.HEVCHighTierLevel4:
                                 FR =    30; FS =  2228224; BR =  30000; break;
-                            case CodecProfileLevel.HEVCHighTierLevel41:
-                                FR =    60; FS =  2228224; BR =  20000; break;
                             case CodecProfileLevel.HEVCMainTierLevel41:
+                                FR =    60; FS =  2228224; BR =  20000; break;
+                            case CodecProfileLevel.HEVCHighTierLevel41:
                                 FR =    60; FS =  2228224; BR =  50000; break;
-                            case CodecProfileLevel.HEVCHighTierLevel5:
-                                FR =    30; FS =  8912896; BR =  25000; break;
                             case CodecProfileLevel.HEVCMainTierLevel5:
+                                FR =    30; FS =  8912896; BR =  25000; break;
+                            case CodecProfileLevel.HEVCHighTierLevel5:
                                 FR =    30; FS =  8912896; BR = 100000; break;
-                            case CodecProfileLevel.HEVCHighTierLevel51:
-                                FR =    60; FS =  8912896; BR =  40000; break;
                             case CodecProfileLevel.HEVCMainTierLevel51:
+                                FR =    60; FS =  8912896; BR =  40000; break;
+                            case CodecProfileLevel.HEVCHighTierLevel51:
                                 FR =    60; FS =  8912896; BR = 160000; break;
                             case CodecProfileLevel.HEVCMainTierLevel52:
                                 FR =   120; FS =  8912896; BR =  60000; break;
@@ -1513,13 +1531,13 @@
                                 FR =    30; FS = 35651584; BR =  60000; break;
                             case CodecProfileLevel.HEVCHighTierLevel6:
                                 FR =    30; FS = 35651584; BR = 240000; break;
-                            case CodecProfileLevel.HEVCHighTierLevel61:
-                                FR =    60; FS = 35651584; BR = 120000; break;
                             case CodecProfileLevel.HEVCMainTierLevel61:
+                                FR =    60; FS = 35651584; BR = 120000; break;
+                            case CodecProfileLevel.HEVCHighTierLevel61:
                                 FR =    60; FS = 35651584; BR = 480000; break;
-                            case CodecProfileLevel.HEVCHighTierLevel62:
-                                FR =   120; FS = 35651584; BR = 240000; break;
                             case CodecProfileLevel.HEVCMainTierLevel62:
+                                FR =   120; FS = 35651584; BR = 240000; break;
+                            case CodecProfileLevel.HEVCHighTierLevel62:
                                 FR =   120; FS = 35651584; BR = 800000; break;
                             default:
                                 Log.w(TAG, "Unrecognized level "
@@ -1557,9 +1575,13 @@
 
                     applyMacroBlockLimits(
                             maxLengthInBlocks, maxLengthInBlocks,
-                            maxBlocks, maxBlocksPerSecond, 8, 8, 1, 1);
+                            maxBlocks, maxBlocksPerSecond,
+                            8 /* blockWidth */, 8 /* blockHeight */,
+                            1 /* widthAlignment */, 1 /* heightAlignment */);
                 } else {
                     Log.w(TAG, "Unsupported mime " + mime);
+                    // using minimal bitrate here.  should be overriden by
+                    // info from media_codecs.xml
                     maxBps = 64000;
                     errors |= ERROR_UNSUPPORTED;
                 }
@@ -1628,21 +1650,26 @@
 
             if (mMime.toLowerCase().startsWith("audio/")) {
                 mAudioCaps = AudioCapabilities.create(info, this);
+                mAudioCaps.setDefaultFormat(mDefaultFormat);
             } else if (mMime.toLowerCase().startsWith("video/")) {
                 mVideoCaps = VideoCapabilities.create(info, this);
             }
             if (encoder) {
                 mEncoderCaps = EncoderCapabilities.create(info, this);
+                mEncoderCaps.setDefaultFormat(mDefaultFormat);
             }
 
             for (Feature feat: getValidFeatures()) {
-                Integer yesNo = (Integer)map.get(MediaFormat.KEY_FEATURE_ + feat.mName);
+                String key = MediaFormat.KEY_FEATURE_ + feat.mName;
+                Integer yesNo = (Integer)map.get(key);
                 if (yesNo == null) {
                     continue;
                 } else if (yesNo > 0) {
                     mFlagsRequired |= feat.mValue;
+                    mDefaultFormat.setInteger(key, 1);
                 } else {
                     mFlagsSupported |= feat.mValue;
+                    mDefaultFormat.setInteger(key, 1);
                 }
                 // TODO restrict features by mFlagsVerified once all codecs reliably verify them
             }
@@ -1652,10 +1679,14 @@
          * A class that supports querying the audio capabilities of a codec.
          */
         public static final class AudioCapabilities extends BaseCapabilities {
+            private static final String TAG = "AudioCapabilities";
+
             private int[] mSampleRates;
             private Range<Integer>[] mSampleRateRanges;
             private int mMaxInputChannelCount;
 
+            private static final int MAX_INPUT_CHANNEL_COUNT = 30;
+
             /**
              * Returns the array of supported sample rates if the codec
              * supports only discrete values.  Otherwise, it returns
@@ -1702,7 +1733,7 @@
             }
 
             private void initWithPlatformLimits() {
-                mMaxInputChannelCount = 30;
+                mMaxInputChannelCount = MAX_INPUT_CHANNEL_COUNT;
                 // mBitrateRange = Range.create(1, 320000);
                 mSampleRateRanges = new Range[] { Range.create(8000, 96000) };
                 mSampleRates = null;
@@ -1758,7 +1789,7 @@
 
                 // check if all values are discrete
                 for (Range<Integer> range: mSampleRateRanges) {
-                    if (range.getLower() != range.getUpper()) {
+                    if (!range.getLower().equals(range.getUpper())) {
                         mSampleRates = null;
                         return;
                     }
@@ -1777,7 +1808,7 @@
                             8000, 11025, 12000,
                             16000, 22050, 24000,
                             32000, 44100, 48000 };
-                    bitRates = Range.create(8192, 327680);
+                    bitRates = Range.create(8000, 320000);
                     maxChannels = 2;
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_AMR_NB)) {
                     sampleRates = new int[] { 8000 };
@@ -1807,11 +1838,23 @@
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_RAW)) {
                     sampleRateRange = Range.create(1, 96000);
                     bitRates = Range.create(1, 10000000);
-                    maxChannels = 6;
+                    maxChannels = 8;
                 } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_FLAC)) {
                     sampleRateRange = Range.create(1, 655350);
                     // lossless codec, so bitrate is ignored
                     maxChannels = 255;
+                } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_G711_ALAW)
+                        || mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_G711_MLAW)) {
+                    sampleRates = new int[] { 8000 };
+                    bitRates = Range.create(64000, 64000);
+                    // platform allows multiple channels for this format
+                } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_AUDIO_MSGSM)) {
+                    sampleRates = new int[] { 8000 };
+                    bitRates = Range.create(13000, 13000);
+                    maxChannels = 1;
+                } else {
+                    Log.w(TAG, "Unsupported mime " + mime);
+                    mParent.mError |= ERROR_UNSUPPORTED;
                 }
 
                 // restrict ranges
@@ -1832,7 +1875,7 @@
             }
 
             private void parseFromInfo(MediaFormat info) {
-                int maxInputChannels = 1;
+                int maxInputChannels = MAX_INPUT_CHANNEL_COUNT;
                 Range<Integer> bitRates = POSITIVE_INTEGERS;
 
                 if (info.containsKey("sample-rate-ranges")) {
@@ -1844,7 +1887,8 @@
                     limitSampleRates(rateRanges);
                 }
                 if (info.containsKey("max-channel-count")) {
-                    maxInputChannels = info.getInteger("max-channel-count");
+                    maxInputChannels = Utils.parseIntSafely(
+                            info.getString("max-channel-count"), maxInputChannels);
                 }
                 if (info.containsKey("bitrate-range")) {
                     bitRates = bitRates.intersect(
@@ -1854,6 +1898,21 @@
             }
 
             /** @hide */
+            public void setDefaultFormat(MediaFormat format) {
+                // report settings that have only a single choice
+                if (mBitrateRange.getLower().equals(mBitrateRange.getUpper())) {
+                    format.setInteger(MediaFormat.KEY_BIT_RATE, mBitrateRange.getLower());
+                }
+                if (mMaxInputChannelCount == 1) {
+                    // mono-only format
+                    format.setInteger(MediaFormat.KEY_CHANNEL_COUNT, 1);
+                }
+                if (mSampleRates != null && mSampleRates.length == 1) {
+                    format.setInteger(MediaFormat.KEY_SAMPLE_RATE, mSampleRates[0]);
+                }
+            }
+
+            /** @hide */
             public boolean supportsFormat(MediaFormat format) {
                 Map<String, Object> map = format.getMap();
                 Integer sampleRate = (Integer)map.get(MediaFormat.KEY_SAMPLE_RATE);
diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java
index 0aaaf46..adc8391 100644
--- a/media/java/android/media/RemoteController.java
+++ b/media/java/android/media/RemoteController.java
@@ -793,7 +793,7 @@
         final ComponentName listenerComponent = new ComponentName(mContext,
                 mOnClientUpdateListener.getClass());
         mSessionManager.addActiveSessionsListener(mSessionListener, listenerComponent,
-                UserHandle.myUserId());
+                UserHandle.myUserId(), null);
         mSessionListener.onActiveSessionsChanged(mSessionManager
                 .getActiveSessions(listenerComponent));
         if (DEBUG) {
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java
index 2616b6c..a221104 100644
--- a/media/java/android/media/Ringtone.java
+++ b/media/java/android/media/Ringtone.java
@@ -60,7 +60,10 @@
     private Uri mUri;
     private String mTitle;
 
-    private int mStreamType = AudioManager.STREAM_RING;
+    private AudioAttributes mAudioAttributes = new AudioAttributes.Builder()
+            .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE)
+            .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
+            .build();
 
     /** {@hide} */
     public Ringtone(Context context, boolean allowRemote) {
@@ -75,22 +78,40 @@
      * Sets the stream type where this ringtone will be played.
      * 
      * @param streamType The stream, see {@link AudioManager}.
+     * @deprecated use {@link #setAudioAttributes(AudioAttributes)}
      */
+    @Deprecated
     public void setStreamType(int streamType) {
-        mStreamType = streamType;
-
-        // The stream type has to be set before the media player is prepared.
-        // Re-initialize it.
-        setUri(mUri);
+        setAudioAttributes(new AudioAttributes.Builder()
+                .setInternalLegacyStreamType(streamType)
+                .build());
     }
 
     /**
      * Gets the stream type where this ringtone will be played.
      * 
      * @return The stream type, see {@link AudioManager}.
+     * @deprecated use of stream types is deprecated, see
+     *     {@link #setAudioAttributes(AudioAttributes)}
      */
+    @Deprecated
     public int getStreamType() {
-        return mStreamType;
+        return AudioAttributes.toLegacyStreamType(mAudioAttributes);
+    }
+
+    /**
+     * Sets the {@link AudioAttributes} for this ringtone.
+     * @param attributes the non-null attributes characterizing this ringtone.
+     */
+    public void setAudioAttributes(AudioAttributes attributes)
+            throws IllegalArgumentException {
+        if (attributes == null) {
+            throw new IllegalArgumentException("Invalid null AudioAttributes for Ringtone");
+        }
+        mAudioAttributes = attributes;
+        // The audio attributes have to be set before the media player is prepared.
+        // Re-initialize it.
+        setUri(mUri);
     }
 
     /**
@@ -178,7 +199,7 @@
         mLocalPlayer = new MediaPlayer();
         try {
             mLocalPlayer.setDataSource(mContext, mUri);
-            mLocalPlayer.setAudioStreamType(mStreamType);
+            mLocalPlayer.setAudioAttributes(mAudioAttributes);
             mLocalPlayer.prepare();
 
         } catch (SecurityException e) {
@@ -214,13 +235,14 @@
         if (mLocalPlayer != null) {
             // do not play ringtones if stream volume is 0
             // (typically because ringer mode is silent).
-            if (mAudioManager.getStreamVolume(mStreamType) != 0) {
+            if (mAudioManager.getStreamVolume(
+                    AudioAttributes.toLegacyStreamType(mAudioAttributes)) != 0) {
                 mLocalPlayer.start();
             }
         } else if (mAllowRemote && (mRemotePlayer != null)) {
             final Uri canonicalUri = mUri.getCanonicalUri();
             try {
-                mRemotePlayer.play(mRemoteToken, canonicalUri, mStreamType);
+                mRemotePlayer.play(mRemoteToken, canonicalUri, mAudioAttributes);
             } catch (RemoteException e) {
                 if (!playFallbackRingtone()) {
                     Log.w(TAG, "Problem playing ringtone: " + e);
@@ -278,7 +300,8 @@
     }
 
     private boolean playFallbackRingtone() {
-        if (mAudioManager.getStreamVolume(mStreamType) != 0) {
+        if (mAudioManager.getStreamVolume(AudioAttributes.toLegacyStreamType(mAudioAttributes))
+                != 0) {
             int ringtoneType = RingtoneManager.getDefaultType(mUri);
             if (ringtoneType == -1 ||
                     RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) {
@@ -295,7 +318,7 @@
                                     afd.getStartOffset(),
                                     afd.getDeclaredLength());
                         }
-                        mLocalPlayer.setAudioStreamType(mStreamType);
+                        mLocalPlayer.setAudioAttributes(mAudioAttributes);
                         mLocalPlayer.prepare();
                         mLocalPlayer.start();
                         afd.close();
diff --git a/media/java/android/media/Utils.java b/media/java/android/media/Utils.java
index 12910ec..df0daaf 100644
--- a/media/java/android/media/Utils.java
+++ b/media/java/android/media/Utils.java
@@ -210,6 +210,19 @@
         return fallback;
     }
 
+    static int parseIntSafely(Object o, int fallback) {
+        try {
+            String s = (String)o;
+            return Integer.parseInt(s);
+        } catch (ClassCastException e) {
+        } catch (NumberFormatException e) {
+        } catch (NullPointerException e) {
+            return fallback;
+        }
+        Log.w(TAG, "could not parse integer '" + o + "'");
+        return fallback;
+    }
+
     static Range<Integer> parseIntRange(Object o, Range<Integer> fallback) {
         try {
             String s = (String)o;
diff --git a/media/java/android/media/projection/MediaProjection.java b/media/java/android/media/projection/MediaProjection.java
index 861039d..99d3ceb 100644
--- a/media/java/android/media/projection/MediaProjection.java
+++ b/media/java/android/media/projection/MediaProjection.java
@@ -139,6 +139,7 @@
 
     /**
      * Creates an AudioRecord to capture audio played back by the system.
+     * @hide
      */
     public AudioRecord createAudioRecord(
             int sampleRateInHz, int channelConfig,
diff --git a/media/java/android/media/session/ISessionController.aidl b/media/java/android/media/session/ISessionController.aidl
index 3518458..5764bd1 100644
--- a/media/java/android/media/session/ISessionController.aidl
+++ b/media/java/android/media/session/ISessionController.aidl
@@ -48,8 +48,8 @@
     PendingIntent getLaunchPendingIntent();
     long getFlags();
     ParcelableVolumeInfo getVolumeAttributes();
-    void adjustVolume(int direction, int flags);
-    void setVolumeTo(int value, int flags);
+    void adjustVolume(int direction, int flags, String packageName);
+    void setVolumeTo(int value, int flags, String packageName);
 
     IMediaRouterDelegate createMediaRouterDelegate(IMediaRouterStateCallback callback);
 
diff --git a/media/java/android/media/session/ISessionControllerCallback.aidl b/media/java/android/media/session/ISessionControllerCallback.aidl
index 78cd699..cf31767 100644
--- a/media/java/android/media/session/ISessionControllerCallback.aidl
+++ b/media/java/android/media/session/ISessionControllerCallback.aidl
@@ -27,6 +27,7 @@
  */
 oneway interface ISessionControllerCallback {
     void onEvent(String event, in Bundle extras);
+    void onSessionDestroyed();
 
     // These callbacks are for the TransportController
     void onPlaybackStateChanged(in PlaybackState state);
diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java
index f6e189a..63c85f8 100644
--- a/media/java/android/media/session/MediaController.java
+++ b/media/java/android/media/session/MediaController.java
@@ -63,6 +63,7 @@
     private static final int MSG_UPDATE_QUEUE = 5;
     private static final int MSG_UPDATE_QUEUE_TITLE = 6;
     private static final int MSG_UPDATE_EXTRAS = 7;
+    private static final int MSG_DESTROYED = 8;
 
     private final ISessionController mSessionBinder;
 
@@ -310,7 +311,7 @@
      */
     public void setVolumeTo(int value, int flags) {
         try {
-            mSessionBinder.setVolumeTo(value, flags);
+            mSessionBinder.setVolumeTo(value, flags, mContext.getPackageName());
         } catch (RemoteException e) {
             Log.wtf(TAG, "Error calling setVolumeTo.", e);
         }
@@ -331,7 +332,7 @@
      */
     public void adjustVolume(int direction, int flags) {
         try {
-            mSessionBinder.adjustVolume(direction, flags);
+            mSessionBinder.adjustVolume(direction, flags, mContext.getPackageName());
         } catch (RemoteException e) {
             Log.wtf(TAG, "Error calling adjustVolumeBy.", e);
         }
@@ -508,6 +509,13 @@
      */
     public static abstract class Callback {
         /**
+         * Override to handle the session being destroyed. The session is no
+         * longer valid after this call and calls to it will be ignored.
+         */
+        public void onSessionDestroyed() {
+        }
+
+        /**
          * Override to handle custom events sent by the session owner without a
          * specified interface. Controllers should only handle these for
          * sessions they own.
@@ -863,6 +871,14 @@
         }
 
         @Override
+        public void onSessionDestroyed() {
+            MediaController controller = mController.get();
+            if (controller != null) {
+                controller.postMessage(MSG_DESTROYED, null, null);
+            }
+        }
+
+        @Override
         public void onEvent(String event, Bundle extras) {
             MediaController controller = mController.get();
             if (controller != null) {
@@ -955,6 +971,9 @@
                 case MSG_UPDATE_VOLUME:
                     mCallback.onVolumeInfoChanged((VolumeInfo) msg.obj);
                     break;
+                case MSG_DESTROYED:
+                    mCallback.onSessionDestroyed();
+                    break;
             }
         }
 
diff --git a/media/java/android/media/session/MediaSessionLegacyHelper.java b/media/java/android/media/session/MediaSessionLegacyHelper.java
index a182982..aa196a9 100644
--- a/media/java/android/media/session/MediaSessionLegacyHelper.java
+++ b/media/java/android/media/session/MediaSessionLegacyHelper.java
@@ -290,7 +290,6 @@
             if (DEBUG) {
                 Log.d(TAG, "addMediaButtonListener already added " + pi);
             }
-            return;
         }
         holder.mMediaButtonListener = new MediaButtonListener(pi, context);
         // TODO determine if handling transport performer commands should also
@@ -468,7 +467,11 @@
                 mSessions.remove(mPi);
             } else if (mCb == null) {
                 mCb = new SessionCallback();
-                mSession.setCallback(mCb);
+                Handler handler = null;
+                if (Looper.myLooper() == null) {
+                    handler = new Handler(Looper.getMainLooper());
+                }
+                mSession.setCallback(mCb, handler);
             }
         }
 
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 84983b9..c2fb5a3 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -23,6 +23,7 @@
 import android.media.AudioManager;
 import android.media.IRemoteVolumeController;
 import android.media.session.ISessionManager;
+import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -37,11 +38,11 @@
 
 /**
  * Provides support for interacting with {@link MediaSession media sessions}
- * that applications have published to express their ongoing media playback state.
+ * that applications have published to express their ongoing media playback
+ * state.
  * <p>
  * Use <code>Context.getSystemService(Context.MEDIA_SESSION_SERVICE)</code> to
  * get an instance of this class.
- * <p>
  *
  * @see MediaSession
  * @see MediaController
@@ -133,15 +134,17 @@
      * the calling app. You may also retrieve this list if your app is an
      * enabled notification listener using the
      * {@link NotificationListenerService} APIs, in which case you must pass the
-     * {@link ComponentName} of your enabled listener.
+     * {@link ComponentName} of your enabled listener. Updates will be posted to
+     * the thread that registered the listener.
      *
      * @param sessionListener The listener to add.
      * @param notificationListener The enabled notification listener component.
      *            May be null.
      */
-    public void addActiveSessionsListener(SessionListener sessionListener,
-            ComponentName notificationListener) {
-        addActiveSessionsListener(sessionListener, notificationListener, UserHandle.myUserId());
+    public void addActiveSessionsListener(@NonNull SessionListener sessionListener,
+            @Nullable ComponentName notificationListener) {
+        addActiveSessionsListener(sessionListener, notificationListener, UserHandle.myUserId(),
+                null);
     }
 
     /**
@@ -157,13 +160,18 @@
      * @param notificationListener The enabled notification listener component.
      *            May be null.
      * @param userId The userId to listen for changes on.
+     * @param handler The handler to post updates on.
      * @hide
      */
     public void addActiveSessionsListener(@NonNull SessionListener sessionListener,
-            @Nullable ComponentName notificationListener, int userId) {
+            @Nullable ComponentName notificationListener, int userId, @Nullable Handler handler) {
         if (sessionListener == null) {
             throw new IllegalArgumentException("listener may not be null");
         }
+        if (handler == null) {
+            handler = new Handler();
+        }
+        sessionListener.setHandler(handler);
         try {
             mService.addSessionsListener(sessionListener.mStub, notificationListener, userId);
         } catch (RemoteException e) {
@@ -253,6 +261,7 @@
      */
     public static abstract class SessionListener {
         private final Context mContext;
+        private Handler mHandler;
 
         public SessionListener(Context context) {
             mContext = context;
@@ -269,15 +278,27 @@
         public abstract void onActiveSessionsChanged(
                 @Nullable List<MediaController> controllers);
 
+        private final void setHandler(Handler handler) {
+            mHandler = handler;
+        }
+
         private final IActiveSessionsListener.Stub mStub = new IActiveSessionsListener.Stub() {
             @Override
-            public void onActiveSessionsChanged(List<MediaSession.Token> tokens) {
-                ArrayList<MediaController> controllers = new ArrayList<MediaController>();
-                int size = tokens.size();
-                for (int i = 0; i < size; i++) {
-                    controllers.add(new MediaController(mContext, tokens.get(i)));
+            public void onActiveSessionsChanged(final List<MediaSession.Token> tokens) {
+                if (mHandler != null) {
+                    mHandler.post(new Runnable() {
+                        @Override
+                        public void run() {
+                            ArrayList<MediaController> controllers
+                                    = new ArrayList<MediaController>();
+                            int size = tokens.size();
+                            for (int i = 0; i < size; i++) {
+                                controllers.add(new MediaController(mContext, tokens.get(i)));
+                            }
+                            SessionListener.this.onActiveSessionsChanged(controllers);
+                        }
+                    });
                 }
-                SessionListener.this.onActiveSessionsChanged(controllers);
             }
         };
     }
diff --git a/media/java/android/media/tv/ITvInputServiceCallback.aidl b/media/java/android/media/tv/ITvInputServiceCallback.aidl
index de5d56f..74ab562 100644
--- a/media/java/android/media/tv/ITvInputServiceCallback.aidl
+++ b/media/java/android/media/tv/ITvInputServiceCallback.aidl
@@ -25,6 +25,6 @@
  */
 oneway interface ITvInputServiceCallback {
     void addHardwareTvInput(in int deviceId, in TvInputInfo inputInfo);
-    void addHdmiTvInput(in int logicalAddress, in TvInputInfo inputInfo);
+    void addHdmiTvInput(in int id, in TvInputInfo inputInfo);
     void removeTvInput(in String inputId);
 }
diff --git a/media/java/android/media/tv/TvContentRating.java b/media/java/android/media/tv/TvContentRating.java
index 414cb4c..405ef22 100644
--- a/media/java/android/media/tv/TvContentRating.java
+++ b/media/java/android/media/tv/TvContentRating.java
@@ -23,6 +23,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * A class representing a TV content rating.
@@ -33,47 +34,94 @@
  * strings, or a TV input service defined strings.
  * TV input service defined strings are in an xml file defined in <code>&lt;{@link
  * android.R.styleable#TvInputService tv-input}&gt;</code> with the {@link
- * android.R.attr#contentRatingSystemXml contentRatingSystemXml} attribute by the TV input service.
+ * android.R.attr#tvContentRatingDescription tvContentRatingDescription} attribute by the TV input
+ * service.
  *
- * <h3> Content Rating System XML format </h3>
- * The XML file for publishing content rating system should follow the DTD bellow:
+ * <h3> Example: Rating system definition for the TV Parental Guidelines</h3>
+ * The following XML example shows how the TV Parental Guidelines in United States can be defined:
  * <p><pre class="prettyprint">
- * &lt;?xml version="1.0" encoding="UTF-8"?&gt;
- * &lt;!DOCTYPE rating-systems [
- *     &lt;!ELEMENT rating-system-definitions (rating-system-definition+)&gt;
- *     &lt;!ELEMENT rating-system-definition (
- *         (sub-rating-definition*, rating-definition, sub-rating-definition*)+, order*)&gt;
- *     &lt;!ATTLIST rating-system-definition
- *         id          ID    #REQUIRED
- *         displayName CDATA #IMPLIED
- *         description CDATA #IMPLIED
- *         country     CDATA #IMPLIED&gt;
- *     &lt;!ELEMENT sub-rating-definition EMPTY&gt;
- *     &lt;!ATTLIST sub-rating-definition
- *         id          ID    #REQUIRED
- *         displayName CDATA #IMPLIED
- *         icon        CDATA #IMPLIED
- *         description CDATA #IMPLIED&gt;
- *     &lt;!ELEMENT rating-definition (sub-rating*))&gt;
- *     &lt;!ATTLIST rating-definition
- *         id          ID    #REQUIRED
- *         displayName CDATA #IMPLIED
- *         icon        CDATA #IMPLIED
- *         description CDATA #IMPLIED&gt;
- *     &lt;!ELEMENT sub-rating EMPTY&gt;
- *     &lt;!ATTLIST sub-rating id IDREF #REQUIRED&gt;
- *     &lt;!ELEMENT order (rating, rating+)&gt;
- *     &lt;!ELEMENT rating EMPTY&gt;
- *     &lt;!ATTLIST rating id IDREF #REQUIRED&gt;
- * ]&gt;
- * </pre></p>
+ * {@literal
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <rating-system-definitions version="1.0">
+ *     <rating-system-definition id="US_TV"
+ *         displayName="US-TV"
+ *         description="The TV Parental Guidelines"
+ *         country="US">
+ *         <sub-rating-definition id="US_TV_D"
+ *             displayName="D"
+ *             description="Suggestive dialogue (Usually means talks about sex)" />
+ *         <sub-rating-definition id="US_TV_L"
+ *             displayName="L"
+ *             description="Coarse language" />
+ *         <sub-rating-definition id="US_TV_S"
+ *             displayName="S"
+ *             description="Sexual content" />
+ *         <sub-rating-definition id="US_TV_V"
+ *             displayName="V"
+ *             description="Violence" />
+ *         <sub-rating-definition id="US_TV_FV"
+ *             displayName="FV"
+ *             description="Fantasy violence (Children\'s programming only)" />
+ *
+ *         <rating-definition id="US_TV_Y"
+ *             displayName="TV-Y"
+ *             description="This program is designed to be appropriate for all children"
+ *             ageHint="0" />
+ *         <rating-definition id="US_TV_Y7"
+ *             displayName="TV-Y7"
+ *             description="This program is designed for children age 7 and above"
+ *             ageHint="7">
+ *             <sub-rating id="US_TV_FV" />
+ *         </rating-definition>
+ *         <rating-definition id="US_TV_G"
+ *             displayName="TV-G"
+ *             description="Most parents would find this program suitable for all ages"
+ *             ageHint="0" />
+ *         <rating-definition id="US_TV_PG"
+ *             displayName="TV-PG"
+ *             description="This program contains material that parents may find unsuitable for younger children"
+ *             ageHint="14">
+ *             <sub-rating id="US_TV_D" />
+ *             <sub-rating id="US_TV_L" />
+ *             <sub-rating id="US_TV_S" />
+ *             <sub-rating id="US_TV_V" />
+ *         </rating-definition>
+ *         <rating-definition id="US_TV_14"
+ *             displayName="TV-14"
+ *             description="This program contains some material that many parents would find unsuitable for children under 14 years of age"
+ *             ageHint="14">
+ *             <sub-rating id="US_TV_D" />
+ *             <sub-rating id="US_TV_L" />
+ *             <sub-rating id="US_TV_S" />
+ *             <sub-rating id="US_TV_V" />
+ *         </rating-definition>
+ *         <rating-definition id="US_TV_MA"
+ *             displayName="TV-MA"
+ *             description="This program is specifically designed to be viewed by adults and therefore may be unsuitable for children under 17"
+ *             ageHint="17">
+ *             <sub-rating id="US_TV_L" />
+ *             <sub-rating id="US_TV_S" />
+ *             <sub-rating id="US_TV_V" />
+ *         </rating-definition>
+ *         <order>
+ *             <rating id="US_TV_Y" />
+ *             <rating id="US_TV_Y7" />
+ *         </order>
+ *         <order>
+ *             <rating id="US_TV_G" />
+ *             <rating id="US_TV_PG" />
+ *             <rating id="US_TV_14" />
+ *             <rating id="US_TV_MA" />
+ *         </order>
+ *     </rating-system-definition>
+ * </rating-system-definitions>}</pre></p>
  *
  * <h3>System defined rating strings</h3>
  *
  * <u>System defined string for {@code domain}</u>
  * <table border="0" cellspacing="0" cellpadding="0">
  *     <tr>
- *         <td>String value</td>
+ *         <td width=10%>String value</td>
  *         <td>Comments</td>
  *     </tr>
  *     <tr>
@@ -83,9 +131,9 @@
  * </table>
  *
  * <u>System defined string for {@code ratingSystem}</u>
- * <table border="0" cellspacing="0" cellpadding="0">
+ * <table border="1" cellspacing="0" cellpadding="0">
  *     <tr>
- *         <td>String value</td>
+ *         <td width="10%">String value</td>
  *         <td>Comments</td>
  *     </tr>
  *     <tr>
@@ -98,111 +146,111 @@
  *     </tr>
  *     <tr>
  *         <td>AR_TV</td>
- *         <td>TV content rating system for Argentina TV</td>
+ *         <td>TV content rating system for Argentina</td>
  *     </tr>
  *     <tr>
  *         <td>AU_TV</td>
- *         <td>TV content rating system for Australia TV</td>
+ *         <td>TV content rating system for Australia</td>
  *     </tr>
  *     <tr>
  *         <td>BG_TV</td>
- *         <td>TV content rating system for Bulgaria TV</td>
+ *         <td>TV content rating system for Bulgaria</td>
  *     </tr>
  *     <tr>
  *         <td>BR_TV</td>
- *         <td>TV content rating system for Brazil TV</td>
+ *         <td>TV content rating system for Brazil</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV</td>
- *         <td>TV content rating system for Canada TV</td>
+ *         <td>TV content rating system for Canada</td>
  *     </tr>
  *     <tr>
  *         <td>CH_TV</td>
- *         <td>TV content rating system for Switzerland TV</td>
+ *         <td>TV content rating system for Switzerland</td>
  *     </tr>
  *     <tr>
  *         <td>CL_TV</td>
- *         <td>TV content rating system for Chile TV</td>
+ *         <td>TV content rating system for Chile</td>
  *     </tr>
  *     <tr>
  *         <td>DE_TV</td>
- *         <td>TV content rating system for Germany TV</td>
+ *         <td>TV content rating system for Germany</td>
  *     </tr>
  *     <tr>
  *         <td>DK_TV</td>
- *         <td>TV content rating system for Denmark TV</td>
+ *         <td>TV content rating system for Denmark</td>
  *     </tr>
  *     <tr>
  *         <td>ES_TV</td>
- *         <td>TV content rating system for Spain TV</td>
+ *         <td>TV content rating system for Spain</td>
  *     </tr>
  *     <tr>
  *         <td>FI_TV</td>
- *         <td>TV content rating system for Finland TV</td>
+ *         <td>TV content rating system for Finland</td>
  *     </tr>
  *     <tr>
  *         <td>FR_TV</td>
- *         <td>TV content rating system for France TV</td>
+ *         <td>TV content rating system for France</td>
  *     </tr>
  *     <tr>
  *         <td>GR_TV</td>
- *         <td>TV content rating system for Greece TV</td>
+ *         <td>TV content rating system for Greece</td>
  *     </tr>
  *     <tr>
  *         <td>HK_TV</td>
- *         <td>TV content rating system for Hong Kong TV</td>
+ *         <td>TV content rating system for Hong Kong</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV</td>
- *         <td>TV content rating system for Hungary TV</td>
+ *         <td>TV content rating system for Hungary</td>
  *     </tr>
  *     <tr>
  *         <td>ID_TV</td>
- *         <td>TV content rating system for Indonesia TV</td>
+ *         <td>TV content rating system for Indonesia</td>
  *     </tr>
  *     <tr>
  *         <td>IE_TV</td>
- *         <td>TV content rating system for Ireland TV</td>
+ *         <td>TV content rating system for Ireland</td>
  *     </tr>
  *     <tr>
  *         <td>IL_TV</td>
- *         <td>TV content rating system for Israel TV</td>
+ *         <td>TV content rating system for Israel</td>
  *     </tr>
  *     <tr>
  *         <td>IN_TV</td>
- *         <td>TV content rating system for India TV</td>
+ *         <td>TV content rating system for India</td>
  *     </tr>
  *     <tr>
  *         <td>IS_TV</td>
- *         <td>TV content rating system for Iceland TV</td>
+ *         <td>TV content rating system for Iceland</td>
  *     </tr>
  *     <tr>
  *         <td>KR_TV</td>
- *         <td>TV content rating system for South Korea TV</td>
+ *         <td>TV content rating system for South Korea</td>
  *     </tr>
  *     <tr>
  *         <td>MV_TV</td>
- *         <td>TV content rating system for Maldives TV</td>
+ *         <td>TV content rating system for Maldives</td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV</td>
- *         <td>TV content rating system for Mexico TV</td>
+ *         <td>TV content rating system for Mexico</td>
  *     </tr>
  *     <tr>
  *         <td>MY_TV</td>
- *         <td>TV content rating system for Malaysia TV</td>
+ *         <td>TV content rating system for Malaysia</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV</td>
- *         <td>TV content rating system for Netherlands TV</td>
+ *         <td>TV content rating system for Netherlands</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_FTV</td>
- *         <td>New Zealand\'s free-to-air TV content rating system</td>
+ *         <td>TV content rating system for free-to-air channels in New Zealand</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_PTV</td>
- *         <td>New Zealand\'s pay TV content rating system</td>
+ *         <td>TV content rating system for Pay TV channels in New Zealand</td>
  *     </tr>
  *     <tr>
  *         <td>PE_TV</td>
@@ -211,87 +259,89 @@
  *     <tr>
  *         <td>PE_ATV</td>
  *         <td>TV content rating system for America Television in Peru that uses its own rating
- *         </td>
+ *         system</td>
  *     </tr>
  *     <tr>
  *         <td>PH_TV</td>
- *         <td>TV content rating system for Philippines TV</td>
+ *         <td>TV content rating system for Philippines</td>
  *     </tr>
  *     <tr>
  *         <td>PL_TV</td>
- *         <td>TV content rating system for Poland TV</td>
+ *         <td>TV content rating system for Poland</td>
  *     </tr>
  *     <tr>
  *         <td>PT_TV</td>
- *         <td>TV content rating system for Portugal TV</td>
+ *         <td>TV content rating system for Portugal</td>
  *     </tr>
  *     <tr>
  *         <td>RO_TV</td>
- *         <td>TV content rating system for Romania TV</td>
+ *         <td>TV content rating system for Romania</td>
  *     </tr>
  *     <tr>
  *         <td>RU_TV</td>
- *         <td>TV content rating system for Russia TV</td>
+ *         <td>TV content rating system for Russia</td>
  *     </tr>
  *     <tr>
  *         <td>RS_TV</td>
- *         <td>TV content rating system for Serbia TV</td>
+ *         <td>TV content rating system for Serbia</td>
  *     </tr>
  *     <tr>
  *         <td>SG_FTV</td>
- *         <td>TV content rating system for Singapore TV</td>
+ *         <td>TV content rating system for Singapore</td>
  *     </tr>
  *     <tr>
  *         <td>SG_PTV</td>
- *         <td>TV content rating system for Singapore TV</td>
+ *         <td>TV content rating system for Singapore</td>
  *     </tr>
  *     <tr>
  *         <td>SI_TV</td>
- *         <td>TV content rating system for Slovenia TV</td>
+ *         <td>TV content rating system for Slovenia</td>
  *     </tr>
  *     <tr>
  *         <td>TH_TV</td>
- *         <td>TV content rating system for Thailand TV</td>
+ *         <td>TV content rating system for Thailand</td>
  *     </tr>
  *     <tr>
  *         <td>TR_TV</td>
- *         <td>TV content rating system for Turkey TV</td>
+ *         <td>TV content rating system for Turkey</td>
  *     </tr>
  *     <tr>
  *         <td>TW_TV</td>
- *         <td>TV content rating system for Taiwan TV</td>
+ *         <td>TV content rating system for Taiwan</td>
  *     </tr>
  *     <tr>
  *         <td>UA_TV</td>
- *         <td>TV content rating system for Ukraine TV</td>
+ *         <td>TV content rating system for Ukraine</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG</td>
- *         <td>The TV Parental Guidelines</td>
+ *         <td>US_TV</td>
+ *         <td>TV content rating system for United States</td>
  *     </tr>
  *     <tr>
  *         <td>VE_TV</td>
- *         <td>TV content rating system for Venezuela TV</td>
+ *         <td>TV content rating system for Venezuela</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV</td>
- *         <td>TV content rating system for South Africa TV</td>
+ *         <td>TV content rating system for South Africa</td>
  *     </tr>
  * </table>
  *
  * <u>System defined string for {@code rating}</u>
- * <table border="0" cellspacing="0" cellpadding="0">
+ * <table border="1" cellspacing="0" cellpadding="0">
  *     <tr>
- *         <td>String value</td>
+ *         <td width="10%">RatingSystem code</td>
+ *         <td width="10%">Rating string value</td>
  *         <td>Comments</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">AM_TV_RS</td>
  *         <td>AM_TV_RS_Y</td>
- *         <td>Suitable for ages 2–11</td>
+ *         <td>Suitable for ages 2-11</td>
  *     </tr>
  *     <tr>
  *         <td>AM_TV_RS_Y7</td>
- *         <td>Suitable for ages 7–16</td>
+ *         <td>Suitable for ages 7-16</td>
  *     </tr>
  *     <tr>
  *         <td>AM_TV_RS_GA</td>
@@ -310,6 +360,7 @@
  *         <td>Suitable only for adults ages 18 and up</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">AM_TV_AS</td>
  *         <td>AM_TV_AS_EC</td>
  *         <td>Suitable for ages 2 and up</td>
  *     </tr>
@@ -334,26 +385,28 @@
  *         <td>Suitable for ages 17 and up</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">AR_TV</td>
  *         <td>AR_TV_ALL</td>
  *         <td>Suitable for all audiences. Programs may contain mild violence, language and mature
- *         </td>
+ *         situations</td>
  *     </tr>
  *     <tr>
  *         <td>AR_TV_13</td>
  *         <td>Suitable for ages 13 and up. Programs may contain mild to moderate language and mild
- *         and sexual references</td>
+ *         violence and sexual references</td>
  *     </tr>
  *     <tr>
  *         <td>AR_TV_16</td>
  *         <td>Suitable for ages 16 and up. Programs may contain more intensive violence and coarse
- *         partial nudity and moderate sexual references</td>
+ *         language, partial nudity and moderate sexual references</td>
  *     </tr>
  *     <tr>
  *         <td>AR_TV_18</td>
  *         <td>Suitable for mature audiences only. Programs contain strong violence, coarse language
- *         explicit sexual references</td>
+ *         and explicit sexual references</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">AU_TV</td>
  *         <td>AU_TV_CTC</td>
  *         <td>This has advertising approval, but is not yet classified</td>
  *     </tr>
@@ -364,17 +417,17 @@
  *     <tr>
  *         <td>AU_TV_PG</td>
  *         <td>The content is mild in impact, but it may contain content that children find
- *         or upsetting and may require the guidance or parents and guardians</td>
+ *         confusing or upsetting and may require the guidance or parents and guardians</td>
  *     </tr>
  *     <tr>
  *         <td>AU_TV_M</td>
  *         <td>The content is moderate in impact, and it is recommended for teenagers aged 15 years
- *         over</td>
+ *         and over</td>
  *     </tr>
  *     <tr>
  *         <td>AU_TV_MA15</td>
  *         <td>The content is strong in impact, and it is legally restricted to persons 15 years and
- *         </td>
+ *         over</td>
  *     </tr>
  *     <tr>
  *         <td>AU_TV_R18</td>
@@ -383,37 +436,39 @@
  *     <tr>
  *         <td>AU_TV_X18</td>
  *         <td>The content is restricted to adults. This classification is a special and legally
- *         category which contains only sexually explicit content</td>
+ *         restricted category which contains only sexually explicit content</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">BG_TV</td>
  *         <td>BG_TV_A</td>
  *         <td>Recommended to children. When the film confirms the ideals of humanism or popularizes
- *         national and world cultures or contributes to upbringing children</td>
+ *         the national and world cultures or contributes to upbringing children</td>
  *     </tr>
  *     <tr>
  *         <td>BG_TV_B</td>
  *         <td>No restrictive recommendations from the Committee. When the film is in no way
- *         to the universal rules of morality in this country, has no restrictive recommendations
- *         the Committee and does not fall in rating A</td>
+ *         contrary to the universal rules of morality in this country, has no restrictive
+ *         recommendations from the Committee and does not fall in rating A</td>
  *     </tr>
  *     <tr>
  *         <td>BG_TV_C</td>
  *         <td>No persons under the age of 12 are admitted unless accompanied by an adult. When the
- *         contains certain erotic scenes or scenes with drinking, taking drugs or stimulants or a
- *         scenes of violence</td>
+ *         film contains certain erotic scenes or scenes with drinking, taking drugs or stimulants
+ *         or a few scenes of violence</td>
  *     </tr>
  *     <tr>
  *         <td>BG_TV_D</td>
  *         <td>No persons under the age of 16 are admitted. When the film contains quite a number of
- *         scenes or scenes with drinking, taking drugs or stimulants or a considerable number of
- *         showing violence</td>
+ *         erotic scenes or scenes with drinking, taking drugs or stimulants or a considerable
+ *         number of scenes showing violence</td>
  *     </tr>
  *     <tr>
  *         <td>BG_TV_X</td>
  *         <td>No persons under the age of 18 are admitted. When the film is naturalistically erotic
- *         shows violence in an ostentatious manner</td>
+ *         or shows violence in an ostentatious manner</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">BR_TV</td>
  *         <td>BR_TV_L</td>
  *         <td>Content is suitable for all audiences</td>
  *     </tr>
@@ -438,52 +493,55 @@
  *         <td>Content suitable for viewers over the age of 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">CA_TV</td>
  *         <td>CA_TV_EXEMPT</td>
  *         <td>Shows which are exempt from ratings (such as news and sports programming) will not
- *         an on-screen rating at all</td>
+ *         display an on-screen rating at all</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_C</td>
- *         <td>Programming suitable for children ages of 2–7 years. No profanity or sexual content
- *         any level allowed. Contains little violence</td>
+ *         <td>Programming suitable for children ages of 2-7 years. No profanity or sexual content
+ *         of any level allowed. Contains little violence</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_C8</td>
  *         <td>Suitable for children ages 8+. Low level violence and fantasy horror is allowed. No
- *         language is allowed, but occasional "socially offensive and discriminatory" language is
- *         if in the context of the story. No sexual content of any level allowed</td>
+ *         foul language is allowed, but occasional "socially offensive and discriminatory" language
+ *         is allowed if in the context of the story. No sexual content of any level allowed</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_G</td>
  *         <td>Suitable for general audiences. Programming suitable for the entire family with mild
- *         and mild profanity and/or censored language</td>
+ *         violence, and mild profanity and/or censored language</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_PG</td>
  *         <td>Parental guidance. Moderate violence and moderate profanity is allowed, as is brief
- *         and sexual references if important to the context of the story</td>
+ *         nudity and sexual references if important to the context of the story</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_14</td>
  *         <td>Programming intended for viewers ages 14 and older. May contain strong violence and
- *         profanity, and depictions of sexual activity as long as they are within the context of a
- *         </td>
+ *         strong profanity, and depictions of sexual activity as long as they are within the
+ *         context of a story</td>
  *     </tr>
  *     <tr>
  *         <td>CA_TV_18</td>
  *         <td>Programming intended for viewers ages 18 and older. May contain explicit violence and
- *         activity</td>
+ *         sexual activity</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="2">CH_TV</td>
  *         <td>CH_TV_ALL</td>
  *         <td>This program is suitable for all ages</td>
  *     </tr>
  *     <tr>
  *         <td>CH_TV_RED</td>
  *         <td>This program contains scenes that may hurt sensitive people, therefore the red symbol
- *         be displayed</td>
+ *         will be displayed</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">CL_TV</td>
  *         <td>CL_TV_I</td>
  *         <td>Programs suitable for all children</td>
  *     </tr>
@@ -510,9 +568,10 @@
  *     <tr>
  *         <td>CL_TV_A</td>
  *         <td>Programs suitable for adult audiences only (ages 18 or older), may contain coarse
- *         and sexual or explicit situations</td>
+ *         language, and sexual or explicit situations</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">DE_TV</td>
  *         <td>DE_TV_ALL</td>
  *         <td>The program is suitable for all ages</td>
  *     </tr>
@@ -529,6 +588,7 @@
  *         <td>The program is not suitable for viewers under the age of 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">DK_TV</td>
  *         <td>DK_TV_G</td>
  *         <td>programs suitable for all ages</td>
  *     </tr>
@@ -545,6 +605,7 @@
  *         <td>programs containing explicit content and strictly for adults only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">ES_TV</td>
  *         <td>ES_TV_TP</td>
  *         <td>Recommended for all ages</td>
  *     </tr>
@@ -573,6 +634,7 @@
  *         <td>Recommended for people older than 18 years old</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">FI_TV</td>
  *         <td>FI_TV_S</td>
  *         <td>Allowed at all times</td>
  *     </tr>
@@ -593,6 +655,7 @@
  *         <td>Not recommended for children under 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">FR_TV</td>
  *         <td>FR_TV_ALL</td>
  *         <td>Appropriate for all ages</td>
  *     </tr>
@@ -613,6 +676,7 @@
  *         <td>Not recommended for persons under 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">GR_TV</td>
  *         <td>GR_TV_all</td>
  *         <td>Suitable for all ages</td>
  *     </tr>
@@ -631,9 +695,10 @@
  *     <tr>
  *         <td>GR_TV_18</td>
  *         <td>Suitable only for adults profanity before midnight is punishable by fine, except when
- *         in the context of the program</td>
+ *         used in the context of the program</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">HK_TV</td>
  *         <td>HK_TV_G</td>
  *         <td>For general audiences</td>
  *     </tr>
@@ -646,35 +711,37 @@
  *         <td>Programs are recommended only for adult viewers above the age of 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">HU_TV</td>
  *         <td>HU_TV_U</td>
  *         <td>Programs can be viewed by any age</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV_CF</td>
  *         <td>Programs recommended for children. It is an optional rating, there is no obligation
- *         broadcasters to indicate it</td>
+ *         for broadcasters to indicate it</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV_6</td>
  *         <td>Programs not recommended for children below the age of 6, may not contain any
- *         or sexual content</td>
+ *         violence or sexual content</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV_12</td>
  *         <td>Programs not recommended for children below the age of 12, may contain light sexual
- *         or explicit language</td>
+ *         content or explicit language</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV_16</td>
  *         <td>Programs not recommended for teens and children below the age of 16, may contain more
- *         violence and sexual content</td>
+ *         intensive violence and sexual content</td>
  *     </tr>
  *     <tr>
  *         <td>HU_TV_18</td>
  *         <td>The program is recommended only for adult viewers (for ages 18 and up), may contain
- *         violence and explicit sexual content</td>
+ *         explicit violence and explicit sexual content</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="8">ID_TV</td>
  *         <td>ID_TV_P</td>
  *         <td>Suitable for children from ages 2 through 11</td>
  *     </tr>
@@ -707,18 +774,19 @@
  *         <td>Suitable for viewers over 18 and older only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">IE_TV</td>
  *         <td>IE_TV_GA</td>
  *         <td>Suitable for all ages</td>
  *     </tr>
  *     <tr>
  *         <td>IE_TV_Ch</td>
  *         <td>Suitable for children ages 5 to 10, may contain comedic violence or action fantasy
- *         </td>
+ *         violence</td>
  *     </tr>
  *     <tr>
  *         <td>IE_TV_YA</td>
  *         <td>Suitable for adolescent audiences, may contain thematic elements that would appeal to
- *         </td>
+ *         teenagers</td>
  *     </tr>
  *     <tr>
  *         <td>IE_TV_PS</td>
@@ -727,17 +795,18 @@
  *     <tr>
  *         <td>IE_TV_MA</td>
  *         <td>Most restrictive classification, allowing for heavy subject matter and coarse
- *         </td>
+ *         language</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">IL_TV</td>
  *         <td>IL_TV_G</td>
  *         <td>General audience; anyone, regardless of age, can view the program, usually news and
- *         programming</td>
+ *         children's programming</td>
  *     </tr>
  *     <tr>
  *         <td>IL_TV_12</td>
  *         <td>Suitable for teens and children ages 12 and over, no child under 12 are permitted to
- *         the program</td>
+ *         view the program</td>
  *     </tr>
  *     <tr>
  *         <td>IL_TV_15</td>
@@ -752,13 +821,14 @@
  *         <td>Exempt from classification</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">IN_TV</td>
  *         <td>IN_TV_U</td>
  *         <td>Unrestricted public exhibition</td>
  *     </tr>
  *     <tr>
  *         <td>IN_TV_U/A</td>
  *         <td>Unrestricted public exhibition, but with a caution regarding parental guidance to
- *         under 12 years of age</td>
+ *         those under 12 years of age</td>
  *     </tr>
  *     <tr>
  *         <td>IN_TV_A</td>
@@ -767,10 +837,10 @@
  *     <tr>
  *         <td>IN_TV_S</td>
  *         <td>Public exhibition restricted to members of any profession or any class of persons
- *         <td>Public exhibition restricted to members of any profession or any class of persons
  *         </td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">IS_TV</td>
  *         <td>IS_TV_L</td>
  *         <td>Programs suitable for all ages</td>
  *     </tr>
@@ -799,29 +869,31 @@
  *         <td>Programs suitable for ages 18 and older</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">KR_TV</td>
  *         <td>KR_TV_All</td>
  *         <td>Appropriate for all ages</td>
  *     </tr>
  *     <tr>
  *         <td>KR_TV_7</td>
  *         <td>May contain material inappropriate for children younger than 7, and parental
- *         should be used</td>
+ *         discretion should be used</td>
  *     </tr>
  *     <tr>
  *         <td>KR_TV_12</td>
  *         <td>May deemed inappropriate for those younger than 12, and parental discretion should be
- *         </td>
+ *         used</td>
  *     </tr>
  *     <tr>
  *         <td>KR_TV_15</td>
  *         <td>May be inappropriate for children under 15, and that parental discretion should be
- *         </td>
+ *         used</td>
  *     </tr>
  *     <tr>
  *         <td>KR_TV_19</td>
  *         <td>For adults only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="9">MV_TV</td>
  *         <td>MV_TV_Y</td>
  *         <td>Young children</td>
  *     </tr>
@@ -858,50 +930,51 @@
  *         <td>Most restrictive classification, only adults ages 25 and above may view</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">MX_TV</td>
  *         <td>MX_TV_A</td>
  *         <td>Appropriate for all ages, parental guidance is recommended for children under 7 years
- *         <td>Appropriate for all ages, parental guidance is recommended for children under 7 years
  *         </td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV_B</td>
  *         <td>Designed for ages 12 and older, may contain some sexual situations, mild violence,
- *         mild language</td>
+ *         and mild language</td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV_B-15</td>
- *         <td>Designed for ages 15 and up, slightly more intensive than the \'A\' and \'B\' ratings
- *         <td>Designed for ages 15 and up, slightly more intensive than the \'A\' and \'B\' ratings
+ *         <td>Designed for ages 15 and up, slightly more intensive than the 'A' and 'B' ratings
  *         </td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV_C</td>
  *         <td>Designed to be viewed by adults aged 18 or older only, generally more intensive
- *         </td>
+ *         content</td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV_D</td>
  *         <td>Designed to be viewed only by mature adults (at least 21 years of age and over),
- *         extreme content matter</td>
+ *         contains extreme content matter</td>
  *     </tr>
  *     <tr>
  *         <td>MX_TV_RC</td>
  *         <td>Banned from public television in Mexico</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">MY_TV</td>
  *         <td>MY_TV_U</td>
  *         <td>General viewing for all ages, can be broadcast anytime</td>
  *     </tr>
  *     <tr>
  *         <td>MY_TV_P13</td>
  *         <td>For viewers ages 13 and above, children under 13 needs parental guidance, can be
- *         anytime, but some elements may only be broadcast at night</td>
+ *         broadcast anytime, but some elements may only be broadcast at night</td>
  *     </tr>
  *     <tr>
  *         <td>MY_TV_18</td>
  *         <td>For viewers ages 18 and above only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">NL_TV</td>
  *         <td>NL_TV_AL</td>
  *         <td>All Ages</td>
  *     </tr>
@@ -922,23 +995,25 @@
  *         <td>Parental advisory for children under 16</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">NZ_FTV</td>
  *         <td>NZ_FTV_G</td>
  *         <td>These exclude material likely to harm children under 14 and can screen at any time.
- *         may not necessarily be designed for younger viewers, but must not contain material likely
- *         cause them undue distress or discomfort</td>
+ *         Programmes may not necessarily be designed for younger viewers, but must not contain
+ *         material likely to cause them undue distress or discomfort</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_FTV_PGR</td>
  *         <td>Programmes more suited to more mature viewers. These are not necessarily unsuitable
- *         children, but viewer discretion is advised, and parents and guardians are encouraged to
- *         younger viewers</td>
+ *         for children, but viewer discretion is advised, and parents and guardians are encouraged
+ *         to supervise younger viewers</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_FTV_AO</td>
  *         <td>Contain material of an adult nature handled in such a way that it is unsuitable for
- *         </td>
+ *         children</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">NZ_PTV</td>
  *         <td>NZ_PTV_G</td>
  *         <td>suitable for general audiences</td>
  *     </tr>
@@ -959,6 +1034,7 @@
  *         <td>Suitable for viewers 18 and up</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">PE_TV</td>
  *         <td>PE_TV_A</td>
  *         <td>Suitable for all audiences</td>
  *     </tr>
@@ -971,6 +1047,7 @@
  *         <td>Suitable for people aged 18 and above only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">PE_ATV</td>
  *         <td>PE_ATV_GP</td>
  *         <td>General audience</td>
  *     </tr>
@@ -987,48 +1064,52 @@
  *         <td>Suitable for people aged 18 and above only</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">PH_TV</td>
  *         <td>PH_TV_G</td>
  *         <td>Suitable for all public viewers</td>
  *     </tr>
  *     <tr>
  *         <td>PH_TV_PG</td>
  *         <td>Programmes rated PG may contain scenes or other content that are unsuitable for
- *         without the guidance of a parent</td>
+ *         children without the guidance of a parent</td>
  *     </tr>
  *     <tr>
  *         <td>PH_TV_SPG</td>
  *         <td>Contains mature themes or moderate to intense violence, which may be deemed unfit for
- *         to watch without strict parental supervision</td>
+ *         children to watch without strict parental supervision</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">PL_TV</td>
  *         <td>PL_TV_G</td>
  *         <td>Positive or neutral view of the world, little to no violence, non-sexual love, and no
- *         content</td>
+ *         sexual content</td>
  *     </tr>
  *     <tr>
  *         <td>PL_TV_7</td>
  *         <td>Age 7 and above. May additionally contain some mild language, bloodless violence, and
- *         more negative view of the world</td>
+ *         a more negative view of the world</td>
  *     </tr>
  *     <tr>
  *         <td>PL_TV_12</td>
  *         <td>Age 12 and above. May contain some foul language, some violence, and some sexual
- *         </td>
+ *         content</td>
  *     </tr>
  *     <tr>
  *         <td>PL_TV_16</td>
  *         <td>Age 16 and above. Deviant social behaviour, world filled with violence and sexuality,
- *         picture of adulthood, display of physical force, especially in controversial social
- *         immoral behaviour without ethic dilemma, putting the blame on the victim, excessive
- *         on material possessions</td>
+ *         simplified picture of adulthood, display of physical force, especially in controversial
+ *         social context, immoral behaviour without ethic dilemma, putting the blame on the victim,
+ *         excessive concentration on material possessions</td>
  *     </tr>
  *     <tr>
  *         <td>PL_TV_18</td>
  *         <td>Age 18 and above. One-sided display of the joys of adult life without showing
- *         social justification of violent behaviour, excessive vulgarity, use of racial slurs and
- *         stereotypes, explicit sexual content, praise of aggression or vulgarity</td>
+ *         responsibilities, social justification of violent behaviour, excessive vulgarity, use of
+ *         racial slurs and social stereotypes, explicit sexual content, praise of aggression or
+ *         vulgarity</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">PT_TV</td>
  *         <td>PT_TV_T</td>
  *         <td>Suitable for all</td>
  *     </tr>
@@ -1045,6 +1126,7 @@
  *         <td>Not suitable for children under 16</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">RO_TV</td>
  *         <td>RO_TV_Y</td>
  *         <td>Young Ages</td>
  *     </tr>
@@ -1069,6 +1151,7 @@
  *         <td>Forbidden for children under 18 years of age</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="5">RU_TV</td>
  *         <td>RU_TV_0</td>
  *         <td>Can be watched by Any Age</td>
  *     </tr>
@@ -1089,6 +1172,7 @@
  *         <td>Restricted to children ONLY people 18 or older</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="7">RS_TV</td>
  *         <td>RS_TV_G</td>
  *         <td>Program suitable for all ages</td>
  *     </tr>
@@ -1117,14 +1201,16 @@
  *         <td>Program not suitable for minors under the age of 18</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="2">SG_FTV</td>
  *         <td>SG_FTV_PG</td>
  *         <td>Suitable for most but parents should guide their young</td>
  *     </tr>
  *     <tr>
  *         <td>SG_FTV_PG13</td>
- *         <td>Parental Guidance Strongly Cautioned – Suitable for 13 And Above</td>
+ *         <td>Parental Guidance Strongly Cautioned - Suitable for 13 And Above</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="2">SG_PTV</td>
  *         <td>SG_PTV_NC16</td>
  *         <td>No Children Under 16</td>
  *     </tr>
@@ -1133,6 +1219,7 @@
  *         <td>Nobody under age 18 is admitted</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">SI_TV</td>
  *         <td>SI_TV_VS</td>
  *         <td>Parental guidance suggested (for children under 6)</td>
  *     </tr>
@@ -1149,12 +1236,13 @@
  *         <td>Content exclusively for adults</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">TH_TV</td>
  *         <td>TH_TV_P</td>
  *         <td>Content suitable for primary school aged children</td>
  *     </tr>
  *     <tr>
  *         <td>TH_TV_C</td>
- *         <td>Content suitable for children between 6–12 years old</td>
+ *         <td>Content suitable for children between 6-12 years old</td>
  *     </tr>
  *     <tr>
  *         <td>TH_TV_G</td>
@@ -1163,18 +1251,19 @@
  *     <tr>
  *         <td>TH_TV_PG13</td>
  *         <td>Content suitable for people aged 13 and above, but can be watched by those who are
- *         the recommended age if parental guidance is provided</td>
+ *         under the recommended age if parental guidance is provided</td>
  *     </tr>
  *     <tr>
  *         <td>TH_TV_PG18</td>
  *         <td>Content suitable for people aged above 18 years old; those who are younger that 18
- *         be provided with parental guidance</td>
+ *         must be provided with parental guidance</td>
  *     </tr>
  *     <tr>
  *         <td>TH_TV_A</td>
  *         <td>Content unsuitable for children and youngsters</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">TR_TV</td>
  *         <td>TR_TV_G</td>
  *         <td>General audience. Suitable for all ages</td>
  *     </tr>
@@ -1191,66 +1280,69 @@
  *         <td>Suitable for ages 13 and over</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">TW_TV</td>
  *         <td>TW_TV_G</td>
  *         <td>For all ages</td>
  *     </tr>
  *     <tr>
  *         <td>TW_TV_P</td>
  *         <td>Not suitable for children under 6 years old. People aged 6 but under 12 require
- *         from accompanying adults to watch</td>
+ *         guidance from accompanying adults to watch</td>
  *     </tr>
  *     <tr>
  *         <td>TW_TV_PG</td>
  *         <td>Not suitable for people under 12 years of age. Parental guidance is required for
- *         aged 12 but under 18</td>
+ *         people aged 12 but under 18</td>
  *     </tr>
  *     <tr>
  *         <td>TW_TV_R</td>
  *         <td>For adults only and people under 18 years of age must not watch</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">UA_TV</td>
  *         <td>UA_TV_G</td>
  *         <td>This program does not have age restrictions</td>
  *     </tr>
  *     <tr>
  *         <td>UA_TV_Y</td>
  *         <td>Children must view this program with parents. In it program there are fragments,
- *         unsuitable for children</td>
+ *         which unsuitable for children</td>
  *     </tr>
  *     <tr>
  *         <td>UA_TV_R</td>
  *         <td>This program is only for adult viewers. In it there are scenes with nudity, drug use,
- *         violence</td>
+ *         or violence</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_Y</td>
+ *         <td valign="top" rowspan="6">US_TV</td>
+ *         <td>US_TV_Y</td>
  *         <td>This program is designed to be appropriate for all children</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_Y7</td>
+ *         <td>US_TV_Y7</td>
  *         <td>This program is designed for children age 7 and above</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_G</td>
+ *         <td>US_TV_G</td>
  *         <td>Most parents would find this program suitable for all ages</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_PG</td>
- *         <td>This program contains material that parents may find unsuitable for younger children
+ *         <td>US_TV_PG</td>
  *         <td>This program contains material that parents may find unsuitable for younger children
  *         </td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_14</td>
+ *         <td>US_TV_14</td>
  *         <td>This program contains some material that many parents would find unsuitable for
- *         under 14 years of age</td>
+ *         children under 14 years of age</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_TV_MA</td>
+ *         <td>US_TV_MA</td>
  *         <td>This program is specifically designed to be viewed by adults and therefore may be
- *         for children under 17</td>
+ *         unsuitable for children under 17</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="3">VE_TV</td>
  *         <td>VE_TV_TU</td>
  *         <td>For all ages</td>
  *     </tr>
@@ -1263,139 +1355,153 @@
  *         <td>Mature viewers</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">ZA_TV</td>
  *         <td>ZA_TV_F</td>
  *         <td>This is a program/film that does not contain any obscenity, and is suitable for
- *         viewing. A logo must be displayed in the corner of the screen for 30 seconds after each
- *         break</td>
+ *         family viewing. A logo must be displayed in the corner of the screen for 30 seconds after
+ *         each commercial break</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_PG</td>
  *         <td>Children under 6 may watch this program/film, but must be accompanied by an adult.
- *         program contains an adult related theme, which might include very mild language, violence
- *         sexual innuendo. A logo must be displayed in the corner of the screen for one minute
- *         each commercial break</td>
+ *         This program contains an adult related theme, which might include very mild language,
+ *         violence and sexual innuendo. A logo must be displayed in the corner of the screen for
+ *         one minute after each commercial break</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_13</td>
  *         <td>Children under 13 are prohibited from watching this program/film. This program
- *         mild language, violence and sexual innuendo. A logo must be displayed in the corner of
- *         screen for two minutes after each commercial break</td>
+ *         contains mild language, violence and sexual innuendo. A logo must be displayed in the
+ *         corner of the screen for two minutes after each commercial break</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_16</td>
  *         <td>Children under 16 are prohibited from watching this program/film. It contains
- *         violence, language, and some sexual situations. In the case of television, this program
- *         only be broadcast after 9pm–4:30am. A logo must be displayed in the corner of the screen
- *         five minutes after each commercial break. A full-screen warning must be issued before the
- *         of the program. If the program is longer than an hour, a warning must be displayed every
- *         an hour</td>
+ *         moderate violence, language, and some sexual situations. In the case of television, this
+ *         program may only be broadcast after 9pm-4:30am. A logo must be displayed in the corner of
+ *         the screen for five minutes after each commercial break. A full-screen warning must be
+ *         issued before the start of the program. If the program is longer than an hour, a warning
+ *         must be displayed every half an hour</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_18</td>
  *         <td>Children under 18 are prohibited from watching this program/film. It contains extreme
- *         language and/or graphic sexual content. In the case of television, this program may only
- *         broadcast from 10pm–4:30am. A logo must be displayed in the corner of the screen for the
- *         of the program. A full-screen warning must be issued before the start of the program and
- *         each commercial break</td>
+ *         violence, language and/or graphic sexual content. In the case of television, this program
+ *         may only be broadcast from 10pm-4:30am. A logo must be displayed in the corner of the
+ *         screen for the duration of the program. A full-screen warning must be issued before the
+ *         start of the program and after each commercial break</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_R18</td>
  *         <td>This is reserved for films of an extreme sexual nature (pornography). R18 films may
- *         be distributed in the form of video and DVD in a controlled environment (e.g. Adult
- *         No public viewing of this film may take place. R18 films may not be broadcast on
- *         and in cinemas</td>
+ *         only be distributed in the form of video and DVD in a controlled environment (e.g. Adult
+ *         Shops). No public viewing of this film may take place. R18 films may not be broadcast on
+ *         television and in cinemas</td>
  *     </tr>
  * </table>
  *
  * <u>System defined string for {@code subRating}</u>
- * <table border="0" cellspacing="0" cellpadding="0">
+ * <table border="1" cellspacing="0" cellpadding="0">
  *     <tr>
- *         <td>String value</td>
+ *         <td width="10%">RatingSystem code</td>
+ *         <td width="10%">Rating string value</td>
  *         <td>Comments</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">NL_TV</td>
  *         <td>NL_TV_V</td>
- *         <td>Violence</td>
+ *         <td>Violence<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV_F</td>
- *         <td>Scary or Disturbing Content</td>
+ *         <td>Scary or Disturbing ContentViolence<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9,
+ *         NL_TV_12, NL_TV_16</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV_S</td>
- *         <td>Sexual Content</td>
+ *         <td>Sexual Content<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV_D</td>
- *         <td>Discrimination</td>
+ *         <td>Discrimination<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV_DA</td>
- *         <td>Drug and/or Alcohol abuse</td>
+ *         <td>Drug and/or Alcohol abuse<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12,
+ *         NL_TV_16</td>
  *     </tr>
  *     <tr>
  *         <td>NL_TV_L</td>
- *         <td>Bad Language</td>
+ *         <td>Bad Language<br/>Applicable to NL_TV_AL, NL_TV_6, NL_TV_9, NL_TV_12, NL_TV_16</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="4">NZ_PTV</td>
  *         <td>NZ_PTV_C</td>
- *         <td>Content may offend</td>
+ *         <td>Content may offend<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_PTV_V</td>
- *         <td>Violence</td>
+ *         <td>Violence<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_PTV_L</td>
- *         <td>Language</td>
+ *         <td>Language<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
  *     </tr>
  *     <tr>
  *         <td>NZ_PTV_S</td>
- *         <td>Sexual content</td>
+ *         <td>Sexual content<br/>Applicable to NZ_PTV_PG, NZ_PTV_M, NZ_PTV_16, NZ_PTV_18</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_D</td>
- *         <td>Suggestive dialogue (Usually means talks about sex)</td>
+ *         <td valign="top" rowspan="5">US_TV</td>
+ *         <td>US_TV_D</td>
+ *         <td>Suggestive dialogue (Usually means talks about sex)<br/>Applicable to US_TV_PG,
+ *         US_TV_14, US_TV</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_L</td>
- *         <td>Coarse language</td>
+ *         <td>US_TV_L</td>
+ *         <td>Coarse language<br/>Applicable to US_TV_PG, US_TV_14</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_S</td>
- *         <td>Sexual content</td>
+ *         <td>US_TV_S</td>
+ *         <td>Sexual content<br/>Applicable to US_TV_PG, US_TV_14, US_TV_MA</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_V</td>
- *         <td>Violence</td>
+ *         <td>US_TV_V</td>
+ *         <td>Violence<br/>Applicable to US_TV_PG, US_TV_14, US_TV_MA</td>
  *     </tr>
  *     <tr>
- *         <td>US_TVPG_FV</td>
- *         <td>Fantasy violence (Children\'s programming only)</td>
+ *         <td>US_TV_FV</td>
+ *         <td>Fantasy violence (Children's programming only)<br/>Applicable to US_TV_Y7</td>
  *     </tr>
  *     <tr>
+ *         <td valign="top" rowspan="6">ZA_TV</td>
  *         <td>ZA_TV_D</td>
- *         <td>Drug</td>
+ *         <td>Drug<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
+ *         </td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_V</td>
- *         <td>Violence</td>
+ *         <td>Violence<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
+ *         </td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_N</td>
- *         <td>Nudity</td>
+ *         <td>Nudity<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
+ *         </td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_P</td>
- *         <td>Prejudice</td>
+ *         <td>Prejudice<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18,
+ *         ZA_TV_R18</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_S</td>
- *         <td>Sex</td>
+ *         <td>Sex<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18</td>
  *     </tr>
  *     <tr>
  *         <td>ZA_TV_L</td>
- *         <td>Language</td>
+ *         <td>Language<br/>Applicable to ZA_TV_F, ZA_TV_PG, ZA_TV_13, ZA_TV_16, ZA_TV_18, ZA_TV_R18
+ *         </td>
  *     </tr>
  * </table>
  */
@@ -1412,6 +1518,7 @@
     private final String mRatingSystem;
     private final String mRating;
     private final String[] mSubRatings;
+    private final int mHashCode;
 
     /**
      * Creates a TvContentRating object.
@@ -1427,6 +1534,9 @@
         if (TextUtils.isEmpty(domain)) {
             throw new IllegalArgumentException("domain cannot be empty");
         }
+        if (TextUtils.isEmpty(ratingSystem)) {
+            throw new IllegalArgumentException("ratingSystem cannot be empty");
+        }
         if (TextUtils.isEmpty(rating)) {
             throw new IllegalArgumentException("rating cannot be empty");
         }
@@ -1471,7 +1581,13 @@
         mDomain = domain;
         mRatingSystem = ratingSystem;
         mRating = rating;
-        mSubRatings = subRatings;
+        if (subRatings == null || subRatings.length == 0) {
+            mSubRatings = null;
+        } else {
+            Arrays.sort(subRatings);
+            mSubRatings = subRatings;
+        }
+        mHashCode = 31 * Objects.hash(mDomain, mRating) + Arrays.hashCode(mSubRatings);
     }
 
     /**
@@ -1550,6 +1666,11 @@
         if (!rating.getMainRating().equals(mRating)) {
             return false;
         }
+        if (!rating.getDomain().equals(mDomain) ||
+                !rating.getRatingSystem().equals(mRatingSystem) ||
+                !rating.getMainRating().equals(mRating)) {
+            return false;
+        }
         List<String> subRatings = getSubRatings();
         List<String> subRatingsOther = rating.getSubRatings();
         if (subRatings == null && subRatingsOther == null) {
@@ -1562,4 +1683,30 @@
             return subRatings.containsAll(subRatingsOther);
         }
     }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (!(obj instanceof TvContentRating)) {
+            return false;
+        }
+        TvContentRating other = (TvContentRating) obj;
+        if (mHashCode != other.mHashCode) {
+            return false;
+        }
+        if (!TextUtils.equals(mDomain, other.mDomain)) {
+            return false;
+        }
+        if (!TextUtils.equals(mRatingSystem, other.mRatingSystem)) {
+            return false;
+        }
+        if (!TextUtils.equals(mRating, other.mRating)) {
+            return false;
+        }
+        return Arrays.equals(mSubRatings, other.mSubRatings);
+    }
+
+    @Override
+    public int hashCode() {
+        return mHashCode;
+    }
 }
diff --git a/media/java/android/media/tv/TvContract.java b/media/java/android/media/tv/TvContract.java
index e975676..bdceb24 100644
--- a/media/java/android/media/tv/TvContract.java
+++ b/media/java/android/media/tv/TvContract.java
@@ -119,12 +119,12 @@
     }
 
     /**
-     * Build a special channel URI intended to be used with pass-through type inputs. (e.g. HDMI)
+     * Build a special channel URI intended to be used with pass-through inputs. (e.g. HDMI)
      *
-     * @param inputId The ID of the TV input to build a channels URI for.
-     * @see TvInputInfo#isPassthroughInputType()
+     * @param inputId The ID of the pass-through input to build a channels URI for.
+     * @see TvInputInfo#isPassthroughInput()
      */
-    public static final Uri buildChannelUriForPassthroughTvInput(String inputId) {
+    public static final Uri buildChannelUriForPassthroughInput(String inputId) {
         return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(AUTHORITY)
                 .appendPath(PATH_PASSTHROUGH).appendPath(inputId).build();
     }
@@ -144,7 +144,7 @@
      * @param channelUri The URI of the channel whose logo is pointed to.
      */
     public static final Uri buildChannelLogoUri(Uri channelUri) {
-        if (!isChannelUriForTunerTvInput(channelUri)) {
+        if (!isChannelUriForTunerInput(channelUri)) {
             throw new IllegalArgumentException("Not a channel: " + channelUri);
         }
         return Uri.withAppendedPath(channelUri, Channels.Logo.CONTENT_DIRECTORY);
@@ -153,7 +153,8 @@
     /**
      * Builds a URI that points to all channels from a given TV input.
      *
-     * @param inputId The ID of the TV input to build a channels URI for.
+     * @param inputId The ID of the TV input to build a channels URI for. If {@code null}, builds a
+     *            URI for all the TV inputs.
      */
     public static final Uri buildChannelsUriForInput(String inputId) {
         return buildChannelsUriForInput(inputId, false);
@@ -162,43 +163,46 @@
     /**
      * Builds a URI that points to all or browsable-only channels from a given TV input.
      *
-     * @param inputId The ID of the TV input to build a channels URI for.
+     * @param inputId The ID of the TV input to build a channels URI for. If {@code null}, builds a
+     *            URI for all the TV inputs.
      * @param browsableOnly If set to {@code true} the URI points to only browsable channels. If set
      *            to {@code false} the URI points to all channels regardless of whether they are
      *            browsable or not.
      * @hide
      */
+    @SystemApi
     public static final Uri buildChannelsUriForInput(String inputId, boolean browsableOnly) {
-        return Channels.CONTENT_URI.buildUpon()
-                .appendQueryParameter(PARAM_INPUT, inputId)
-                .appendQueryParameter(PARAM_BROWSABLE_ONLY, String.valueOf(browsableOnly)).build();
+        Uri.Builder builder = Channels.CONTENT_URI.buildUpon();
+        if (inputId != null) {
+            builder.appendQueryParameter(PARAM_INPUT, inputId);
+        }
+        return builder.appendQueryParameter(PARAM_BROWSABLE_ONLY, String.valueOf(browsableOnly))
+                .build();
     }
 
     /**
      * Builds a URI that points to all or browsable-only channels which have programs with the given
      * genre from the given TV input.
      *
-     * @param inputId The ID of the TV input to build a channels URI for. If null, builds a URI for
-     *            all the TV inputs.
-     * @param genre {@link Programs.Genres} to search.
+     * @param inputId The ID of the TV input to build a channels URI for. If {@code null}, builds a
+     *            URI for all the TV inputs.
+     * @param genre {@link Programs.Genres} to search. If {@code null}, builds a URI for all genres.
      * @param browsableOnly If set to {@code true} the URI points to only browsable channels. If set
      *            to {@code false} the URI points to all channels regardless of whether they are
      *            browsable or not.
      * @hide
      */
-    public static final Uri buildChannelsUriForCanonicalGenre(String inputId, String genre,
+    @SystemApi
+    public static final Uri buildChannelsUriForInput(String inputId, String genre,
             boolean browsableOnly) {
+        if (genre == null) {
+            return buildChannelsUriForInput(inputId, browsableOnly);
+        }
         if (!Programs.Genres.isCanonical(genre)) {
             throw new IllegalArgumentException("Not a canonical genre: '" + genre + "'");
         }
-
-        Uri uri;
-        if (inputId == null) {
-            uri = Channels.CONTENT_URI;
-        } else {
-            uri = buildChannelsUriForInput(inputId, browsableOnly);
-        }
-        return uri.buildUpon().appendQueryParameter(PARAM_CANONICAL_GENRE, genre).build();
+        return buildChannelsUriForInput(inputId, browsableOnly).buildUpon()
+                .appendQueryParameter(PARAM_CANONICAL_GENRE, genre).build();
     }
 
     /**
@@ -226,7 +230,7 @@
      * @param channelUri The URI of the channel to return programs for.
      */
     public static final Uri buildProgramsUriForChannel(Uri channelUri) {
-        if (!isChannelUriForTunerTvInput(channelUri)) {
+        if (!isChannelUriForTunerInput(channelUri)) {
             throw new IllegalArgumentException("Not a channel: " + channelUri);
         }
         return buildProgramsUriForChannel(ContentUris.parseId(channelUri));
@@ -261,7 +265,7 @@
      */
     public static final Uri buildProgramsUriForChannel(Uri channelUri, long startTime,
             long endTime) {
-        if (!isChannelUriForTunerTvInput(channelUri)) {
+        if (!isChannelUriForTunerInput(channelUri)) {
             throw new IllegalArgumentException("Not a channel: " + channelUri);
         }
         return buildProgramsUriForChannel(ContentUris.parseId(channelUri), startTime, endTime);
@@ -292,23 +296,23 @@
      * @hide
      */
     public static final boolean isChannelUri(Uri uri) {
-        return isChannelUriForTunerTvInput(uri) || isChannelUriForPassthroughTvInput(uri);
+        return isChannelUriForTunerInput(uri) || isChannelUriForPassthroughInput(uri);
     }
 
     /**
-     * Returns true, if {@code uri} is a channel URI for a tuner TV input.
+     * Returns true, if {@code uri} is a channel URI for a tuner input.
      * @hide
      */
-    public static final boolean isChannelUriForTunerTvInput(Uri uri) {
+    public static final boolean isChannelUriForTunerInput(Uri uri) {
         return isTvUri(uri) && isTwoSegmentUriStartingWith(uri, PATH_CHANNEL);
     }
 
     /**
-     * Returns true, if {@code uri} is a channel URI for a passthrough TV input.
+     * Returns true, if {@code uri} is a channel URI for a passthrough input.
      * @hide
      */
     @SystemApi
-    public static final boolean isChannelUriForPassthroughTvInput(Uri uri) {
+    public static final boolean isChannelUriForPassthroughInput(Uri uri) {
         return isTvUri(uri) && isTwoSegmentUriStartingWith(uri, PATH_PASSTHROUGH);
     }
 
diff --git a/media/java/android/media/tv/TvInputInfo.java b/media/java/android/media/tv/TvInputInfo.java
index e735e4e..6a7433d 100644
--- a/media/java/android/media/tv/TvInputInfo.java
+++ b/media/java/android/media/tv/TvInputInfo.java
@@ -38,7 +38,6 @@
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
-import android.util.Pair;
 import android.util.SparseIntArray;
 import android.util.Xml;
 
@@ -47,9 +46,11 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * This class is used to specify meta information of a TV input.
@@ -112,7 +113,7 @@
     private static final String PREFIX_HDMI_DEVICE = "HDMI";
     private static final String PREFIX_HARDWARE_DEVICE = "HW";
     private static final int LENGTH_HDMI_PHYSICAL_ADDRESS = 4;
-    private static final int LENGTH_HDMI_LOGICAL_ADDRESS = 2;
+    private static final int LENGTH_HDMI_DEVICE_ID = 2;
 
     private final ResolveInfo mService;
     private final String mId;
@@ -245,17 +246,17 @@
                 Log.d(TAG, "Settings activity loaded. [" + input.mSettingsActivity + "] for "
                         + si.name);
             }
-            int contentRatingSystemXml = sa.getResourceId(
-                    com.android.internal.R.styleable.TvInputService_contentRatingSystemXml, -1);
-            if (contentRatingSystemXml != -1) {
+            int tvContentRatingDescription = sa.getResourceId(
+                    com.android.internal.R.styleable.TvInputService_tvContentRatingDescription, -1);
+            if (tvContentRatingDescription != -1) {
                 input.mRatingSystemXmlUri = new Uri.Builder()
                         .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
                         .authority(si.packageName)
-                        .appendPath(Integer.toString(contentRatingSystemXml))
+                        .appendPath(Integer.toString(tvContentRatingDescription))
                         .build();
                 if (DEBUG) {
-                    Log.d(TAG, "Content rating xml loaded. [" + contentRatingSystemXml + "] for "
-                            + si.name);
+                    Log.d(TAG, "Content rating xml loaded. [" + tvContentRatingDescription
+                            + "] for " + si.name);
                 }
             }
             sa.recycle();
@@ -379,9 +380,9 @@
      * Returns {@code true} if this TV input is pass-though which does not have any real channels
      * in TvProvider. {@code false} otherwise.
      *
-     * @see TvContract#buildChannelUriForPassthroughTvInput(String)
+     * @see TvContract#buildChannelUriForPassthroughInput(String)
      */
-    public boolean isPassthroughInputType() {
+    public boolean isPassthroughInput() {
         return mType != TYPE_TUNER;
     }
 
@@ -405,7 +406,7 @@
      */
     @SystemApi
     public boolean isHidden(Context context) {
-        return TvInputSettings.isHidden(context, mId, UserHandle.USER_CURRENT);
+        return TvInputSettings.isHidden(context, mId, UserHandle.myUserId());
     }
 
     /**
@@ -433,7 +434,7 @@
      */
     @SystemApi
     public CharSequence loadCustomLabel(Context context) {
-        return TvInputSettings.getCustomLabel(context, mId, UserHandle.USER_CURRENT);
+        return TvInputSettings.getCustomLabel(context, mId, UserHandle.myUserId());
     }
 
     /**
@@ -536,9 +537,9 @@
             ComponentName name, HdmiDeviceInfo deviceInfo) {
         // Example of the format : "/HDMI%04X%02X"
         String format = String.format("%s%s%%0%sX%%0%sX", DELIMITER_INFO_IN_ID, PREFIX_HDMI_DEVICE,
-                LENGTH_HDMI_PHYSICAL_ADDRESS, LENGTH_HDMI_LOGICAL_ADDRESS);
+                LENGTH_HDMI_PHYSICAL_ADDRESS, LENGTH_HDMI_DEVICE_ID);
         return name.flattenToShortString() + String.format(format,
-                deviceInfo.getPhysicalAddress(), deviceInfo.getLogicalAddress());
+                deviceInfo.getPhysicalAddress(), deviceInfo.getId());
     }
 
     /**
@@ -601,66 +602,61 @@
         }
 
         private static String getCustomLabel(Context context, String inputId, int userId) {
-            for (Pair<String, String> pair : getCustomLabelList(context, userId)) {
-                if (pair.first.equals(inputId)) {
-                    return pair.second;
-                }
-            }
-            return null;
+            return getCustomLabels(context, userId).get(inputId);
         }
 
         /**
-         * Returns a list of TV input IDs which are marked as hidden by user in the settings.
+         * Returns a set of TV input IDs which are marked as hidden by user in the settings.
          *
          * @param context The application context
-         * @param userId The user ID for the stored hidden input list
+         * @param userId The user ID for the stored hidden input set
          * @hide
          */
         @SystemApi
-        public static List<String> getHiddenTvInputIds(Context context, int userId) {
+        public static Set<String> getHiddenTvInputIds(Context context, int userId) {
             String hiddenIdsString = Settings.Secure.getStringForUser(
                     context.getContentResolver(), Settings.Secure.TV_INPUT_HIDDEN_INPUTS, userId);
             if (TextUtils.isEmpty(hiddenIdsString)) {
-                return new ArrayList<String>();
+                return new HashSet<String>();
             }
             String[] ids = hiddenIdsString.split(TV_INPUT_SEPARATOR);
-            return new ArrayList(Arrays.asList(ids));
+            return new HashSet(Arrays.asList(ids));
         }
 
         /**
-         * Returns a list of TV input ID/custom label pairs set by the user in the settings.
+         * Returns a map of TV input ID/custom label pairs set by the user in the settings.
          *
          * @param context The application context
-         * @param userId The user ID for the stored hidden input list
+         * @param userId The user ID for the stored hidden input map
          * @hide
          */
         @SystemApi
-        public static List<Pair<String, String>> getCustomLabelList(Context context, int userId) {
+        public static Map<String, String> getCustomLabels(Context context, int userId) {
             String labelsString = Settings.Secure.getStringForUser(
                     context.getContentResolver(), Settings.Secure.TV_INPUT_CUSTOM_LABELS, userId);
-            List<Pair<String, String>> list = new ArrayList<Pair<String, String>>();
+            Map<String, String> map = new HashMap<String, String>();
             if (TextUtils.isEmpty(labelsString)) {
-                return list;
+                return map;
             }
             String[] pairs = labelsString.split(TV_INPUT_SEPARATOR);
             for (String pairString : pairs) {
                 String[] pair = pairString.split(CUSTOM_NAME_SEPARATOR);
-                list.add(new Pair<String, String>(pair[0], pair[1]));
+                map.put(pair[0], pair[1]);
             }
-            return list;
+            return map;
         }
 
         /**
-         * Stores a list of TV input IDs which are marked as hidden by user. This is expected to
+         * Stores a set of TV input IDs which are marked as hidden by user. This is expected to
          * be called from the settings app.
          *
          * @param context The application context
-         * @param hiddenInputIds A list including all the hidden TV input IDs
-         * @param userId The user ID for the stored hidden input list
+         * @param hiddenInputIds A set including all the hidden TV input IDs
+         * @param userId The user ID for the stored hidden input set
          * @hide
          */
         @SystemApi
-        public static void putHiddenTvInputList(Context context, List<String> hiddenInputIds,
+        public static void putHiddenTvInputs(Context context, Set<String> hiddenInputIds,
                 int userId) {
             StringBuilder builder = new StringBuilder();
             boolean firstItem = true;
@@ -678,30 +674,30 @@
         }
 
         /**
-         * Stores a list of TV input ID/custom label pairs set by user. This is expected to be
+         * Stores a map of TV input ID/custom label set by user. This is expected to be
          * called from the settings app.
          *
          * @param context The application context.
-         * @param customLabels A list of TV input ID/custom label pairs
-         * @param userId The user ID for the stored hidden input list
+         * @param customLabels A map of TV input ID/custom label pairs
+         * @param userId The user ID for the stored hidden input map
          * @hide
          */
         @SystemApi
-        public static void putCustomLabelList(Context context,
-                List<Pair<String, String>> customLabels, int userId) {
+        public static void putCustomLabels(Context context,
+                Map<String, String> customLabels, int userId) {
             StringBuilder builder = new StringBuilder();
             boolean firstItem = true;
-            for (Pair<String, String> pair : customLabels) {
-                ensureValidField(pair.first);
-                ensureValidField(pair.second);
+            for (Map.Entry<String, String> entry: customLabels.entrySet()) {
+                ensureValidField(entry.getKey());
+                ensureValidField(entry.getValue());
                 if (firstItem) {
                     firstItem = false;
                 } else {
                     builder.append(TV_INPUT_SEPARATOR);
                 }
-                builder.append(pair.first);
+                builder.append(entry.getKey());
                 builder.append(CUSTOM_NAME_SEPARATOR);
-                builder.append(pair.second);
+                builder.append(entry.getValue());
             }
             Settings.Secure.putStringForUser(context.getContentResolver(),
                     Settings.Secure.TV_INPUT_CUSTOM_LABELS, builder.toString(), userId);
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index 8783648..8ffe6cc 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -213,7 +213,7 @@
     }
 
     /**
-     * Returns the input ID for {@code logicalAddress} if it is handled by this service; otherwise,
+     * Returns the input ID for {@code deviceInfo} if it is handled by this service; otherwise,
      * return {@code null}. Override to modify default behavior of ignoring all HDMI logical input
      * device.
      *
@@ -1178,11 +1178,11 @@
             mCallbacks.finishBroadcast();
         }
 
-        private void broadcastAddHdmiTvInput(int logicalAddress, TvInputInfo inputInfo) {
+        private void broadcastAddHdmiTvInput(int id, TvInputInfo inputInfo) {
             int n = mCallbacks.beginBroadcast();
             for (int i = 0; i < n; ++i) {
                 try {
-                    mCallbacks.getBroadcastItem(i).addHdmiTvInput(logicalAddress, inputInfo);
+                    mCallbacks.getBroadcastItem(i).addHdmiTvInput(id, inputInfo);
                 } catch (RemoteException e) {
                     Log.e(TAG, "Error while broadcasting.", e);
                 }
@@ -1289,7 +1289,7 @@
                     HdmiDeviceInfo deviceInfo = (HdmiDeviceInfo) msg.obj;
                     TvInputInfo inputInfo = onHdmiDeviceAdded(deviceInfo);
                     if (inputInfo != null) {
-                        broadcastAddHdmiTvInput(deviceInfo.getLogicalAddress(), inputInfo);
+                        broadcastAddHdmiTvInput(deviceInfo.getId(), inputInfo);
                     }
                     return;
                 }
diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp
index ecba02a..12eb7d2 100644
--- a/media/jni/android_media_MediaCodecList.cpp
+++ b/media/jni/android_media_MediaCodecList.cpp
@@ -85,6 +85,7 @@
     sp<IMediaCodecList> mcl = getCodecList(env);
     if (mcl == NULL) {
         // Runtime exception already pending.
+        env->ReleaseStringUTFChars(name, nameStr);
         return -ENOENT;
     }
 
@@ -162,7 +163,6 @@
     }
 
     const char *typeStr = env->GetStringUTFChars(type, NULL);
-
     if (typeStr == NULL) {
         // Out of memory exception already pending.
         return NULL;
@@ -177,12 +177,12 @@
     // TODO query default-format also from codec/codec list
     const sp<MediaCodecInfo::Capabilities> &capabilities =
         info->getCapabilitiesFor(typeStr);
+    env->ReleaseStringUTFChars(type, typeStr);
+    typeStr = NULL;
     if (capabilities == NULL) {
         jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
         return NULL;
     }
-    env->ReleaseStringUTFChars(type, typeStr);
-    typeStr = NULL;
 
     capabilities->getSupportedColorFormats(&colorFormats);
     capabilities->getSupportedProfileLevels(&profileLevels);
diff --git a/packages/BackupRestoreConfirmation/res/values-my-rMM/strings.xml b/packages/BackupRestoreConfirmation/res/values-my-rMM/strings.xml
index 15218de..06a135c 100644
--- a/packages/BackupRestoreConfirmation/res/values-my-rMM/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-my-rMM/strings.xml
@@ -16,20 +16,20 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="backup_confirm_title" msgid="827563724209303345">"အရံ သိမ်းဆည်းမှု အပြည့်လုပ်ရန်"</string>
+    <string name="backup_confirm_title" msgid="827563724209303345">"အရံ သိမ်းဆည်းမှု အပြည့်လုပ်ရန်"</string>
     <string name="restore_confirm_title" msgid="5469365809567486602">"အားလုံးပြန်လည်ရယူရန်"</string>
-    <string name="backup_confirm_text" msgid="1878021282758896593">"ချိတ်ဆက်ထားသောကွန်ပြုတာသို့ ဒေတာအားလုံးအား အရန်သိမ်းဆည်းရန် တောင်းခံပါသည်။ သင်ခွင့်ပြုမည်လား။ \n\nအကယ်၍ သင်သည်အရန်သိမ်းဆည်းရန် မတောင်းခံခဲ့ပါက ဤဆောင်ရွက်ချက်အား ရှေ့ဆက်ရန်ခွင့်မပြုပါနှင့်။"</string>
+    <string name="backup_confirm_text" msgid="1878021282758896593">"ချိတ်ဆက်ထားသောကွန်ပြုတာသို့ ဒေတာအားလုံးအား အရန်သိမ်းဆည်းရန် တောင်းခံပါသည်။ သင်ခွင့်ပြုမည်လား။ \n\nအကယ်၍ သင်သည်အရန်သိမ်းဆည်းရန် မတောင်းခံခဲ့ပါက ဤဆောင်ရွက်ချက်အား ရှေ့ဆက်ရန်ခွင့်မပြုပါနှင့်။"</string>
     <string name="allow_backup_button_label" msgid="4217228747769644068">"ကျွန်ုပ်၏ဒေတာများကို အရန်ထားခြင်း"</string>
-    <string name="deny_backup_button_label" msgid="6009119115581097708">"အရံသိမ်းဆည်းမှု မလုပ်ပါနှင့်"</string>
-    <string name="restore_confirm_text" msgid="7499866728030461776">"ချိတ်ဆက်ထားသောကွန်ပြုတာသို့ ဒေတာအားလုံးအား ပြန်လည်ရယူရန် တောင်းခံပါသည်။ သင်ခွင့်ပြုမည်လား။ \n\nအကယ်၍ သင်သည် ပြန်လည်ရယူရန် ဤဆောင်ရွက်ချက်အား ရှေ့ဆက်ရန်ခွင့်မပြုပါနှင့်။ လက်ရှိစက်ထဲ၌ရှိသောဒေတာအား အစားထိုးမည်ဖြစ်သည်။"</string>
+    <string name="deny_backup_button_label" msgid="6009119115581097708">"အရံသိမ်းဆည်းမှု မလုပ်ပါနှင့်"</string>
+    <string name="restore_confirm_text" msgid="7499866728030461776">"ချိတ်ဆက်ထားသောကွန်ပြုတာသို့ ဒေတာအားလုံးအား ပြန်လည်ရယူရန် တောင်းခံပါသည်။ သင်ခွင့်ပြုမည်လား။ \n\nအကယ်၍ သင်သည် ပြန်လည်ရယူရန် ဤဆောင်ရွက်ချက်အား ရှေ့ဆက်ရန်ခွင့်မပြုပါနှင့်။ လက်ရှိစက်ထဲ၌ရှိသောဒေတာအား အစားထိုးမည်ဖြစ်သည်။"</string>
     <string name="allow_restore_button_label" msgid="3081286752277127827">"ကျွန်ုပ်၏ဒေတာများကို ပြန်လည်ရယူရန်"</string>
-    <string name="deny_restore_button_label" msgid="1724367334453104378">"ပြန်လည်ရယူခြင်းအား မပြုလုပ်ပါနှင့်"</string>
-    <string name="current_password_text" msgid="8268189555578298067">"သင့်လက်ရှိ အရံသိမ်းဆည်းမှု လျှို့ဝှက်စကားဝှက်အား ထည့်သွင်းပါ။"</string>
-    <string name="device_encryption_restore_text" msgid="1570864916855208992">"သင့်စက်၏ လျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက်စကားဝှက်ကို ထည့်သွင်းပါ။"</string>
-    <string name="device_encryption_backup_text" msgid="5866590762672844664">"သင့်စက်၏လျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက် လျှို့ဝှက်စကားဝှက်အားထည့်ပါ။ အရံသိမ်းဆည်းမှု သိမ်းဆည်းနေရာတွင်လည်း အသုံးပြုမည်ဖြစ်သည်။"</string>
-    <string name="backup_enc_password_text" msgid="4981585714795233099">"ဒေတာအားလုံးအားအရန်သိမ်းဆည်းခြင်းပြီးလျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက် လျှို့ဝှက်နံပါတ်/စာကိုထည့်ပါ။ အကယ်၍ ကွက်လပ်ထားပါက ယခုသင့်လက်ရှိလျှို့ဝှက်စကားဝှက်အား အသုံးပြုပါမည်။"</string>
-    <string name="backup_enc_password_optional" msgid="1350137345907579306">"အကယ်၍ ဒေတာအားလုံးအားအရန်သိမ်းဆည်းခြင်းကို ဝှက်လိုပါက အောက်တွင်လျှို့ဝှက်နံပါတ်/စာကိုထည့်ပါ။"</string>
-    <string name="restore_enc_password_text" msgid="6140898525580710823">"အကယ်၍ ပြန်လည်ရယူမည့်ဒေတာမှာလျှို့ဝှက်အသွင်ပြောင်းထားပါက အောက်တွင်စကားဝှက်ကိုထည့်ပါ-"</string>
+    <string name="deny_restore_button_label" msgid="1724367334453104378">"ပြန်လည်ရယူခြင်းအား မပြုလုပ်ပါနှင့်"</string>
+    <string name="current_password_text" msgid="8268189555578298067">"သင့်လက်ရှိ အရံသိမ်းဆည်းမှု လျှို့ဝှက်စကားဝှက်အား ထည့်သွင်းပါ။"</string>
+    <string name="device_encryption_restore_text" msgid="1570864916855208992">"သင့်စက်၏ လျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက်စကားဝှက်ကို ထည့်သွင်းပါ။"</string>
+    <string name="device_encryption_backup_text" msgid="5866590762672844664">"သင့်စက်၏လျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက် လျှို့ဝှက်စကားဝှက်အားထည့်ပါ။ အရံသိမ်းဆည်းမှု သိမ်းဆည်းနေရာတွင်လည်း အသုံးပြုမည်ဖြစ်သည်။"</string>
+    <string name="backup_enc_password_text" msgid="4981585714795233099">"ဒေတာအားလုံးအားအရန်သိမ်းဆည်းခြင်းပြီးလျှို့ဝှက်အသွင်ပြောင်းခြင်းအတွက် လျှို့ဝှက်နံပါတ်/စာကိုထည့်ပါ။ အကယ်၍ ကွက်လပ်ထားပါက ယခုသင့်လက်ရှိလျှို့ဝှက်စကားဝှက်အား အသုံးပြုပါမည်။"</string>
+    <string name="backup_enc_password_optional" msgid="1350137345907579306">"အကယ်၍ ဒေတာအားလုံးအားအရန်သိမ်းဆည်းခြင်းကို ဝှက်လိုပါက အောက်တွင်လျှို့ဝှက်နံပါတ်/စာကိုထည့်ပါ။"</string>
+    <string name="restore_enc_password_text" msgid="6140898525580710823">"အကယ်၍ ပြန်လည်ရယူမည့်ဒေတာမှာလျှို့ဝှက်အသွင်ပြောင်းထားပါက အောက်တွင်စကားဝှက်ကိုထည့်ပါ-"</string>
     <string name="toast_backup_started" msgid="550354281452756121">"Backupစတင်ပြုလုပ်နေသည်"</string>
     <string name="toast_backup_ended" msgid="3818080769548726424">"Backupလုပ်ခြင်းပြီးဆုံးပါပြီ"</string>
     <string name="toast_restore_started" msgid="7881679218971277385">"ပြန်လည်ရယူခြင်း စတင်ပြုလုပ်နေသည်"</string>
diff --git a/packages/DocumentsUI/res/values-af/strings.xml b/packages/DocumentsUI/res/values-af/strings.xml
index ca76a7d..19fe7a7 100644
--- a/packages/DocumentsUI/res/values-af/strings.xml
+++ b/packages/DocumentsUI/res/values-af/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Deel"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Vee uit"</string>
     <string name="menu_select" msgid="8711270657353563424">"Kies \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Wys interne berging"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Wys SD-kaart"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Versteek interne berging"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Versteek SD-kaart"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Wys lêergrootte"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Versteek lêergrootte"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> gekies"</string>
     <string name="sort_name" msgid="9183560467917256779">"Volgens naam"</string>
     <string name="sort_date" msgid="586080032956151448">"Volgens datum gewysig"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Kortpaaie"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Toestelle"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Nog programme"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Wys gevorderde toestelle"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Wys lêergrootte"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Wys toestelgrootte"</string>
     <string name="empty" msgid="7858882803708117596">"Geen items nie"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Kan lêer nie oopmaak nie"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Kan sommige dokumente nie uitvee nie"</string>
diff --git a/packages/DocumentsUI/res/values-am/strings.xml b/packages/DocumentsUI/res/values-am/strings.xml
index 84879d5..419d162 100644
--- a/packages/DocumentsUI/res/values-am/strings.xml
+++ b/packages/DocumentsUI/res/values-am/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"አጋራ"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ሰርዝ"</string>
     <string name="menu_select" msgid="8711270657353563424">"«<xliff:g id="DIRECTORY">^1</xliff:g>»ን ይምረጡ"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ውስጣዊ ማከማቻ አሳይ"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ካርድ አሳይ"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ውስጣዊ ማከማቻ ደብቅ"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ካርድ ደብቅ"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"የፋይል መጠን አሳይ"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"የፋይል መጠን ደብቅ"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ተመርጠዋል"</string>
     <string name="sort_name" msgid="9183560467917256779">"በስም"</string>
     <string name="sort_date" msgid="586080032956151448">"በተለወጠበት ቀን"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"የላቁ መሳሪያዎችን አሳይ"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"የፋይል መጠን አሳይ"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"የመሳሪያ መጠን አሳይ"</string>
     <string name="empty" msgid="7858882803708117596">"ምንም ንጥሎች የሉም"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ፋይል መክፈት አይቻልም"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"አንዳንድ ሰነዶችን መሰረዝ አልተቻለም"</string>
diff --git a/packages/DocumentsUI/res/values-ar/strings.xml b/packages/DocumentsUI/res/values-ar/strings.xml
index 5c5d863..5bccdae 100644
--- a/packages/DocumentsUI/res/values-ar/strings.xml
+++ b/packages/DocumentsUI/res/values-ar/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"مشاركة"</string>
     <string name="menu_delete" msgid="8138799623850614177">"حذف"</string>
     <string name="menu_select" msgid="8711270657353563424">"تحديد \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"إظهار وحدة التخزين الداخلية"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"‏إظهار بطاقة SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"إخفاء وحدة التخزين الداخلية"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏إخفاء بطاقة SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"إظهار حجم الملف"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"إخفاء حجم الملف"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"تم تحديد <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"بحسب الاسم"</string>
     <string name="sort_date" msgid="586080032956151448">"بحسب تاريخ التعديل"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"عرض الأجهزة المتقدمة"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"عرض حجم الملف"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"عرض حجم الجهاز"</string>
     <string name="empty" msgid="7858882803708117596">"ليس هناك أي عناصر"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"لا يمكن فتح الملف"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"تعذر حذف بعض المستندات"</string>
diff --git a/packages/DocumentsUI/res/values-bg/strings.xml b/packages/DocumentsUI/res/values-bg/strings.xml
index d1da879..77f6855 100644
--- a/packages/DocumentsUI/res/values-bg/strings.xml
+++ b/packages/DocumentsUI/res/values-bg/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Споделяне"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Изтриване"</string>
     <string name="menu_select" msgid="8711270657353563424">"Избиране на „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Вътр. хранилище: Показв."</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD карта: Показване"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Вътр. хранилище: Скрив."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD карта: Скриване"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Размер на файла: Показв."</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Размер на файла: Скрив."</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Избрахте <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"По име"</string>
     <string name="sort_date" msgid="586080032956151448">"По дата на промяната"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Устройства с разширени ф-ии"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Показване на файловия размер"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Показване на размера на устройството"</string>
     <string name="empty" msgid="7858882803708117596">"Няма елементи"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Файлът не може да се отвори"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Някои документи не могат да бъдат изтрити"</string>
diff --git a/packages/DocumentsUI/res/values-bn-rBD/strings.xml b/packages/DocumentsUI/res/values-bn-rBD/strings.xml
index 3fd50aa..603cb96 100644
--- a/packages/DocumentsUI/res/values-bn-rBD/strings.xml
+++ b/packages/DocumentsUI/res/values-bn-rBD/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"ভাগ করুন"</string>
     <string name="menu_delete" msgid="8138799623850614177">"মুছুন"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" নির্বাচন করুন"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"অভ্যন্তরীণ সঞ্চয়স্থান দেখান"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD কার্ড দেখান"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"অভ্যন্তরীণ সঞ্চয়স্থান লুকান"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD কার্ড লুকান"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ফাইলের আকার দেখান"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ফাইলের আকার লুকান"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> নির্বাচন করা হয়েছে"</string>
     <string name="sort_name" msgid="9183560467917256779">"নামের দ্বারা"</string>
     <string name="sort_date" msgid="586080032956151448">"পরিবর্তনের তারিখ দ্বারা"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"উন্নত ডিভাইসগুলি প্রদর্শন করে"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ফাইলের আকার প্রদর্শন করে"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"ডিভাইসের মাপ প্রদর্শন করে"</string>
     <string name="empty" msgid="7858882803708117596">"কোনো আইটেম নেই"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ফাইল খোলা যাবে না"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"কিছু দস্তাবেজ মুছতে অসমর্থ"</string>
diff --git a/packages/DocumentsUI/res/values-ca/strings.xml b/packages/DocumentsUI/res/values-ca/strings.xml
index 23e7284..d973650 100644
--- a/packages/DocumentsUI/res/values-ca/strings.xml
+++ b/packages/DocumentsUI/res/values-ca/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Comparteix"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Suprimeix"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostra emmagatz. intern"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostra la targeta SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Amaga emmagatz. intern"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Amaga la targeta SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostra la mida de fitxer"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Amaga la mida del fitxer"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Seleccionats: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Per nom"</string>
     <string name="sort_date" msgid="586080032956151448">"Per data de modificació"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Dreceres"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositius"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Més aplicacions"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostra els dispositius avançats"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Mostra la mida del fitxer"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Mostra la mida del dispositiu"</string>
     <string name="empty" msgid="7858882803708117596">"Sense elements"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"No es pot obrir el fitxer."</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"No es poden suprimir alguns documents."</string>
diff --git a/packages/DocumentsUI/res/values-cs/strings.xml b/packages/DocumentsUI/res/values-cs/strings.xml
index ad8897a..b08fdab 100644
--- a/packages/DocumentsUI/res/values-cs/strings.xml
+++ b/packages/DocumentsUI/res/values-cs/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Sdílet"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Smazat"</string>
     <string name="menu_select" msgid="8711270657353563424">"Vyberte adresář <xliff:g id="DIRECTORY">^1</xliff:g>"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Zobrazit inter. úložiště"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Zobrazit SD kartu"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skrýt interní úložiště"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrýt SD kartu"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Zobr. velikost souboru"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Skrýt velikost souboru"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Vybráno: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Podle názvu"</string>
     <string name="sort_date" msgid="586080032956151448">"Podle data úpravy"</string>
@@ -40,14 +46,11 @@
     <string name="create_error" msgid="3735649141335444215">"Složku se nepodařilo vytvořit"</string>
     <string name="query_error" msgid="1222448261663503501">"Seznam dokumentů se nepodařilo načíst"</string>
     <string name="root_recent" msgid="4470053704320518133">"Poslední"</string>
-    <string name="root_available_bytes" msgid="8568452858617033281">"Volný prostor: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Volné místo: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
     <string name="root_type_service" msgid="2178854894416775409">"Služby úložiště"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"Klávesové zkratky"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Zařízení"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Další aplikace"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Zobrazit pokročilá zařízení"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Zobrazit velikost souboru"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Zobrazit velikost zařízení"</string>
     <string name="empty" msgid="7858882803708117596">"Žádné položky"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Soubor nelze otevřít"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Některé dokumenty nelze smazat"</string>
diff --git a/packages/DocumentsUI/res/values-da/strings.xml b/packages/DocumentsUI/res/values-da/strings.xml
index 7ae5d1e..5feb517 100644
--- a/packages/DocumentsUI/res/values-da/strings.xml
+++ b/packages/DocumentsUI/res/values-da/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Del"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Slet"</string>
     <string name="menu_select" msgid="8711270657353563424">"Vælg \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Vis intern lagerplads"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Vis SD-kort"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skjul intern lagerplads"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kort"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelse"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelse"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> er valgt"</string>
     <string name="sort_name" msgid="9183560467917256779">"Efter navn"</string>
     <string name="sort_date" msgid="586080032956151448">"Efter ændringsdato"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Genveje"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Enheder"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Flere apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Vis avancerede enheder"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Vis filstørrelse"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Vis enhedens størrelse"</string>
     <string name="empty" msgid="7858882803708117596">"Ingen elementer"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Filen kan ikke åbnes"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nogle dokumenter kan ikke slettes"</string>
diff --git a/packages/DocumentsUI/res/values-de/strings.xml b/packages/DocumentsUI/res/values-de/strings.xml
index 98c1787..598862b 100644
--- a/packages/DocumentsUI/res/values-de/strings.xml
+++ b/packages/DocumentsUI/res/values-de/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Teilen"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Löschen"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" auswählen"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Int. Speicher anzeigen"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-Karte anzeigen"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Int. Speicher ausblenden"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-Karte ausblenden"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Dateigröße anzeigen"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Dateigröße ausblenden"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ausgewählt"</string>
     <string name="sort_name" msgid="9183560467917256779">"Nach Name"</string>
     <string name="sort_date" msgid="586080032956151448">"Nach Änderungsdatum"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Verknüpfungen"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Geräte"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Weitere Apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Erweiterte Geräte anzeigen"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Dateigröße anzeigen"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Geräteabmessungen anzeigen"</string>
     <string name="empty" msgid="7858882803708117596">"Keine Dokumente"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Datei kann nicht geöffnet werden."</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Einige Dokumente konnten nicht gelöscht werden."</string>
diff --git a/packages/DocumentsUI/res/values-el/strings.xml b/packages/DocumentsUI/res/values-el/strings.xml
index 24d66ce..37f99cf 100644
--- a/packages/DocumentsUI/res/values-el/strings.xml
+++ b/packages/DocumentsUI/res/values-el/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Κοινή χρήση"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Διαγραφή"</string>
     <string name="menu_select" msgid="8711270657353563424">"Επιλογή \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Εμφ.εσωτ.χώρου αποθήκ."</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Εμφάνιση κάρτας SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Απόκρ.εσωτ.χώρου αποθήκ."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Απόκρυψη κάρτας SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Εμφ. μεγέθους αρχείου"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Απόκρ. μεγέθους αρχείου"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Επιλέχθηκαν <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Κατά όνομα"</string>
     <string name="sort_date" msgid="586080032956151448">"Κατά ημερομηνία τροποποίησης"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Εμφάνιση προηγμένων συσκευών"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Εμφάνιση μεγέθους αρχείου"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Εμφάνιση μεγέθους συσκευής"</string>
     <string name="empty" msgid="7858882803708117596">"Δεν υπάρχουν στοιχεία"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string>
diff --git a/packages/DocumentsUI/res/values-en-rGB/strings.xml b/packages/DocumentsUI/res/values-en-rGB/strings.xml
index d2af473..2bd5615 100644
--- a/packages/DocumentsUI/res/values-en-rGB/strings.xml
+++ b/packages/DocumentsUI/res/values-en-rGB/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Share"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Delete"</string>
     <string name="menu_select" msgid="8711270657353563424">"Select \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Show internal storage"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Show SD card"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Hide internal storage"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string>
     <string name="sort_name" msgid="9183560467917256779">"By name"</string>
     <string name="sort_date" msgid="586080032956151448">"By date modified"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Shortcuts"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Devices"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"More apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Display advanced devices"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Display file size"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Display device size"</string>
     <string name="empty" msgid="7858882803708117596">"No items"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string>
diff --git a/packages/DocumentsUI/res/values-en-rIN/strings.xml b/packages/DocumentsUI/res/values-en-rIN/strings.xml
index d2af473..2bd5615 100644
--- a/packages/DocumentsUI/res/values-en-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-en-rIN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Share"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Delete"</string>
     <string name="menu_select" msgid="8711270657353563424">"Select \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Show internal storage"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Show SD card"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Hide internal storage"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string>
     <string name="sort_name" msgid="9183560467917256779">"By name"</string>
     <string name="sort_date" msgid="586080032956151448">"By date modified"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Shortcuts"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Devices"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"More apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Display advanced devices"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Display file size"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Display device size"</string>
     <string name="empty" msgid="7858882803708117596">"No items"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string>
diff --git a/packages/DocumentsUI/res/values-es-rUS/strings.xml b/packages/DocumentsUI/res/values-es-rUS/strings.xml
index daf18cf..4a47b73 100644
--- a/packages/DocumentsUI/res/values-es-rUS/strings.xml
+++ b/packages/DocumentsUI/res/values-es-rUS/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Compartir"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
     <string name="menu_select" msgid="8711270657353563424">"Seleccionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almacen. interno"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarjeta SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almacen. interno"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivos"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivos"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionado(s)"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
     <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Accesos directos"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Más aplicaciones"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño del archivo"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño del dispositivo"</string>
     <string name="empty" msgid="7858882803708117596">"Sin elementos"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"No se puede abrir el archivo."</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos."</string>
diff --git a/packages/DocumentsUI/res/values-es/strings.xml b/packages/DocumentsUI/res/values-es/strings.xml
index 573ee41..95cc812 100644
--- a/packages/DocumentsUI/res/values-es/strings.xml
+++ b/packages/DocumentsUI/res/values-es/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Compartir"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almac. interno"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarjeta SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almac. interno"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivo"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivo"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Seleccionado: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
     <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Accesos directos"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Más aplicaciones"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño del archivo"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño del dispositivo"</string>
     <string name="empty" msgid="7858882803708117596">"Sin elementos"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Error al abrir el archivo"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos"</string>
diff --git a/packages/DocumentsUI/res/values-et-rEE/strings.xml b/packages/DocumentsUI/res/values-et-rEE/strings.xml
index dae965a0..c98f0b9 100644
--- a/packages/DocumentsUI/res/values-et-rEE/strings.xml
+++ b/packages/DocumentsUI/res/values-et-rEE/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Jaga"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Kustuta"</string>
     <string name="menu_select" msgid="8711270657353563424">"Kataloogi „<xliff:g id="DIRECTORY">^1</xliff:g>” valimine"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Kuva sis. salvestusruum"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Kuva SD-kaart"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Peida sis. salvestusruum"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Peida SD-kaart"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Kuva faili suurus"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Peida faili suurus"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> on valitud"</string>
     <string name="sort_name" msgid="9183560467917256779">"Nime järgi"</string>
     <string name="sort_date" msgid="586080032956151448">"Muutmiskuupäeva järgi"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Otseteed"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Seadmed"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Rohkem rakendusi"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Kuva tippseadmed"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Kuva faili suurus"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Kuva seadme suurus"</string>
     <string name="empty" msgid="7858882803708117596">"Üksusi ei ole"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Faili ei saa avada"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Mõnda dokumenti ei õnnestu kustutada"</string>
diff --git a/packages/DocumentsUI/res/values-eu-rES/strings.xml b/packages/DocumentsUI/res/values-eu-rES/strings.xml
index 582bf73..1fd7b1d 100644
--- a/packages/DocumentsUI/res/values-eu-rES/strings.xml
+++ b/packages/DocumentsUI/res/values-eu-rES/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Partekatu"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Ezabatu"</string>
     <string name="menu_select" msgid="8711270657353563424">"Hautatu \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Erakutsi barneko memoria"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Erakutsi SD txartela"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ezkutatu barneko memoria"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ezkutatu SD txartela"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Erakutsi fitxategi-tamaina"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ezkutatu fitxategi-tamaina"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> hautatuta"</string>
     <string name="sort_name" msgid="9183560467917256779">"Izenaren arabera"</string>
     <string name="sort_date" msgid="586080032956151448">"Aldatze-dataren arabera"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Lasterbideak"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Gailuak"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Aplikazio gehiago"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Bistaratu gailu aurreratuak"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Bistaratu fitxategiaren tamaina"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Bistaratu gailuaren tamaina"</string>
     <string name="empty" msgid="7858882803708117596">"Ez dago elementurik"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Ezin da fitxategia ireki"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Ezin izan dira dokumentu batzuk ezabatu"</string>
diff --git a/packages/DocumentsUI/res/values-fa/strings.xml b/packages/DocumentsUI/res/values-fa/strings.xml
index a646eda..6c57211 100644
--- a/packages/DocumentsUI/res/values-fa/strings.xml
+++ b/packages/DocumentsUI/res/values-fa/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"اشتراک‌گذاری"</string>
     <string name="menu_delete" msgid="8138799623850614177">"حذف"</string>
     <string name="menu_select" msgid="8711270657353563424">"انتخاب «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"نمایش فضای ذخیره‌سازی داخلی"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"‏نمایش کارت SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"پنهان کردن فضای ذخیره‌سازی داخلی"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏پنهان کردن کارت SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"نمایش اندازه فایل"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"پنهان کردن اندازه فایل"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> انتخاب شد"</string>
     <string name="sort_name" msgid="9183560467917256779">"بر اساس نام"</string>
     <string name="sort_date" msgid="586080032956151448">"بر اساس تاریخ اصلاح"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"نمایش دستگاه‌های پیشرفته"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"نمایش اندازه فایل"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"نمایش اندازه صفحه نمایش"</string>
     <string name="empty" msgid="7858882803708117596">"موردی موجود نیست"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"فایل باز نمی‌شود"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"برخی از اسناد حذف نمی‌شوند"</string>
diff --git a/packages/DocumentsUI/res/values-fi/strings.xml b/packages/DocumentsUI/res/values-fi/strings.xml
index ae04e32..185be47 100644
--- a/packages/DocumentsUI/res/values-fi/strings.xml
+++ b/packages/DocumentsUI/res/values-fi/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Jaa"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Poista"</string>
     <string name="menu_select" msgid="8711270657353563424">"Valitse <xliff:g id="DIRECTORY">^1</xliff:g>"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Näytä sis. tallennustila"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Näytä SD-kortti"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Piilota sis. tallennust."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Piilota SD-kortti"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Näytä tiedostokoko"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Piilota tiedostokoko"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valittua"</string>
     <string name="sort_name" msgid="9183560467917256779">"Nimen mukaan"</string>
     <string name="sort_date" msgid="586080032956151448">"Muokkauspäivän mukaan"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Pikakuvakkeet"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Laitteet"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Lisää sovelluksia"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Näytä kehittyneet laitteet"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Näytä tiedoston koko"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Näytä laitteen koko"</string>
     <string name="empty" msgid="7858882803708117596">"Ei kohteita"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Tiedostoa ei voi avata"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Joitakin asiakirjoja ei voi poistaa"</string>
diff --git a/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
index b370a1e..4e4c0ed 100644
--- a/packages/DocumentsUI/res/values-fr-rCA/strings.xml
+++ b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Partager"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string>
     <string name="menu_select" msgid="8711270657353563424">"Sélectionner « <xliff:g id="DIRECTORY">^1</xliff:g> »"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Aff. mém. stock. interne"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afficher la carte SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Masquer mém. stock. int."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> sélectionné(s)"</string>
     <string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
     <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Plus d\'applications"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille du fichier"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Taille de l\'écran de l\'appareil"</string>
     <string name="empty" msgid="7858882803708117596">"Aucun élément"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents"</string>
diff --git a/packages/DocumentsUI/res/values-fr/strings.xml b/packages/DocumentsUI/res/values-fr/strings.xml
index b85b518..b760caa 100644
--- a/packages/DocumentsUI/res/values-fr/strings.xml
+++ b/packages/DocumentsUI/res/values-fr/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Partager"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string>
     <string name="menu_select" msgid="8711270657353563424">"Sélectionner \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Aff. mém. stock. interne"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afficher la carte SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Masquer mém. stock. int."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> élément(s) sélectionné(s)"</string>
     <string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
     <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Autres applications"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille des fichiers"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Afficher la capacité de stockage des appareils"</string>
     <string name="empty" msgid="7858882803708117596">"Aucun élément"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier."</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents."</string>
diff --git a/packages/DocumentsUI/res/values-gl-rES/strings.xml b/packages/DocumentsUI/res/values-gl-rES/strings.xml
index b1cf76b..bc6ee9e 100644
--- a/packages/DocumentsUI/res/values-gl-rES/strings.xml
+++ b/packages/DocumentsUI/res/values-gl-rES/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Compartir"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almacen. interno"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarxeta SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almacen. interno"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarxeta SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño ficheiro"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño ficheiro"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionados"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
     <string name="sort_date" msgid="586080032956151448">"Por data de modificación"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Atallos"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Máis aplicacións"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño do ficheiro"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño do dispositivo"</string>
     <string name="empty" msgid="7858882803708117596">"Ningún elemento"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Non se pode abrir o ficheiro"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Non se poden eliminar algúns documentos"</string>
diff --git a/packages/DocumentsUI/res/values-hi/strings.xml b/packages/DocumentsUI/res/values-hi/strings.xml
index 66c707e..c4dc652 100644
--- a/packages/DocumentsUI/res/values-hi/strings.xml
+++ b/packages/DocumentsUI/res/values-hi/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"साझा करें"</string>
     <string name="menu_delete" msgid="8138799623850614177">"हटाएं"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" चुनें"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"आंतरिक संग्रहण दिखाएं"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड दिखाएं"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"आंतरिक संग्रहण छिपाएं"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड छिपाएं"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"फ़ाइल आकार दिखाएं"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"फ़ाइल आकार छिपाएं"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयनित"</string>
     <string name="sort_name" msgid="9183560467917256779">"नाम के अनुसार"</string>
     <string name="sort_date" msgid="586080032956151448">"बदलाव के दिनांक के अनुसार"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणों को दिखाएं"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"फ़ाइल का आकार दिखाएं"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"उपकरण का आकार दिखाएं"</string>
     <string name="empty" msgid="7858882803708117596">"कोई आइटम नहीं"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"फ़ाइल नहीं खोली जा सकती"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"कुछ दस्तावेज़ों को हटाने में अक्षम"</string>
diff --git a/packages/DocumentsUI/res/values-hr/strings.xml b/packages/DocumentsUI/res/values-hr/strings.xml
index 3438e73..60343d2 100644
--- a/packages/DocumentsUI/res/values-hr/strings.xml
+++ b/packages/DocumentsUI/res/values-hr/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Dijeli"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string>
     <string name="menu_select" msgid="8711270657353563424">"Odaberi \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaži internu pohranu"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaži SD karticu"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sakrij internu pohranu"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sakrij SD karticu"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži veličinu datoteke"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Sakrij veličinu datoteke"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Odabrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Po korisniku"</string>
     <string name="sort_date" msgid="586080032956151448">"Po datumu izmjene"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Prečaci"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Uređaji"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Više aplikacija"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaži napredne uređaje"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Prikaži veličinu datoteke"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Prikaži veličinu uređaja"</string>
     <string name="empty" msgid="7858882803708117596">"Nema stavki"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Datoteku nije moguće otvoriti"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nije moguće izbrisati neke dokumente"</string>
diff --git a/packages/DocumentsUI/res/values-hu/strings.xml b/packages/DocumentsUI/res/values-hu/strings.xml
index 2af559b..a9b5a7c 100644
--- a/packages/DocumentsUI/res/values-hu/strings.xml
+++ b/packages/DocumentsUI/res/values-hu/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Megosztás"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Törlés"</string>
     <string name="menu_select" msgid="8711270657353563424">"A(z) „<xliff:g id="DIRECTORY">^1</xliff:g>” mappa kiválasztása"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Belső tárhely"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-kártya megjelenítése"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Belső tárhely elrejtése"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kártya elrejtése"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Fájlméret megjelenítése"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Fájlméret elrejtése"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> kiválasztva"</string>
     <string name="sort_name" msgid="9183560467917256779">"Név szerint"</string>
     <string name="sort_date" msgid="586080032956151448">"Módosítás dátuma szerint"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Parancsikonok"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Eszközök"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"További alkalmazások"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Speciális eszközök megjelenítése"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Fájlméret megjelenítése"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Eszközméret megjelenítése"</string>
     <string name="empty" msgid="7858882803708117596">"Nincsenek elemek"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"A fájlt nem lehet megnyitni"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Néhány dokumentumot nem lehet törölni"</string>
diff --git a/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
index 67a1f7e..cabc956 100644
--- a/packages/DocumentsUI/res/values-hy-rAM/strings.xml
+++ b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Համօգտագործել"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Ջնջել"</string>
     <string name="menu_select" msgid="8711270657353563424">"Ընտրել «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ցույց տալ ներքին պահոցը"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Ցույց տալ SD քարտը"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Թաքցնել ներքին պահոցը"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Թաքցնել SD քարտը"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Ցույց տալ ֆայլի չափը"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Թաքցնել ֆայլի չափը"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ընտրված"</string>
     <string name="sort_name" msgid="9183560467917256779">"Ըստ անվան"</string>
     <string name="sort_date" msgid="586080032956151448">"Ըստ փոփոխման ամսաթվի"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Ցուցադրել ընդլայնված սարքերը"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Ցուցադրել ֆայլի չափը"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Ցուցադրել սարքի չափը"</string>
     <string name="empty" msgid="7858882803708117596">"Տարրեր չկան"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Հնարավոր չէ բացել ֆայլը"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Անհնար է ջնջել որոշ փաստաթղթեր"</string>
diff --git a/packages/DocumentsUI/res/values-in/strings.xml b/packages/DocumentsUI/res/values-in/strings.xml
index 62057c7..1514fc6 100644
--- a/packages/DocumentsUI/res/values-in/strings.xml
+++ b/packages/DocumentsUI/res/values-in/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Bagikan"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Hapus"</string>
     <string name="menu_select" msgid="8711270657353563424">"Pilih \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Tampilkan simpanan internal"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Tampilkan kartu SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sembunyikan simpanan internal"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kartu SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Tampilkan ukuran file"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan ukuran file"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
     <string name="sort_name" msgid="9183560467917256779">"Menurut nama"</string>
     <string name="sort_date" msgid="586080032956151448">"Menurut tanggal diubah"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Perangkat"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Aplikasi lain"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Tampilkan perangkat lanjutan"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Tampilkan ukuran file"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Tampilkan ukuran perangkat"</string>
     <string name="empty" msgid="7858882803708117596">"Tidak ada item"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka file"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat menghapus beberapa dokumen"</string>
diff --git a/packages/DocumentsUI/res/values-is-rIS/strings.xml b/packages/DocumentsUI/res/values-is-rIS/strings.xml
index 4f6878c..f324dad 100644
--- a/packages/DocumentsUI/res/values-is-rIS/strings.xml
+++ b/packages/DocumentsUI/res/values-is-rIS/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Deila"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Eyða"</string>
     <string name="menu_select" msgid="8711270657353563424">"Velja „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Sýna innbyggða geymslu"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Sýna SD-kort"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Fela innbyggða geymslu"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fela SD-kort"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Sýna skráarstærð"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Fela skráarstærð"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valin"</string>
     <string name="sort_name" msgid="9183560467917256779">"Eftir heiti"</string>
     <string name="sort_date" msgid="586080032956151448">"Eftir breytingadags."</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Flýtileiðir"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Tæki"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Fleiri forrit"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Sýna ítarleg tæki"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Sýna skráarstærð"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Sýna stærð tækis"</string>
     <string name="empty" msgid="7858882803708117596">"Engin atriði"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Ekki er hægt að opna skrána"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Ekki er hægt að eyða einhverjum skjölum"</string>
diff --git a/packages/DocumentsUI/res/values-it/strings.xml b/packages/DocumentsUI/res/values-it/strings.xml
index bec4d00..a073c44 100644
--- a/packages/DocumentsUI/res/values-it/strings.xml
+++ b/packages/DocumentsUI/res/values-it/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Condividi"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Elimina"</string>
     <string name="menu_select" msgid="8711270657353563424">"Seleziona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostra memoria interna"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostra scheda SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Nascondi memoria interna"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Nascondi scheda SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostra dimensioni file"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Nascondi dimensioni file"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selezionati"</string>
     <string name="sort_name" msgid="9183560467917256779">"Per nome"</string>
     <string name="sort_date" msgid="586080032956151448">"Per data di modifica"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Scorciatoie"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivi"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Altre app"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Visualizza dispositivi avanzati"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Visualizza dimensioni file"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Visualizza dimensioni dispositivi"</string>
     <string name="empty" msgid="7858882803708117596">"Nessun articolo"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Impossibile aprire il file"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Impossibile eliminare alcuni documenti"</string>
diff --git a/packages/DocumentsUI/res/values-iw/strings.xml b/packages/DocumentsUI/res/values-iw/strings.xml
index c8a3fb9..6ab2880 100644
--- a/packages/DocumentsUI/res/values-iw/strings.xml
+++ b/packages/DocumentsUI/res/values-iw/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"שתף"</string>
     <string name="menu_delete" msgid="8138799623850614177">"מחק"</string>
     <string name="menu_select" msgid="8711270657353563424">"בחר ב-\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"הצג אחסון פנימי"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"‏הצג כרטיס SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"הסתר אחסון פנימי"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏הסתר כרטיס SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"הצג גודל קובץ"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"הסתר גודל קובץ"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> נבחרו"</string>
     <string name="sort_name" msgid="9183560467917256779">"לפי שם"</string>
     <string name="sort_date" msgid="586080032956151448">"לפי תאריך שינוי"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"הצג מכשירים מתקדמים"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"הצג את גודל הקובץ"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"הצג את גודל המכשיר"</string>
     <string name="empty" msgid="7858882803708117596">"אין פריטים"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"לא ניתן לפתוח את הקובץ"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"לא ניתן למחוק חלק מהמסמכים"</string>
diff --git a/packages/DocumentsUI/res/values-ja/strings.xml b/packages/DocumentsUI/res/values-ja/strings.xml
index 1475005..f57a21c 100644
--- a/packages/DocumentsUI/res/values-ja/strings.xml
+++ b/packages/DocumentsUI/res/values-ja/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"共有"</string>
     <string name="menu_delete" msgid="8138799623850614177">"削除"</string>
     <string name="menu_select" msgid="8711270657353563424">"「<xliff:g id="DIRECTORY">^1</xliff:g>」を選択"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"内部ストレージを表示"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SDカードを表示"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"内部ストレージを非表示"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SDカードを非表示"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ファイルサイズを表示"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ファイルサイズを非表示"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>件選択済み"</string>
     <string name="sort_name" msgid="9183560467917256779">"名前順"</string>
     <string name="sort_date" msgid="586080032956151448">"更新日順"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"端末の詳細設定を表示"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ファイルのサイズを表示"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"端末のサイズを表示"</string>
     <string name="empty" msgid="7858882803708117596">"アイテムがありません"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ファイルを開けません"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"一部のドキュメントを削除できません"</string>
diff --git a/packages/DocumentsUI/res/values-ka-rGE/strings.xml b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
index c90768f..b1e39b8 100644
--- a/packages/DocumentsUI/res/values-ka-rGE/strings.xml
+++ b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"გაზიარება"</string>
     <string name="menu_delete" msgid="8138799623850614177">"წაშლა"</string>
     <string name="menu_select" msgid="8711270657353563424">"„<xliff:g id="DIRECTORY">^1</xliff:g>“-ის არჩევა"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"შიდა საცავის ჩვენება"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ბარათის ჩვენება"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"შიდა მეხსიერების დამალვა"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ბარათის დამალვა"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ფაილის ზომის ჩვენება"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ფაილის ზომის დამალვა"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> მონიშნული"</string>
     <string name="sort_name" msgid="9183560467917256779">"სახელით"</string>
     <string name="sort_date" msgid="586080032956151448">"ცვლილების თარიღით"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"კომპლექსური მოწყობილობების ჩვენება"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ფაილის ზომის ჩვენება"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"მოწყობილობის ზომის ჩვენება"</string>
     <string name="empty" msgid="7858882803708117596">"ერთეულები არ არის"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ფაილის გახსნა ვერ ხერხდება"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"ზოგიერთი დოკუმენტის წაშლა ვერ ხერხდება"</string>
diff --git a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
index d60c4b3..c7e207c 100644
--- a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
+++ b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Бөлісу"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Жою"</string>
     <string name="menu_select" msgid="8711270657353563424">"«<xliff:g id="DIRECTORY">^1</xliff:g>» таңдау"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ішкі жадты көрсету"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картасын көрсету"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ішкі жадты жасыру"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картасын жасыру"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлшемін көрсету"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлшемін жасыру"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> таңдалды"</string>
     <string name="sort_name" msgid="9183560467917256779">"Атауы бойынша"</string>
     <string name="sort_date" msgid="586080032956151448">"Өзгертілген мерзімі бойынша"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Жетілдірілген құрылғыларды көрсету"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Файл өлшемін көрсету"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Құрылғы өлшемін көрсету"</string>
     <string name="empty" msgid="7858882803708117596">"Бос"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Файлды аша алмады"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Кейбір құжаттарды жою мүмкін болмады"</string>
diff --git a/packages/DocumentsUI/res/values-km-rKH/strings.xml b/packages/DocumentsUI/res/values-km-rKH/strings.xml
index 8c9030d..bc03c87 100644
--- a/packages/DocumentsUI/res/values-km-rKH/strings.xml
+++ b/packages/DocumentsUI/res/values-km-rKH/strings.xml
@@ -20,16 +20,22 @@
     <string name="title_open" msgid="4353228937663917801">"បើក​ពី"</string>
     <string name="title_save" msgid="2433679664882857999">"រក្សា​ទុក​ទៅ"</string>
     <string name="menu_create_dir" msgid="5947289605844398389">"បង្កើត​ថត"</string>
-    <string name="menu_grid" msgid="6878021334497835259">"ទិដ្ឋភាព​ក្រឡា​"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ទិដ្ឋភាព​ក្រឡា"</string>
     <string name="menu_list" msgid="7279285939892417279">"ទិដ្ឋភាព​បញ្ជី"</string>
     <string name="menu_sort" msgid="7677740407158414452">"តម្រៀប​តាម"</string>
     <string name="menu_search" msgid="3816712084502856974">"ស្វែងរក"</string>
     <string name="menu_settings" msgid="6008033148948428823">"ការ​កំណត់"</string>
     <string name="menu_open" msgid="432922957274920903">"បើក"</string>
     <string name="menu_save" msgid="2394743337684426338">"រក្សាទុក"</string>
-    <string name="menu_share" msgid="3075149983979628146">"ចែករំលែក​"</string>
+    <string name="menu_share" msgid="3075149983979628146">"ចែករំលែក"</string>
     <string name="menu_delete" msgid="8138799623850614177">"លុប"</string>
     <string name="menu_select" msgid="8711270657353563424">"ជ្រើស \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"បង្ហាញឧបករណ៍ផ្ទុកខាងក្នុង"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"បង្ហាញកាតអេសឌី"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"លាក់​ឧបករណ៍​​ផ្ទុក​ខាងក្នុង"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"លាក់​កាត​អេសឌី"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"បង្ហាញទំហំឯកសារ"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"លាក់ទំហំឯកសារ"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"បាន​ជ្រើស <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"តាម​ឈ្មោះ"</string>
     <string name="sort_date" msgid="586080032956151448">"តាម​កាលបរិច្ឆេទ​បាន​កែប្រែ"</string>
@@ -45,10 +51,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="pref_advanced_devices" msgid="903257239609301276">"បង្ហាញ​ឧបករណ៍​កម្រិត​ខ្ពស់"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"បង្ហាញ​ទំហំ​ឯកសារ"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"បង្ហាញ​ទំហំ​ឧបករណ៍"</string>
-    <string name="empty" msgid="7858882803708117596">"គ្មានធាតុ​"</string>
+    <string name="empty" msgid="7858882803708117596">"គ្មានធាតុ"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"មិន​អាច​បើក​ឯកសារ"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"មិន​អាច​លុប​ឯកសារ​មួយ​ចំនួន"</string>
     <string name="share_via" msgid="8966594246261344259">"ចែករំលែក​តាម"</string>
diff --git a/packages/DocumentsUI/res/values-kn-rIN/strings.xml b/packages/DocumentsUI/res/values-kn-rIN/strings.xml
index 70fc185..508f0e5 100644
--- a/packages/DocumentsUI/res/values-kn-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-kn-rIN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"ಹಂಚು"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ಅಳಿಸು"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಯನ್ನು ತೋರಿಸು"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ಕಾಡ್‌ ಅನ್ನು ತೋರಿಸು"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಯನ್ನು ಮರೆಮಾಡಿ"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ಕಾರ್ಡ್‌ ಅನ್ನು ಮರೆಮಾಡಿ"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ಫೈಲ್‌ ಗಾತ್ರವನ್ನು ತೋರಿಸು"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ಫೈಲ್‌ ಗಾತ್ರವನ್ನು ಮರೆಮಾಡಿ"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="sort_name" msgid="9183560467917256779">"ಹೆಸರಿನ ಪ್ರಕಾರ"</string>
     <string name="sort_date" msgid="586080032956151448">"ಮಾರ್ಪಡಿಸಿರುವ ದಿನಾಂಕದ ಪ್ರಕಾರ"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"ಸುಧಾರಿತ ಸಾಧನಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ಫೈಲ್ ಗಾತ್ರವನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"ಸಾಧನದ ಗಾತ್ರವನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string>
     <string name="empty" msgid="7858882803708117596">"ಯಾವುದೇ ಐಟಂಗಳಿಲ್ಲ"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"ಕೆಲವು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
diff --git a/packages/DocumentsUI/res/values-ko/strings.xml b/packages/DocumentsUI/res/values-ko/strings.xml
index 5996e66..d6f0cbd 100644
--- a/packages/DocumentsUI/res/values-ko/strings.xml
+++ b/packages/DocumentsUI/res/values-ko/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"공유"</string>
     <string name="menu_delete" msgid="8138799623850614177">"삭제"</string>
     <string name="menu_select" msgid="8711270657353563424">"\'<xliff:g id="DIRECTORY">^1</xliff:g>\' 선택"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"내부 저장소 표시"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD 카드 표시"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"내부 저장소 숨기기"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD 카드 숨기기"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"파일 크기 표시"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"파일 크기 숨기기"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>개 선택됨"</string>
     <string name="sort_name" msgid="9183560467917256779">"이름순"</string>
     <string name="sort_date" msgid="586080032956151448">"수정된 날짜순"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"고급 기기 표시"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"파일 크기 표시"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"기기 크기 표시"</string>
     <string name="empty" msgid="7858882803708117596">"항목 없음"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"파일을 열 수 없음"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"일부 문서를 삭제할 수 없음"</string>
diff --git a/packages/DocumentsUI/res/values-ky-rKG/strings.xml b/packages/DocumentsUI/res/values-ky-rKG/strings.xml
index 1fe7183..5513746 100644
--- a/packages/DocumentsUI/res/values-ky-rKG/strings.xml
+++ b/packages/DocumentsUI/res/values-ky-rKG/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Бөлүшүү"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Өчүрүү"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" тандоо"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ички эстутумду көрсөтүү"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картаны көрсөтүү"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ички эстутумду жашыруу"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD катраны жашыруу"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлчөмүн көрсөтүү"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлчөмүн жашыруу"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> тандалды"</string>
     <string name="sort_name" msgid="9183560467917256779">"Аты боюнча"</string>
     <string name="sort_date" msgid="586080032956151448">"Өзгөртүлгөн күнү боюнча"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Жакшыртылган түзмөктөр"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Файл өлчөмүн көрсөтүү"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Түзмөк өлчөмүн көрсөтүү"</string>
     <string name="empty" msgid="7858882803708117596">"Эч нерсе жок"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Файл ачылбады"</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 8452ae1..8db69c7 100644
--- a/packages/DocumentsUI/res/values-lo-rLA/strings.xml
+++ b/packages/DocumentsUI/res/values-lo-rLA/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"ແບ່ງປັນ"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ລຶບ"</string>
     <string name="menu_select" msgid="8711270657353563424">"ເລືອກ​ \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ສະແດງ​ໂຕເກັບ​ຂໍ້ມູນພາຍໃນ"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"ສະແດງ SD Card"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ເຊື່ອງ​ໂຕ​ເກັບຂໍ້ມູນ​ພາຍໃນ"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ເຊື່ອງ SD Card"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ສະແດງ​ຂະໜາດ​ໄຟລ໌"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ເຊື່ອງ​ຂະ​ຫນາດ​ໄຟລ໌"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"ເລືອກແລ້ວ <xliff:g id="COUNT">%1$d</xliff:g> ລາຍການ"</string>
     <string name="sort_name" msgid="9183560467917256779">"ຕາມຊື່"</string>
     <string name="sort_date" msgid="586080032956151448">"ຕາມວັນທີທີ່ແກ້ໄຂ"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"ສະແດງອຸປະກອນຂັ້ນສູງ"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ສະແດງຂະໜາດໄຟລ໌"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"ສະແດງຂະໜາດອຸປະກອນ"</string>
     <string name="empty" msgid="7858882803708117596">"ບໍ່ມີລາຍການ"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ບໍ່ສາມດາເປີດໄຟລ໌ໄດ້"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"ບໍ່ສາມາດລຶບບາງເອກະສານໄດ້"</string>
diff --git a/packages/DocumentsUI/res/values-lt/strings.xml b/packages/DocumentsUI/res/values-lt/strings.xml
index 8ec3e0b..81412c5 100644
--- a/packages/DocumentsUI/res/values-lt/strings.xml
+++ b/packages/DocumentsUI/res/values-lt/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Bendrinti"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Ištrinti"</string>
     <string name="menu_select" msgid="8711270657353563424">"Pasirinkti katalogą „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Rodyti vidinę atmintį"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Rodyti SD kortelę"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Slėpti vidinę atmintį"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Slėpti SD kortelę"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Rodyti failo dydį"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Slėpti failo dydį"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Pasirinkta: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Pagal pavadinimą"</string>
     <string name="sort_date" msgid="586080032956151448">"Pagal keitimo datą"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Spartieji klavišai"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Įrenginiai"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Daugiau programų"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Rodyti išplėstinius įrenginius"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Rodyti failo dydį"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Rodyti įrenginio dydį"</string>
     <string name="empty" msgid="7858882803708117596">"Nėra elementų"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Nepavyksta atidaryti failo"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nepavyko ištrinti kai kurių dokumentų"</string>
diff --git a/packages/DocumentsUI/res/values-lv/strings.xml b/packages/DocumentsUI/res/values-lv/strings.xml
index caaf8ec..0cd5812 100644
--- a/packages/DocumentsUI/res/values-lv/strings.xml
+++ b/packages/DocumentsUI/res/values-lv/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Kopīgot"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Dzēst"</string>
     <string name="menu_select" msgid="8711270657353563424">"Atlasīt “<xliff:g id="DIRECTORY">^1</xliff:g>”"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Rādīt iekšējo atmiņu"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Rādīt SD karti"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Paslēpt iekšējo atmiņu"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Paslēpt SD karti"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Rādīt failu lielumu"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Paslēpt failu lielumu"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Atlasīts: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Pēc nosaukuma"</string>
     <string name="sort_date" msgid="586080032956151448">"Pēc pārveidošanas datuma"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Saīsnes"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Ierīces"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Vairāk lietotņu"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Attēlot papildu ierīces"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Attēlot faila lielumu"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Attēlot ierīces izmēru"</string>
     <string name="empty" msgid="7858882803708117596">"Nav vienumu"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Nevar atvērt failu."</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nevar dzēst dažus dokumentus."</string>
diff --git a/packages/DocumentsUI/res/values-mk-rMK/strings.xml b/packages/DocumentsUI/res/values-mk-rMK/strings.xml
index 7b50a25..d909741 100644
--- a/packages/DocumentsUI/res/values-mk-rMK/strings.xml
+++ b/packages/DocumentsUI/res/values-mk-rMK/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Сподели"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Избриши"</string>
     <string name="menu_select" msgid="8711270657353563424">"Одберете „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Прикажи внатрешна мемор."</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Прикажи СД-картичка"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Скриј внатрешна меморија"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сoкриј СД-картичка"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи целосна големина"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Сокриј целосна големина"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Избрани се <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"По име"</string>
     <string name="sort_date" msgid="586080032956151448">"Изменети по датум"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Прикажи напредни уреди"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Прикажи големина на датотека"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Прикажи големина на уред"</string>
     <string name="empty" msgid="7858882803708117596">"Нема ставки"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Датотеката не се отвора"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Некои документи не може да се избришат"</string>
diff --git a/packages/DocumentsUI/res/values-ml-rIN/strings.xml b/packages/DocumentsUI/res/values-ml-rIN/strings.xml
index f91ad8a..24f4815 100644
--- a/packages/DocumentsUI/res/values-ml-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-ml-rIN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"പങ്കിടുക"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ഇല്ലാതാക്കുക"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" തിരഞ്ഞെടുക്കുക"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ആന്തരിക സംഭരണം കാണിക്കുക"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD കാർഡ് കാണിക്കുക"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ആന്തരിക സംഭരണം മറയ്‌ക്കുക"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD കാർഡ് മറയ്‌ക്കുക"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ഫയൽ വലുപ്പം കാണിക്കുക"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ഫയൽ വലുപ്പം മറയ്‌ക്കുക"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> തിരഞ്ഞെടുത്തു"</string>
     <string name="sort_name" msgid="9183560467917256779">"പേര് പ്രകാരം"</string>
     <string name="sort_date" msgid="586080032956151448">"പരിഷ്‌ക്കരിച്ച തീയതി പ്രകാരം"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"വിപുലമായ ഉപകരണങ്ങൾ ദൃശ്യമാക്കുക"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ഫയൽ വലുപ്പം ദൃശ്യമാക്കുക"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"ഉപകരണ വലുപ്പം ദൃശ്യമാക്കുക"</string>
     <string name="empty" msgid="7858882803708117596">"ഇനങ്ങളൊന്നുമില്ല"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ഫയൽ തുറക്കാനായില്ല"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"ചില പ്രമാണങ്ങൾ ഇല്ലാതാക്കാനായില്ല"</string>
diff --git a/packages/DocumentsUI/res/values-mn-rMN/strings.xml b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
index 3d90cc1..141032d 100644
--- a/packages/DocumentsUI/res/values-mn-rMN/strings.xml
+++ b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Хуваалцах"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Устгах"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\"-г сонгох"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Дотоод санг харуулах"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картыг харуулах"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Дотоод санг нуух"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картыг нуух"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Файлын хэмжээг харуулах"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Файлын хэмжээг нуух"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> сонгогдсон"</string>
     <string name="sort_name" msgid="9183560467917256779">"Нэрээр"</string>
     <string name="sort_date" msgid="586080032956151448">"Өөрчлөгдсөн огноогоор"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Дэвшилтэт төхөөрөмжүүдийг харуулах"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Файлын хэмжээг харуулах"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Төхөөрөмжийн хэмжээг харуулах"</string>
     <string name="empty" msgid="7858882803708117596">"Хоосон"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Файлыг нээх боломжгүй"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Зарим документуудыг устгах боломжгүй"</string>
diff --git a/packages/DocumentsUI/res/values-mr-rIN/strings.xml b/packages/DocumentsUI/res/values-mr-rIN/strings.xml
index da7c863..b59ded5 100644
--- a/packages/DocumentsUI/res/values-mr-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-mr-rIN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"सामायिक करा"</string>
     <string name="menu_delete" msgid="8138799623850614177">"हटवा"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" निवडा"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"अंतर्गत संचयन दर्शवा"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड दर्शवा"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"अंतर्गत संचयन लपवा"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लपवा"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"फाईल आकार दर्शवा"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"फाईल आकार लपवा"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> निवडले"</string>
     <string name="sort_name" msgid="9183560467917256779">"नावानुसार"</string>
     <string name="sort_date" msgid="586080032956151448">"सुधारित केलेल्‍या तारखेनुसार"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"प्रगत डिव्‍हाइसेस प्रदर्शित करा"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"फाइल आकार प्रदर्शित करा"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"डिव्‍हाइस आकार प्रदर्शित करा"</string>
     <string name="empty" msgid="7858882803708117596">"कोणतेही आयटम नाहीत"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"फाईल उघडू शकत नाही"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"काही दस्‍तऐवज हटविण्‍यात अक्षम"</string>
diff --git a/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
index 9ea7119..5330d92 100644
--- a/packages/DocumentsUI/res/values-ms-rMY/strings.xml
+++ b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Kongsi"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Padam"</string>
     <string name="menu_select" msgid="8711270657353563424">"Pilih \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Papar storan dalaman"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Papar kad SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sembunyikan storan dlmn"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kad SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Papar saiz fail"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan saiz fail"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
     <string name="sort_name" msgid="9183560467917256779">"Mengikut nama"</string>
     <string name="sort_date" msgid="586080032956151448">"Diubah suai mengikut tarikh"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Peranti"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Lebih banyak apl"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Paparkan peranti terperinci"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Paparkan saiz fail"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Paparkan saiz peranti"</string>
     <string name="empty" msgid="7858882803708117596">"Tiada item"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka fail"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat memadam beberapa dokumen"</string>
diff --git a/packages/DocumentsUI/res/values-my-rMM/strings.xml b/packages/DocumentsUI/res/values-my-rMM/strings.xml
index c095273..98b3a90 100644
--- a/packages/DocumentsUI/res/values-my-rMM/strings.xml
+++ b/packages/DocumentsUI/res/values-my-rMM/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"မျှဝေခြင်း"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ဖျက်ပစ်ရန်"</string>
     <string name="menu_select" msgid="8711270657353563424">"ရွေးရန်\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"စက်ရှိစတိုရုံ ပြပါ"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ကဒ် ပြပါ"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"စက်ရှိစတိုရုံ ဖျောက်ထားပါ"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ကဒ် ဖျောက်ပါ"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ဖိုင်အရွယ်အစား ပြပါ"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ဖိုင်အရွယ်အစား ဖျောက်ပါ"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ခရွေးချယ်ပြီး"</string>
     <string name="sort_name" msgid="9183560467917256779">"အမည်ဖြင့်"</string>
     <string name="sort_date" msgid="586080032956151448">"ပြင်ဆင်မှု ရက်စွဲဖြင့်"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"အဆင့်မြင့် စက်များ ပြသခြင်း"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ဖိုင် အရွယ်အစား ပြသခြင်း"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"စက်ရဲ့ အရွယ်အစား ပြသခြင်း"</string>
     <string name="empty" msgid="7858882803708117596">"ဘာမှ မရှိပါ"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ဖိုင်အား ဖွင့်မရပါ"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"တချို့ စာရွက်စာတန်းများ မဖျက်စီးနိုင်ပါ"</string>
diff --git a/packages/DocumentsUI/res/values-nb/strings.xml b/packages/DocumentsUI/res/values-nb/strings.xml
index af7c282..beee44f 100644
--- a/packages/DocumentsUI/res/values-nb/strings.xml
+++ b/packages/DocumentsUI/res/values-nb/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Del"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Slett"</string>
     <string name="menu_select" msgid="8711270657353563424">"Velg «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Vis den interne lagringen"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Vis SD-kortet"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skjul den interne lagringen"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kortet"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelsen"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelsen"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valgt"</string>
     <string name="sort_name" msgid="9183560467917256779">"Etter navn"</string>
     <string name="sort_date" msgid="586080032956151448">"«Etter dato» endret"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Snarveier"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Enheter"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Flere apper"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Vis avanserte enheter"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Vis filstørrelse"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Vis enhetsstørrelse"</string>
     <string name="empty" msgid="7858882803708117596">"Ingen elementer"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Kan ikke åpne filen"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Enkelte dokumenter kunne ikke slettes"</string>
diff --git a/packages/DocumentsUI/res/values-ne-rNP/strings.xml b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
index d8a873e..4251a7c 100644
--- a/packages/DocumentsUI/res/values-ne-rNP/strings.xml
+++ b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"साझेदारी गर्नुहोस्"</string>
     <string name="menu_delete" msgid="8138799623850614177">"मेटाउनुहोस्"</string>
     <string name="menu_select" msgid="8711270657353563424">"चयनगर्नुहोस् \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"आन्तरिक भण्डारण देखाउनुहोस्"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड देखाउनुहोस्"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"आन्तरिक भण्डारण लुकाउनुहोस्"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लुकाउनुहोस्"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"फाइल आकार देखाउनुहोस्"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"फाइल आकार लुकाउनुहोस्"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयन गरियो"</string>
     <string name="sort_name" msgid="9183560467917256779">"नाम अनुसार"</string>
     <string name="sort_date" msgid="586080032956151448">"परिमार्जित मिति अनुसार"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणहरू प्रदर्शन गर्नुहोस्"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"फाइल आकार प्रदर्शन गर्नुहोस्"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"उपकरण आकार प्रदर्शन गर्नुहोस्"</string>
     <string name="empty" msgid="7858882803708117596">"कुनै वस्तु छैन।"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"फाइल खोल्न सक्दैन"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"केही कागजातहरू मेट्न असमर्थ छ"</string>
diff --git a/packages/DocumentsUI/res/values-nl/strings.xml b/packages/DocumentsUI/res/values-nl/strings.xml
index a8cf114..1fc7dc1 100644
--- a/packages/DocumentsUI/res/values-nl/strings.xml
+++ b/packages/DocumentsUI/res/values-nl/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Delen"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Verwijderen"</string>
     <string name="menu_select" msgid="8711270657353563424">"<xliff:g id="DIRECTORY">^1</xliff:g> selecteren"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Interne opslag weergeven"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-kaart weergeven"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Interne opslag verbergen"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kaart verbergen"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Bestandsgrootte weergeven"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Bestandsgrootte verbergen"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> geselecteerd"</string>
     <string name="sort_name" msgid="9183560467917256779">"Op naam"</string>
     <string name="sort_date" msgid="586080032956151448">"Op aanpassingsdatum"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Sneltoetsen"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Apparaten"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Meer apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Geavanceerde apparaten weergeven"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Bestandsgrootte weergeven"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Apparaatgrootte weergeven"</string>
     <string name="empty" msgid="7858882803708117596">"Geen items"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Kan bestand niet openen"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Kan bepaalde documenten niet verwijderen"</string>
diff --git a/packages/DocumentsUI/res/values-pl/strings.xml b/packages/DocumentsUI/res/values-pl/strings.xml
index ead40e9..5bb7f75 100644
--- a/packages/DocumentsUI/res/values-pl/strings.xml
+++ b/packages/DocumentsUI/res/values-pl/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Udostępnij"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Usuń"</string>
     <string name="menu_select" msgid="8711270657353563424">"Zaznacz „<xliff:g id="DIRECTORY">^1</xliff:g>”"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaż pamięć wewnętrzną"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaż kartę SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ukryj pamięć wewnętrzną"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ukryj kartę SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaż rozmiar pliku"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ukryj rozmiar pliku"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Wybrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Według nazwy"</string>
     <string name="sort_date" msgid="586080032956151448">"Według daty edycji"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Skróty"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Urządzenia"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Więcej aplikacji"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Pokaż urządzenia zaawansowane"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Pokaż rozmiar pliku"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Wyświetl rozmiar urządzenia"</string>
     <string name="empty" msgid="7858882803708117596">"Brak elementów"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Nie można otworzyć pliku"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nie można usunąć niektórych dokumentów"</string>
diff --git a/packages/DocumentsUI/res/values-pt-rPT/strings.xml b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
index 0003c05..e32dfc9 100644
--- a/packages/DocumentsUI/res/values-pt-rPT/strings.xml
+++ b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Partilhar"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selecionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar mem. armaz. int."</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar cartão SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar mem. armaz. int."</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. de fich."</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. de fich."</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionado(s)"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
     <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicações"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Ver dispositivos avançados"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Apresentar tamanho do ficheiro"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Apresentar tamanho do dispositivo"</string>
     <string name="empty" msgid="7858882803708117596">"Sem itens"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o ficheiro"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Não é possível eliminar alguns documentos"</string>
diff --git a/packages/DocumentsUI/res/values-pt/strings.xml b/packages/DocumentsUI/res/values-pt/strings.xml
index 4a5c72a..184fb53 100644
--- a/packages/DocumentsUI/res/values-pt/strings.xml
+++ b/packages/DocumentsUI/res/values-pt/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Compartilhar"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Excluir"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selecionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar armaz. interno"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar cartão SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar armaz. interno"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. do arquivo"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. do arquivo"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionados"</string>
     <string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
     <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicativos"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avançados"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamanho do arquivo"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamanho do dispositivo"</string>
     <string name="empty" msgid="7858882803708117596">"Nenhum item"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o arquivo"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Não foi possível excluir alguns documentos"</string>
diff --git a/packages/DocumentsUI/res/values-ro/strings.xml b/packages/DocumentsUI/res/values-ro/strings.xml
index 0dfa11d4..c5de856 100644
--- a/packages/DocumentsUI/res/values-ro/strings.xml
+++ b/packages/DocumentsUI/res/values-ro/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Distribuiți"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Ștergeți"</string>
     <string name="menu_select" msgid="8711270657353563424">"Selectați „<xliff:g id="DIRECTORY">^1</xliff:g>”"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Afișați stocarea internă"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afișați cardul SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ascundeți stocarea internă"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ascundeți cardul SD"</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="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selectate"</string>
     <string name="sort_name" msgid="9183560467917256779">"După nume"</string>
     <string name="sort_date" msgid="586080032956151448">"După data modificării"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Afișați dispozitive avansate"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Afișați dimensiunile fișierelor"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Afișați capacitatea de stocare a dispozitivelor"</string>
     <string name="empty" msgid="7858882803708117596">"Nu există elemente"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"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-ru/strings.xml b/packages/DocumentsUI/res/values-ru/strings.xml
index f86a4af..10de6f0 100644
--- a/packages/DocumentsUI/res/values-ru/strings.xml
+++ b/packages/DocumentsUI/res/values-ru/strings.xml
@@ -20,7 +20,7 @@
     <string name="title_open" msgid="4353228937663917801">"Открыть"</string>
     <string name="title_save" msgid="2433679664882857999">"Сохранить"</string>
     <string name="menu_create_dir" msgid="5947289605844398389">"Новая папка"</string>
-    <string name="menu_grid" msgid="6878021334497835259">"Таблица"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Сетка"</string>
     <string name="menu_list" msgid="7279285939892417279">"Список"</string>
     <string name="menu_sort" msgid="7677740407158414452">"Сортировать"</string>
     <string name="menu_search" msgid="3816712084502856974">"Поиск"</string>
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Поделиться"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Удалить"</string>
     <string name="menu_select" msgid="8711270657353563424">"Выбрать папку \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Внутренняя память"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-карта"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Скрыть внутреннюю память"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Скрыть SD-карту"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Показать размер файлов"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Скрыть размер файлов"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Выбрано: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"По названию"</string>
     <string name="sort_date" msgid="586080032956151448">"По дате изменения"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Показать другие устройства"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Показать размер файла"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Показать размер устройства"</string>
     <string name="empty" msgid="7858882803708117596">"Ничего нет"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Не удалось открыть файл"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Не удалось удалить некоторые документы"</string>
diff --git a/packages/DocumentsUI/res/values-si-rLK/strings.xml b/packages/DocumentsUI/res/values-si-rLK/strings.xml
index 3d6eadf..26e2b1d 100644
--- a/packages/DocumentsUI/res/values-si-rLK/strings.xml
+++ b/packages/DocumentsUI/res/values-si-rLK/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"බෙදාගන්න"</string>
     <string name="menu_delete" msgid="8138799623850614177">"මකන්න"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" තෝරන්න"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"අභ්‍යන්තර ආචයනය පෙන්වන්න"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD කාඩ් පත පෙන්වන්න"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"අභ්‍යන්තර ආචයනය සඟවන්න"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD කාඩ් පත සඟවන්න"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ගොනු ප්‍රමණය පෙන්වන්න"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ගොනු ප්‍රමණය සඟවන්න"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ක් තෝරාගන්නා ලදි"</string>
     <string name="sort_name" msgid="9183560467917256779">"නමින්"</string>
     <string name="sort_date" msgid="586080032956151448">"වෙනස් කරන ලද දිනයෙන්"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"උසස් උපාංග දර්ශනය කරන්න"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ගොනු ප්‍රමාණය දර්ශනය කරන්න"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"උපාංග ප්‍රමාණය දර්ශනය කරන්න"</string>
     <string name="empty" msgid="7858882803708117596">"අයිතම නැත"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ගොනුව විවෘත කළ නොහැක"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"සමහර ලේඛන මැකීමට නොහැකි විය"</string>
diff --git a/packages/DocumentsUI/res/values-sk/strings.xml b/packages/DocumentsUI/res/values-sk/strings.xml
index 5d03df6..facaf4a 100644
--- a/packages/DocumentsUI/res/values-sk/strings.xml
+++ b/packages/DocumentsUI/res/values-sk/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Zdieľať"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Odstrániť"</string>
     <string name="menu_select" msgid="8711270657353563424">"Vyberte adresár <xliff:g id="DIRECTORY">^1</xliff:g>"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Zobraziť interné úložisko"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Zobraziť kartu SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skryť interné úložisko"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skryť kartu SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Zobraziť veľkosť súboru"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Skryť veľkosť súboru"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Vybraté: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Podľa názvu"</string>
     <string name="sort_date" msgid="586080032956151448">"Podľa dátumu zmeny"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Skratky"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Zariadenia"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Ďalšie aplikácie"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Zobraziť pokročilé zariadenia"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Zobraziť veľkosť súboru"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Zobraziť veľkosť zariadenia"</string>
     <string name="empty" msgid="7858882803708117596">"Žiadne položky"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Súbor sa nepodarilo otvoriť"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Niektoré dokumenty sa nepodarilo odstrániť"</string>
diff --git a/packages/DocumentsUI/res/values-sl/strings.xml b/packages/DocumentsUI/res/values-sl/strings.xml
index b3e52dd..865df8b 100644
--- a/packages/DocumentsUI/res/values-sl/strings.xml
+++ b/packages/DocumentsUI/res/values-sl/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Skupna raba"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string>
     <string name="menu_select" msgid="8711270657353563424">"Izbira mape »<xliff:g id="DIRECTORY">^1</xliff:g>«"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaži notranjo shrambo"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaži kartico SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skrij notranjo shrambo"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrij kartico SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži velikost datoteke"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Skrij velikost datoteke"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Št. izbranih: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Po imenu"</string>
     <string name="sort_date" msgid="586080032956151448">"Po datumu spremembe"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Bližnjice"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Naprave"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Več aplikacij"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaz naprednih naprav"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Prikaz velikosti datoteke"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Prikaz velikosti naprave"</string>
     <string name="empty" msgid="7858882803708117596">"Ni elementov"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Datoteke ni mogoče odpreti"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Nekaterih dokumentov ni mogoče izbrisati"</string>
diff --git a/packages/DocumentsUI/res/values-sr/strings.xml b/packages/DocumentsUI/res/values-sr/strings.xml
index 892dbce..fd20722 100644
--- a/packages/DocumentsUI/res/values-sr/strings.xml
+++ b/packages/DocumentsUI/res/values-sr/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Дели"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Избриши"</string>
     <string name="menu_select" msgid="8711270657353563424">"Изабери „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Прикажи интерну меморију"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Прикажи SD картицу"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Сакриј интерну меморију"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сакриј SD картицу"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи величину датотеке"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Сакриј величину датотеке"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Изабрано је <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Према имену"</string>
     <string name="sort_date" msgid="586080032956151448">"Према датуму измене"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Прикажи напредне уређаје"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Прикажи величину датотеке"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Прикажи величину уређаја"</string>
     <string name="empty" msgid="7858882803708117596">"Нема ставки"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Није могуће отворити датотеку"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Није могуће избрисати неке документе"</string>
diff --git a/packages/DocumentsUI/res/values-sv/strings.xml b/packages/DocumentsUI/res/values-sv/strings.xml
index fd6457d..a77b75d 100644
--- a/packages/DocumentsUI/res/values-sv/strings.xml
+++ b/packages/DocumentsUI/res/values-sv/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Dela"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Ta bort"</string>
     <string name="menu_select" msgid="8711270657353563424">"Välj <xliff:g id="DIRECTORY">^1</xliff:g>"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Visa internminne"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Visa SD-kort"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Dölj internminne"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Dölj SD-kort"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Visa filstorlek"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Dölj filstorlek"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Har valt <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Efter namn"</string>
     <string name="sort_date" msgid="586080032956151448">"Efter ändringsdatum"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Genvägar"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Enheter"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Fler appar"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Visa avancerade enheter"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Visa filstorlek"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Bildskärmsstorlek"</string>
     <string name="empty" msgid="7858882803708117596">"Inga objekt"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Det går inte att öppna filen"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Det gick inte att ta bort vissa dokument"</string>
diff --git a/packages/DocumentsUI/res/values-sw/strings.xml b/packages/DocumentsUI/res/values-sw/strings.xml
index 0948c71..b46d97f 100644
--- a/packages/DocumentsUI/res/values-sw/strings.xml
+++ b/packages/DocumentsUI/res/values-sw/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Shiriki"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Futa"</string>
     <string name="menu_select" msgid="8711270657353563424">"Chagua \" <xliff:g id="DIRECTORY">^1</xliff:g> \""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Onyesha hifadhi ya ndani"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Onyesha kadi ya SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ficha hifadhi ya ndani"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ficha kadi ya SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Onyesha ukubwa wa faili"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ficha ukubwa wa faili"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> zimechaguliwa"</string>
     <string name="sort_name" msgid="9183560467917256779">"Kwa jina"</string>
     <string name="sort_date" msgid="586080032956151448">"Kwa tarehe viliporekebishwa"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Onyesha vifaa mahiri"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Onyesha ukubwa wa faili"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Onyesha ukubwa wa kifaa"</string>
     <string name="empty" msgid="7858882803708117596">"Hakuna vipengee"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Haiwezi kufungua faili"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Imeshindwa kufuta baadhi ya hati"</string>
diff --git a/packages/DocumentsUI/res/values-ta-rIN/strings.xml b/packages/DocumentsUI/res/values-ta-rIN/strings.xml
index 221769f..5b09b97 100644
--- a/packages/DocumentsUI/res/values-ta-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-ta-rIN/strings.xml
@@ -24,12 +24,18 @@
     <string name="menu_list" msgid="7279285939892417279">"பட்டியல்"</string>
     <string name="menu_sort" msgid="7677740407158414452">"இதன்படி வரிசைப்படுத்து"</string>
     <string name="menu_search" msgid="3816712084502856974">"தேடு"</string>
-    <string name="menu_settings" msgid="6008033148948428823">"அமைப்புகள்"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"அமைப்பு"</string>
     <string name="menu_open" msgid="432922957274920903">"திற"</string>
     <string name="menu_save" msgid="2394743337684426338">"சேமி"</string>
     <string name="menu_share" msgid="3075149983979628146">"பகிர்"</string>
     <string name="menu_delete" msgid="8138799623850614177">"நீக்கு"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" ஐத் தேர்ந்தெடு"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"அகச் சேமிப்பகத்தைக் காட்டு"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD கார்டைக் காட்டு"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"அகச் சேமிப்பகத்தை மறை"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD கார்டை மறை"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"கோப்பு அளவைக் காட்டு"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"கோப்பு அளவை மறை"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string>
     <string name="sort_name" msgid="9183560467917256779">"பெயரின்படி"</string>
     <string name="sort_date" msgid="586080032956151448">"தேதியின்படி திருத்தப்பட்டது"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"மேம்பட்ட சாதனங்களைக் காட்டு"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"கோப்பின் அளவைக் காட்டு"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"சாதன அளவைக் காட்டு"</string>
     <string name="empty" msgid="7858882803708117596">"உருப்படிகள் இல்லை"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"கோப்பைத் திறக்க முடியவில்லை"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"சில ஆவணங்களை நீக்க முடியவில்லை"</string>
diff --git a/packages/DocumentsUI/res/values-te-rIN/strings.xml b/packages/DocumentsUI/res/values-te-rIN/strings.xml
index 54ce484..e04724a 100644
--- a/packages/DocumentsUI/res/values-te-rIN/strings.xml
+++ b/packages/DocumentsUI/res/values-te-rIN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"భాగస్వామ్యం చేయి"</string>
     <string name="menu_delete" msgid="8138799623850614177">"తొలగించు"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\"ని ఎంచుకోండి"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"అంతర్గత నిల్వను చూపు"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD కార్డ్‌ను చూపు"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"అంతర్గత నిల్వను దాచు"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD కార్డ్‌ను దాచు"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"ఫైల్ పరిమాణాన్ని చూపు"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ఫైల్ పరిమాణాన్ని దాచు"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ఎంచుకోబడ్డాయి"</string>
     <string name="sort_name" msgid="9183560467917256779">"పేరు ద్వారా"</string>
     <string name="sort_date" msgid="586080032956151448">"సవరించిన తేదీ ద్వారా"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"అధునాతన పరికరాలను చూపు"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"ఫైల్ పరిమాణాన్ని ప్రదర్శించు"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"పరికర పరిమాణాన్ని ప్రదర్శించు"</string>
     <string name="empty" msgid="7858882803708117596">"అంశాలు లేవు"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ఫైల్‌ను తెరవడం సాధ్యపడదు"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"కొన్ని పత్రాలను తొలగించడం సాధ్యపడలేదు"</string>
diff --git a/packages/DocumentsUI/res/values-th/strings.xml b/packages/DocumentsUI/res/values-th/strings.xml
index 4bf3e4f..5410d37 100644
--- a/packages/DocumentsUI/res/values-th/strings.xml
+++ b/packages/DocumentsUI/res/values-th/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"แชร์"</string>
     <string name="menu_delete" msgid="8138799623850614177">"ลบ"</string>
     <string name="menu_select" msgid="8711270657353563424">"เลือก \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"แสดงที่จัดเก็บภายใน"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"แสดงการ์ด SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ซ่อนที่จัดเก็บภายใน"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ซ่อนการ์ด SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"แสดงขนาดไฟล์"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"ซ่อนขนาดไฟล์"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"เลือกไว้ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"ตามชื่อ"</string>
     <string name="sort_date" msgid="586080032956151448">"ตามวันที่ที่ปรับเปลี่ยน"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"แสดงอุปกรณ์ขั้นสูง"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"แสดงขนาดของไฟล์"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"แสดงขนาดของอุปกรณ์"</string>
     <string name="empty" msgid="7858882803708117596">"ไม่มีรายการ"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"ไม่สามารถเปิดไฟล์ได้"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"ไม่สามารถลบเอกสารบางรายการ"</string>
diff --git a/packages/DocumentsUI/res/values-tl/strings.xml b/packages/DocumentsUI/res/values-tl/strings.xml
index 8ef8aa5..3defd6a 100644
--- a/packages/DocumentsUI/res/values-tl/strings.xml
+++ b/packages/DocumentsUI/res/values-tl/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Ibahagi"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Tanggalin"</string>
     <string name="menu_select" msgid="8711270657353563424">"Piliin ang \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ipakita internal storage"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Ipakita ang SD card"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Itago internal storage"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Itago ang SD card"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Ipakita ang laki ng file"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Itago ang laki ng file"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ang pinili"</string>
     <string name="sort_name" msgid="9183560467917256779">"Ayon sa pangalan"</string>
     <string name="sort_date" msgid="586080032956151448">"Ayon sa petsa ng pagbago"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Mga Shortcut"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Mga Device"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Higit pang apps"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Ipakita ang mga advanced na device"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Ipakita ang laki ng file"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Ipakita ang laki ng device"</string>
     <string name="empty" msgid="7858882803708117596">"Walang mga item"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Hindi mabuksan ang file"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Hindi matanggal ang ilang dokumento"</string>
diff --git a/packages/DocumentsUI/res/values-tr/strings.xml b/packages/DocumentsUI/res/values-tr/strings.xml
index 93586d0..9f0f846 100644
--- a/packages/DocumentsUI/res/values-tr/strings.xml
+++ b/packages/DocumentsUI/res/values-tr/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Paylaş"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Sil"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" dizinini seç"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Dahili depolamayı göster"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD kartı göster"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Dahili depolamayı gizle"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartı gizle"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Dosya boyutunu göster"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Dosya boyutunu gizle"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> tane seçildi"</string>
     <string name="sort_name" msgid="9183560467917256779">"Ada göre"</string>
     <string name="sort_date" msgid="586080032956151448">"Değişiklik tarihine göre"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Kısayollar"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Cihazlar"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Diğer uygulamalar"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Gelişmiş cihazları göster"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Dosya boyutunu göster"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Cihaz boyutunu göster"</string>
     <string name="empty" msgid="7858882803708117596">"Öğe yok"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Dosya açılamıyor"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Bazı dokümanlar silinemiyor"</string>
diff --git a/packages/DocumentsUI/res/values-uk/strings.xml b/packages/DocumentsUI/res/values-uk/strings.xml
index 8f8865b..5be1947 100644
--- a/packages/DocumentsUI/res/values-uk/strings.xml
+++ b/packages/DocumentsUI/res/values-uk/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="title_open" msgid="4353228937663917801">"Відкрити в"</string>
+    <string name="title_open" msgid="4353228937663917801">"Відкрити"</string>
     <string name="title_save" msgid="2433679664882857999">"Зберегти в"</string>
     <string name="menu_create_dir" msgid="5947289605844398389">"Створити папку"</string>
     <string name="menu_grid" msgid="6878021334497835259">"Режим таблиці"</string>
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Поділитися"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Видалити"</string>
     <string name="menu_select" msgid="8711270657353563424">"Вибрати каталог \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Показати внутр. пам’ять"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Показати карту SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Сховати внутр. пам’ять"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сховати карту SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Показати розмір файлу"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Сховати розмір файлу"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Вибрано <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"За назвою"</string>
     <string name="sort_date" msgid="586080032956151448">"За датою змінення"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"Показати покращені пристрої"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Показати розмір файлу"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Показати розмір пристрою"</string>
     <string name="empty" msgid="7858882803708117596">"Немає елементів"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Не вдалося відкрити файл"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Не вдалося видалити деякі документи"</string>
diff --git a/packages/DocumentsUI/res/values-ur-rPK/strings.xml b/packages/DocumentsUI/res/values-ur-rPK/strings.xml
index a57f5b1..729fc7f 100644
--- a/packages/DocumentsUI/res/values-ur-rPK/strings.xml
+++ b/packages/DocumentsUI/res/values-ur-rPK/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"اشتراک کریں"</string>
     <string name="menu_delete" msgid="8138799623850614177">"حذف کریں"</string>
     <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" منتخب کریں"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"داخلی اسٹوریج دکھائیں"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"‏SD کارڈ دکھائیں"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"داخلی اسٹوریج چھپائیں"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"‏SD کارڈ چھپائیں"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"فائل سائز دکھائیں"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"فائل سائز چھپائیں"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> کو منتخب کیا گیا"</string>
     <string name="sort_name" msgid="9183560467917256779">"نام کے لحاظ سے"</string>
     <string name="sort_date" msgid="586080032956151448">"ترمیم کی تاریخ کے لحاظ سے"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"جدید آلات ڈسپلے کریں"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"فائل کا سائز ڈسپلے کریں"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"آلہ کا سائز ڈسپلے کریں"</string>
     <string name="empty" msgid="7858882803708117596">"کوئی آئٹمز نہيں ہیں"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"فائل نہيں کھول سکتے ہیں"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"کچھ دستاویزات کو حذف کرنے سے قاصر"</string>
diff --git a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
index 2ba2bab..db35356 100644
--- a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
+++ b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Ulashish"</string>
     <string name="menu_delete" msgid="8138799623850614177">"O‘chirish"</string>
     <string name="menu_select" msgid="8711270657353563424">"“<xliff:g id="DIRECTORY">^1</xliff:g>” jildini tanlash"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ichki xotirani ko‘rsatish"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD kartani ko‘rsatish"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ichki xotirani berkitish"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartani berkitish"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Fayl hajmini ko‘rsatish"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Fayl hajmini berkitish"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> belgilandi"</string>
     <string name="sort_name" msgid="9183560467917256779">"Nomi bo‘yicha"</string>
     <string name="sort_date" msgid="586080032956151448">"Tahrir sanasi bo‘yicha"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Yorliqlar"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Qurilmalar"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Ko‘proq dasturlar"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Qo‘shimcha qurilmalarni ko‘rsatish"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Fayl hajmini ko‘rsatish"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Qurilma hajmini ko‘rsatish"</string>
     <string name="empty" msgid="7858882803708117596">"Hech nima yo‘q"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Fayl ochilmadi"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Ba’zi hujjatlar o‘chirilmadi"</string>
diff --git a/packages/DocumentsUI/res/values-vi/strings.xml b/packages/DocumentsUI/res/values-vi/strings.xml
index 8b8ff1f..e4bbfda 100644
--- a/packages/DocumentsUI/res/values-vi/strings.xml
+++ b/packages/DocumentsUI/res/values-vi/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Chia sẻ"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Xóa"</string>
     <string name="menu_select" msgid="8711270657353563424">"Chọn \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Hiển thị bộ nhớ trong"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Hiển thị thẻ SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ẩn bộ nhớ trong"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ẩn thẻ SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Hiển thị kích thước tệp"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Ẩn kích thước tệp"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"Đã chọn <xliff:g id="COUNT">%1$d</xliff:g>"</string>
     <string name="sort_name" msgid="9183560467917256779">"Theo tên"</string>
     <string name="sort_date" msgid="586080032956151448">"Theo ngày sửa đổi"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Lối tắt"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Thiết bị"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Các ứng dụng khác"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Hiển thị các thiết bị nâng cao"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Hiển thị kích thước tệp"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Hiển thị kích thước thiết bị"</string>
     <string name="empty" msgid="7858882803708117596">"Không có mục nào"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Không thể mở tệp"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Không thể xóa một số tài liệu"</string>
diff --git a/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
index 68ab5f8..4a44250 100644
--- a/packages/DocumentsUI/res/values-zh-rCN/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"分享"</string>
     <string name="menu_delete" msgid="8138799623850614177">"删除"</string>
     <string name="menu_select" msgid="8711270657353563424">"选择“<xliff:g id="DIRECTORY">^1</xliff:g>”"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"显示内部存储设备"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"显示SD卡"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隐藏内部存储设备"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隐藏SD卡"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"显示文件大小"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"隐藏文件大小"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"已选择<xliff:g id="COUNT">%1$d</xliff:g>项"</string>
     <string name="sort_name" msgid="9183560467917256779">"按名称"</string>
     <string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"显示高级设备"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"显示文件大小"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"显示设备大小"</string>
     <string name="empty" msgid="7858882803708117596">"无任何文件"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"无法打开文件"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"无法删除部分文档"</string>
diff --git a/packages/DocumentsUI/res/values-zh-rHK/strings.xml b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
index 4aefd0d..e245c12 100644
--- a/packages/DocumentsUI/res/values-zh-rHK/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"分享"</string>
     <string name="menu_delete" msgid="8138799623850614177">"刪除"</string>
     <string name="menu_select" msgid="8711270657353563424">"選取「<xliff:g id="DIRECTORY">^1</xliff:g>」"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"顯示內部儲存空間"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"顯示 SD 卡"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隱藏內部儲存空間"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個"</string>
     <string name="sort_name" msgid="9183560467917256779">"按名稱"</string>
     <string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string>
     <string name="empty" msgid="7858882803708117596">"沒有項目"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
diff --git a/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
index 2e77f21..a37dbe8 100644
--- a/packages/DocumentsUI/res/values-zh-rTW/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"共用"</string>
     <string name="menu_delete" msgid="8138799623850614177">"刪除"</string>
     <string name="menu_select" msgid="8711270657353563424">"選取「<xliff:g id="DIRECTORY">^1</xliff:g>」"</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"顯示內部儲存空間"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"顯示 SD 卡"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隱藏內部儲存空間"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個項目"</string>
     <string name="sort_name" msgid="9183560467917256779">"依名稱"</string>
     <string name="sort_date" msgid="586080032956151448">"依修改日期"</string>
@@ -45,9 +51,6 @@
     <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="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string>
     <string name="empty" msgid="7858882803708117596">"沒有任何項目"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
diff --git a/packages/DocumentsUI/res/values-zu/strings.xml b/packages/DocumentsUI/res/values-zu/strings.xml
index 55e2c75..b35da3c 100644
--- a/packages/DocumentsUI/res/values-zu/strings.xml
+++ b/packages/DocumentsUI/res/values-zu/strings.xml
@@ -30,6 +30,12 @@
     <string name="menu_share" msgid="3075149983979628146">"Yabelana"</string>
     <string name="menu_delete" msgid="8138799623850614177">"Susa"</string>
     <string name="menu_select" msgid="8711270657353563424">"Khetha i-\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string>
+    <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Bonisa isitoreji sangaphakathi"</string>
+    <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Bonisa ikhadi le-SD"</string>
+    <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Fihla isitoreji sangaphakathi"</string>
+    <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fihla ikhadi le-SD"</string>
+    <string name="menu_file_size_show" msgid="3240323619260823076">"Bonisa usayizi wefayela"</string>
+    <string name="menu_file_size_hide" msgid="8881975928502581042">"Fihla usayizi wefayela"</string>
     <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> okukhethiwe"</string>
     <string name="sort_name" msgid="9183560467917256779">"Ngegama"</string>
     <string name="sort_date" msgid="586080032956151448">"Ngedethi yokuguqula"</string>
@@ -45,9 +51,6 @@
     <string name="root_type_shortcut" msgid="3318760609471618093">"Izinqamuleli"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Amadivayisi"</string>
     <string name="root_type_apps" msgid="8838065367985945189">"Izinhlelo zokusebenza eziningi"</string>
-    <string name="pref_advanced_devices" msgid="903257239609301276">"Bonisa amadivayisi aphakeme"</string>
-    <string name="pref_file_size" msgid="2826879315743961459">"Bonisa usayizi wefayela"</string>
-    <string name="pref_device_size" msgid="3542106883278997222">"Bonisa usayizi wedivayisi"</string>
     <string name="empty" msgid="7858882803708117596">"Azikho izinto"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Ayikwazi ukuvula ifayela"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Ayikwazi ukususa amanye amadokhumenti"</string>
diff --git a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java
index 3038323..b2e38fc 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java
@@ -210,7 +210,7 @@
                     return pm.getDrawable(info.packageName, icon, info.applicationInfo);
                 }
             } else {
-                return context.getResources().getDrawable(icon);
+                return context.getDrawable(icon);
             }
         }
         return null;
@@ -218,19 +218,17 @@
 
     public static Drawable loadMimeIcon(
             Context context, String mimeType, String authority, String docId, int mode) {
-        final Resources res = context.getResources();
-
         if (Document.MIME_TYPE_DIR.equals(mimeType)) {
             // TODO: eventually move these hacky assets into that package
             if ("com.android.providers.media.documents".equals(authority)
                     && docId.startsWith("album")) {
-                return res.getDrawable(R.drawable.ic_doc_album);
+                return context.getDrawable(R.drawable.ic_doc_album);
             }
 
             if (mode == DocumentsActivity.State.MODE_GRID) {
-                return res.getDrawable(R.drawable.ic_grid_folder);
+                return context.getDrawable(R.drawable.ic_grid_folder);
             } else {
-                return res.getDrawable(R.drawable.ic_doc_folder);
+                return context.getDrawable(R.drawable.ic_doc_folder);
             }
         }
 
@@ -238,16 +236,14 @@
     }
 
     public static Drawable loadMimeIcon(Context context, String mimeType) {
-        final Resources res = context.getResources();
-
         if (Document.MIME_TYPE_DIR.equals(mimeType)) {
-            return res.getDrawable(R.drawable.ic_doc_folder);
+            return context.getDrawable(R.drawable.ic_doc_folder);
         }
 
         // Look for exact match first
         Integer resId = sMimeIcons.get(mimeType);
         if (resId != null) {
-            return res.getDrawable(resId);
+            return context.getDrawable(resId);
         }
 
         if (mimeType == null) {
@@ -258,15 +254,15 @@
         // Otherwise look for partial match
         final String typeOnly = mimeType.split("/")[0];
         if ("audio".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_audio);
+            return context.getDrawable(R.drawable.ic_doc_audio);
         } else if ("image".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_image);
+            return context.getDrawable(R.drawable.ic_doc_image);
         } else if ("text".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_text);
+            return context.getDrawable(R.drawable.ic_doc_text);
         } else if ("video".equals(typeOnly)) {
-            return res.getDrawable(R.drawable.ic_doc_video);
+            return context.getDrawable(R.drawable.ic_doc_video);
         } else {
-            return res.getDrawable(R.drawable.ic_doc_generic);
+            return context.getDrawable(R.drawable.ic_doc_generic);
         }
     }
 
@@ -276,7 +272,7 @@
         final TypedValue outValue = new TypedValue();
         context.getTheme().resolveAttribute(tintAttrId, outValue, true);
 
-        final Drawable icon = res.getDrawable(drawableId);
+        final Drawable icon = context.getDrawable(drawableId);
         icon.mutate();
         icon.setTintList(res.getColorStateList(outValue.resourceId));
         return icon;
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
index 82c3048..dd75dbd 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
@@ -221,8 +221,7 @@
             final DocumentStack stack = getItem(position);
             iconMime.setImageDrawable(stack.root.loadIcon(context));
 
-            final Drawable crumb = context.getResources()
-                    .getDrawable(R.drawable.ic_breadcrumb_arrow);
+            final Drawable crumb = context.getDrawable(R.drawable.ic_breadcrumb_arrow);
             crumb.setBounds(0, 0, crumb.getIntrinsicWidth(), crumb.getIntrinsicHeight());
 
             final SpannableStringBuilder builder = new SpannableStringBuilder();
diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
index a358798..fcfe518 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java
@@ -205,7 +205,7 @@
 
     public Drawable loadIcon(Context context) {
         if (derivedIcon != 0) {
-            return context.getResources().getDrawable(derivedIcon);
+            return context.getDrawable(derivedIcon);
         } else {
             return IconUtils.loadPackageIcon(context, authority, icon);
         }
diff --git a/packages/InputDevices/res/values-zh-rCN/strings.xml b/packages/InputDevices/res/values-zh-rCN/strings.xml
index 206f97c..c050ebd 100644
--- a/packages/InputDevices/res/values-zh-rCN/strings.xml
+++ b/packages/InputDevices/res/values-zh-rCN/strings.xml
@@ -2,7 +2,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="8016145283189546017">"输入设备"</string>
-    <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android 键盘"</string>
+    <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android键盘"</string>
     <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"英语(英国)"</string>
     <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"英语(美国)"</string>
     <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"英语(美国),国际风格"</string>
diff --git a/packages/Keyguard/res/values-h560dp/dimens.xml b/packages/Keyguard/res/values-h560dp/dimens.xml
new file mode 100644
index 0000000..1683113
--- /dev/null
+++ b/packages/Keyguard/res/values-h560dp/dimens.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<resources>
+    <dimen name="widget_big_font_size">96dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/packages/Keyguard/res/values-hy-rAM/strings.xml b/packages/Keyguard/res/values-hy-rAM/strings.xml
index 0a4c8e0..c512fa9 100644
--- a/packages/Keyguard/res/values-hy-rAM/strings.xml
+++ b/packages/Keyguard/res/values-hy-rAM/strings.xml
@@ -106,7 +106,7 @@
     <string name="kg_wrong_pin" msgid="1131306510833563801">"Սխալ PIN"</string>
     <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"Փորձեք կրկին <xliff:g id="NUMBER">%d</xliff:g> վայրկյանից:"</string>
     <string name="kg_pattern_instructions" msgid="398978611683075868">"Հավաքեք ձեր սխեման"</string>
-    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Մուտքագրեք SIM-ի PIN-ը"</string>
+    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"Մուտքագրեք SIM-քարտի PIN-կոդը"</string>
     <string name="kg_pin_instructions" msgid="2377242233495111557">"Մուտքագրեք PIN-ը"</string>
     <string name="kg_password_instructions" msgid="5753646556186936819">"Մուտքագրեք գաղտնաբառը"</string>
     <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM-ը այս պահին անջատված է: Մուտքագրեք PUK կոդը շարունակելու համար: Մանրամասների համար կապվեք օպերատորի հետ:"</string>
diff --git a/packages/Keyguard/res/values-km-rKH/strings.xml b/packages/Keyguard/res/values-km-rKH/strings.xml
index c26b1b4..ecdad8c 100644
--- a/packages/Keyguard/res/values-km-rKH/strings.xml
+++ b/packages/Keyguard/res/values-km-rKH/strings.xml
@@ -83,7 +83,7 @@
     <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string>
     <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string>
     <string name="keyboardview_keycode_alt" msgid="4856868820040051939">"Alt"</string>
-    <string name="keyboardview_keycode_cancel" msgid="1203984017245783244">"បោះ​បង់​"</string>
+    <string name="keyboardview_keycode_cancel" msgid="1203984017245783244">"បោះ​បង់"</string>
     <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"លុប"</string>
     <string name="keyboardview_keycode_done" msgid="1992571118466679775">"រួចរាល់"</string>
     <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"ប្ដូរ​របៀប"</string>
@@ -120,7 +120,7 @@
     <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"ព្យាយាម​លំនាំ​ច្រើន​ពេក"</string>
     <string name="kg_login_instructions" msgid="1100551261265506448">"ដើម្បី​ដោះ​សោ ចូល​ក្នុង​គណនី Google ។"</string>
     <string name="kg_login_username_hint" msgid="5718534272070920364">"ឈ្មោះ​អ្នក​ប្រើ (អ៊ី​ម៉ែ​ល​)"</string>
-    <string name="kg_login_password_hint" msgid="9057289103827298549">"ពាក្យសម្ងាត់​"</string>
+    <string name="kg_login_password_hint" msgid="9057289103827298549">"ពាក្យសម្ងាត់"</string>
     <string name="kg_login_submit_button" msgid="5355904582674054702">"ចូល"</string>
     <string name="kg_login_invalid_input" msgid="5754664119319872197">"ឈ្មោះ​អ្នកប្រើ ឬ​ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"</string>
     <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"ភ្លេច​ឈ្មោះ​អ្នកប្រើ ឬ​ពាក្យ​សម្ងាត់​របស់​អ្នក?\nមើល "<b>"google.com/accounts/recovery"</b>" ។"</string>
diff --git a/packages/Keyguard/res/values-my-rMM/strings.xml b/packages/Keyguard/res/values-my-rMM/strings.xml
index f7d51bb..03bd133 100644
--- a/packages/Keyguard/res/values-my-rMM/strings.xml
+++ b/packages/Keyguard/res/values-my-rMM/strings.xml
@@ -20,16 +20,16 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="719438068451601849">"သော့ချက် စောင့်ပေးသူ"</string>
-    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN ကုဒ် ရိုက်ထည့်ပါ"</string>
+    <string name="app_name" msgid="719438068451601849">"သော့ချက် စောင့်ပေးသူ"</string>
+    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN ကုဒ် ရိုက်ထည့်ပါ"</string>
     <string name="keyguard_password_enter_puk_code" msgid="3035856550289724338">"ဆင်းမ်ကဒ် ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် နှင့် လျို့ဝှက်နံပါတ်သစ် ရိုက်ထည့်ပါ"</string>
     <string name="keyguard_password_enter_puk_prompt" msgid="1801941051094974609">"ဆင်းမ်ကဒ် ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် နံပါတ်"</string>
     <string name="keyguard_password_enter_pin_prompt" msgid="3201151840570492538">"ဆင်းမ်ကဒ် လျို့ဝှက်ပင်နံပါတ် အသစ်သွင်းရန်"</string>
     <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"စကားဝှက် ရိုက်ရန် ထိပါ"</font></string>
-    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"သော့ဖွင့်ရန် စကားဝှက်ကို ရိုက်ထည့်ပါ"</string>
-    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"သော့ဖွင့်ရန် PIN ကို ရိုက်ထည့်ပါ"</string>
+    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"သော့ဖွင့်ရန် စကားဝှက်ကို ရိုက်ထည့်ပါ"</string>
+    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"သော့ဖွင့်ရန် PIN ကို ရိုက်ထည့်ပါ"</string>
     <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"ပင်နံပါတ်မှားနေပါသည်"</string>
-    <string name="keyguard_label_text" msgid="861796461028298424">"သော့ဖွင့်ရန် Menu ထိုနောက်0ကိုနှိပ်ပါ"</string>
+    <string name="keyguard_label_text" msgid="861796461028298424">"သော့ဖွင့်ရန် Menu ထိုနောက်0ကိုနှိပ်ပါ"</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"မျက်မှာမှတ် သော့ဖွင့်ခြင်း ခွင့်ပြုသော အကြိမ်ရေထက် ကျော်လွန်သွားပါပြီ"</string>
     <string name="keyguard_charged" msgid="3272223906073492454">"အားသွင်းနေပါသည်"</string>
     <string name="keyguard_plugged_in" msgid="9087497435553252863">"အားသွင်းနေ"</string>
@@ -85,14 +85,14 @@
     <string name="keyboardview_keycode_alt" msgid="4856868820040051939">"Altခလုတ်"</string>
     <string name="keyboardview_keycode_cancel" msgid="1203984017245783244">"ပယ်ဖျက်ရန်ခလုတ်"</string>
     <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"ဖျက်ရန်ခလုတ်"</string>
-    <string name="keyboardview_keycode_done" msgid="1992571118466679775">"ပြီးဆုံးသည့်ခလုတ်"</string>
+    <string name="keyboardview_keycode_done" msgid="1992571118466679775">"ပြီးဆုံးသည့်ခလုတ်"</string>
     <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"စနစ်ပြောင်းခြင်းခလုတ်"</string>
     <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shiftခလုတ်"</string>
     <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enterခလုတ်"</string>
-    <string name="description_target_unlock" msgid="2228524900439801453">"ဖွင့်ရန်"</string>
+    <string name="description_target_unlock" msgid="2228524900439801453">"ဖွင့်ရန်"</string>
     <string name="description_target_camera" msgid="969071997552486814">"ကင်မရာ"</string>
     <string name="description_target_silent" msgid="893551287746522182">"အသံတိတ်ရန်"</string>
-    <string name="description_target_soundon" msgid="30052466675500172">"အသံဖွင့်သည်"</string>
+    <string name="description_target_soundon" msgid="30052466675500172">"အသံဖွင့်သည်"</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_down" msgid="5087739728639014595">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် အောက်ကို ပွတ်ဆွဲပါ"</string>
diff --git a/packages/Keyguard/res/values-sv/strings.xml b/packages/Keyguard/res/values-sv/strings.xml
index a3c7295..c7ba630 100644
--- a/packages/Keyguard/res/values-sv/strings.xml
+++ b/packages/Keyguard/res/values-sv/strings.xml
@@ -32,7 +32,7 @@
     <string name="keyguard_label_text" msgid="861796461028298424">"Tryck på Menu och sedan på 0 om du vill låsa upp."</string>
     <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Du har försökt låsa upp med Ansiktslås för många gånger"</string>
     <string name="keyguard_charged" msgid="3272223906073492454">"Batteriet har laddats"</string>
-    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Debitering"</string>
+    <string name="keyguard_plugged_in" msgid="9087497435553252863">"Laddar"</string>
     <string name="keyguard_low_battery" msgid="8143808018719173859">"Anslut din laddare."</string>
     <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"Tryck på Meny om du vill låsa upp."</string>
     <string name="keyguard_network_locked_message" msgid="9169717779058037168">"Nätverk låst"</string>
diff --git a/packages/Keyguard/res/values-sw600dp-land/dimens.xml b/packages/Keyguard/res/values-sw600dp-land/dimens.xml
index 13a6f62..89252cf 100644
--- a/packages/Keyguard/res/values-sw600dp-land/dimens.xml
+++ b/packages/Keyguard/res/values-sw600dp-land/dimens.xml
@@ -25,5 +25,5 @@
     <dimen name="kg_status_line_font_right_margin">16dp</dimen>
 
     <!-- Overload default clock widget parameters -->
-    <dimen name="widget_big_font_size">88dp</dimen>
+    <dimen name="widget_big_font_size">100dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/packages/Keyguard/res/values-sw600dp/dimens.xml b/packages/Keyguard/res/values-sw600dp/dimens.xml
index 69bf44f..74be1ff 100644
--- a/packages/Keyguard/res/values-sw600dp/dimens.xml
+++ b/packages/Keyguard/res/values-sw600dp/dimens.xml
@@ -63,7 +63,7 @@
     <dimen name="keyguard_muliuser_selector_margin">12dp</dimen>
 
     <!-- Overload default clock widget parameters -->
-    <dimen name="widget_big_font_size">120dp</dimen>
+    <dimen name="widget_big_font_size">140dp</dimen>
     <dimen name="widget_label_font_size">16sp</dimen>
     <dimen name="bottom_text_spacing_digital">-16dp</dimen>
 
diff --git a/packages/Keyguard/res/values-sw720dp-land/dimens.xml b/packages/Keyguard/res/values-sw720dp-land/dimens.xml
index 14726ab..731bb64 100644
--- a/packages/Keyguard/res/values-sw720dp-land/dimens.xml
+++ b/packages/Keyguard/res/values-sw720dp-land/dimens.xml
@@ -26,4 +26,6 @@
 
     <!-- Horizontal padding for the widget pager -->
     <dimen name="kg_widget_pager_horizontal_padding">32dp</dimen>
+
+    <dimen name="widget_big_font_size">150dp</dimen>
 </resources>
diff --git a/packages/Keyguard/res/values-sw720dp/dimens.xml b/packages/Keyguard/res/values-sw720dp/dimens.xml
index c487072..3e89a84 100644
--- a/packages/Keyguard/res/values-sw720dp/dimens.xml
+++ b/packages/Keyguard/res/values-sw720dp/dimens.xml
@@ -61,4 +61,5 @@
     <!-- Height of the sliding KeyguardSecurityContainer (includes 2x keyguard_security_view_margin) -->
     <dimen name="keyguard_security_height">420dp</dimen>
 
+    <dimen name="widget_big_font_size">150dp</dimen>
 </resources>
diff --git a/packages/Keyguard/res/values-zh-rCN/strings.xml b/packages/Keyguard/res/values-zh-rCN/strings.xml
index 1e124b8..8ea80bb 100644
--- a/packages/Keyguard/res/values-zh-rCN/strings.xml
+++ b/packages/Keyguard/res/values-zh-rCN/strings.xml
@@ -118,7 +118,7 @@
     <string name="kg_invalid_puk" msgid="3638289409676051243">"请重新输入正确的PUK码。如果尝试错误次数过多,SIM卡将永久停用。"</string>
     <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN 码不匹配"</string>
     <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"图案尝试次数过多"</string>
-    <string name="kg_login_instructions" msgid="1100551261265506448">"要解锁,请登录您的 Google 帐户。"</string>
+    <string name="kg_login_instructions" msgid="1100551261265506448">"要解锁,请登录您的Google帐户。"</string>
     <string name="kg_login_username_hint" msgid="5718534272070920364">"用户名(电子邮件地址)"</string>
     <string name="kg_login_password_hint" msgid="9057289103827298549">"密码"</string>
     <string name="kg_login_submit_button" msgid="5355904582674054702">"登录"</string>
diff --git a/packages/Keyguard/res/values/dimens.xml b/packages/Keyguard/res/values/dimens.xml
index 375cf32..bfc0531 100644
--- a/packages/Keyguard/res/values/dimens.xml
+++ b/packages/Keyguard/res/values/dimens.xml
@@ -161,7 +161,7 @@
     <dimen name="bottom_text_spacing_digital">-10dp</dimen>
     <dimen name="label_font_size">14dp</dimen>
     <dimen name="widget_label_font_size">16sp</dimen>
-    <dimen name="widget_big_font_size">96dp</dimen>
+    <dimen name="widget_big_font_size">88dp</dimen>
     <dimen name="big_font_size">120dp</dimen>
 
     <!-- The y translation to apply at the start in appear animations. -->
@@ -175,4 +175,7 @@
 
     <!-- The vertical margin between the date and the owner info. -->
     <dimen name="date_owner_info_margin">10dp</dimen>
+
+    <!-- The translation for disappearing security views after having solved them. -->
+    <dimen name="disappear_y_translation">-32dp</dimen>
 </resources>
diff --git a/packages/Keyguard/src/com/android/keyguard/AppearAnimationUtils.java b/packages/Keyguard/src/com/android/keyguard/AppearAnimationUtils.java
index e664fb9..b685c73 100644
--- a/packages/Keyguard/src/com/android/keyguard/AppearAnimationUtils.java
+++ b/packages/Keyguard/src/com/android/keyguard/AppearAnimationUtils.java
@@ -36,8 +36,7 @@
 
     public AppearAnimationUtils(Context ctx) {
         this(ctx, DEFAULT_APPEAR_DURATION,
-                ctx.getResources().getDimensionPixelSize(R.dimen.appear_y_translation_start),
-                1.0f,
+                1.0f, 1.0f,
                 AnimationUtils.loadInterpolator(ctx, android.R.interpolator.linear_out_slow_in));
     }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
index 2c9247a..a411df3 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java
@@ -24,10 +24,7 @@
 import android.view.HapticFeedbackConstants;
 import android.view.KeyEvent;
 import android.view.View;
-import android.view.inputmethod.EditorInfo;
 import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.TextView.OnEditorActionListener;
 
 import com.android.internal.widget.LockPatternUtils;
 
@@ -196,5 +193,10 @@
         KeyguardSecurityViewHelper.
                 hideBouncer(mSecurityMessageDisplay, mEcaView, mBouncerFrame, duration);
     }
+
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
 }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAccountView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAccountView.java
index 2432509..5cb3b9b 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardAccountView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAccountView.java
@@ -332,5 +332,10 @@
     public void startAppearAnimation() {
         // TODO.
     }
+
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
 }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java b/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
index 25f3383..32f7a1e 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardActivityLauncher.java
@@ -36,6 +36,7 @@
 import android.provider.MediaStore;
 import android.util.Log;
 import android.view.WindowManager;
+import android.view.WindowManagerGlobal;
 
 import com.android.keyguard.KeyguardHostView.OnDismissAction;
 
@@ -214,9 +215,9 @@
 
     private void dismissKeyguardOnNextActivity() {
         try {
-            ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
+            WindowManagerGlobal.getWindowManagerService().dismissKeyguard();
         } catch (RemoteException e) {
-            Log.w(TAG, "can't dismiss keyguard on launch");
+            Log.w(TAG, "Error dismissing keyguard", e);
         }
     }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
index c9fe93c..b3e9f77 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardFaceUnlockView.java
@@ -17,7 +17,6 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
-import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.telephony.TelephonyManager;
@@ -353,4 +352,9 @@
     public void startAppearAnimation() {
         // TODO.
     }
+
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
index ec5d040eb..66c30c7 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java
@@ -17,13 +17,10 @@
 package com.android.keyguard;
 
 import android.content.Context;
-import android.text.InputType;
-import android.text.TextWatcher;
-import android.text.method.DigitsKeyListener;
 import android.util.AttributeSet;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.TextView.OnEditorActionListener;
+import android.view.animation.AnimationUtils;
 
 /**
  * Displays a PIN pad for unlocking.
@@ -37,6 +34,7 @@
     private ViewGroup mRow2;
     private ViewGroup mRow3;
     private View mDivider;
+    private int mDisappearYTranslation;
 
     public KeyguardPINView(Context context) {
         this(context, null);
@@ -45,6 +43,8 @@
     public KeyguardPINView(Context context, AttributeSet attrs) {
         super(context, attrs);
         mAppearAnimationUtils = new AppearAnimationUtils(context);
+        mDisappearYTranslation = getResources().getDimensionPixelSize(
+                R.dimen.disappear_y_translation);
     }
 
     protected void resetState() {
@@ -117,6 +117,18 @@
                 });
     }
 
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        animate()
+                .alpha(0f)
+                .translationY(mDisappearYTranslation)
+                .setInterpolator(AnimationUtils
+                        .loadInterpolator(mContext, android.R.interpolator.fast_out_linear_in))
+                .setDuration(100)
+                .withEndAction(finishRunnable);
+        return true;
+    }
+
     private void enableClipping(boolean enable) {
         mKeyguardBouncerFrame.setClipToPadding(enable);
         mKeyguardBouncerFrame.setClipChildren(enable);
@@ -125,4 +137,9 @@
         mRow3.setClipToPadding(enable);
         setClipChildren(enable);
     }
+
+    @Override
+    public boolean hasOverlappingRendering() {
+        return false;
+    }
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
index 99ff6a7..5f5d25c 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java
@@ -245,6 +245,11 @@
     }
 
     @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
+
+    @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
         if (mCallback != null) {
             mCallback.userActivity();
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
index 12bbd35..3b05d11 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java
@@ -37,6 +37,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
 import android.widget.Button;
@@ -95,6 +96,7 @@
     private Drawable mBouncerFrame;
     private ViewGroup mKeyguardBouncerFrame;
     private KeyguardMessageArea mHelpMessage;
+    private int mDisappearYTranslation;
 
     enum FooterMode {
         Normal,
@@ -113,6 +115,8 @@
                 AppearAnimationUtils.DEFAULT_APPEAR_DURATION, 1.5f /* delayScale */,
                 2.0f /* transitionScale */, AnimationUtils.loadInterpolator(
                         mContext, android.R.interpolator.linear_out_slow_in));
+        mDisappearYTranslation = getResources().getDimensionPixelSize(
+                R.dimen.disappear_y_translation);
     }
 
     public void setKeyguardCallback(KeyguardSecurityCallback callback) {
@@ -412,6 +416,11 @@
     @Override
     public void startAppearAnimation() {
         enableClipping(false);
+        setTranslationY(mAppearAnimationUtils.getStartTranslation());
+        animate()
+                .setDuration(500)
+                .setInterpolator(mAppearAnimationUtils.getInterpolator())
+                .translationY(0);
         mAppearAnimationUtils.startAppearAnimation(
                 mLockPatternView.getCellStates(),
                 new Runnable() {
@@ -430,6 +439,19 @@
         }
     }
 
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        mLockPatternView.clearPattern();
+        animate()
+                .alpha(0f)
+                .translationY(-100)
+                .setInterpolator(AnimationUtils.loadInterpolator(
+                        mContext, android.R.interpolator.fast_out_linear_in))
+                .setDuration(100)
+                .withEndAction(finishRunnable);
+        return true;
+    }
+
     private void enableClipping(boolean enable) {
         setClipChildren(enable);
         mKeyguardBouncerFrame.setClipToPadding(enable);
@@ -477,4 +499,9 @@
         animator.start();
         mLockPatternView.invalidate();
     }
+
+    @Override
+    public boolean hasOverlappingRendering() {
+        return false;
+    }
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
index 1835b8e..119471b 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
@@ -91,6 +91,14 @@
         }
     }
 
+    public boolean startDisappearAnimation(Runnable onFinishRunnable) {
+        if (mCurrentSecuritySelection != SecurityMode.None) {
+            return getSecurityView(mCurrentSecuritySelection).startDisappearAnimation(
+                    onFinishRunnable);
+        }
+        return false;
+    }
+
     void updateSecurityViews(boolean isBouncing) {
         int children = mSecurityViewFlipper.getChildCount();
         for (int i = 0; i < children; i++) {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
index 86bd877..78fcb9f 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java
@@ -89,4 +89,13 @@
      * Starts the animation which should run when the security view appears.
      */
     void startAppearAnimation();
+
+    /**
+     * Starts the animation which should run when the security view disappears.
+     *
+     * @param finishRunnable the runnable to be run when the animation ended
+     * @return true if an animation started and {@code finishRunnable} will be run, false if no
+     *         animation started and {@code finishRunnable} will not be run
+     */
+    boolean startDisappearAnimation(Runnable finishRunnable);
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
index 178ca5e..ea5c304 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java
@@ -167,6 +167,16 @@
     }
 
     @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        KeyguardSecurityView ksv = getSecurityView();
+        if (ksv != null) {
+            return ksv.startDisappearAnimation(finishRunnable);
+        } else {
+            return false;
+        }
+    }
+
+    @Override
     protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
         return p instanceof LayoutParams;
     }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
index e8e3b19..5a0fdb2 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java
@@ -26,14 +26,9 @@
 import android.app.ProgressDialog;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.text.InputType;
-import android.text.TextWatcher;
-import android.text.method.DigitsKeyListener;
 import android.util.AttributeSet;
-import android.view.View;
 import android.util.Log;
 import android.view.WindowManager;
-import android.widget.TextView.OnEditorActionListener;
 
 /**
  * Displays a PIN pad for unlocking.
@@ -237,5 +232,10 @@
     public void startAppearAnimation() {
         // noop.
     }
+
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
 }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
index b956e99..f0c5805 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java
@@ -23,14 +23,9 @@
 import android.app.ProgressDialog;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.text.InputType;
-import android.text.TextWatcher;
-import android.text.method.DigitsKeyListener;
 import android.util.AttributeSet;
 import android.util.Log;
-import android.view.View;
 import android.view.WindowManager;
-import android.widget.TextView.OnEditorActionListener;
 
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.PhoneConstants;
@@ -306,6 +301,11 @@
     public void startAppearAnimation() {
         // noop.
     }
+
+    @Override
+    public boolean startDisappearAnimation(Runnable finishRunnable) {
+        return false;
+    }
 }
 
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
index bc159cb..f009787 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimpleHostView.java
@@ -68,5 +68,17 @@
         public void onUserSwitchComplete(int userId) {
             getSecurityContainer().showPrimarySecurityScreen(false /* turning off */);
         }
+
+        @Override
+        public void onTrustInitiatedByUser(int userId) {
+            if (userId != mLockPatternUtils.getCurrentUser()) return;
+            if (!isAttachedToWindow()) return;
+
+            if (isVisibleToUser()) {
+                dismiss(false /* authenticated */);
+            } else {
+                // TODO: Play first half of unlock sound.
+            }
+        }
     };
 }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
index daba0a2..51a276e 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java
@@ -16,9 +16,10 @@
 
 package com.android.keyguard;
 
-import android.app.AlarmClockInfo;
+import android.app.AlarmManager;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.provider.AlarmClock;
 import android.text.TextUtils;
@@ -26,6 +27,7 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.Slog;
+import android.util.TypedValue;
 import android.view.View;
 import android.widget.GridLayout;
 import android.widget.TextClock;
@@ -115,8 +117,19 @@
         mClockView.setElegantTextHeight(false);
     }
 
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        mClockView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(R.dimen.widget_big_font_size));
+        mDateView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(R.dimen.widget_label_font_size));
+        mOwnerInfo.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(R.dimen.widget_label_font_size));
+    }
+
     protected void refresh() {
-        AlarmClockInfo nextAlarm = mLockPatternUtils.getNextAlarm();
+        AlarmManager.AlarmClockInfo nextAlarm = mLockPatternUtils.getNextAlarm();
         Patterns.update(mContext, nextAlarm != null);
 
         mDateView.setFormat24Hour(Patterns.dateView);
@@ -128,7 +141,7 @@
         refreshAlarmStatus(nextAlarm);
     }
 
-    void refreshAlarmStatus(AlarmClockInfo nextAlarm) {
+    void refreshAlarmStatus(AlarmManager.AlarmClockInfo nextAlarm) {
         if (nextAlarm != null) {
             mAlarmStatusView.setText(formatNextAlarm(mContext, nextAlarm));
             mAlarmStatusView.setVisibility(View.VISIBLE);
@@ -137,7 +150,7 @@
         }
     }
 
-    public static String formatNextAlarm(Context context, AlarmClockInfo info) {
+    public static String formatNextAlarm(Context context, AlarmManager.AlarmClockInfo info) {
         if (info == null) {
             return "";
         }
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
index 276f795..e35b2b2 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewBase.java
@@ -236,6 +236,12 @@
         mSecurityContainer.startAppearAnimation();
     }
 
+    public void startDisappearAnimation(Runnable finishRunnable) {
+        if (!mSecurityContainer.startDisappearAnimation(finishRunnable) && finishRunnable != null) {
+            finishRunnable.run();
+        }
+    }
+
     /**
      * Verify that the user can get past the keyguard securely.  This is called,
      * for example, when the phone disables the keyguard but then wants to launch
diff --git a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
index f74843e..2e5450d 100644
--- a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java
@@ -61,4 +61,9 @@
      * Report when keyguard is actually gone
      */
     void keyguardGone();
+
+    /**
+     * Report when the UI is ready for dismissing the whole Keyguard.
+     */
+    void readyForKeyguardDone();
 }
diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
index ed17494..4ea1c77 100644
--- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
+++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgent.java
@@ -31,6 +31,16 @@
 public class SampleTrustAgent extends TrustAgentService
         implements SharedPreferences.OnSharedPreferenceChangeListener {
 
+    /**
+     * If true, allows anyone to control this trust agent, e.g. using adb:
+     * <pre>
+     * $ adb shell am broadcast -a action.sample_trust_agent.grant_trust\
+     *  -e extra.message SampleTrust\
+     *  --el extra.duration 1000 --ez extra.init_by_user false
+     * </pre>
+     */
+    private static final boolean ALLOW_EXTERNAL_BROADCASTS = false;
+
     LocalBroadcastManager mLocalBroadcastManager;
 
     private static final String ACTION_GRANT_TRUST = "action.sample_trust_agent.grant_trust";
@@ -38,7 +48,7 @@
 
     private static final String EXTRA_MESSAGE = "extra.message";
     private static final String EXTRA_DURATION = "extra.duration";
-    private static final String EXTRA_EXTRA = "extra.extra";
+    private static final String EXTRA_INITIATED_BY_USER = "extra.init_by_user";
 
     private static final String PREFERENCE_REPORT_UNLOCK_ATTEMPTS
             = "preference.report_unlock_attempts";
@@ -50,11 +60,16 @@
     @Override
     public void onCreate() {
         super.onCreate();
+        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
+
         IntentFilter filter = new IntentFilter();
         filter.addAction(ACTION_GRANT_TRUST);
         filter.addAction(ACTION_REVOKE_TRUST);
-        mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
         mLocalBroadcastManager.registerReceiver(mReceiver, filter);
+        if (ALLOW_EXTERNAL_BROADCASTS) {
+            registerReceiver(mReceiver, filter);
+        }
+
         setManagingTrust(getIsManagingTrust(this));
         PreferenceManager.getDefaultSharedPreferences(this)
                 .registerOnSharedPreferenceChangeListener(this);
@@ -79,6 +94,9 @@
     public void onDestroy() {
         super.onDestroy();
         mLocalBroadcastManager.unregisterReceiver(mReceiver);
+        if (ALLOW_EXTERNAL_BROADCASTS) {
+            unregisterReceiver(mReceiver);
+        }
         PreferenceManager.getDefaultSharedPreferences(this)
                 .unregisterOnSharedPreferenceChangeListener(this);
     }
@@ -91,7 +109,7 @@
                 try {
                     grantTrust(intent.getStringExtra(EXTRA_MESSAGE),
                             intent.getLongExtra(EXTRA_DURATION, 0),
-                            false /* initiatedByUser */);
+                            intent.getBooleanExtra(EXTRA_INITIATED_BY_USER, false));
                 } catch (IllegalStateException e) {
                     Toast.makeText(context,
                             "IllegalStateException: " + e.getMessage(), Toast.LENGTH_SHORT).show();
@@ -103,11 +121,11 @@
     };
 
     public static void sendGrantTrust(Context context,
-            String message, long durationMs, Bundle extra) {
+            String message, long durationMs, boolean initiatedByUser) {
         Intent intent = new Intent(ACTION_GRANT_TRUST);
         intent.putExtra(EXTRA_MESSAGE, message);
         intent.putExtra(EXTRA_DURATION, durationMs);
-        intent.putExtra(EXTRA_EXTRA, extra);
+        intent.putExtra(EXTRA_INITIATED_BY_USER, initiatedByUser);
         LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
     }
 
diff --git a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
index 2c85609..bea74ab 100644
--- a/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
+++ b/packages/Keyguard/test/SampleTrustAgent/src/com/android/trustagent/test/SampleTrustAgentSettings.java
@@ -59,7 +59,7 @@
         int id = v.getId();
         if (id == R.id.enable_trust) {
             SampleTrustAgent.sendGrantTrust(this, "SampleTrustAgent", TRUST_DURATION_MS,
-                    null /* extra */);
+                    false /* initiatedByUser */);
         } else if (id == R.id.revoke_trust) {
             SampleTrustAgent.sendRevokeTrust(this);
         } else if (id == R.id.crash) {
diff --git a/packages/PrintSpooler/res/drawable/ic_savetopdf.xml b/packages/PrintSpooler/res/drawable/ic_savetopdf.xml
new file mode 100644
index 0000000..60ed33a
--- /dev/null
+++ b/packages/PrintSpooler/res/drawable/ic_savetopdf.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+    android:src="@drawable/ic_menu_savetopdf"
+    android:tint="@color/promoted_action_background_color" />
diff --git a/packages/PrintSpooler/res/layout/preview_page.xml b/packages/PrintSpooler/res/layout/preview_page.xml
index 509a1d2..76dd76b 100644
--- a/packages/PrintSpooler/res/layout/preview_page.xml
+++ b/packages/PrintSpooler/res/layout/preview_page.xml
@@ -31,7 +31,7 @@
     <RelativeLayout
         android:id="@+id/page_footer"
         android:layout_width="fill_parent"
-        android:layout_height="32dip"
+        android:layout_height="@dimen/preview_page_footer_height"
         android:background="@*android:color/material_grey_500"
         android:orientation="horizontal">
 
diff --git a/packages/PrintSpooler/res/layout/print_activity.xml b/packages/PrintSpooler/res/layout/print_activity.xml
index 3905646..ee5d42a 100644
--- a/packages/PrintSpooler/res/layout/print_activity.xml
+++ b/packages/PrintSpooler/res/layout/print_activity.xml
@@ -27,7 +27,6 @@
         android:id="@+id/static_content"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
-        android:padding="16dip"
         android:elevation="@dimen/preview_controls_elevation"
         android:background="?android:attr/colorPrimary">
 
@@ -35,6 +34,7 @@
             android:id="@+id/destination_spinner"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginTop="4dip"
             android:dropDownWidth="wrap_content"
             android:minHeight="?android:attr/listPreferredItemHeightSmall">
         </Spinner>
@@ -56,7 +56,6 @@
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="8dip"
             android:layout_marginStart="12dip"
             android:textAppearance="?android:attr/textAppearanceSmall"
             android:labelFor="@+id/copies_count_summary"
@@ -67,7 +66,6 @@
             android:id="@+id/copies_count_summary"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="8dip"
             android:layout_marginStart="16dip"
             android:textAppearance="?android:attr/textAppearanceMedium"
             android:textColor="?android:attr/textColorPrimary">
@@ -76,7 +74,6 @@
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="8dip"
             android:layout_marginStart="32dip"
             android:textAppearance="?android:attr/textAppearanceSmall"
             android:labelFor="@+id/paper_size_summary"
@@ -87,7 +84,6 @@
             android:id="@+id/paper_size_summary"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="8dip"
             android:layout_marginStart="16dip"
             android:textAppearance="?android:attr/textAppearanceMedium"
             android:textColor="?android:attr/textColorPrimary">
diff --git a/packages/PrintSpooler/res/layout/print_activity_controls.xml b/packages/PrintSpooler/res/layout/print_activity_controls.xml
index ef6044a..31bda7e 100644
--- a/packages/PrintSpooler/res/layout/print_activity_controls.xml
+++ b/packages/PrintSpooler/res/layout/print_activity_controls.xml
@@ -267,8 +267,8 @@
              android:id="@+id/expand_collapse_icon"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
-             android:layout_marginTop="8dip"
-             android:layout_marginBottom="8dip"
+             android:layout_marginTop="4dip"
+             android:layout_marginBottom="4dip"
              android:layout_gravity="center"
              android:background="@drawable/ic_expand_more">
          </ImageView>
diff --git a/packages/PrintSpooler/res/values/constants.xml b/packages/PrintSpooler/res/values/constants.xml
index faad527..b95703b 100644
--- a/packages/PrintSpooler/res/values/constants.xml
+++ b/packages/PrintSpooler/res/values/constants.xml
@@ -45,4 +45,7 @@
     <fraction name="page_selected_alpha">100%</fraction>
     <fraction name="page_unselected_alpha">50%</fraction>
 
+    <dimen name="preview_page_footer_height">32dip</dimen>
+    <dimen name="preview_page_min_width">130dip</dimen>
+
 </resources>
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
index e976936..5bcdb9f 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
@@ -96,6 +96,7 @@
     private float mUnselectedPageAlpha;
 
     private int mPreviewPageMargin;
+    private int mPreviewPageMinWidth;
     private int mPreviewListPadding;
     private int mFooterHeight;
 
@@ -141,17 +142,17 @@
         mPreviewPageMargin = mContext.getResources().getDimensionPixelSize(
                 R.dimen.preview_page_margin);
 
+        mPreviewPageMinWidth = mContext.getResources().getDimensionPixelSize(
+                R.dimen.preview_page_min_width);
+
         mPreviewListPadding = mContext.getResources().getDimensionPixelSize(
                 R.dimen.preview_list_padding);
 
         mColumnCount = mContext.getResources().getInteger(
                 R.integer.preview_page_per_row_count);
 
-        TypedValue outValue = new TypedValue();
-        mContext.getTheme().resolveAttribute(
-                com.android.internal.R.attr.listPreferredItemHeightSmall, outValue, true);
-        mFooterHeight = TypedValue.complexToDimensionPixelSize(outValue.data,
-                mContext.getResources().getDisplayMetrics());
+        mFooterHeight = mContext.getResources().getDimensionPixelSize(
+                R.dimen.preview_page_footer_height);
 
         mPreviewArea = previewArea;
 
@@ -428,8 +429,12 @@
         // Compute max page height.
         final int pageContentDesiredHeight = (int) (((float) pageContentDesiredWidth
                 / pageAspectRatio) + 0.5f);
-        final int pageContentMaxHeight = availableHeight - 2 * (mPreviewListPadding
-                + mPreviewPageMargin) - mFooterHeight;
+
+        // If the page does not fit entirely in a vertial direction,
+        // we shirk it but not less than the minimal page width.
+        final int pageContentMinHeight = (int) (mPreviewPageMinWidth / pageAspectRatio + 0.5f);
+        final int pageContentMaxHeight = Math.max(pageContentMinHeight,
+                availableHeight - 2 * (mPreviewListPadding + mPreviewPageMargin) - mFooterHeight);
 
         mPageContentHeight = Math.min(pageContentDesiredHeight, pageContentMaxHeight);
         mPageContentWidth = (int) ((mPageContentHeight * pageAspectRatio) + 0.5f);
@@ -439,10 +444,17 @@
 
         final int rowCount = mSelectedPageCount / columnCount
                 + ((mSelectedPageCount % columnCount) > 0 ? 1 : 0);
-        final int totalContentHeight = rowCount* (mPageContentHeight + mFooterHeight + 2
+        final int totalContentHeight = rowCount * (mPageContentHeight + mFooterHeight + 2
                 * mPreviewPageMargin);
-        final int verticalPadding = Math.max(mPreviewListPadding,
-                (availableHeight - totalContentHeight) / 2);
+
+        final int verticalPadding;
+        if (mPageContentHeight + mFooterHeight + mPreviewListPadding > availableHeight) {
+            verticalPadding = Math.max(mPreviewPageMargin,
+                    (availableHeight - totalContentHeight) / 2);
+        } else {
+            verticalPadding = Math.max(mPreviewListPadding,
+                    (availableHeight - totalContentHeight) / 2);
+        }
 
         mPreviewArea.setPadding(horizontalPadding, verticalPadding,
                 horizontalPadding, verticalPadding);
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index a1b1aec..6b29e5f 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -1704,7 +1704,7 @@
                 if (position == 0 && getPdfPrinter() != null) {
                     PrinterHolder printerHolder = (PrinterHolder) getItem(position);
                     title = printerHolder.printer.getName();
-                    icon = getResources().getDrawable(com.android.internal.R.drawable.ic_menu_save);
+                    icon = getResources().getDrawable(R.drawable.ic_savetopdf);
                 } else if (position == 1) {
                     title = getString(R.string.all_printers);
                 }
@@ -1712,7 +1712,7 @@
                 if (position == 1 && getPdfPrinter() != null) {
                     PrinterHolder printerHolder = (PrinterHolder) getItem(position);
                     title = printerHolder.printer.getName();
-                    icon = getResources().getDrawable(com.android.internal.R.drawable.ic_menu_save);
+                    icon = getResources().getDrawable(R.drawable.ic_savetopdf);
                 } else if (position == getCount() - 1) {
                     title = getString(R.string.all_printers);
                 } else {
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
index 4d2cb6c..8365373 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PageContentView.java
@@ -94,7 +94,7 @@
         mMinMargins = minMargins;
         mContentRequested = false;
 
-        // If there is not provider we want immediately to switch to
+        // If there is no provider we want immediately to switch to
         // the empty state, so pages with no content appear blank.
         if (mProvider == null && getBackground() != mEmptyState) {
             setBackground(mEmptyState);
diff --git a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
index 01f4a04..71f4aa7 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/widget/PrintOptionsLayout.java
@@ -162,7 +162,7 @@
             }
 
             cellStart = getPaddingStart();
-            cellTop += cellTop + rowHeight;
+            cellTop += rowHeight;
         }
     }
 
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 5dc7d26..87c015c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -20,6 +20,7 @@
 import java.security.SecureRandom;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -94,6 +95,9 @@
     // Each defined user has their own settings
     protected final SparseArray<DatabaseHelper> mOpenHelpers = new SparseArray<DatabaseHelper>();
 
+    // Keep the list of managed profiles synced here
+    private List<UserInfo> mManagedProfiles = null;
+
     // Over this size we don't reject loading or saving settings but
     // we do consider them broken/malicious and don't keep them in
     // memory at least:
@@ -119,6 +123,9 @@
 
     private static final String DROPBOX_TAG_USERLOG = "restricted_profile_ssaid";
 
+    static final HashSet<String> sSecureCloneToManagedKeys;
+    static final HashSet<String> sSystemCloneToManagedKeys;
+
     static {
         // Keys (name column) from the 'secure' table that are now in the owner user's 'global'
         // table, shared across all users
@@ -142,6 +149,15 @@
                 UserManager.ENSURE_VERIFY_APPS);
         sRestrictedKeys.put(Settings.Global.PREFERRED_NETWORK_MODE,
                 UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+
+        sSecureCloneToManagedKeys = new HashSet<String>();
+        for (int i = 0; i < Settings.Secure.CLONE_TO_MANAGED_PROFILE.length; i++) {
+            sSecureCloneToManagedKeys.add(Settings.Secure.CLONE_TO_MANAGED_PROFILE[i]);
+        }
+        sSystemCloneToManagedKeys = new HashSet<String>();
+        for (int i = 0; i < Settings.System.CLONE_TO_MANAGED_PROFILE.length; i++) {
+            sSystemCloneToManagedKeys.add(Settings.System.CLONE_TO_MANAGED_PROFILE[i]);
+        }
     }
 
     private boolean settingMovedToGlobal(final String name) {
@@ -362,18 +378,22 @@
 
         IntentFilter userFilter = new IntentFilter();
         userFilter.addAction(Intent.ACTION_USER_REMOVED);
+        userFilter.addAction(Intent.ACTION_USER_ADDED);
         getContext().registerReceiver(new BroadcastReceiver() {
             @Override
             public void onReceive(Context context, Intent intent) {
+                final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
+                        UserHandle.USER_OWNER);
                 if (intent.getAction().equals(Intent.ACTION_USER_REMOVED)) {
-                    final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
-                            UserHandle.USER_OWNER);
-                    if (userHandle != UserHandle.USER_OWNER) {
-                        onUserRemoved(userHandle);
-                    }
+                    onUserRemoved(userHandle);
+                } else if (intent.getAction().equals(Intent.ACTION_USER_ADDED)) {
+                    onProfilesChanged();
                 }
             }
         }, userFilter);
+
+        onProfilesChanged();
+
         return true;
     }
 
@@ -391,6 +411,32 @@
             sSystemCaches.delete(userHandle);
             sSecureCaches.delete(userHandle);
             sKnownMutationsInFlight.delete(userHandle);
+            onProfilesChanged();
+        }
+    }
+
+    /**
+     * Updates the list of managed profiles. It assumes that only the primary user
+     * can have managed profiles. Modify this code if that changes in the future.
+     */
+    void onProfilesChanged() {
+        synchronized (this) {
+            mManagedProfiles = mUserManager.getProfiles(UserHandle.USER_OWNER);
+            if (mManagedProfiles != null) {
+                // Remove the primary user from the list
+                for (int i = mManagedProfiles.size() - 1; i >= 0; i--) {
+                    if (mManagedProfiles.get(i).id == UserHandle.USER_OWNER) {
+                        mManagedProfiles.remove(i);
+                    }
+                }
+                // If there are no managed profiles, reset the variable
+                if (mManagedProfiles.size() == 0) {
+                    mManagedProfiles = null;
+                }
+            }
+            if (LOCAL_LOGV) {
+                Slog.d(TAG, "Managed Profiles = " + mManagedProfiles);
+            }
         }
     }
 
@@ -601,6 +647,24 @@
     }
 
     /**
+     * Checks if the calling user is a managed profile of the primary user.
+     * Currently only the primary user (USER_OWNER) can have managed profiles.
+     * @param callingUser the user trying to read/write settings
+     * @return true if it is a managed profile of the primary user
+     */
+    private boolean isManagedProfile(int callingUser) {
+        synchronized (this) {
+            if (mManagedProfiles == null) return false;
+            for (int i = mManagedProfiles.size() - 1; i >= 0; i--) {
+                if (mManagedProfiles.get(i).id == callingUser) {
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    /**
      * Fast path that avoids the use of chatty remoted Cursors.
      */
     @Override
@@ -625,12 +689,18 @@
         // Get methods
         if (Settings.CALL_METHOD_GET_SYSTEM.equals(method)) {
             if (LOCAL_LOGV) Slog.v(TAG, "call(system:" + request + ") for " + callingUser);
+            if (isManagedProfile(callingUser) && sSystemCloneToManagedKeys.contains(request)) {
+                callingUser = UserHandle.USER_OWNER;
+            }
             dbHelper = getOrEstablishDatabase(callingUser);
             cache = sSystemCaches.get(callingUser);
             return lookupValue(dbHelper, TABLE_SYSTEM, cache, request);
         }
         if (Settings.CALL_METHOD_GET_SECURE.equals(method)) {
             if (LOCAL_LOGV) Slog.v(TAG, "call(secure:" + request + ") for " + callingUser);
+            if (isManagedProfile(callingUser) && sSecureCloneToManagedKeys.contains(request)) {
+                callingUser = UserHandle.USER_OWNER;
+            }
             dbHelper = getOrEstablishDatabase(callingUser);
             cache = sSecureCaches.get(callingUser);
             return lookupValue(dbHelper, TABLE_SECURE, cache, request);
@@ -667,13 +737,70 @@
         values.put(Settings.NameValueTable.NAME, request);
         values.put(Settings.NameValueTable.VALUE, newValue);
         if (Settings.CALL_METHOD_PUT_SYSTEM.equals(method)) {
-            if (LOCAL_LOGV) Slog.v(TAG, "call_put(system:" + request + "=" + newValue + ") for " + callingUser);
+            if (LOCAL_LOGV) {
+                Slog.v(TAG, "call_put(system:" + request + "=" + newValue + ") for "
+                        + callingUser);
+            }
+            // Extra check for USER_OWNER to optimize for the 99%
+            if (callingUser != UserHandle.USER_OWNER && isManagedProfile(callingUser)) {
+                if (sSystemCloneToManagedKeys.contains(request)) {
+                    // Don't write these settings
+                    return null;
+                }
+            }
             insertForUser(Settings.System.CONTENT_URI, values, callingUser);
+            // Clone the settings to the managed profiles so that notifications can be sent out
+            if (callingUser == UserHandle.USER_OWNER && mManagedProfiles != null
+                    && sSystemCloneToManagedKeys.contains(request)) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    for (int i = mManagedProfiles.size() - 1; i >= 0; i--) {
+                        if (LOCAL_LOGV) {
+                            Slog.v(TAG, "putting to additional user "
+                                    + mManagedProfiles.get(i).id);
+                        }
+                        insertForUser(Settings.System.CONTENT_URI, values,
+                                mManagedProfiles.get(i).id);
+                    }
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
         } else if (Settings.CALL_METHOD_PUT_SECURE.equals(method)) {
-            if (LOCAL_LOGV) Slog.v(TAG, "call_put(secure:" + request + "=" + newValue + ") for " + callingUser);
+            if (LOCAL_LOGV) {
+                Slog.v(TAG, "call_put(secure:" + request + "=" + newValue + ") for "
+                        + callingUser);
+            }
+            // Extra check for USER_OWNER to optimize for the 99%
+            if (callingUser != UserHandle.USER_OWNER && isManagedProfile(callingUser)) {
+                if (sSecureCloneToManagedKeys.contains(request)) {
+                    // Don't write these settings
+                    return null;
+                }
+            }
             insertForUser(Settings.Secure.CONTENT_URI, values, callingUser);
+            // Clone the settings to the managed profiles so that notifications can be sent out
+            if (callingUser == UserHandle.USER_OWNER && mManagedProfiles != null
+                    && sSecureCloneToManagedKeys.contains(request)) {
+                final long token = Binder.clearCallingIdentity();
+                try {
+                    for (int i = mManagedProfiles.size() - 1; i >= 0; i--) {
+                        if (LOCAL_LOGV) {
+                            Slog.v(TAG, "putting to additional user "
+                                    + mManagedProfiles.get(i).id);
+                        }
+                        insertForUser(Settings.Secure.CONTENT_URI, values,
+                                mManagedProfiles.get(i).id);
+                    }
+                } finally {
+                    Binder.restoreCallingIdentity(token);
+                }
+            }
         } else if (Settings.CALL_METHOD_PUT_GLOBAL.equals(method)) {
-            if (LOCAL_LOGV) Slog.v(TAG, "call_put(global:" + request + "=" + newValue + ") for " + callingUser);
+            if (LOCAL_LOGV) {
+                Slog.v(TAG, "call_put(global:" + request + "=" + newValue + ") for "
+                        + callingUser);
+            }
             insertForUser(Settings.Global.CONTENT_URI, values, callingUser);
         } else {
             Slog.w(TAG, "call() with invalid method: " + method);
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index e48aef1..b8836a0 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -327,7 +327,7 @@
         <activity
             android:name=".settings.BrightnessDialog"
             android:label="@string/quick_settings_brightness_dialog_title"
-            android:theme="@android:style/Theme.DeviceDefault.Light.Dialog"
+            android:theme="@android:style/Theme.DeviceDefault.Dialog"
             android:finishOnCloseSystemDialogs="true"
             android:launchMode="singleInstance"
             android:excludeFromRecents="true"
diff --git a/packages/SystemUI/res/drawable/brightness_mirror_background.xml b/packages/SystemUI/res/drawable/brightness_mirror_background.xml
new file mode 100644
index 0000000..fadfe63
--- /dev/null
+++ b/packages/SystemUI/res/drawable/brightness_mirror_background.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/system_primary_color" />
+    <corners
+        android:topLeftRadius="@dimen/notification_material_rounded_rect_radius"
+        android:topRightRadius="@dimen/notification_material_rounded_rect_radius"
+        android:bottomLeftRadius="@dimen/notification_material_rounded_rect_radius"
+        android:bottomRightRadius="@dimen/notification_material_rounded_rect_radius"/>
+</shape>
diff --git a/packages/SystemUI/res/drawable/ic_brightness_thumb.xml b/packages/SystemUI/res/drawable/ic_brightness_thumb.xml
new file mode 100644
index 0000000..dc978fe
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_brightness_thumb.xml
@@ -0,0 +1,27 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="28.0dp"
+        android:height="28.0dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="m18.250000,12.000000a6.250000,6.250000 0.000000,1.000000 1.000000,-12.500000 0.000000,6.250000 6.250000,0.000000 1.000000,1.000000 12.500000,0.000000z"
+        android:fillColor="@color/system_primary_color" />
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M20.000000,8.700000L20.000000,4.000000L15.300000,4.000000L12.000000,0.700000 8.700000,4.000000L4.000000,4.000000L4.000000,8.700000L0.700000,12.000000 4.000000,15.300000L4.000000,20.000000L8.700000,20.000000L12.000000,23.299999 15.300000,20.000000L20.000000,20.000000L20.000000,15.300000L23.299999,12.000000 20.000000,8.700000zM12.000000,18.000000C8.700000,18.000000 6.000000,15.300000 6.000000,12.000000 6.000000,8.700000 8.700000,6.000000 12.000000,6.000000c3.300000,0.000000 6.000000,2.700000 6.000000,6.000000 0.000000,3.300000 -2.700000,6.000000 -6.000000,6.000000zM12.000000,8.000000c-2.200000,0.000000 -4.000000,1.800000 -4.000000,4.000000 0.000000,2.200000 1.800000,4.000000 4.000000,4.000000 2.200000,0.000000 4.000000,-1.800000 4.000000,-4.000000 0.000000,-2.200000 -1.800000,-4.000000 -4.000000,-4.000000z"/>
+</vector>
diff --git a/packages/SystemUI/res/drawable/recents_task_view_header_bg.xml b/packages/SystemUI/res/drawable/recents_task_view_header_bg.xml
new file mode 100644
index 0000000..745af33
--- /dev/null
+++ b/packages/SystemUI/res/drawable/recents_task_view_header_bg.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:attr/colorControlHighlight">
+    <item android:drawable="@android:color/transparent" />
+</ripple>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/trust_circle.xml b/packages/SystemUI/res/drawable/trust_circle.xml
index 89f4a0b..56fc62e 100644
--- a/packages/SystemUI/res/drawable/trust_circle.xml
+++ b/packages/SystemUI/res/drawable/trust_circle.xml
@@ -17,6 +17,6 @@
   -->
 
 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ring"
-        android:innerRadius="24dp" android:thickness="1dp">
-    <solid android:color="#66ffffff" />
+        android:innerRadius="22dp" android:thickness="2dp">
+    <solid android:color="#4cffffff" />
 </shape>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/keyguard_bottom_area.xml b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
index fc6e9ae..8e9b501 100644
--- a/packages/SystemUI/res/layout/keyguard_bottom_area.xml
+++ b/packages/SystemUI/res/layout/keyguard_bottom_area.xml
@@ -27,7 +27,7 @@
         android:id="@+id/keyguard_indication_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="70dp"
+        android:layout_marginBottom="@dimen/keyguard_indication_margin_bottom"
         android:layout_gravity="bottom|center_horizontal"
         android:textStyle="italic"
         android:textColor="#ffffff"
diff --git a/packages/SystemUI/res/layout/keyguard_status_bar.xml b/packages/SystemUI/res/layout/keyguard_status_bar.xml
index d4b1214..fcc0f4a 100644
--- a/packages/SystemUI/res/layout/keyguard_status_bar.xml
+++ b/packages/SystemUI/res/layout/keyguard_status_bar.xml
@@ -60,7 +60,7 @@
             android:paddingEnd="@dimen/battery_level_padding_end"
             android:textColor="#ffffff"
             android:visibility="gone"
-            android:textSize="12sp"/>
+            android:textSize="@dimen/battery_level_text_size"/>
     </LinearLayout>
 
     <com.android.keyguard.CarrierText
diff --git a/packages/SystemUI/res/layout/qs_detail_header.xml b/packages/SystemUI/res/layout/qs_detail_header.xml
index fcbb32c..f3f1918 100644
--- a/packages/SystemUI/res/layout/qs_detail_header.xml
+++ b/packages/SystemUI/res/layout/qs_detail_header.xml
@@ -15,7 +15,10 @@
      limitations under the License.
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/BrightnessDialogContainer"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_alignParentBottom="true"
+    android:padding="@dimen/qs_panel_padding"
     android:background="@drawable/btn_borderless_rect" >
 
     <TextView
diff --git a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
index 58547b9..f776a87 100644
--- a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
+++ b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
@@ -15,8 +15,9 @@
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
-    style="@style/BrightnessDialogContainer"
-    android:clickable="true">
+    android:paddingLeft="16dp"
+    android:paddingRight="16dp"
+    style="@style/BrightnessDialogContainer">
 
     <ImageView
         android:id="@+id/brightness_icon"
@@ -25,7 +26,8 @@
         android:layout_gravity="center_vertical"
         android:layout_marginEnd="8dp"
         android:src="@drawable/ic_qs_brightness_auto_off"
-        android:contentDescription="@null" />
+        android:contentDescription="@null"
+        android:visibility="gone" />
 
     <com.android.systemui.settings.ToggleSlider
         android:id="@+id/brightness_slider"
diff --git a/packages/SystemUI/res/layout/recents_task_view.xml b/packages/SystemUI/res/layout/recents_task_view.xml
index 4a5fffe..828065b 100644
--- a/packages/SystemUI/res/layout/recents_task_view.xml
+++ b/packages/SystemUI/res/layout/recents_task_view.xml
@@ -17,7 +17,8 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent" 
     android:layout_height="match_parent"
-    android:focusable="true">
+    android:focusable="true"
+    android:background="#FFffffff">
     <com.android.systemui.recents.views.TaskViewThumbnail
         android:id="@+id/task_view_thumbnail"
         android:layout_width="match_parent"
@@ -26,8 +27,7 @@
         android:id="@+id/task_view_bar"
         android:layout_width="match_parent"
         android:layout_height="@dimen/recents_task_bar_height"
-        android:layout_gravity="top|center_horizontal"
-        android:background="@color/recents_task_bar_default_background_color">
+        android:layout_gravity="top|center_horizontal">
         <com.android.systemui.recents.views.FixedSizeImageView
             android:id="@+id/application_icon"
             android:layout_width="@dimen/recents_task_view_application_icon_size"
@@ -69,7 +69,6 @@
         android:layout_gravity="bottom|right"
         android:layout_marginRight="15dp"
         android:layout_marginBottom="15dp"
-        android:translationZ="50dp"
         android:contentDescription="@string/recents_lock_to_app_button_label"
         android:background="@drawable/recents_lock_to_task_button_bg">
         <ImageView
diff --git a/packages/SystemUI/res/layout/split_clock_view.xml b/packages/SystemUI/res/layout/split_clock_view.xml
index d9ba35d..87b7051 100644
--- a/packages/SystemUI/res/layout/split_clock_view.xml
+++ b/packages/SystemUI/res/layout/split_clock_view.xml
@@ -34,5 +34,15 @@
         android:layout_height="wrap_content"
         android:singleLine="true"
         android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock"
+        android:textSize="@dimen/qs_time_collapsed_size"
+        />
+
+    <!-- Empty text view so we have the same height when expanded/collapsed-->
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:visibility="invisible"
+        android:singleLine="true"
+        android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock"
         />
 </com.android.systemui.statusbar.policy.SplitClockView>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml
index 4eab9c7..cc449c5 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded.xml
@@ -50,6 +50,10 @@
         android:visibility="gone"
         />
 
+    <include
+        layout="@layout/keyguard_bottom_area"
+        android:visibility="gone" />
+
     <com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer
         android:layout_width="match_parent"
         android:layout_height="match_parent"
@@ -115,10 +119,6 @@
 
     <include layout="@layout/status_bar_expanded_header" />
 
-    <include
-        layout="@layout/keyguard_bottom_area"
-        android:visibility="gone" />
-
     <com.android.systemui.statusbar.AlphaOptimizedView
         android:id="@+id/qs_navbar_scrim"
         android:layout_height="96dp"
diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml
index 21d8457..1226fc5 100644
--- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml
+++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml
@@ -51,7 +51,7 @@
         android:layout_height="@dimen/status_bar_header_height"
         android:background="@drawable/ripple_drawable"
         android:src="@drawable/ic_settings"
-        android:contentDescription="@string/accessibility_desc_quick_settings"/>
+        android:contentDescription="@string/accessibility_desc_settings"/>
 
     <LinearLayout android:id="@+id/system_icons_super_container"
         android:layout_width="wrap_content"
@@ -72,7 +72,7 @@
             android:layout_marginStart="@dimen/header_battery_margin_expanded"
             android:paddingEnd="@dimen/battery_level_padding_end"
             android:textColor="#ffffff"
-            android:textSize="12sp"/>
+            android:textSize="@dimen/battery_level_text_size"/>
     </LinearLayout>
 
     <TextView
diff --git a/packages/SystemUI/res/layout/status_bar_toggle_slider.xml b/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
index 1928506..a5bf68e 100644
--- a/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
+++ b/packages/SystemUI/res/layout/status_bar_toggle_slider.xml
@@ -41,6 +41,11 @@
         android:layout_alignParentEnd="true"
         android:paddingStart="20dp"
         android:paddingEnd="20dp"
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp"
+        android:thumb="@drawable/ic_brightness_thumb"
+        android:splitTrack="false"
+        android:contentDescription="@string/accessibility_brightness"
         />
     <TextView
         android:id="@+id/label"
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index ac998f6..365a7d2 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -26,6 +26,22 @@
     android:fitsSystemWindows="true"
     android:descendantFocusability="afterDescendants">
 
+    <FrameLayout android:id="@+id/brightness_mirror"
+            android:layout_width="@dimen/notification_panel_width"
+            android:layout_height="wrap_content"
+            android:layout_gravity="@integer/notification_panel_layout_gravity"
+            android:paddingLeft="@dimen/notification_side_padding"
+            android:paddingRight="@dimen/notification_side_padding"
+            android:visibility="gone">
+        <FrameLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:elevation="2dp"
+                android:background="@drawable/brightness_mirror_background">
+            <include layout="@layout/quick_settings_brightness_dialog" />
+        </FrameLayout>
+    </FrameLayout>
+
     <com.android.systemui.statusbar.AlphaOptimizedFrameLayout
             android:id="@+id/backdrop"
             android:layout_width="match_parent"
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index 4c43069..a514324 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Maak skoon"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Verwyder uit lys"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Program Info"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Geen onlangse programme nie"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Maak onlangse programme toe"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 onlangse program"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Laai met USB word nie gesteun nie."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Gebruik slegs die laaier wat verskaf is."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Instellings"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Skakel batterybespaarder aan?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Skakel aan"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Skakel batterybespaarder aan"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Instellings"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegtuigmodus"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Terug"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Tuis"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Kieslys"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Onlangse programme"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Deursoek"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Foon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Kennisgewing is toegemaak."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Kennisgewingskerm."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Vinnige instellings."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Onlangse programme."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellings"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobiele <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Maak paneel toe"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Meer tyd"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Minder tyd"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G-data is af"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-data is af"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Sellulêre data is af"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Ligging deur GPS gestel"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Liggingversoeke aktief"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Verwyder alle kennisgewings."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Programinligting"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Instellings"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Die skerm sal outomaties draai."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skerm is in landskapsoriëntasie gesluit."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skerm is in portretoriëntasie gesluit."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> gebruik"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g>-limiet"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> waarskuwing"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Geen onlangse programme nie"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Programinligting"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"sluit na program"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"soek"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Jy sal nie jou wekker om <xliff:g id="ALARM_TIME">%s</xliff:g> hoor nie"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Minder dringende kennisgewings hieronder"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tik weer om oop te maak"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Sleep op om te ontsluit"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Sleep regs vir foon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Sleep links vir kamera"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteit"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alles"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laai tans (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tot vol)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Voeg gebruiker by"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nuwe gebruiker"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gas"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ gas"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Laat gas uitgaan"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Verwyder gas"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Verlaat gassessie?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"As die gassessie verlaat word, sal plaaslike data verwyder word."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Welkom terug, gas!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Wil jy \'n nuwe sessie begin?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nee, dankie"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Een minuut lank"</item>
     <item quantity="other" msgid="6924190729213550991">"%d minute lank"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d uur lank"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Batteryspaarder is aan"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Verminder werkverrigting en agtergronddata"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Skakel batterybespaarder af"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Inhoud versteek"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> sal alles begin vasvang wat op jou skerm gewys word."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Vee alles uit"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Begin nou"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Geen kennisgewings nie"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Toestel kan gemonitor word"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Netwerk kan dalk gemonitor word"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Toestelmonitering"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Netwerkmonitering"</string>
+    <string name="open_app" msgid="4011771120339160755">"Maak program oop"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Ontkoppel VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Hierdie toestel word bestuur deur:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJou administrateur kan jou toestel en netwerkaktiwiteit monitor, insluitend e-posse, programme en veilige webwerwe.\n\nKontak jou administrateur vir meer inligting."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Jy het \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" toestemming gegee om \'n VPN-verbinding op te stel.\n\nHierdie program kan jou toestel en netwerkaktiwiteit monitor, insluitend e-posse, programme en veilige webwerwe."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Jy is aan \'n VPN gekoppel (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nJou VPN-diensverskaffer kan jou toestel en netwerkaktiwiteit monitor, insluitend e-posse, programme en veilige webwerwe."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Hierdie toestel word bestuur deur:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJou administrateur kan jou netwerkaktiwiteit monitor, insluitend e-posse, programme en veilige webwerwe. Kontak jou administrateur vir meer inligting.\n\nJy het ook \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" toestemming gegee om \'n VPN-verbinding op te stel. Die program kan ook jou netwerkaktiwiteit monitor."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Hierdie toestel word bestuur deur:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJou administrateur is in staat om jou netwerkaktiwiteit te monitor, insluitend e-posse, programme en veilige webwerwe. Kontak jou administrateur vir meer inligting.\n\nJy is ook aan \'n VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") gekoppel. Jou VPN-diensverskaffer kan ook jou netwerkaktiwiteit monitor."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index faf8284..bbc6613 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ምንም የቅርብ ጊዜ ትግበራዎች የሉም"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"የቅርብ ጊዜ መተግበሪያዎችን ሰርዝ"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 የቅርብ ጊዜ መተግበሪያ"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"የአውሮፕላን ሁነታ"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ተመለስ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"መነሻ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"ምናሌ"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"የቅርብ ጊዜ  መተግበሪያዎች"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ፈልግ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ካሜራ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ስልክ"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ማሳወቂያ ተወግዷል።"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"የማሳወቂያ ጥላ።"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ፈጣን ቅንብሮች።"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"የቅርብ ጊዜ መተግበሪያዎች።"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ቅንብሮች"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ተጠቃሚ <xliff:g id="USER">%s</xliff:g>።"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>። <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ተንቀሳቃሽ ስልክ <xliff:g id="SIGNAL">%1$s</xliff:g>። <xliff:g id="TYPE">%2$s</xliff:g>። <xliff:g id="NETWORK">%3$s</xliff:g>።"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"ፓነል ዝጋ"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"ተጨማሪ ጊዜ"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"ያነሰ ጊዜ"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2ጂ-3ጂ ውሂብ ጠፍቷል"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4ጂ ውሂብ ጠፍቷል"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"የተንቀሳቃሽ ስልክ ውሂብ ጠፍቷል"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"የመተግበሪያ መረጃ"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ቅንብሮች"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"የ<xliff:g id="DATA_LIMIT">%s</xliff:g> ማስጠንቀቂያ"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ምንም የቅርብ ጊዜ መተግበሪያዎች የሉም"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"የመተግበሪያ መረጃ"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"መተግበሪያ-ጋር-ቆልፍ"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ፈልግ"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"በ<xliff:g id="ALARM_TIME">%s</xliff:g> ያለውን ማንቂያ ደውልዎን አይሰሙትም"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"በጣም አስቸካይ ያልሆኑ ማሳወቂያዎች ከታች"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"ለመክፈት ዳግም መታ ያድርጉ"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"ለማስከፈት ወደ ላይ ያንሸራትቱ"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ለስልክ ወደቀኝ ያንሸራትቱ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ለካሜራ ወደግራ ያንሸራትቱ"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ቅድሚያ"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ሁሉም"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ሃይል በመሙላት ላይ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> እስከሚሞላ ድረስ)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ እንግዳ"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"እንግዳ ያስወጡ"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"እንግዳ አስወግድ"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ከእንግዳ ክፍለ ጊዜው እየወጡ ነው?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"ከእንግዳ ክፍለ-ጊዜ መውጣት አካባቢያዊ ውሂብ ያስወግዳል።"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"እንኳን በደህና ተመለሱ እንግዳ!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"አዲስ ክፍለ-ጊዜ መጀመር ይፈልጋሉ?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"አዎ"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"አይ፣ አመሰግናለሁ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ለአንድ ደቂቃ"</item>
     <item quantity="other" msgid="6924190729213550991">"ለ%d ደቂቃዎች"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"ለ%d ሰዓቶች"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"የባትሪ ኃይል ቆጣቢ በርቷል"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"አፈጻጸምን እና የጀርባ ውሂብ ይቀንሳል"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ባትሪ ቆጣቢን አጥፋ"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"ይዘቶች ተደብቀዋል"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> በማያ ገጽዎ ላይ የታየውን ነገር በሙሉ ማንሳት ይጀምራል።"</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"መሣሪያው ክትትል የሚደረግበት ሊሆን ይችላል"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"አውታረ መረብ በክትትል እየተደረገበት ሊሆን ይችላል"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"የመሣሪያ ክትትል"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"የአውታረ መረብ ክትትል"</string>
+    <string name="open_app" msgid="4011771120339160755">"መተግበሪያን ክፈት"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"የVPN ግንኙነት አቋርጥ"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ይህ መሣሪያ የሚተዳደረው በ፦\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"«<xliff:g id="APPLICATION">%1$s</xliff:g>» አንድ የVPN ግንኙነት እንዲያዋቅር ፍቃድ ሰጥተዋቸዋል።\n\nይህ መተግበሪያ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"ከአንድ VPN («<xliff:g id="APPLICATION">%1$s</xliff:g>») ጋር ተገናኝተዋል።\n\nየእርስዎ VPN አገልግሎት አቅራቢ መሣሪያዎን እና ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ይህ መሣሪያ የሚተዳደረው በ፦\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል። ተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።\n\nእንዲሁም፣ «<xliff:g id="APPLICATION">%2$s</xliff:g>» አንድ የVPN ግንኙነት እንዲያዋቅር ፍቃድ ሰጥተዋቸዋል። ይህ መተግበሪያም የአውታረ መረብ እንቅስቃሴ መከታተል ይችላል።"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ይህ መሣሪያ የሚተዳደረው በ፦\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል። ተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።\n\nእንዲሁም ከአንድ VPN («<xliff:g id="APPLICATION">%2$s</xliff:g>») ጋር ተገናኝተዋል። የእርስዎ የVPN አገልግሎት አቅራቢዎም የአውታረ መረብ እንቅስቃሴ መከታተል ይችላል።"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 66f51d7..468867c 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ليس هناك تطبيقات حديثة"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"إزالة التطبيقات الحديثة"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"تطبيق حديث واحد"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"وضع الطائرة"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"رجوع"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"الرئيسية"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"القائمة"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"التطبيقات الحديثة"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"بحث"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"الكاميرا"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"الهاتف"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"تم تجاهل الإشعار."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"مركز الإشعارات."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"الإعدادات السريعة."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"التطبيقات الحديثة"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"الإعدادات"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"المستخدم <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"الجوال <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"إغلاق اللوحة"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"وقت أكثر"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"وقت أقل"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2-3 غيغابايت من البيانات المعطلة"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4 غيغابايت من البيانات المعطلة"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"البيانات الخلوية معطلة"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"معلومات التطبيق"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"الإعدادات"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"تحذير <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ليست هناك تطبيقات حديثة"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"معلومات التطبيق"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"تقييد بالتطبيق"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"بحث"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"لن تسمع المنبهات في <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"الإشعارات الأقل إلحاحًا أدناه"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"انقر مرة أخرى للفتح"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"مرر سريعًا لأعلى لإلغاء القفل"</string>
     <string name="phone_hint" msgid="3101468054914424646">"مرر سريعًا إلى اليسار لفتح الهاتف"</string>
     <string name="camera_hint" msgid="5241441720959174226">"مرر سريعًا إلى اليمين لفتح الكاميرا"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"الأولوية"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"الكل"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"جارٍ الشحن (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> حتى الامتلاء)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ مدعو"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"الخروج من وضع الضيف"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"إزالة جلسة الضيف"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"هل تريد الخروج من جلسة الضيف؟"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"سيؤدي الخروج من جلسة الضيف إلى إزالة البيانات المحلية."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"مرحبًا بك مجددًا في جلسة الضيف"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"هل تريد بدء جلسة جديدة؟"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"نعم"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"لا، شكرًا"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"لمدة دقيقة واحدة"</item>
     <item quantity="other" msgid="6924190729213550991">"‏لمدة %d من الدقائق"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"‏لمدة %d من الساعات"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"وضع توفير الطاقة قيد التشغيل"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"لخفض مستوى الأداء وبيانات الخلفية"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"إيقاف توفير شحن البطارية"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"المحتويات مخفية"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> سيبدأ التقاط كل شيء يتم عرضه على الشاشة."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ربما تتم مراقبة الجهاز"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"قد تكون الشبكة خاضعة للمراقبة"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"مراقبة الأجهزة"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"مراقبة الشبكات"</string>
+    <string name="open_app" msgid="4011771120339160755">"فتح التطبيق"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"‏قطع الاتصال بشبكة VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"تتم إدارة هذا الجهاز عن طريق:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nيمكن للمشرف مراقبة جهازك ونشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللحصول على المزيد من المعلومات، اتصل بالمشرف."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"لقد منحت \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" إذنًا لإعداد اتصال عبر شبكة ظاهرية خاصة.\n\nيمكن لهذا التطبيق مراقبة جهازك ونشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"أنت متصل بشبكة ظاهرية خاصة (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nيمكن لموفر خدمة الشبكة الظاهرية الخاصة مراقبة جهازك ونشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"هذا الجهاز تتم إدارته بواسطة:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nيمكن للمشرف مراقبة نشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة. للحصول على مزيد من المعلومات اتصل بالمشرف.\n\nوكذلك، فإنك منحت \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" إذنًا لإعداد الاتصال بالشبكة الظاهرية الخاصة. ويمكن لهذا التطبيق مراقبة نشاط الشبكة أيضًا."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"هذا الجهاز تتم إدارته بواسطة:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nيمكن للمشرف مراقبة نشاط الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة. للحصول على مزيد من المعلومات اتصل بالمشرف.\n\nوكذلك، فإنك متصل بالشبكة الظاهرية الخاصة (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). ويمكن لمزوّد خدمة الشبكة الظاهرية الخاصة مراقبة نشاط الشبكة أيضًا."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 9382e02..4022c80 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Няма скорошни приложения"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Отхвърляне на скорошните приложения"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 скорошно приложение"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Самолетен режим"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Начало"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Меню"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Скорошни приложения"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Търсене"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Известието е отхвърлено."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Падащ панел с известия."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Бързи настройки."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Скорошни приложения."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Потребител: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобилно устройство: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Затваряне на панела"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Повече време"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"По-малко време"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Данните от 2G – 3G са изключени"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Данните от 4G са изключени"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Мобилните данни са изключени"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Информация за приложението"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Настройки"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Предупреждение: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Няма скорошни приложения"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информация за приложението"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"заключване в приложението"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"търсене"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Няма да чуете будилника си в <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Ппоказване на по-малко спешните известия по-долу"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Докоснете отново, за да отворите"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Прекарайте пръст нагоре, за да отключите"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Прекарайте пръст надясно, за да използвате телефона"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Прекарайте пръст наляво, за да включите камерата"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Всички"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарежда се (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до пълно зареждане)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ гост"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Изход от сесията като гост"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Премахване на госта"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Да се излезе ли от сесията като гост?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Излизането от сесията като гост ще премахне локалните данни."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Добре дошли отново в сесията като гост!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Искате ли да започнете нова сесия?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Да"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Не, благодаря"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"За една минута"</item>
     <item quantity="other" msgid="6924190729213550991">"За %d минути"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"За %d часа"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Режимът за запазване на батерията е включен"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Намалява ефективността и данните на заден план"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Изключване на режима за запазване на батерията"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Скрито съдържание"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ще започне да заснема всичко, което се показва на екрана ви."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Устройството може да се наблюдава"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Мрежата може да се наблюдава"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Наблюдение на устройството"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Наблюдение на мрежата"</string>
+    <string name="open_app" msgid="4011771120339160755">"Отваряне на приложението"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Прекратяване на връзката с VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Това устройство се управлява от:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистраторът ви може да го наблюдава, както и активността ви в мрежата, включително имейлите, приложенията и защитените уебсайтове.\n\nЗа повече информация се свържете с него."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Дадохте на „<xliff:g id="APPLICATION">%1$s</xliff:g>“ разрешение да настрои връзка с виртуална частна мрежа (VPN).\n\nТова приложение може да наблюдава устройството ви и активността ви в мрежата, включително имейлите, приложенията и защитените уебсайтове."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Свързани сте с виртуална частна мрежа („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nДоставчикът ви на услуги за VPN може да наблюдава устройството ви и активността ви в мрежата, включително имейлите, приложенията и защитените уебсайтове."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"У-вото се управлява от:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистраторът ви може да наблюдава активн. ви в мрежата, вкл. имейлите, прилож. и защитените уебсайтове. За повече информация се свържете с него.\n\nСъщо така дадохте на „<xliff:g id="APPLICATION">%2$s</xliff:g>“ разрешение да настрои връзка с вирт. частна мрежа (VPN). Прилож. може да наблюдава и активн. в мрежата."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"У-вото се управлява от:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистраторът ви може да наблюдава активн. ви в мрежата, вкл. имейлите, прилож. и защитените уебсайтове. За повече информация се свържете с него.\n\nСъщо така сте свързани с вирт. частна мрежа (VPN) („<xliff:g id="APPLICATION">%2$s</xliff:g>“). Доставчикът ви на услуги за VPN може да наблюдава и активн. ви в мрежата."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml
index 4015eab..12970bb 100644
--- a/packages/SystemUI/res/values-bn-rBD/strings.xml
+++ b/packages/SystemUI/res/values-bn-rBD/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"কোনো সাম্প্রতিক অ্যাপ্লিকেশান নেই"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"সাম্প্রতিক অ্যাপ্লিকেশানগুলি খারিজ করুন"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"১টি সাম্প্রতিক অ্যাপ্লিকেশান"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"বিমান মোড"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ফিরুন"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"হোম"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"মেনু"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"সাম্প্রতিক অ্যাপ্লিকেশানগুলি"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"অনুসন্ধান করুন"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ক্যামেরা"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ফোন"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"বিজ্ঞপ্তি খারিজ করা হয়েছে৷"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"বিজ্ঞপ্তি শেড৷"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"দ্রুত সেটিংস৷"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"সাম্প্রতিক অ্যাপ্লিকেশানগুলি৷"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"সেটিংস"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ব্যবহারকারী <xliff:g id="USER">%s</xliff:g>৷"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>৷ <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"মোবাইল <xliff:g id="SIGNAL">%1$s</xliff:g>৷ <xliff:g id="TYPE">%2$s</xliff:g>৷ <xliff:g id="NETWORK">%3$s</xliff:g>৷"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"প্যানেল বন্ধ করুন"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"বেশি সময়"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"কম সময়"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G ডেটা বন্ধ"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G ডেটা বন্ধ"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"সেলুলার ডেটা বন্ধ"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"অ্যাপ্লিকেশানের তথ্য"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"সেটিংস"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সতর্কতা"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"কোনো সাম্প্রতিক অ্যাপ্লিকেশান নেই"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"অ্যাপ্লিকেশানের তথ্য"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"অ্যাপ্লিকেশানে লক করুন"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"অনুসন্ধান"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> বাজলে আপনি অ্যালার্ম শুনতে পাবেন না"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"নিচে অপেক্ষাকৃত কম জরুরী বিজ্ঞপ্তিগুলি"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"খোলার জন্য আবার আলতো চাপুন"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"আনলক করতে উপরের দিকে সোয়াইপ করুন"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ফোনের জন্য ডানদিকে সোয়াইপ করুন"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ক্যামেরার জন্য ডানদিকে সোয়াইপ করুন"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"অগ্রাধিকার"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"সমস্ত"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"চার্জ হচ্ছে (পূর্ণ হতে <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> সময় বাকি)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ অতিথি"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"অতিথির প্রস্থান"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"অতিথি সরান"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"অতিথি সেশন ত্যাগ করছেন?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"অতিথি সেশন থেকে প্রস্থান করা হলে স্থানীয় ডেটা মুছে যাবে।"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"অতিথি, আপনি ফিরে আসায় আপনাকে স্বাগত!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"আপনি কি একটি নতুন সেশন শুরু করতে চান?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"হ্যাঁ"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"না, থাক"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"এক মিনিটের জন্য"</item>
     <item quantity="other" msgid="6924190729213550991">"%d মিনিটের জন্য"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d ঘন্টার জন্য"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ব্যাটারি সেভার চালু রয়েছে"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"কার্য-সম্পাদনা ও পশ্চাদপট ডেটাকে কমিয়ে দেয়"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ব্যাটারি সঞ্চয়কারী বন্ধ করুন"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"লুকানো বিষয়বস্তু"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> আপনার স্ক্রীনে দেখানো সব কিছু ক্যাপচার করা শুরু করবে।"</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ডিভাইসটি নিরীক্ষণ করা হতে পারে"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"নেটওয়ার্ক নিরীক্ষণ করা হতে পারে"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ডিভাইস নিরীক্ষণ"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"নেটওয়ার্ক নিরীক্ষণ"</string>
+    <string name="open_app" msgid="4011771120339160755">"অ্যাপ্লিকেশান খুলুন"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN এর সংযোগ বিচ্ছিন্ন করুন"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ডিভাইসটি পরিচালনা করছে:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে পারেন।\n\nআরো তথ্যের জন্য আপনার প্রশাসকের সঙ্গে যোগাযোগ করুন।"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"আপনি \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"-কে একটি VPN সংযোগ সেট আপ করার অনুমতি দিয়েছেন।\n\nএই অ্যাপ্লিকেশান ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে পারে।"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"আপনি একটি VPN (“<xliff:g id="APPLICATION">%1$s</xliff:g>”) এর সঙ্গে সংযুক্ত আছেন।\n\nআপনার VPN পরিষেবা প্রদানকারী ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে পারেন।"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ডিভাইসটি পরিচালনা করছে:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে সক্ষম। আরো তথ্যের জন্য, আপনার প্রশাসকের সঙ্গে যোগাযোগ করুন।\n\nআপনি \"<xliff:g id="APPLICATION">%2$s</xliff:g>\"-কে একটি VPN সংযোগ সেট আপ করার অনুমতি দিয়েছেন। এই অ্যাপ্লিকেশান নেটওয়ার্ক ক্রিয়াকলাপও নিরীক্ষণ করতে পারে।"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ডিভাইসটি পরিচালনা করছে:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে সক্ষম। আরো তথ্যের জন্য, আপনার প্রশাসকের সঙ্গে যোগাযোগ করুন।\n\nএছাড়াও, আপনি একটি VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") এ সংযুক্ত আছেন। আপনার VPN পরিষেবা প্রদানকারী নেটওয়ার্ক ক্রিয়াকলাপও নিরীক্ষণ করতে পারে।"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index ee55940..e8d8e03 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Esborra"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Elimina de la llista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informació de l\'aplicació"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"No hi ha aplicacions recents"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Omet les aplicacions recents"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Una aplicació recent"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"La càrrega per USB no és compatible."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Fes servir només el carregador proporcionat amb el dispositiu."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Configuració"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vols activar l\'estalvi de bateria?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activa"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activa l\'estalvi de bateria"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuració"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode d\'avió"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Enrere"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Pàgina d\'inici"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menú"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicacions recents"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Càmera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telèfon"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificació omesa."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Àrea de notificacions"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuració ràpida."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicacions recents."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuració"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuari <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mòbil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Tanca el tauler."</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Més temps"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menys temps"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"L\'ús de dades 2G-3G està desactivat"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"L\'ús de dades 4G està desactivat"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Les dades mòbils estan desactivades"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"S\'ha establert la ubicació per GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Sol·licituds d\'ubicació actives"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Esborra totes les notificacions."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informació de l\'aplicació"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Configuració"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"La pantalla girarà automàticament."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla està bloquejada en orientació horitzontal."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla està bloquejada en orientació vertical."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Utilitzats: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertiment: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"No hi ha aplicacions recents."</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informació de l\'aplicació"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"bloqueig d\'aplicació"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"cerca"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"No sentiràs l\'alarma a les <xliff:g id="ALARM_TIME">%s</xliff:g>."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificacions menys urgents a continuació"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Torna a tocar per obrir-la."</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Fes lliscar el dit cap amunt per desbloquejar el teclat."</string>
     <string name="phone_hint" msgid="3101468054914424646">"Fes lliscar el dit cap a la dreta per obrir el telèfon."</string>
     <string name="camera_hint" msgid="5241441720959174226">"Fes lliscar el dit cap a l\'esquerra per obrir la càmera."</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritàries"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Totes"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregant (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> per completar la càrrega)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Afegeix un usuari"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Usuari nou"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Convidat"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Convidat"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Surt del mode de convidat"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Suprimeix l\'usuari"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Vols sortir de la sessió de convidat?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Si surts de la sessió de convidat, se suprimiran dades locals."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Benvingut de nou, convidat."</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vols iniciar una sessió nova?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sí"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, gràcies"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Durant un minut"</item>
     <item quantity="other" msgid="6924190729213550991">"Durant %d minuts"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Durant %d hores"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"La funció Estalvi de bateria està activada."</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Redueix el rendiment i l\'ús de les dades en segon pla."</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desactiva l\'estalvi de bateria"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contingut amagat"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> començarà a enregistrar tot el que es mostri a la pantalla."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Esborra-ho tot"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Comença ara"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Cap notificació"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"És possible que el dispositiu estigui supervisat."</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"És possible que la xarxa estigui supervisada."</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Supervisió del dispositiu"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Supervisió de la xarxa"</string>
+    <string name="open_app" msgid="4011771120339160755">"Obre l\'aplicació"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desconnecta la VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Aquest dispositiu està gestionar per:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nL\'administrador pot supervisar el dispositiu i l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nPer obtenir més informació, contacta amb el teu administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Has donat permís a \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" per configurar una connexió de VPN.\n\nAquesta aplicació pot supervisar el dispositiu i l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Estàs connectat a una VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nEl proveïdor de serveis de VPN pot supervisar el dispositiu i l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Administrador del dispositiu:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nL\'administrador pot supervisar la teva activitat de xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs. Per obtenir més informació, contacta amb l\'administrador.\n\nA més, has donat permís a \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" per configurar una connexió VPN. Aquesta aplicació també pot supervisar l\'activitat de xarxa."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Administrador del dispositiu:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nL\'administrador pot supervisar la teva activitat de xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs. Per obtenir més informació, contacta amb l\'administrador.\n\nA més, estàs connectat a una VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). El proveïdor del servei VPN també pot supervisar l\'activitat de xarxa."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index 5280acd..bd7e77b 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Vymazat"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Odebrat ze seznamu"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informace o aplikaci"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Žádné nové aplikace"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zavřít nové aplikace"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 nová aplikace"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Nabíjení přes USB není podporováno."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Používejte pouze nabíječku, která je součástí balení."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Nastavení"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Zapnout úsporu baterie?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Zapnout"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Zapnout úsporu baterie"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavení"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Režim V letadle"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Zpět"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Domů"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nové aplikace"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hledat"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Oznámení je zavřeno."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Panel oznámení."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Rychlé nastavení."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Naposledy použité aplikace"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavení"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uživatel <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Zavřít panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Delší doba"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Kratší doba"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Data 2G a 3G jsou vypnuta"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Data 4G jsou vypnuta"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobilní data jsou vypnuta"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Poloha nastavena pomocí systému GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktivní žádosti o polohu"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Vymazat všechna oznámení."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informace o aplikaci"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Nastavení"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Obrazovka se automaticky otočí."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Obrazovka je uzamčena v orientaci na šířku."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Obrazovka je uzamčena v orientaci na výšku."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Využito: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozornění při <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Žádné nedávné aplikace"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informace o aplikaci"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"uzamknout v aplikaci"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"vyhledat"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Neuslyšíte budík v <xliff:g id="ALARM_TIME">%s</xliff:g>."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Méně urgentní oznámení níže"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Oznámení otevřete opětovným klepnutím"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Zařízení odemknete přejetím prstem nahoru"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefon otevřete přejetím prstem vpravo."</string>
     <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otevřete přejetím prstem vlevo."</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritní"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Vše"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíjení (plně nabito za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Přidat uživatele"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nový uživatel"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Host"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Přidat hosta"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Ukončit relaci hosta"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Odstranit hosta"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Ukončit relaci hosta?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Po ukončení relace hosta budou odstraněna místní data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Vítejte zpět v relaci hosta!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Chcete zahájit novou relaci?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ano"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ne, děkuji"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Na jednu minutu"</item>
     <item quantity="other" msgid="6924190729213550991">"Na %d min"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Na %d h"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Režim Úspora baterie je zapnutý."</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Omezuje výkon a data na pozadí"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Vypnout úsporu baterie"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Skrytý obsah"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Aplikace <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> začne zaznamenávat vše, co je zobrazeno na obrazovce."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Smazat vše"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Spustit"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Žádná oznámení"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Zařízení může být sledováno"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Síť může být sledována"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Sledování zařízení"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Sledování sítě"</string>
+    <string name="open_app" msgid="4011771120339160755">"Spustit aplikaci"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Odpojit VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Toto zařízení je spravováno následující organizací:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávce může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webových stránek.\n\nChcete-li získat další informace, kontaktujte svého správce."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Aplikaci <xliff:g id="APPLICATION">%1$s</xliff:g> jste udělili oprávnění k nastavení připojení VPN.\n\nSprávce může sledovat vaši aktivitu zařízení a aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webových stránek."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Jste připojeni k síti VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nPoskytovatel připojení VPN může sledovat vaši aktivitu zařízení a aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webových stránek."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Toto zařízení je spravováno následující organizací:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávce může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webových stránek. Další informace získáte od svého správce.\n\nNavíc jste aplikaci <xliff:g id="APPLICATION">%2$s</xliff:g> udělili oprávnění k nastavení připojení VPN. Aktivitu v síti může sledovat také tato aplikace."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Toto zařízení je spravováno následující organizací:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávce může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webových stránek. Další informace získáte od svého správce.\n\nNavíc jste připojeni také k síti VPN (<xliff:g id="APPLICATION">%2$s</xliff:g>). Vaši aktivitu v síti může sledovat také poskytovatel připojení VPN."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index 9d3416d..178197b 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ryd"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Fjern fra listen"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Oplysninger om appen"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Der er ingen seneste apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Luk de seneste apps"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 seneste app"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB-opladning understøttes ikke."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Brug kun den oplader, der føler med."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Indstillinger"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vil du aktivere batterisparefunktionen?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aktivér"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktivér batterisparefunktion"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Indstillinger"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flytilstand"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Tilbage"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Startskærm"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Seneste apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Søg"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Underretningen er annulleret."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Underretningspanel."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hurtige indstillinger."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Seneste apps"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Indstillinger"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruger <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Luk panelet"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mere tid"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mindre tid"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G-data er deaktiveret"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-data er deaktiveret"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobildata er deaktiveret"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Placeringen er angivet ved hjælp af GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktive placeringsanmodninger"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Ryd alle underretninger."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Oplysninger om appen"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Indstillinger"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skærmen roterer automatisk."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skærmen er nu låst i liggende retning."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skærmen er nu låst i stående retning."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> brugt"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Grænse: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advarsel ved <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Der er ingen seneste apps"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Oplysninger om applikationen"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Bliv i app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"søg"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Du vil ikke kunne høre din alarm kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre presserende underretninger nedenfor"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tryk igen for at åbne"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Stryg for at låse op"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Stryg til højre for at bruge telefonen"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Stryg til venstre for at åbne kameraet"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Opladning (fuldt opladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Tilføj bruger"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Ny bruger"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gæst"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gæst"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Forlad gæstesession"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Fjern gæst"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Vil du afslutte gæstesessionen?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Når gæstesessionen afsluttes, fjernes lokale data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Velkommen tilbage, gæst!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vil du starte en ny session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nej tak"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"I ét minut"</item>
     <item quantity="other" msgid="6924190729213550991">"I %d minutter"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"I %d timer"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Batteribesparende er slået til"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reducerer ydeevne og baggrundsdata"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Deaktiver batterisparefunktion"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Indholdet er skjult"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vil begynde at optage alt, hvad der vises på din skærm."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Ryd alt"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Start nu"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ingen underretninger"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Enheden kan være overvåget"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Netværket kan være overvåget"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Overvågning af enhed"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Overvågning af netværk"</string>
+    <string name="open_app" msgid="4011771120339160755">"Åbn app"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Afbryd VPN-forbindelse"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Denne enhed administreres af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nDin administrator kan overvåge din enhed og netværksaktivitet, herunder e-mails, apps og sikre websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Du har givet \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" tilladelse til at konfigurere en VPN-forbindelse.\n\nDenne app kan overvåge din netværksaktivitet, herunder e-mails, apps og sikre websites."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Du har forbindelse til et VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nDin VPN-udbyder kan overvåge din enhed og netværksaktivitet, herunder e-mails, apps og sikre websites."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Denne enhed administreres af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nDin administrator kan overvåge din netværksaktivitet, f.eks. e-mails, apps og sikre websites. Kontakt administratoren for at få flere oplysninger.\n\nDu gav også \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" tilladelse til at konfigurere en VPN-forbindelse. Denne app kan også overvåge netværksaktiviteten."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Denne enhed administreres af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nDin administrator kan overvåge din netværksaktivitet, f.eks. e-mails, apps og sikre websites. Kontakt administratoren for at få flere oplysninger.\n\nDu har også forbindelse til et VPN-netværk (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Din VPN-udbyder kan også overvåge netværksaktiviteten."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index 6688c6a..527ac56 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Löschen"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Aus Liste entfernen"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App-Info"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Keine kürzlich geöffneten Apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Kürzlich geöffnete Apps schließen"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 kürzlich geöffnete App"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Laden per USB wird nicht unterstützt."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Verwenden Sie nur das im Lieferumfang enthaltene Ladegerät."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Einstellungen"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Energiesparmodus aktivieren?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aktivieren"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Energiesparmodus aktivieren"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Einstellungen"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WLAN"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugmodus"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Zurück"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Startbildschirm"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menü"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Kürzlich geöffnete Apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Suchen"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonnummer"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Benachrichtigung geschlossen"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Benachrichtigungsleiste"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Schnelleinstellungen"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Kürzlich geöffnete Apps"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Einstellungen"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Nutzer: <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobilfunkverbindung: <xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Fenster schließen"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mehr Zeit"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Weniger Zeit"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G/3G-Daten deaktiviert"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-Daten deaktiviert"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobilfunkdaten deaktiviert"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Standort durch GPS festgelegt"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Standortanfragen aktiv"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Alle Benachrichtigungen löschen"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"App-Details"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Einstellungen"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Bildschirm wird automatisch gedreht."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildschirm bleibt im Querformat."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildschirm bleibt im Hochformat."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> verwendet"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> Datenlimit"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Warnung für <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Keine neuen Apps"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"App-Info"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"App-Verriegelung"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"Suche"</string>
@@ -258,12 +262,13 @@
     <string name="zen_no_interruptions_with_warning" msgid="2522931836819051293">"Unterbrechungsfrei, gilt auch für Alarme"</string>
     <string name="zen_no_interruptions" msgid="7970973750143632592">"Keine Unterbrechungen"</string>
     <string name="zen_important_interruptions" msgid="3477041776609757628">"Nur wichtige Unterbrechungen"</string>
-    <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nächster Alarm: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
-    <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nächster Alarm: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string>
-    <string name="zen_alarm_warning" msgid="6873910860111498041">"Kein Ton für Alarm um <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
+    <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nächster Weckruf: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
+    <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nächster Weckruf: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string>
+    <string name="zen_alarm_warning" msgid="6873910860111498041">"Lautloser Weckruf um <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Weniger dringende Benachrichtigungen unten"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Erneut tippen, um Benachrichtigung zu öffnen"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Zum Entsperren nach oben wischen"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Zum Öffnen des Telefons nach rechts wischen"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Zum Öffnen der Kamera nach links wischen"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Wichtig"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Wird aufgeladen (voll in <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Nutzer hinzufügen"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Neuer Nutzer"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gast"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gast"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Gastmodus beenden"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Gast entfernen"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Gastsitzung beenden?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Wenn Sie die Gastsitzung verlassen, werden alle lokal gespeicherten Daten entfernt."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Willkommen zurück im Gastmodus"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Möchten Sie eine neue Sitzung starten?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nein danke"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Für eine Minute"</item>
     <item quantity="other" msgid="6924190729213550991">"Für %d Minuten"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Für %d Stunden"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Energiesparmodus ist aktiviert"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduzierung der Leistung und Hintergrunddaten"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Energiesparmodus deaktivieren"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Inhalte ausgeblendet"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> nimmt alle auf Ihrem Bildschirm angezeigten Aktivitäten auf."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Alle löschen"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Jetzt starten"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Keine Benachrichtigungen"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Das Gerät wird möglicherweise überwacht."</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Das Netzwerk wird möglicherweise überwacht."</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Geräteüberwachung"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Netzwerküberwachung"</string>
+    <string name="open_app" msgid="4011771120339160755">"App öffnen"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-Verbindung trennen"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Dieses Gerät wird verwaltet von:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIhr Administrator kann Ihr Gerät und Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Sie haben \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" gestattet, eine VPN-Verbindung herzustellen.\n\nDiese App kann Ihr Gerät und Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Sie sind mit einem VPN verbunden: <xliff:g id="APPLICATION">%1$s</xliff:g>.\n\nIhr VPN-Anbieter kann Ihr Gerät und Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Dieses Gerät wird verwaltet von:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIhr Administrator kann Ihre Netzwerkaktivitäten überwachen, darunter E-Mails, Apps und sichere Websites. Mehr erfahren Sie von Ihrem Administrator.\n\nSie haben zudem \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" gestattet, eine VPN-Verbindung herzustellen. Diese App kann auch Ihre Netzwerkaktivitäten überwachen."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Dieses Gerät wird verwaltet von:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIhr Administrator kann Ihre Netzwerkaktivitäten überwachen, einschließlich E-Mails, Apps und sicherer Websites. Mehr erfahren Sie von Ihrem Administrator.\n\nSie sind zudem mit einem VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") verbunden. Ihr VPN-Anbieter kann ebenfalls Ihre Netzwerkaktivitäten überwachen."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index dee321b..49169e6 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Δεν υπάρχουν πρόσφατες εφαρμογές"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Παράβλεψη πρόσφατων εφαρμογών"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 πρόσφατη εφαρμογή"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Λειτουργία πτήσης"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Πίσω"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Αρχική σελίδα"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Μενού"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Πρόσφατες εφαρμογές"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Αναζήτηση"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Φωτογραφική μηχανή"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Τηλέφωνο"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Η ειδοποίηση έχει απορριφθεί."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Πλαίσιο σκίασης ειδοποιήσεων."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Γρήγορες ρυθμίσεις."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Πρόσφατες εφαρμογές"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ρυθμίσεις"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Χρήστης <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Κινητό <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Κλείσιμο παραθύρου"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Περισσότερος χρόνος"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Λιγότερος χρόνος"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Τα δεδομένα 2G-3G είναι ανενεργά"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Τα δεδομένα 4G είναι ανενεργά"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Τα δεδομένα κινητής τηλεφωνίας είναι ανενεργά"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Πληροφορίες εφαρμογής"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Ρυθμίσεις"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Προειδοποίηση για <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Καμία πρόσφατη εφαρμογή"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Πληροφορίες εφαρμογής"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lock to app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"αναζήτηση"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Δεν θα ακούτε το ξυπνητήρι σας στις <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Λιγότερο επείγουσες ειδοποιήσεις παρακάτω"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Πατήστε ξανά για να ανοίξετε"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Σύρετε για να ξεκλειδώσετε"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Σύρετε προς τα δεξιά για το τηλέφωνο"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Σύρετε αριστερά για τη φωτογραφική μηχανή"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Προτεραιότητα"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Όλα"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Φόρτιση (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> για πλήρη φόρτιση)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Επισκέπτης"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Έξοδος επισκέπτη"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Κατάργηση επισκέπτη"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Έξοδος από την περίοδο σύνδεσης επισκέπτη;"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Η έξοδος από την περίοδο σύνδεσης επισκέπτη θα καταργήσει τα τοπικά δεδομένα."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Επισκέπτη , καλώς όρισες ξανά!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Θέλετε να ξεκινήσετε μια νέα περίοδο σύνδεσης;"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ναι"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Όχι, ευχαριστώ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Για ένα λεπτό"</item>
     <item quantity="other" msgid="6924190729213550991">"Για %d λεπτά"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Για %d ώρες"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Η Εξοικονόμηση μπαταρίας είναι ενεργή"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Μειώνει την απόδοση και τα δεδομένα παρασκηνίου"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Απενεργοποίηση εξοικονόμησης μπαταρίας"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Κρυφό περιεχόμενο"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Θα ξεκινήσει η καταγραφή του περιεχομένου που εμφανίζεται στην οθόνη σας από την εφαρμογή <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>."</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Η συσκευή μπορεί να παρακολουθείται"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Το δίκτυο ενδέχεται να παρακολουθείται"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Παρακολούθηση συσκευής"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Παρακολούθηση δικτύου"</string>
+    <string name="open_app" msgid="4011771120339160755">"Άνοιγμα εφαρμογής"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Αποσύνδεση VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Η διαχείριση αυτής της συσκευής πραγματοποιείται από:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nΟ διαχειριστής σας μπορεί να παρακολουθεί τη δραστηριότητα της συσκευής σας και του δικτύου, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή σας."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Παραχωρήσατε στην εφαρμογή \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" άδεια για τη δημιουργία σύνδεσης VPN.\n\nΑυτή η εφαρμογή μπορεί να παρακολουθεί τη δραστηριότητα της συσκευής σας και του δικτύου, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Είστε συνδεδεμένοι σε VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nΟ πάροχος της υπηρεσίας VPN μπορεί να παρακολουθεί τη δραστηριότητα της συσκευής σας και του δικτύου, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Η διαχ. της συσκευής γίνεται από:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nΟ διαχειριστής μπορεί να παρακ. τη δραστ. του δικτύου, όπως τα μην. ηλ. ταχυδρ., τις εφαρ. και τους ασφ. ιστότ. Για περισ. πληροφορίες, επικοιν. με το διαχειριστή.\n\nΕπίσης, επιτρέψατε στο \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" να ρυθμίσει σύνδεση VPN. Αυτή η εφαρ. μπορεί να παρακ. τη δραστ. του δικτύου."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Η διαχείριση της συσκευής γίνεται από:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nΟ διαχειριστής μπορεί να παρακολ. τη δραστ. του δικτύου, όπως τα μην. ηλεκ. ταχυδρ., τις εφαρμογές και τους ασφαλείς ιστότοπους. Για περισ. πληροφορίες, επικοιν. με το διαχειριστή.\n\nΕπίσης, είστε συνδεδ. σε VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Ο παροχέας VPN μπορεί να παρακολ. τη δραστ. του δικτύου."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml
index 3fc88e9..b7af804 100644
--- a/packages/SystemUI/res/values-en-rGB/strings.xml
+++ b/packages/SystemUI/res/values-en-rGB/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Clear"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Remove from list"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App info"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"No recent apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dismiss recent apps"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 recent app"</item>
@@ -80,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Back"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Recent apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Phone"</string>
@@ -155,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification dismissed."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Quick settings."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Recent apps"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobile <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -167,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Close panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"More time"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Less time"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G data is off"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G data is off"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobile data is off"</string>
@@ -179,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Location set by GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Location requests active"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Clear all notifications."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"App info"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Settings"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Screen will rotate automatically."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Screen is locked in landscape orientation."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Screen is locked in portrait orientation."</string>
@@ -238,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> used"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"No recent apps"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Application Info"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lock to app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"search"</string>
@@ -258,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Less urgent notifications below"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tap again to open"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string>
@@ -267,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priority"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"All"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Add user"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"New user"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Guest"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Guest"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Exit guest"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Remove guest"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Exiting guest session?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Exiting the guest session will remove local data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Welcome back, guest!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Do you want to start a new session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Yes"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, thanks"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"For one minute"</item>
     <item quantity="other" msgid="6924190729213550991">"For %d minutes"</item>
@@ -300,9 +318,11 @@
     <string name="monitoring_title" msgid="169206259253048106">"Network monitoring"</string>
     <string name="open_app" msgid="4011771120339160755">"Open app"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"Disconnect VPN"</string>
-    <string name="monitoring_description_device_owned" msgid="7801926679066533391">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator can monitor your network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string>
-    <string name="monitoring_description_vpn" msgid="93140751707065515">"You gave \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" permission to set up a VPN connection.\n\nThis app can monitor your network activity, including emails, apps and secure websites."</string>
-    <string name="monitoring_description_legacy_vpn" msgid="5397847778080663075">"You\'re connected to a VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nYour VPN service provider can monitor your network activity including emails, apps and secure websites."</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"You gave \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"You\'re connected to a VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nYour VPN service provider can monitor your device and network activity including emails, apps and secure websites."</string>
     <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites. For more information, contact your administrator.\n\nAlso, you gave \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" permission to set up a VPN connection. This app can monitor network activity too."</string>
     <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Your VPN service provider can monitor network activity too."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml
index 3fc88e9..b7af804 100644
--- a/packages/SystemUI/res/values-en-rIN/strings.xml
+++ b/packages/SystemUI/res/values-en-rIN/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Clear"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Remove from list"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App info"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"No recent apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dismiss recent apps"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 recent app"</item>
@@ -80,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Back"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Recent apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Phone"</string>
@@ -155,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification dismissed."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Quick settings."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Recent apps"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobile <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -167,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Close panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"More time"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Less time"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G data is off"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G data is off"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobile data is off"</string>
@@ -179,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Location set by GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Location requests active"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Clear all notifications."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"App info"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Settings"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Screen will rotate automatically."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Screen is locked in landscape orientation."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Screen is locked in portrait orientation."</string>
@@ -238,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> used"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> warning"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"No recent apps"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Application Info"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lock to app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"search"</string>
@@ -258,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Less urgent notifications below"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tap again to open"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string>
@@ -267,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priority"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"All"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Add user"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"New user"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Guest"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Guest"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Exit guest"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Remove guest"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Exiting guest session?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Exiting the guest session will remove local data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Welcome back, guest!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Do you want to start a new session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Yes"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, thanks"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"For one minute"</item>
     <item quantity="other" msgid="6924190729213550991">"For %d minutes"</item>
@@ -300,9 +318,11 @@
     <string name="monitoring_title" msgid="169206259253048106">"Network monitoring"</string>
     <string name="open_app" msgid="4011771120339160755">"Open app"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"Disconnect VPN"</string>
-    <string name="monitoring_description_device_owned" msgid="7801926679066533391">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator can monitor your network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string>
-    <string name="monitoring_description_vpn" msgid="93140751707065515">"You gave \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" permission to set up a VPN connection.\n\nThis app can monitor your network activity, including emails, apps and secure websites."</string>
-    <string name="monitoring_description_legacy_vpn" msgid="5397847778080663075">"You\'re connected to a VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nYour VPN service provider can monitor your network activity including emails, apps and secure websites."</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"You gave \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"You\'re connected to a VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nYour VPN service provider can monitor your device and network activity including emails, apps and secure websites."</string>
     <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites. For more information, contact your administrator.\n\nAlso, you gave \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" permission to set up a VPN connection. This app can monitor network activity too."</string>
     <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"This device is managed by:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Your VPN service provider can monitor network activity too."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index b9f7c8d..71c9919 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Eliminar"</string>
     <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="6576392951053994640">"Ninguna aplicación reciente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Rechazar aplicaciones recientes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicación reciente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"No se admite la carga por USB."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Usa solo el cargador suministrado."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Configuración"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"¿Activar ahorro de batería?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activar"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar ahorro de batería"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuración"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Atrás"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Página principal"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menú"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicaciones recientes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación ignorada"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pantalla de notificaciones"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuración rápida"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicaciones recientes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Móvil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Cerrar panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Más tiempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menos tiempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Datos 2G-3G desactivados"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Datos 4G desactivados"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Datos móviles desactivados"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"La ubicación se estableció por GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitudes de ubicación activas"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Eliminar todas las notificaciones"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Información de la aplicación"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Configuración"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"La pantalla girará automáticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla está bloqueada en modo horizontal."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla está bloqueada en modo vertical."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Utilizados: <xliff:g id="DATA_USED">%s</xliff:g>"</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="recents_empty_message" msgid="7883614615463619450">"No hay aplicaciones recientes."</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <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="4793991421811647489">"fijar aplicación"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás la alarma a la(s) <xliff:g id="ALARM_TIME">%s</xliff:g>."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificaciones menos urgentes abajo"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Presionar de nuevo para abrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar el dedo hacia arriba para desbloquear"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Desliza hacia la derecha para abrir el teléfono."</string>
     <string name="camera_hint" msgid="5241441720959174226">"Desliza hacia la izquierda para acceder a la cámara."</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridad"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (faltan <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para completar)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Agregar usuario"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Usuario nuevo"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Invitado"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Agregar invitado"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Salir de modo invitado"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Eliminar invitado"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"¿Deseas salir de la sesión de invitado?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Si sales de la sesión de invitado, se eliminarán los datos locales."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bienvenido nuevamente, invitado."</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"¿Deseas iniciar una nueva sesión?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sí"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, gracias"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Durante un minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Durante %d minutos"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Durante %d horas"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Ahorro de batería activado"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduce el rendimiento y el uso de datos en segundo plano."</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desactivar el ahorro de batería"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contenidos ocultos"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> comenzará la captura de todo lo que se muestre en la pantalla."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Borrar todo"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Comenzar ahora"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"No hay notificaciones"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Es posible que el dispositivo esté supervisado."</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Es posible que la red esté supervisada."</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Supervisión del dispositivo"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Supervisión de red"</string>
+    <string name="open_app" msgid="4011771120339160755">"Abrir aplicación"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Este dispositivo está administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nEl administrador puede supervisar la actividad de la red y del dispositivo, incluidos el correo electrónico, las aplicaciones y los sitios web seguros.\n\nPara obtener más información, comunícate con el administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Permitiste que \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" configure una conexión VPN.\n\nEsta aplicación puede supervisar la actividad de la red y del dispositivo, incluidos el correo electrónico, las aplicaciones y los sitios web seguros."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Estás conectado a una VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nEl proveedor de servicios de VPN puede supervisar la actividad de la red y del dispositivo, incluidos el correo electrónico, las aplicaciones y los sitios web seguros."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Dispositivo está administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nEl administrador puede supervisar la actividad de red (correo electrónico, aplicaciones y sitios web seguros). Para más información, comunícate con el administrador.\n\nY permitiste que \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" configure una VPN. La aplicación también puede supervisar la actividad de red."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Dispositivo administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nEl administrador puede supervisar la actividad de red (correo electrónico, aplicaciones y sitios web seguros). Para más información, comunícate con el administrador.\n\nY estás conectado a una VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). El proveedor de servicios de VPN puede supervisar la actividad de red."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml
index 2260d7d..c732090 100644
--- a/packages/SystemUI/res/values-es/strings.xml
+++ b/packages/SystemUI/res/values-es/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
     <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="6576392951053994640">"No hay aplicaciones recientes."</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignorar aplicaciones recientes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicación reciente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"No se admite la carga por USB."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utiliza solo el cargador proporcionado."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Ajustes"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"¿Activar ahorro de batería?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activar"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar ahorro de energía"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ajustes"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Atrás"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Inicio"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menú"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicaciones recientes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación ignorada"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pantalla de notificaciones"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ajustes rápidos"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicaciones recientes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ajustes"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Móvil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Cerrar panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Más tiempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menos tiempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Datos 2G-3G desactivados"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Datos 4G desactivados"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Datos móviles desactivados"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Ubicación definida por GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitudes de ubicación activas"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Borrar todas las notificaciones"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Información de la aplicación"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Ajustes"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"La pantalla girará automáticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"La pantalla está bloqueada en modo horizontal."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"La pantalla está bloqueada en modo vertical."</string>
@@ -241,7 +244,8 @@
     <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_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="recents_empty_message" msgid="7883614615463619450">"No hay aplicaciones recientes"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <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="4793991421811647489">"bloqueo de aplicación"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás tu alarma a las <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificaciones menos urgente abajo"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Toca de nuevo para abrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Desliza el dedo hacia arriba para desbloquear"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Desliza el dedo hacia la izquierda para acceder al teléfono"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Desliza el dedo hacia la izquierda para acceder a la cámara"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridad"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hasta completar)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Añadir usuario"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nuevo usuario"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Invitado"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Añadir invitado"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Salir de modo invitado"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Eliminar invitado"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"¿Quieres salir de la sesión de invitado?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Si sales de la sesión de invitado, se eliminarán los datos locales."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Hola de nuevo, invitado"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"¿Quieres iniciar una nueva sesión?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sí"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, gracias"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Durante un minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Durante %d minutos"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Durante %d horas"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Ahorro de batería activado"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduce el rendimiento y el envío de datos en segundo plano"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desactivar ahorro de batería"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contenidos ocultos"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> empezará a capturar todo lo que aparezca en la pantalla."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Borrar todo"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Iniciar ahora"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ninguna notificación"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Es posible que este dispositivo esté supervisado"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Puede que la red esté supervisada"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Supervisión de dispositivo"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Supervisión de red"</string>
+    <string name="open_app" msgid="4011771120339160755">"Abrir aplicación"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Este dispositivo está administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nTu administrador puede supervisar la actividad de tu red y de tu dispositivo, incluidos correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, ponte en contacto con tu administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Has concedido permiso a \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" para configurar una conexión VPN.\n\nEsta aplicación puede supervisar la actividad de tu red y de tu dispositivo, incluidos correos electrónicos, aplicaciones y sitios web seguros."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Estás conectado a una red VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nTu proveedor de servicios de VPN puede supervisar la actividad de tu red y de tu dispositivo, incluidos correos electrónicos, aplicaciones y sitios web seguros."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Este dispositivo está administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nTu administrador puede supervisar la actividad de tu red, incluidos correos electrónicos, aplicaciones y sitios web seguros. Para obtener más información, ponte en contacto con tu administrador.\n\nAdemás, has concedido permiso a <xliff:g id="APPLICATION">%2$s</xliff:g> para configurar una red VPN. Esta aplicación también puede supervisar tu red."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Este dispositivo está administrado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nTu administrador puede supervisar la actividad de tu red, incluidos correos electrónicos, aplicaciones y sitios web seguros. Para obtener más información, ponte en contacto con tu administrador.\n\nAdemás, estás conectado a una red VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). El proveedor de servicios de VPN también puede supervisar la actividad de la red."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 8c3ee90..f4a01f3 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Kustuta"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Loendist eemaldamine"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Rakenduse teave"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Uusi rakendusi pole"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Loobu hiljutistest rakendustest"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 hiljutine rakendus"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB-ga laadimist ei toetata."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Kasutage ainult kaasasolevat laadijat."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Seaded"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Kas lülitada sisse akusäästja?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Lülita sisse"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Akusäästja sisselülitamine"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Seaded"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"WiFi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lennurežiim"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Tagasi"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Kodu"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menüü"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Hiljutised rakendused"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Otsing"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kaamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Märguandest on loobutud."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Märguande vari."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Kiirseaded."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Hiljutised rakendused"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Seaded"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kasutaja <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobiili <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Sule paneel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Rohkem aega"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Vähem aega"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G–3G andmeside on väljalülitatud"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G andmeside on väljalülitatud"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mob. andmeside väljalülitatud"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS-i määratud asukoht"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Asukoha taotlused on aktiivsed"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Kustuta kõik teatised."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Rakenduse teave"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Seaded"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekraani pööramine toimub automaatselt."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekraan on lukustatud horisontaalsuunas."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekraan on lukustatud vertikaalsuunas."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> on kasutatud"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limiit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> hoiatus"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Hiljutisi rakendusi pole"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Rakenduste teave"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lukusta rakendusele"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"otsing"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Te ei kuule äratust <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Vähem kiireloomulised märguanded on allpool"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Avamiseks puudutage uuesti"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Lukustuse tühistamiseks pühkige üles"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefoni kasutamiseks pühkige paremale"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Kaamera kasutamiseks pühkige vasakule"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Kõik"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laadimine (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>, kuni seade on täis)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Kasutaja lisamine"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Uus kasutaja"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Külaline"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ külaline"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Välju külastaja režiimist"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Eemalda külaline"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Kas soovite väljuda külastajaseansist?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Külastajaseansist väljumisel eemaldatakse kohalikud andmed."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Tere tulemast tagasi, külaline!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Kas soovite alustada uut seanssi?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Jah"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ei, aitäh"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Üheks minutiks"</item>
     <item quantity="other" msgid="6924190729213550991">"%d minutiks"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d tunniks"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Akusäästja on sisse lülitatud"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Vähendab jõudlust ja taustaandmeid"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Akusäästja väljalülitamine"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Sisu on peidetud"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> hakkab jäädvustama kõike, mida ekraanil kuvatakse."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Tühjenda kõik"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Alusta kohe"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Märguandeid pole"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Seadet võidakse jälgida"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Võrku võidakse jälgida"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Seadme jälgimine"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Võrgu jälgimine"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ava rakendus"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Katkesta VPN-i ühendus"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Seadet haldab:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nTeie administraator võib jälgida teie seadet ja võrgutegevust, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Andsite rakendusele „<xliff:g id="APPLICATION">%1$s</xliff:g>” loa seadistada VPN-i ühenduse.\n\nSee rakendus saab jälgida teie seadet ja võrgutegevust, sh meile, rakendusi ja turvalisi veebisaite."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Olete ühendatud VPN-iga („<xliff:g id="APPLICATION">%1$s</xliff:g>”).\n\nTeie VPN-i teenusepakkuja võib jälgida teie seadet ja võrgutegevust, sh meile, rakendusi ja turvalisi veebisaite."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Seda seadet haldab\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministraator saab jälgida teie võrgutegevust, sh meile, rakendusi ja turvalisi veebisaite. Lisateabe saamiseks võtke ühendust administraatoriga.\n\nLisaks andsite rakendusele „<xliff:g id="APPLICATION">%2$s</xliff:g>” loa seadistada VPN-i ühendus. See rakendus võib ka jälgida teie võrgutegevust."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Seda seadet haldab\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministraator saab jälgida teie võrgutegevust, sh meile, rakendusi ja turvalisi veebisaite. Lisateabe saamiseks võtke ühendust administraatoriga.\n\nSamuti olete ühendatud VPN-iga („<xliff:g id="APPLICATION">%2$s</xliff:g>”). VPN-i teenusepakkuja saab ka teie võrgutegevust jälgida."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml
index 4c67086..185ee30 100644
--- a/packages/SystemUI/res/values-eu-rES/strings.xml
+++ b/packages/SystemUI/res/values-eu-rES/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Garbitu"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Kendu zerrendatik"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Aplikazioaren informazioa"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Ez dago azkenaldian erabilitako aplikaziorik"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Baztertu azken aplikazioak"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Aplikazio bat duela gutxi"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Ez da USB bidez kargatzea onartzen."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Erabili jatorrizko kargagailua soilik."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Ezarpenak"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Bateria aurrezteko aukera aktibatu nahi duzu?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aktibatu"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktibatu bateria aurrezteko aukera"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ezarpenak"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Hegaldi modua"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Atzera"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Hasiera"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menua"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Azken aplikazioak"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Bilatu"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonoa"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Jakinarazpena baztertu da."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Jakinarazpenen panela."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ezarpen bizkorrak."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Azken aplikazioak."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ezarpenak"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"<xliff:g id="USER">%s</xliff:g> erabiltzailea."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Datu mugikorrak: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Itxi panela"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Denbora gehiagoz"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Denbora gutxiagoz"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G datu-konexioa desaktibatuta dago"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G datu-konexioa desaktibatuta dago"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Datu mugikorrak desaktibatuta daude"</string>
@@ -182,12 +185,12 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Kokapena GPS bidez ezarri da"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aplikazioen kokapen-eskaerak aktibo daude"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Garbitu jakinarazpen guztiak."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Aplikazioaren informazioa"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Ezarpenak"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Pantaila automatikoki biratuko da."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Pantaila horizontalki blokeatuta dago."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Pantaila bertikalki blokeatuta dago."</string>
     <string name="dessert_case" msgid="1295161776223959221">"Postreen kutxa"</string>
-    <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string>
+    <string name="start_dreams" msgid="7219575858348719790">"Pantaila-babeslea"</string>
     <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string>
     <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Hegaldi modua"</string>
     <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Kargatzen: <xliff:g id="PERCENT">%%</xliff:g> <xliff:g id="NUMBER">%d</xliff:g>"</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> erabilita"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Muga: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Abisua: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ez dago azkenaldian erabilitako aplikaziorik"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Aplikazioaren informazioa"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"aplikazio bakarreko modua"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"bilatu"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Ez duzu entzungo alarma ordu honetan: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Horren premiazkoak ez diren jakinarazpenak daude behean"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Irekitzeko, ukitu berriro"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Desblokeatzeko, pasatu hatza gorantz"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefonoa irekitzeko, pasatu hatza eskuinera."</string>
     <string name="camera_hint" msgid="5241441720959174226">"Kamera irekitzeko, pasatu hatza ezkerrera."</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Lehentasuna"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Guztiak"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kargatzen (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> guztiz kargatu arte)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Gehitu erabiltzailea"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Erabiltzaile berria"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gonbidatua"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gonbidatua"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Irten gonbidatuen modutik"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Kendu gonbidatua"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Gonbidatuentzako saiotik irten nahi duzu?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Gonbidatuentzako saiotik irteten bazara, datu lokalak kenduko dira."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Ongi etorri berriro, gonbidatu hori!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Beste saio bat hasi nahi duzu?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Bai"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ez, eskerrik asko"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Minutu batez"</item>
     <item quantity="other" msgid="6924190729213550991">"%d minutuz"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d orduz"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Bateria aurrezlea aktibatuta dago"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Errendimendua eta atzeko planoko datuak murrizten ditu"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desaktibatu bateria aurrezteko aukera"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"%% <xliff:g id="LEVEL">%d</xliff:g>"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Edukiak ezkutatuta daude"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> aplikazioak pantailan bistaratzen den guztia grabatuko du."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Garbitu guztiak"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Hasi"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ez dago jakinarazpenik"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Baliteke gailua kontrolatuta egotea"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Baliteke sarea kontrolatuta egotea"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Gailuen kontrola"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Sareen kontrola"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ireki aplikazioa"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Deskonektatu VPN sarea"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Honek kudeatzen du gailua:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratzaileak gailua eta sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"VPN konexioa konfiguratzeko baimena eman diozu \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" aplikazioari.\n\nAplikazioak gailua eta sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN sarera konektatuta zaude (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nVPN zerbitzu-hornitzaileak gailua eta sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Honek kudeatzen du gailua:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratzaileak sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne.Informazio gehiago lortzeko, jarri administratzailearekin harremanetan.\n\nGainera, VPN konexio bat ezartzeko baimena eman diozu \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" aplikazioari. Aplikazioak ere kontrola ditzake sarean egiten dituzun jarduerak."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Honek kudeatzen du gailua:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratzaileak sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne. Informazio gehiago lortzeko, jarri administratzailearekin harremanetan.\n\nGainera, VPN sare batera konektatuta zaude (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). VPN hornitzaileak ere kontrola ditzake sarean egiten dituzun jarduerak."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 9f39599..7caba87 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"برنامه جدیدی موجود نیست"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"رد کردن برنامه‌های اخیر"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 برنامه اخیر"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"حالت هواپیما"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"برگشت"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"صفحهٔ اصلی"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"منو"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"برنامه‌های اخیر"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"جستجو"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"دوربین"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"تلفن"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"اعلان ردشد."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"مجموعه اعلان."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"تنظیمات سریع."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"برنامه‌های اخیر"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"تنظیمات"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"کاربر <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"تلفن همراه <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"بستن پانل"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"زمان بیشتر"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"زمان کمتر"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"‏داده 2G-3G خاموش است"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"‏داده 4G خاموش است"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"داده شبکه سلولی خاموش است"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"اطلاعات برنامه"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"تنظیمات"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"هشدار <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"هیچ برنامه جدیدی موجود نیست"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"اطلاعات برنامه"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"قفل به برنامه"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"جستجو"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"هشدارتان را در ساعت <xliff:g id="ALARM_TIME">%s</xliff:g> نخواهید شنید"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"اعلان‌های کمتر فوری در زیر"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"برای باز کردن دوباره ضربه بزنید"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"برای باز کردن قفل سریع به بالا بکشید"</string>
     <string name="phone_hint" msgid="3101468054914424646">"برای تلفن انگشت را تند به سمت چپ بکشید"</string>
     <string name="camera_hint" msgid="5241441720959174226">"برای دوربین انگشت را تند به سمت راست بکشید"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"اولویت"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"همه"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"در حال شارژ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> تا شارژ کامل)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ مهمان"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"خروج مهمان"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"حذف مهمان"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"از جلسه مهمان خارج می‌شوید؟"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"خروج از جلسه مهمان، داده‌های محلی را حذف خواهد کرد."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"مهمان گرامی، بازگشتتان را خوش آمد می‌گوییم!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"می‌خواهید یک جلسه جدید را شروع کنید؟"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"بله"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"نه، متشکرم"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"برای یک دقیقه"</item>
     <item quantity="other" msgid="6924190729213550991">"‏برای %d دقیقه"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"‏برای %d ساعت"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ذخیره کننده باتری روشن است."</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"عملکرد و اطلاعات پس‌زمینه را کاهش می‌دهد"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"خاموش کردن ذخیره‌کننده باتری"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>٪٪"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"محتواها پنهان هستند"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> شروع به ضبط هر چیزی می‌کند که در صفحه‌نمایش شما نمایش داده می‌شود."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ممکن است دستگاه کنترل شود"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ممکن است شبکه کنترل شود"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"کنترل دستگاه"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"کنترل شبکه"</string>
+    <string name="open_app" msgid="4011771120339160755">"باز کردن برنامه"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"‏قطع اتصال VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"مدیریت این دستگاه توسط:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nسرپرستتان می‌تواند دستگاه‌ و فعالیت شبکه‌تان را کنترل کند، از جمله ایمیل‌ها، برنامه‌ها و وب‌سایت‌های ایمن.\n\nبرای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"‏به \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" اجازه دادید اتصال VPN را تنظیم کند.\n\nاین برنامه می‌تواند دستگاه و فعالیت شبکه‌تان را کنترل کند، از جمله ایمیل‌ها، برنامه‌ها و وب‌سایت‌های ایمن."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"‏به VPN ‏(\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") وصل هستید.\n\nارائه‌دهنده سرویس VPN می‌تواند دستگاه‌ و فعالیت شبکه‌تان را کنترل کند از جمله ایمیل‌ها، برنامه‌ها و وب‌سایت‌های ایمن."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"‏مدیریت این دستگاه توسط:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nسرپرستتان می‌تواند فعالیت شبکه‌تان را کنترل کند، از جمله ایمیل‌ها، برنامه‌ها و وب‌سایت‌های ایمن. برای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید.\n\nهمچنین، به \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" اجازه دادید تا اتصال VPN را تنظیم کند. این برنامه می‌تواند فعالیت شبکه را نیز کنترل کند."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"‏مدیریت این دستگاه توسط:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nسرپرستتان می‌تواند فعالیت شبکه‌تان را کنترل کند از جمله ایمیل‌ها، برنامه‌ها، و وب‌سایت‌های ایمن. برای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید.\n\nهمچنین، به VPN‏ ‎‏(\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") وصل هستید. ارائه‌دهنده سرویس VPN شما می‌تواند فعالیت شبکه را نیز کنترل کند."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 7bef3aa..37c3b7d 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Tyhjennä"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Poista luettelosta"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Sovelluksen tiedot"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Ei viimeisimpiä sovelluksia"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Hylkää viimeaikaiset sovellukset"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 viimeaikainen sovellus"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB-latausta ei tueta."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Käytä vain laitteen mukana toimitettua laturia."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Asetukset"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Otetaanko virransäästö käyttöön?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ota käyttöön"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Ota virransäästö käyttöön"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Asetukset"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lentokonetila"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Takaisin"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Aloituspainike"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Valikko"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Viimeaikaiset sovellukset"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Haku"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Puhelin"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Ilmoitus hylätty."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Ilmoitusalue."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Pika-asetukset."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Viimeaikaiset sovellukset"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Käyttäjä: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobiiliverkkoyhteys: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Sulje paneeli"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Lisää aikaa"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Vähennä aikaa"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G–3G-tiedonsiirto ei ole käytössä"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-tiedonsiirto ei ole käytössä"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobiilitiedonsiirto ei ole käytössä"</string>
@@ -182,7 +186,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Sijainti määritetty GPS:n avulla"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Sijaintipyynnöt aktiiviset"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Tyhjennä kaikki ilmoitukset."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Sovelluksen tiedot"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Asetukset"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ruutu kääntyy automaattisesti."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ruutu on lukittu vaakasuuntaan."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ruutu on lukittu pystysuuntaan."</string>
@@ -241,7 +245,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"käytetty <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"kiintiö <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> – varoitus"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ei viimeaikaisia sovelluksia"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Sovellustiedot"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lukitse sovellukseen"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"haku"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Et kuule hälytystä klo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Vähemmän kiireelliset ilmoitukset ovat alla"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Avaa napauttamalla uudelleen"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Avaa lukitus pyyhkäisemällä ylös"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Avaa puhelin pyyhkäisemällä oikealle"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Avaa kamera pyyhkäisemällä oikealle"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Tärkeät"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Kaikki"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ladataan (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kunnes täynnä)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Lisää käyttäjä"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Uusi käyttäjä"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Vieras"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Vieras"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Kirjaa vieras ulos"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Lopetetaanko vierasistunto?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Vierasistunnon lopettaminen poistaa paikalliset tiedot."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Tervetuloa takaisin!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Haluatko aloittaa uuden istunnon?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Kyllä"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ei kiitos"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Minuutiksi"</item>
     <item quantity="other" msgid="6924190729213550991">"%d minuutiksi"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d tunniksi"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Virransäästö on käytössä"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Rajoittaa suorituskykyä ja taustatiedonsiirtoa"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Poista virransäästö käytöstä"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for battery_level_template (1609636980292580020) -->
     <skip />
@@ -301,26 +316,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Poista kaikki"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Aloita nyt"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ei ilmoituksia"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Laitetta voidaan valvoa"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Verkkoa saatetaan valvoa"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Laitteiden valvonta"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Verkon valvonta"</string>
+    <string name="open_app" msgid="4011771120339160755">"Avaa sovellus"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Katkaise VPN-yhteys"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Tätä laitetta hallinnoi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJärjestelmänvalvoja saattaa tarkkailla laitteesi ja verkon toimintaa, kuten sähköposteja, sovelluksia ja turvallisia sivustoja.\n\nKysy lisätietoja järjestelmänvalvojalta."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Annoit sovellukselle \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" luvan muodostaa VPN-yhteys.\n\nTämä sovellus saattaa tarkkailla laitteesi ja verkon toimintaa, kuten sähköposteja, sovelluksia ja turvallisia sivustoja."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Sinulla on VPN-yhteys (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nVPN-palveluntarjoaja saattaa tarkkailla laitteesi ja verkon toimintaa, kuten sähköposteja, sovelluksia ja turvallisia sivustoja."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Tämän laitteen hallinnoija on \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJärjestelmänvalvoja pystyy valvomaan toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä. Saat lisätietoja järjestelmänvalvojalta.\n\nAnnoit sovellukselle <xliff:g id="APPLICATION">%2$s</xliff:g> luvan VPN-yhteyden määrittämiseen. Myös se pystyy valvomaan toimiasi verkossa."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Tämän laitteen hallinnoija on \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJärjestelmänvalvoja pystyy valvomaan toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä. Saat lisätietoja järjestelmänvalvojalta.\n\nLisäksi on muodostettu VPN-yhteys (<xliff:g id="APPLICATION">%2$s</xliff:g>). VPN-palveluntarjoaja voi myös valvoa toimiasi verkossa."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index cf0095b..c8dead8 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Effacer"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Supprimer de la liste"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informations sur l\'application"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Aucune application récente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Masquer les applications récentes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 application récente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Le chargement par USB n\'est pas pris en charge."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utilisez uniquement le chargeur fourni."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Paramètres"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Activer l\'économiseur d\'énergie?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activer"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activer l\'économiseur d\'énergie"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Paramètres"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Précédent"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Domicile"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Applications récentes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Téléphone"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification masquée"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Volet des notifications"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Paramètres rapides"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Applications récentes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur : <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Signal mobile : <xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Fermer le panneau"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Plus longtemps"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Moins longtemps"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Données 2G/3G désactivées"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Données 4G désactivées"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Données cellulaire désactivées"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Position définie par GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Demandes de localisation actives"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Supprimer toutes les notifications"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informations sur l\'application"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Paramètres"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"L\'écran pivote automatiquement."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"L\'écran est verrouillé en mode paysage."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"L\'écran est verrouillé en mode portrait."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Quantité de données utilisées :<xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Aucune application récente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Détails de l\'application"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"verrouiller sur l\'application"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifications moins urgentes affichées ci-dessous"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Touchez à nouveau pour ouvrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Glissez vers le haut pour déverrouiller"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Balayez l\'écran vers la droite pour accéder au téléphone"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Balayez l\'écran vers la gauche pour accéder à l\'appareil photo"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priorité"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tous"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours... (chargée à 100 % dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Ajouter un utilisateur"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nouvel utilisateur"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Invité"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Ajouter un invité"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Déconnecter l\'invité"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Supprimer l\'invité"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Désirez-vous quitter la session Invité?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Si vous quittez la session Invité, les données locales seront supprimées."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bienvenue à nouveau dans la session Invité"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Voulez-vous lancer une nouvelle session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Oui"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Non, merci"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Pendant une minute"</item>
     <item quantity="other" msgid="6924190729213550991">"Pendant %d minutes"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Pendant %d heures"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"La fonction Économie d\'énergie est activée"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Réduire les performances et de fond"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Désactiver l\'économiseur d\'énergie"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contenus masqués"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> commencer à enregistrer tout ce qui s\'affiche sur votre écran."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Tout effacer"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Commencer maintenant"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Aucune notification"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Il est possible que cet appareil soit surveillé."</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Le réseau peut être surveillé"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Surveillance d\'appareils"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Surveillance réseau"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ouvrir l\'application"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Déconnecter le RPV"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Cet appareil est géré par : \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut surveiller votre appareil et votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus, communiquez avec votre administrateur."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Vous avez donné à « <xliff:g id="APPLICATION">%1$s</xliff:g> » l\'autorisation de configurer une connexion RPV.\n\nCette application peut surveiller votre appareil et votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Vous êtes connecté à un RPV (« <xliff:g id="APPLICATION">%1$s</xliff:g> »).\n\nVotre fournisseur de services RPV peut surveiller votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Cet appareil est géré par :\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut surveiller votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés. Pour en savoir plus à ce sujet, communiquez avec votre administrateur réseau.\n\nVous avez aussi autorisé « <xliff:g id="APPLICATION">%2$s</xliff:g> » à créer une connexion RPV. Cette application peut aussi surveiller votre activité réseau."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Cet appareil est géré par :\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut surveiller votre activité (courriels, applications, sites Web sécurisés, etc.). Pour en savoir plus, communiquez avec votre administrateur.\n\nVous êtes également connecté à un RPV (<xliff:g id="APPLICATION">%2$s</xliff:g>). Votre fournisseur RPV peut aussi surveiller votre activité réseau."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index 41f4df4..9a3b185 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Effacer"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Supprimer de la liste"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informations sur l\'application"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Aucune application récente."</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Masquer les applications récentes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 application récente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Chargeur USB non compatible."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Veuillez n\'utiliser que le chargeur fourni."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Paramètres"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Activer l\'économiseur de batterie ?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activer"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activer l\'économiseur de batterie"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Paramètres"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode Avion"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Retour"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Accueil"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Applications récentes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Téléphoner"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification masquée"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Volet des notifications"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Paramètres rapides"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Applications récentes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Signal mobile : <xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Fermer le panneau"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Plus longtemps"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Moins longtemps"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Données 2G-3G désactivées"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Données 4G désactivées"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Données mobiles désactivées"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Position définie par GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Demandes de localisation actives"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Supprimer toutes les notifications"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informations sur l\'application"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Paramètres"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"L\'écran pivote automatiquement."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"L\'écran est verrouillé en mode paysage."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"L\'écran est verrouillé en mode portrait."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilisés"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> au maximum"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Aucune application récente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informations sur l\'application"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"verrouiller sur l\'application"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifications moins urgentes ci-dessous"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Appuyer à nouveau pour ouvrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Faire glisser pour déverrouiller"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Balayer l\'écran vers la droite pour accéder au téléphone"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Balayer l\'écran vers la gauche pour accéder à l\'appareil photo"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritaire"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Toutes"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours… (chargé à 100 %% dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Ajouter un utilisateur"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nouvel utilisateur"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Invité"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Ajouter un invité"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Quitter le mode Invité"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Supprimer l\'invité"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Quitter la session Invité ?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Si vous quittez la session Invité, les données locales seront supprimées."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bienvenue à nouveau dans la session Invité"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Voulez-vous lancer une nouvelle session ?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Oui"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Non, merci"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Pendant une minute"</item>
     <item quantity="other" msgid="6924190729213550991">"Pendant %d minutes"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Pendant %d heures"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"L\'économiseur de batterie est activé"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Limite les performances et les données en arrière-plan."</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Désactiver l\'économiseur de batterie"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contenus masqués"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> va commencer à capturer tous les contenus affichés à l\'écran."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Tout effacer"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Commencer"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Aucune notification"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Il est possible que cet appareil soit surveillé."</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Il est possible que le réseau soit surveillé."</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Contrôle des appareils"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Contrôle du réseau"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ouvrir l\'application"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Déconnecter le VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Cet appareil est géré par :\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut surveiller votre activité réseau, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus, contactez votre administrateur."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Vous avez autorisé l\'application \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" à configurer une connexion VPN.\n\nCette application peut surveiller votre activité réseau, y compris les e-mails, les applications et les sites Web sécurisés."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Vous êtes connecté à un VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nVotre fournisseur de services VPN peut surveiller votre activité réseau, y compris les e-mails, les applications et les sites Web sécurisés."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Cet appareil est géré par :\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut contrôler votre activité réseau (e-mails, applis et sites Web sécurisés). Pour en savoir plus, contactez votre administrateur.\n\nVous avez autorisé l\'appli \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" à configurer une connexion VPN. Cette appli peut également contrôler votre activité réseau."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Cet appareil est géré par :\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVotre administrateur peut contrôler votre activité réseau (e-mails, applications et sites sécurisés). Pour en savoir plus, contactez votre administrateur.\n\nVous êtes aussi connecté à un VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Votre fournisseur de services VPN peut également contrôler l\'activité réseau."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml
index aedbd03..17ae0f3 100644
--- a/packages/SystemUI/res/values-gl-rES/strings.xml
+++ b/packages/SystemUI/res/values-gl-rES/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Quitar da lista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Información da aplicación"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Ningunha aplicación recente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Rexeitar aplicacións recentes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicación recente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Non se admite a carga mediante USB."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utiliza soamente o cargador fornecido."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Configuración"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Queres activar o aforrador de batería?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activar"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activar o aforrador de batería"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configuración"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avión"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Volver"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Inicio"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menú"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicacións recentes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación rexeitada"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Sombra de notificación"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuración rápida"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicacións recentes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Móbil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Pecha o panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Máis tempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menos tempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Os datos 2G-3G están desactivados"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Os datos 4G están desactivados"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Os datos móbiles están desactivados"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Localización establecida polo GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitudes de localización activas"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Eliminar todas as notificacións."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Información da aplicación"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Configuración"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"A pantalla xirará automaticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A pantalla está bloqueada en orientación horizontal."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A pantalla está bloqueada en orientación vertical."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> usados"</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 <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ningunha aplicación recente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Información da aplicación"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"bloqueo de aplicación"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"buscar"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Non escoitarás a túa alarma ás <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificacións menos urxentes abaixo"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Toca de novo para abrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Pasa o dedo cara arriba para desbloquear"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Pasa o dedo cara á dereita para acceder ao teléfono"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Pasa o dedo cara á esquerda para abrir a cámara"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Sempre"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para finalizar a carga)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Engadir usuario"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Novo usuario"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Convidado"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Convidado"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Retirar invitado"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Eliminar invitado"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Queres saír da sesión de convidado?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Ao saír da sesión de convidado, eliminaranse os datos locais."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Benvido de novo, convidado."</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Queres iniciar unha sesión nova?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Si"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Non, grazas"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Durante un minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Durante %d minutos"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Durante %d horas"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"O aforrador de batería está activado"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduce o rendemento e os datos en segundo plano"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desactivar o aforrador de batería"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contido oculto"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> comezará a capturar todo o que apareza na túa pantalla."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Eliminar todas"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Iniciar agora"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Non hai notificacións"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"É posible que se supervise o dispositivo"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"É posible que se supervise a rede"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Supervisión de dispositivos"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Supervisión de rede"</string>
+    <string name="open_app" msgid="4011771120339160755">"Abrir aplicación"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"O teu dispositivo está xestionado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO teu administrador pode controlar a actividade da rede e o dispositivo, incluídos os correos electrónicos, as aplicacións e os sitios web seguros.\n\nPara obter máis información, contacta co administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Outorgaches permiso a \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" para configurar unha conexión VPN.\n\nEsta aplicación pode controlar a actividade da rede e do dispositivo, incluídos os correos electrónicos, as aplicacións e os sitios web seguros."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Estás conectado a unha VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nO teu provedor de servizo de VPN pode controlar a actividade da rede e o dispositivo, incluídos os correos electrónicos, as aplicacións e os sitios web seguros."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Este dispositivo está xestionado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO teu administrador pode supervisar a actividade da túa rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros. Para obter máis información, contacta co teu administrador.\n\nAdemais, outorgaches permiso a \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" para configurar unha conexión VPN. Esta aplicación tamén pode supervisar a actividade da rede."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Este dispositivo está xestionado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO teu administrador pode supervisar a actividade da túa rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros. Para obter máis información, contacta co teu administrador.\n\nAdemais, estás conectado a unha VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). O fornecedor de servizos da VPN tamén pode supervisar a actividade da rede."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-h560dp-xhdpi/config.xml b/packages/SystemUI/res/values-h560dp-xhdpi/config.xml
new file mode 100644
index 0000000..cf2017f
--- /dev/null
+++ b/packages/SystemUI/res/values-h560dp-xhdpi/config.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<resources>
+    <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
+     card. -->
+    <integer name="keyguard_max_notification_count">3</integer>
+</resources>
+
diff --git a/packages/SystemUI/res/values-h560dp-xhdpi/dimens.xml b/packages/SystemUI/res/values-h560dp-xhdpi/dimens.xml
new file mode 100644
index 0000000..f6dbc3d
--- /dev/null
+++ b/packages/SystemUI/res/values-h560dp-xhdpi/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<resources>
+    <fraction name="keyguard_clock_y_fraction_max">32.5%</fraction>
+    <fraction name="keyguard_clock_y_fraction_min">24%</fraction>
+</resources>
\ No newline at end of file
diff --git a/packages/SystemUI/res/values-h560dp-xxhdpi/config.xml b/packages/SystemUI/res/values-h560dp-xxhdpi/config.xml
new file mode 100644
index 0000000..b2231a6
--- /dev/null
+++ b/packages/SystemUI/res/values-h560dp-xxhdpi/config.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<resources>
+    <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
+     card. -->
+    <integer name="keyguard_max_notification_count">4</integer>
+</resources>
+
diff --git a/packages/SystemUI/res/values-h560dp-xxhdpi/dimens.xml b/packages/SystemUI/res/values-h560dp-xxhdpi/dimens.xml
new file mode 100644
index 0000000..905e9e3
--- /dev/null
+++ b/packages/SystemUI/res/values-h560dp-xxhdpi/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<resources>
+    <fraction name="keyguard_clock_y_fraction_max">32.5%</fraction>
+    <fraction name="keyguard_clock_y_fraction_min">19.8%</fraction>
+</resources>
\ No newline at end of file
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 5a53ee9..b140fa6 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -22,8 +22,9 @@
     <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_no_recent_apps" msgid="6576392951053994640">"कोई हाल ही के ऐप्स  नहीं"</string>
+    <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ऐप्स की जानकारी"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"हाल ही के ऐप्स  खारिज करें"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 हाल ही का ऐप्स"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"वाई-फ़ाई"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"हवाई जहाज मोड"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"वापस जाएं"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"होम"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"मेनू"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"हाल ही के ऐप्स"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"खोजें"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"कैमरा"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"फ़ोन"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"सूचना खारिज की गई."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"सूचना शेड."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"त्वरित सेटिंग."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"हाल ही के ऐप्स."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"उपयोगकर्ता <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"मोबाइल <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"फलक बंद करें"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"अधिक समय"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"कम समय"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G डेटा बंद है"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G डेटा बंद है"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"सेल्युलर डेटा बंद है"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ऐप्स जानकारी"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"सेटिंग"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावनी"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"कोई हाल ही का ऐप्स नहीं"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"एप्‍लिकेशन जानकारी"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"ऐप्स पर लॉक करें"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"खोज"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"आपको <xliff:g id="ALARM_TIME">%s</xliff:g> पर अपना अलार्म सुनाई नहीं देगा"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"कम अत्यावश्यक सूचनाएं नीचे दी गई हैं"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"खोलने के लिए पुन: टैप करें"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करने के लिए ऊपर स्वाइप करें"</string>
     <string name="phone_hint" msgid="3101468054914424646">"फ़ोन के लिए दाएं स्वाइप करें"</string>
     <string name="camera_hint" msgid="5241441720959174226">"कैमरे के लिए बाएं स्वाइप करें"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"प्राथमिकता"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"सभी"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हो रहा है (पूर्ण होने में <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> शेष)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ अतिथि"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"अतिथि मोड से बाहर निकलें"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"अतिथि को निकालें"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"अतिथि सत्र से बाहर निकलना है?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"अतिथि सत्र से बाहर निकलने से स्थानीय डेटा निकल जाएगा."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"अतिथि, आपका पुन: स्वागत है!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"क्या आप नया सत्र प्रारंभ करना चाहते हैं?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"हां"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"नहीं, धन्यवाद"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"एक मिनट के लिए"</item>
     <item quantity="other" msgid="6924190729213550991">"%d मिनट के लिए"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d घंटे के लिए"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"बैटरी सेवर चालू है"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"निष्‍पादन और पृष्ठभूमि डेटा को कम करता है"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"बैटरी बचतकर्ता को बंद करें"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"छिपी हुई सामग्री"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> आपके स्क्रीन पर प्रदर्शित प्रत्येक सामग्री को कैप्चर करना प्रारंभ कर देगी."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"उपकरण को मॉनीटर किया जा सकता है"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"नेटवर्क को मॉनीटर किया जा सकता है"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"उपकरण को मॉनीटर करना"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"नेटवर्क को मॉनीटर करना"</string>
+    <string name="open_app" msgid="4011771120339160755">"ऐप्स खोलें"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN डिस्‍कनेक्‍ट करें"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्‍यवस्‍थापक ईमेल, ऐप्‍स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने व्‍यवस्‍थापक से संपर्क करें."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"आपने \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" को VPN कनेक्‍शन सेट करने की अनुमति दी है.\n\nयह ऐप्‍स ईमेल, ऐप्‍स और सुरक्षित वेबसाइटों सहित आपके उपकरण और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"आप VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") से कनेक्‍ट हैं.\n\nआपका VPN सेवा प्रदाता ईमेल, ऐप्‍स और सुरक्षित वेबसाइटों सहित आपके उपकरण और नेटवर्क गतिविधि की निगरानी कर सकता है."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्‍यवस्‍थापक ईमेल, ऐप्‍स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्‍यवस्‍थापक से संपर्क करें.\n\nसाथ ही, आपने VPN कनेक्‍शन सेट करने के लिए \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" अनुमति भी दी है. यह ऐप्‍स नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"यह उपकरण इसके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपका व्‍यवस्‍थापक, ईमेल, ऐप्‍स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि को मॉनीटर कर सकता है. अधिक जानकारी के लिए, अपने व्‍यवस्‍थापक से संपर्क करें.\n\nसाथ ही, आप VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") से कनेक्‍ट हैं. आपका VPN सेवा प्रदाता नेटवर्क गतिविधि को भी मॉनीटर कर सकता है."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index 43c9207..1894188 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Očisti"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Ukloni s popisa"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informacije o aplikaciji"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nema nedavnih aplikacija"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Odbaci nedavne aplikacije"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 nedavna aplikacija"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Punjenje putem USB-a nije podržano."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Upotrebljavajte samo priloženi punjač."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Postavke"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Želite li uključiti uštedu baterije?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Uključi"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Uključi uštedu baterije"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Postavke"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način rada u zrakoplovu"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Natrag"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Početna"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Izbornik"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nedavne aplikacije"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pretraži"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Obavijest je odbačena."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Zaslon obavijesti."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Brze postavke."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Nedavne aplikacije."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Postavke"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Korisnik <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobitel <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Zatvori ploču"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Više vremena"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Manje vremena"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G podaci isključeni"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G podaci isključeni"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobilni podaci isključeni"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokaciju utvrdio GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Zahtjevi za lokaciju aktivni su"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Brisanje svih obavijesti."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informacije o aplikaciji"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Postavke"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Zaslon će se automatski zakrenuti."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaključan u pejzažnoj orijentaciji."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaključan u portretnoj orijentaciji."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> iskorišteno"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Ograničenje od <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozorenje <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nema nedavnih aplikacija"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informacije o aplikaciji"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"zaključaj na aplikaciju"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"pretraži"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Nećete čuti alarm u <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Manje hitne obavijesti pri dnu"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Dodirnite opet za otvaranje"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Prijeđite prstom prema gore za otključavanje"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Prijeđite prstom udesno za telefon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Prijeđite prstom ulijevo za fotoaparat"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Sve"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Punjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napunjenosti)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Dodavanje korisnika"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Novi korisnik"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gost"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ gost"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Izlaz iz gostujućeg načina"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Uklanjanje gosta"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Želite li napustiti gostujuću sesiju?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Zatvaranjem gostujuće sesije uklonit će se lokalni podaci."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Dobro došli natrag, gostu!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Želite li započeti novu sesiju?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Da"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ne, hvala"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Jednu minutu"</item>
     <item quantity="other" msgid="6924190729213550991">"%d min"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d h"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Štednja baterije je uključena"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Smanjuje količinu rada i pozadinske podatke"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Isključi uštedu baterije"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Sadržaj je skriven"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Aplikacija <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> počet će snimati sve što se prikazuje na zaslonu."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Izbriši sve"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Započni sad"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nema obavijesti"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Uređaj se možda nadzire"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Mreža se možda nadzire"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Nadzor uređaja"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Nadzor mreže"</string>
+    <string name="open_app" msgid="4011771120339160755">"Otvori aplikaciju"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Prekini vezu s VPN-om"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Uređajem upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVaš administrator može pratiti vaš uređaj i aktivnost na mreži, uključujući e-poštu, aplikacije i sigurne web-lokacije.\n\nZa više informacija obratite se administratoru."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Dali ste aplikaciji \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" dopuštenje za postavljanje VPN veze.\n\nTa aplikacija može pratiti vaš uređaj i aktivnost na mreži, uključujući e-poštu, aplikacije i sigurne web-lokacije."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Povezani ste s VPN-om (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nDavatelj usluge VPN-a može pratiti vaš uređaj i aktivnost na mreži, uključujući e-poštu, aplikacije i sigurne web-lokacije."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Uređajem upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVaš administrator može pratiti vašu aktivnost na mreži, uključujući e-poštu, aplikacije i sigurne web-lokacije. Više informacija možete saznati od administratora.\n\nOsim toga, dali ste aplikaciji \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" dopuštenje za postavljanje VPN veze, pa i ona može pratiti vašu aktivnost na mreži."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Uređajem upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nVaš administrator može pratiti vašu aktivnost na mreži, uključujući e-poštu, aplikacije i sigurne web-lokacije. Više informacija možete saznati od administratora.\n\nOsim toga, povezani ste s VPN-om (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Davatelj usluge VPN-a također može pratiti vašu aktivnost na mreži."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index ed26b93..36f7053 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Törlés"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Eltávolítás a listából"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Alkalmazásinformáció"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nincs újabb alkalmazás"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Újabb alkalmazások elvetése"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 újabb alkalmazás"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Az USB-n keresztüli töltés nem támogatott."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Kizárólag a tartozékként kapott töltőt használja."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Beállítások"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Bekapcsolja az akkumulátorkímélő módot?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Bekapcsolás"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Akkumulátorkímélő mód bekapcsolása"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Beállítások"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Repülőgép üzemmód"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Vissza"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Főoldal"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menü"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Legújabb alkalmazás"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Keresés"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Értesítés elvetve."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Értesítési felület."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Gyorsbeállítások."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Legutóbbi alkalmazások"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Beállítások"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Felhasználó: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Panel bezárása"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Több idő"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Kevesebb idő"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"A 2G-s és 3G-s adatkapcsolat nem használható"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"A 4G-s adatkapcsolat nem használható"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"A mobiladat-kapcsolat nem használható"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"A GPS beállította a helyet"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktív helylekérések"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Minden értesítés törlése"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Alkalmazásinformáció"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Beállítások"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"A képernyő automatikusan forogni fog."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A képernyő zárolva van fekvő tájolásban."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A képernyő zárolva van álló tájolásban."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> felhasználva"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> korlát"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Figyelem! <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nincsenek nemrég használt alkalmazások"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Az alkalmazás adatai"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"alkalmazászárolás"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"keresés"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Nem fogja hallani az ébresztést ekkor: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"A kevésbé sürgős értesítések lentebb vannak"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Koppintson rá ismét a megnyitáshoz"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Húzza felfelé az ujját a feloldáshoz"</string>
     <string name="phone_hint" msgid="3101468054914424646">"A telefon eléréséhez csúsztassa ujját jobbra"</string>
     <string name="camera_hint" msgid="5241441720959174226">"A fényképezőgép eléréséhez csúsztassa ujját balra"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritást élvező"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Összes"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Töltés (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> a teljes töltöttségig)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Felhasználó hozzáadása"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Új felhasználó"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Vendég"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ vendég"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Vendég kiléptetése"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Vendég munkamenet eltávolítása"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Kilép a vendég-munkafolyamatból?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"A vendég-munkafolyamatból való kilépéssel eltávolítja a helyi adatokat."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Örülünk, hogy visszatért, vendég!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Új munkamenetet szeretne indítani?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Igen"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nem, köszönöm"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Egy percen át"</item>
     <item quantity="other" msgid="6924190729213550991">"%d percen át"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d órán át"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Akkumulátorkímélő mód bekapcsolva"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Csökkenti a teljesítményt és a háttéradatok használatát"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Akkumulátorkímélő mód kikapcsolása"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>. szint"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Tartalomjegyzék elrejtve"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"A(z) <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> alkalmazás rögzíteni fog mindent, ami megjelenik a képernyőn."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Az összes törlése"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Indítás most"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nincs értesítés"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Lehet, hogy az eszközt figyelik"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Lehet, hogy a hálózatot figyelik"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Eszközfigyelés"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Hálózatfigyelés"</string>
+    <string name="open_app" msgid="4011771120339160755">"Alkalmazás megnyitása"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-kapcsolat bontása"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Az eszköz kezelője:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nRendszergazdája figyelheti az Ön eszköz- és hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a biztonságos webhelyeket.\n\nTovábbi információért forduljon rendszergazdájához."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Ön engedélyt adott a(z) „<xliff:g id="APPLICATION">%1$s</xliff:g>” alkalmazásnak VPN-kapcsolat létesítésére.\n\nAz alkalmazás figyelheti az Ön eszköz- és hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a biztonságos webhelyeket."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Ön egy VPN-hez kapcsolódott („<xliff:g id="APPLICATION">%1$s</xliff:g>”).\n\nVPN-szolgáltatója figyelheti az Ön eszköz- és hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a biztonságos webhelyeket."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Ezt az eszközt a következő felügyeli:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nA rendszergazda figyelheti a hálózati tevékenységet, beleértve az e-mailt, az alkalmazásokat és a biztonságos webhelyeket. További információért forduljon a rendszergazdához.\n\nEzenfelül engedélyt adott „<xliff:g id="APPLICATION">%2$s</xliff:g>” számára VPN-kapcsolat beállítására. Ez az alkalmazás is figyelheti a hálózati tevékenységet."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Ezt az eszközt a következő felügyeli:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nA rendszergazda figyelheti a hálózati tevékenységet, beleértve az e-mailt, az alkalmazásokat és a biztonságos webhelyeket. További információért forduljon a rendszergazdához.\n\nEzenfelül VPN-hez is csatlakozik („<xliff:g id="APPLICATION">%2$s</xliff:g>”). VPN-szolgáltatója is figyelheti hálózati tevékenységét."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 80d1aa4..7a8e741 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Թարմ հավելվածներ չկան"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Անտեսել վերջին ծրագրերը"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 նոր ծրագիր"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Ինքնաթիռային ռեժիմ"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Հետ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Տուն"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Ցանկ"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Վերջին ծրագրերը"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Որոնել"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Ֆոտոխցիկ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Հեռախոս"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Ծանուցումը անտեսվեց:"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Ծանուցումների վահանակ:"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Արագ կարգավորումներ:"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Վերջին հավելվածները:"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Օգտվող <xliff:g id="USER">%s</xliff:g>:"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>: <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Շարժական <xliff:g id="SIGNAL">%1$s</xliff:g>: <xliff:g id="TYPE">%2$s</xliff:g>: <xliff:g id="NETWORK">%3$s</xliff:g>:"</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Փակել վահանակը"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Ավելացնել ժամանակը"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Քչացնել ժամանակը"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G տվյալների կապն անջատված է"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G տվյալների կապն անջատված է"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Բջջային տվյալներն անջատված են"</string>
@@ -182,7 +186,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Տեղեկություններ ծրագրի մասին"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Կարգավորումներ"</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>
@@ -241,7 +245,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> զգուշացում"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Նոր հավելվածներ չկան"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Հավելվածի մասին"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Lock-to-app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"որոնել"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Դուք չեք լսի ձեր զարթուցիչը <xliff:g id="ALARM_TIME">%s</xliff:g>-ին:"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Պակաս հրատապ ծանուցումները ստորև"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Կրկին հպեք՝ բացելու համար"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Սահեցրեք վերև` ապակողպելու համար"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Հեռախոսի համար սահեցրեք աջ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Խցիկի համար սահեցրեք ձախ"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Կարևորություն"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Բոլորը"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Լիցքավորում (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> մինչև լրիվ լիցքավորումը)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Հյուր"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Դուրս գալ հյուրի ռեժիմից"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Դուրս գա՞լ հյուրի ռեժիմից:"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Հյուրի ռեժիմից դուրս գալուց հետո ձեր տեղական տվյալները կջնջվեն:"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Բարի վերադարձ, հյուր:"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Ցանկանո՞ւմ եք սկսել նոր աշխատաշրջան:"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Այո"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ոչ, շնորհակալություն"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Մեկ րոպե"</item>
     <item quantity="other" msgid="6924190729213550991">"%d րոպե"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d ժամ"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Մարտկոցի տնտեսումը միացված է"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Նվազեցնում է ծանրաբեռնվածությունը և ֆոնային տվյալները"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Անջատել մարտկոցի տնտեսումը"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Բովանդակությունը թաքցված է"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ծրագիրը կսկսի հավաքագրել այն ամենն ինչ ցուցադրվում է ձեր էկրանին:"</string>
@@ -299,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Սարքը կարող է վերահսկվել"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Ցանցը կարող է վերահսկվել"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Սարքի մշտադիտարկում"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Ցանցի մշտադիտարկում"</string>
+    <string name="open_app" msgid="4011771120339160755">"Բացել ծրագիրը"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Անջատել VPN-ը"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Այս սարքը կառավարող ընկերությունն է՝\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nՁեր ադմինիստրատորը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը, այդ թվում՝ նամակները, ծրագրերը և վստահելի կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ձեր ադմինիստրատորին:"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Դուք «<xliff:g id="APPLICATION">%1$s</xliff:g>» ծրագրին թույլ եք տվել ստեղծել VPN կապ:\n\nԱյս ծրագիրը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը, այդ թվում՝ նամակները, ծրագրերը և վստահելի կայքերը:"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Դուք միացած եք VPN-ին («<xliff:g id="APPLICATION">%1$s</xliff:g>»):\n\nՁեզ VPN ծառայություն մատուցողը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը, այդ թվում` նամակները, ծրագրերը և վստահելի կայքերը:"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Այս սարքը կառավարիչն է՝\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nՁեր ադմինիստրատորը կարող է վերահսկել ձեր ցանցային գործունեությունը, այդ թվում՝ նամակները, ծրագրերը և վստահելի կայքերը: Լրացուցիչ տեղեկությունների համար դիմեք ձեր ադմինիստրատորին:\n\n Բացի այդ, դուք «<xliff:g id="APPLICATION">%2$s</xliff:g>» ծրագրին թույլատրել եք ստեղծել VPN կապ: Այդ ծրագիրը նույնպես կարող է վերահսկել ձեր ցանցային գործունեությունը:"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Այս սարքը կառավարիչն է՝\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nՁեր ադմինիստրատորը կարող է վերահսկել ձեր ցանցային գործունեությունը, այդ թվում՝ նամակները, ծրագրերը և վստահելի կայքերը: Լրացուցիչ տեղեկությունների համար դիմեք ձեր ադմինիստրատորին:\n\nԲացի այդ, դուք միացած եք VPN-ին («<xliff:g id="APPLICATION">%2$s</xliff:g>»): Ձեզ VPN ծառայություն մատուցողը նույնպես կարող է վերահսկել ցանցային գործունեությունը:"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index 1e8d882..10b08e7 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Bersihkan"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Hapus dari daftar"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info apl"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Tidak ada apl terbaru"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Tutup aplikasi terbaru"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 apl terbaru"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Pengisian daya USB tidak didukung."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Hanya gunakan pengisi daya yang disediakan."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Setelan"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Aktifkan penghemat baterai?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aktifkan"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktifkan penghemat baterai"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setelan"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mode pesawat"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Kembali"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Utama"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Apl terbaru"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Telusuri"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telepon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pemberitahuan disingkirkan."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bayangan pemberitahuan."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Setelan cepat."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplikasi terkini."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Setelan"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Seluler <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Tutup panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Lebih lama"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Lebih cepat"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Data 2G-3G nonaktif"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Data 4G nonaktif"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Data seluler nonaktif"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokasi yang disetel oleh GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Permintaan lokasi aktif"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Menghapus semua pemberitahuan."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Info aplikasi"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Setelan"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Layar akan diputar secara otomatis."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Layar dikunci dalam orientasi lanskap."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Layar dikunci dalam orientasi potret."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> digunakan"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Batas <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Peringatan <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Tidak ada aplikasi terkini"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Info Aplikasi"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"kunci ke aplikasi"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"telusuri"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tidak akan mendengar alarm pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Pemberitahuan kurang darurat di bawah"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ketuk lagi untuk membuka"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Gesek ke atas untuk membuka kunci"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Gesek ke kanan untuk menelepon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Gesek ke kiri untuk kamera"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritas"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengisi daya (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hingga penuh)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Tambahkan pengguna"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Pengguna baru"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Tamu"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Tamu"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Keluar dari tamu"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Buang tamu"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Keluar dari sesi tamu?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Dengan keluar dari sesi tamu, Anda akan membuang data lokal."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Selamat datang kembali, tamu!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Ingin memulai sesi baru?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ya"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Tidak, terima kasih"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Selama satu menit"</item>
     <item quantity="other" msgid="6924190729213550991">"Selama %d menit"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Selama %d jam"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Penghemat baterai aktif"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Mengurangi kinerja dan data latar belakang"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Nonaktifkan penghemat baterai"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Konten tersembunyi"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> akan mulai menangkap apa saja yang ditampilkan pada layar Anda."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Hapus semua"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Mulai sekarang"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Tidak ada pemberitahuan"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Perangkat mungkin dipantau"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Jaringan mungkin dipantau"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Pemantauan perangkat"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Pemantauan jaringan"</string>
+    <string name="open_app" msgid="4011771120339160755">"Buka aplikasi"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Putuskan sambungan VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Perangkat ini dikelola oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator Anda dapat memantau perangkat serta aktivitas jaringan, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator Anda."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Anda memberikan izin pada \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" untuk menyiapkan sambungan VPN.\n\nAplikasi ini dapat memantau perangkat dan aktivitas jaringan, termasuk email, aplikasi, dan situs web aman."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Anda tersambung ke VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nPenyedia layanan VPN dapat memantau perangkat dan aktivitas jaringan termasuk email, aplikasi, dan situs web aman."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Perangkat ini dikelola oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator Anda dapat memantau aktivitas jaringan termasuk email, aplikasi, dan situs web aman. Untuk informasi selengkapnya, hubungi administrator Anda.\n\nAnda juga memberikan izin pada \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" untuk menyiapkan sambungan VPN. Aplikasi ini juga memantau aktivitas jaringan."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Perangkat ini dikelola oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator Anda dapat memantau aktivitas jaringan termasuk email, aplikasi, dan situs web aman. Untuk informasi selengkapnya, hubungi administrator Anda.\n\nAnda juga tersambung ke VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Penyedia layanan VPN Anda dapat memantau aktivitas jaringan juga."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml
index 153ece3..c2565ce 100644
--- a/packages/SystemUI/res/values-is-rIS/strings.xml
+++ b/packages/SystemUI/res/values-is-rIS/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Hreinsa"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Fjarlægja af lista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Upplýsingar um forrit"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Engin nýleg forrit"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Hunsa nýleg forrit"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Eitt nýlegt forrit"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Ekki er stuðningur við USB-hleðslu."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Notaðu eingöngu hleðslutækið sem fylgir með."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Stillingar"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Kveikja á rafhlöðusparnaði?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Kveikja"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Kveikja á rafhlöðusparnaði"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Stillingar"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flugstilling"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Til baka"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Heim"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Valmynd"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nýleg forrit"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Leita"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Myndavél"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Sími"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Tilkynningu lokað."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Tilkynningasvæði."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Flýtistillingar."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Nýleg forrit."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Stillingar"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Notandi: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Farsímagögn: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Loka glugga"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Meiri tími"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Minni tími"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Slökkt er á 2G- og 3G-gögnum"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Slökkt er á 4G-gögnum"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Slökkt er á farsímagögnum"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Staðsetning valin með GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Staðsetningarbeiðnir virkar"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Hreinsa allar tilkynningar."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Upplýsingar um forrit"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Stillingar"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skjárinn snýst sjálfkrafa."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skjárinn er læstur í langsniði."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skjárinn er læstur í skammsniði."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> notuð"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> hámark"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> viðvörun"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Engin nýleg forrit"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Forritsupplýsingar"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"forritslæsing"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"leita"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Ekki mun heyrast í vekjaranum kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Minna áríðandi tilkynningar fyrir neðan"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ýttu aftur til að opna"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Strjúktu upp til að opna"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Strjúktu til hægri fyrir síma"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Strjúktu til vinstri fyrir myndavél"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Forgangur"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Allar"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Í hleðslu (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> fram að fullri hleðslu)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Bæta notanda við"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nýr notandi"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gestur"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gestur"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Loka gestastillingu"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Fjarlægja gest"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Ljúka gestalotu?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Staðbundin gögn verða fjarlægð þegar gestalotu lýkur."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Velkominn aftur, gestur!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Viltu hefja nýja lotu?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Já"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nei, takk"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Í eina mínútu"</item>
     <item quantity="other" msgid="6924190729213550991">"Í %d mínútur"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Í %d klukkustundir"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Kveikt er á rafhlöðusparnaði"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Dregur úr afköstum og bakgrunnsgögnum"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Slökkva á rafhlöðusparnaði"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Innihald falið"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> mun fanga allt sem birtist á skjánum."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Hreinsa allt"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Byrja núna"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Engar tilkynningar"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Hugsanlega er fylgst með tækjum"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Hugsanlega er fylgst með netinu"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Tækjaeftirlit"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Neteftirlit"</string>
+    <string name="open_app" msgid="4011771120339160755">"Opna forrit"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Aftengja VPN-net"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Þessu tæki er stjórnað af:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nStjórnandinn getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við stjórnandann til að fá frekari upplýsingar."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Þú veittir „<xliff:g id="APPLICATION">%1$s</xliff:g>“ heimild til að koma á VPN-tengingu.\n\nÞetta forrit getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og öruggum vefsvæðum."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Þú ert með tengingu við VPN-net („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nVPN-þjónustuaðilinn þinn getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og öruggum vefsvæðum."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Stjórnandi þessa tækis er:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nStjórnandinn getur fylgst með netvirkni þinni, þ. á m. tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við stjórnandann til að fá frekari upplýsingar.\n\nÞú veittir „<xliff:g id="APPLICATION">%2$s</xliff:g>“ einnig  heimild til að setja upp VPN-tengingu. Þetta forrit getur líka fylgst með netvirkni þinni."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Stjórnandi þessa tækis er:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nStjórnandinn getur fylgst með netvirkni þinni, þ. á m. tölvupósti, forritum og öruggum vefsvæðum. Hafðu samband við stjórnandann til að fá frekari upplýsingar.\n\nÞú ert einnig tengd(ur) VPN-neti („<xliff:g id="APPLICATION">%2$s</xliff:g>“). VPN-þjónustuaðilinn þinn getur líka fylgst með netvirkni þinni."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml
index 3828e23..9844f95 100644
--- a/packages/SystemUI/res/values-it/strings.xml
+++ b/packages/SystemUI/res/values-it/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Cancella"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Rimuovi dall\'elenco"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informazioni applicazione"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nessuna app recente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignora app recenti"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 app recente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Ricarica tramite USB non supportata."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utilizza solo il caricabatterie fornito in dotazione."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Impostazioni"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Attivare il risparmio energetico?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Attiva"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Attiva risparmio energetico"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Impostazioni"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modalità aereo"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Indietro"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Applicazioni recenti"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotocamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefono"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notifica eliminata."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Area notifiche."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Impostazioni rapide."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"App recenti"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Impostazioni"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utente <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Cellulare: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Chiudi riquadro"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Più tempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Meno tempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Dati 2G-3G disattivati"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Dati 4G disattivati"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Rete dati disattivata"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Posizione stabilita dal GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Richieste di accesso alla posizione attive"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Cancella tutte le notifiche."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informazioni applicazione"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Impostazioni"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Lo schermo ruoterà automaticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Lo schermo è bloccato in orientamento orizzontale."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Lo schermo è bloccato in orientamento verticale."</string>
@@ -243,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizzati"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite di <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avviso <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nessuna app recente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informazioni sull\'applicazione"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"blocca su app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"cerca"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Il tuo allarme non suonerà alle <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifiche meno urgenti in basso"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tocca ancora per aprire"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Scorri verso l\'alto per sbloccare"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Scorri verso destra per accedere al telefono"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Scorri verso sinistra per accedere alla fotocamera"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priorità"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tutti"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"In carica (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> al termine)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Aggiungi utente"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nuovo utente"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Ospite"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ ospite"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Esci dalla modalità ospite"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Rimuovi invitato"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Uscire dalla sessione Ospite?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Se esci dalla sessione Ospite verranno rimossi i dati locali."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bentornato, ospite."</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vuoi avviare una nuova sessione?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sì"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"No, grazie"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Per un minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Per %d minuti"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Per %d ore"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Risparmio batteria attivo"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Riduce le prestazioni e i dati in background"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Disattiva risparmio energetico"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Contenuti nascosti"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> inizierà ad acquisire tutto ciò che è visualizzato sul tuo schermo."</string>
@@ -301,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Cancella tutto"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Avvia adesso"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nessuna notifica"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Il dispositivo potrebbe essere monitorato"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"La rete potrebbe essere monitorata"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitoraggio del dispositivo"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Monitoraggio rete"</string>
+    <string name="open_app" msgid="4011771120339160755">"Apri app"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Scollega VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Questo dispositivo è gestito da:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIl tuo amministratore può monitorare la tua attività di rete e sul dispositivo, inclusi email, app e siti web protetti.\n\nPer ulteriori informazioni, contatta l\'amministratore."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Hai autorizzato \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" a configurare una connessione VPN.\n\nQuesta app può monitorare la tua attività di rete e sul dispositivo, inclusi email, app e siti web protetti."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Sei collegato a una rete VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nIl tuo provider di servizi VPN può monitorare la tua attività di rete e sul dispositivo, inclusi email, app e siti web protetti."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Il dispositivo è gestito da:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIl tuo amministratore può monitorare la tua attività di rete, inclusi email, app e siti web protetti. Per ulteriori informazioni, contatta l\'amministratore.\n\nInoltre, hai autorizzato \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" a configurare una connessione VPN. Questa app può monitorare anche l\'attività di rete."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Il dispositivo è gestito da:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nIl tuo amministratore può monitorare la tua attività di rete, inclusi email, app e siti web protetti. Per ulteriori informazioni, contatta l\'amministratore.\n\nInoltre, sei collegato a una rete VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Il tuo provider di servizi VPN può monitorare anche l\'attività di rete."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml
index 1f64088..6b58398 100644
--- a/packages/SystemUI/res/values-iw/strings.xml
+++ b/packages/SystemUI/res/values-iw/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"אין אפליקציות אחרונות"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"סגור אפליקציות אחרונות"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"אפליקציה אחרונה אחת"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"מצב טיסה"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"הקודם"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"בית"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"תפריט"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"אפליקציות אחרונות"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"חפש"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"מצלמה"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"טלפון"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"הודעה נדחתה."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"לוח הודעות."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"הגדרות מהירות."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"אפליקציות אחרונות"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"הגדרות"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"משתמש <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>‏. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"נייד <xliff:g id="SIGNAL">%1$s</xliff:g>.‏ <xliff:g id="TYPE">%2$s</xliff:g>.‏ <xliff:g id="NETWORK">%3$s</xliff:g>.‏"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"סגור חלונית"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"יותר זמן"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"פחות זמן"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"‏נתונים בחיבור 2G-3G כובו"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"‏נתונים בחיבור 4G כובו"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"נתונים בחיבור סלולרי כובו"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"פרטי אפליקציה"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"הגדרות"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"אזהרה - <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"אין אפליקציות אחרונות"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"מידע על האפליקציה"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"נעל לאפליקציה"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"חפש"</string>
@@ -261,24 +265,35 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"לא תשמע את ההתראה שלך ב-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"הודעות בדחיפות נמוכה יותר בהמשך"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"הקש שוב כדי לפתוח"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"החלק מעלה כדי לבטל את הנעילה"</string>
     <string name="phone_hint" msgid="3101468054914424646">"החלק ימינה להפעלת הטלפון"</string>
-    <string name="camera_hint" msgid="5241441720959174226">"החלק שמאלה להפעלת המצלמה"</string>
+    <string name="camera_hint" msgid="5241441720959174226">"החלק ימינה להפעלת המצלמה"</string>
     <string name="zen_mode_forever" msgid="4316804956488785559">"ללא הגבלה"</string>
     <string name="interruption_level_none" msgid="3831278883136066646">"ללא"</string>
     <string name="interruption_level_priority" msgid="6517366750688942030">"עדיפות"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"הכל"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"טוען (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> עד לסיום)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ אורח"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"צא ממצב אורח"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"הסר אורח"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"האם לצאת מהפעלת האורח?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"יציאה מהפעלת האורח תסיר נתונים מקומיים."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ברוך שובך, אורח!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"האם ברצונך להתחיל הפעלה חדשה?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"כן"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"לא, תודה"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"למשך דקה אחת"</item>
     <item quantity="other" msgid="6924190729213550991">"‏למשך %d דקות"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"‏למשך %d שעות"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"תכונת \'חיסכון בסוללה\' פועלת"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"מפחית את הביצועים ונתונים ברקע"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"כבה את החיסכון בסוללה"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"התוכן מוסתר"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> יתחיל להקליט את כל התוכן המוצג במסך שלך."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ייתכן שהמכשיר נמצא במעקב"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ייתכן שהרשת נמצאת במעקב"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"מעקב אחר מכשיר"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"מעקב אחר פעילות ברשת"</string>
+    <string name="open_app" msgid="4011771120339160755">"פתח את האפליקציה"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"‏נתק את ה-VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"המכשיר הזה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, צור קשר עם מנהל המערכת."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"‏נתת ל-\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" הרשאה להגדרת חיבור VPN‏‏.\n\nהאפליקציה הזו יכולה לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"‏אתה מחובר ל-VPN ‏‏(\"<xliff:g id="APPLICATION">%1$s</xliff:g>\")‏‏.\n\nספק שירות ה-VPN שלך יכול לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות ואתרים מאובטחים."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"‏מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, נתת ל-\"<xliff:g id="APPLICATION">%2$s</xliff:g>\" הרשאה להגדרת חיבור VPN. גם אפליקציה זו יכולה לעקוב אחר הפעילות שלך ברשת."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"‏מכשיר זה מנוהל על ידי:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות דוא\"ל, אפליקציות, ואתרים מאובטחים. למידע נוסף, צור קשר עם מנהל המערכת שלך.\n\nכמו כן, אתה מחובר ל-VPN ‏‏(\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). גם ספק שירות ה-VPN שלך יכול לעקוב אחר הפעילות שלך ברשת."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index 2307b6e..fadc94f 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"最近使ったアプリはありません"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"最近使ったアプリをクリア"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"最近使ったアプリ: 1"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"バッテリーセーバーをONにしますか?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"ONにする"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"バッテリーセーバーをONにします"</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_airplane" msgid="4879879698500955300">"機内モード"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"戻る"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ホーム"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"メニュー"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"最近使ったアプリ"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"検索"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"カメラ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"通知が削除されました。"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知シェード"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"クイック設定"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"最近使ったアプリです。"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ユーザー: <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>、<xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"モバイル: <xliff:g id="SIGNAL">%1$s</xliff:g>、<xliff:g id="TYPE">%2$s</xliff:g>、<xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"パネルを閉じる"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"長くする"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"短くする"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G~3Gデータが無効になりました"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4Gデータが無効になりました"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"モバイルデータが無効になりました"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"アプリ情報"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"設定"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"警告: 上限は<xliff:g id="DATA_LIMIT">%s</xliff:g>です"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"最近使ったアプリはありません"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"アプリ情報"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"アプリロック"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"検索"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>のアラームは鳴りません"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"緊急度の低い通知を下に表示"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"開くにはもう一度タップしてください"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"ロック解除するには上にスワイプしてください"</string>
     <string name="phone_hint" msgid="3101468054914424646">"右にスワイプして電話を表示"</string>
     <string name="camera_hint" msgid="5241441720959174226">"左にスワイプしてカメラを表示"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"重要"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"すべて"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中(フル充電まで<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ゲスト"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"ゲストを終了"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"ゲストを削除"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ゲストセッションを終了しますか?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"ゲストセッションを終了すると、ローカルデータが削除されます。"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"おかえりなさい、ゲストさん"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"新しいセッションを開始しますか?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"はい"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"いいえ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1分"</item>
     <item quantity="other" msgid="6924190729213550991">"%d分"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d時間"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"バッテリーセーバーがON"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"パフォーマンスとバックグラウンドデータを制限します"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"バッテリーセーバーをOFFにします"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"コンテンツが非表示"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>で、画面に表示されているコンテンツのキャプチャを開始します。"</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"端末が監視されている可能性があります"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ネットワークが監視されている可能性があります"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"端末の監視"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ネットワーク監視"</string>
+    <string name="open_app" msgid="4011771120339160755">"アプリを開く"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPNを切断"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n\n管理者はあなたの端末やネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"「<xliff:g id="APPLICATION">%1$s</xliff:g>」にVPN接続のセットアップを許可しました。\n\nこのアプリはあなたの端末やネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN(「<xliff:g id="APPLICATION">%1$s</xliff:g>」)に接続しています。\n\nVPNサービスプロバイダはあなたの端末やネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。詳しくは管理者にお問い合わせください。\n\nまた、「<xliff:g id="APPLICATION">%2$s</xliff:g>」にVPN接続のセットアップを許可しています。このアプリもネットワークアクティビティを監視できます。"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。詳しくは管理者にお問い合わせください。\n\nまた、VPN(「<xliff:g id="APPLICATION">%2$s</xliff:g>」)に接続しています。VPNサービスプロバイダーもネットワークアクティビティを監視できます。"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 331c4c8..86d6116 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ბოლოს გამოყენებული აპების სია ცარიელია"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ბოლო აპების გაუქმება"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ბოლო აპი"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"თვითმფრინავის რეჟიმი"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"უკან"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"საწყისი"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"მენიუ"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"ბოლოს გამოყენებული აპები"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ძიება"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"კამერა"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ტელეფონი"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"შეტყობინება წაიშალა."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"შეტყობინებების ფარდა"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"სწრაფი პარამეტრები"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"ბოლო აპები."</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"მომხმარებელი: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"მობილურის <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"არეს დახურვა"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"მეტი დრო"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"ნაკლები დრო"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G მონაც. გადაცემა გამორთულია"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G მონაც. გადაცემა გამორთულია"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ფიჭური ინტერნეტი გამორთულია"</string>
@@ -182,7 +186,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"აპის შესახებ"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"პარამეტრები"</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>
@@ -241,7 +245,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> გაფრთხილება"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ბოლო აპები არ არის"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"აპლიკაციის შესახებ"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"აპზე ფიქსაცია"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ძიება"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"თქვენს მაღვიძარას <xliff:g id="ALARM_TIME">%s</xliff:g>-ზე ვერ გაიგონებთ"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"ქვემოთ მითითებულია ნაკლებად სასწრაფო შეტყობინებები"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"შეეხეთ ისევ გასახსნელად"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"გაასრიალეთ ზევით განსაბლოკად"</string>
     <string name="phone_hint" msgid="3101468054914424646">"გადაფურცლეთ მარჯვნივ ტელეფონისთვის"</string>
     <string name="camera_hint" msgid="5241441720959174226">"კამერისთვის მარცხენა შენაცვლება"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"პრიორიტეტი"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ყველა"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>-ის შეცვლა დასრულებამდე)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ სტუმარი"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"სტუმრის გასვლა"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"გსურთ სტუმრის სესიიდან გამოსვლა?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"სტუმრის სესიიდან გამოსვლით ლოკალური მონაცემები ამოიშლება."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"სტუმარო, გვიხარია, რომ დაბრუნდით!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"გსურთ, ახალი სესიის დაწყება?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"კი"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"არა, გმადლობთ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ერთი წუთით"</item>
     <item quantity="other" msgid="6924190729213550991">"%d წუთით"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d საათით"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ბატარეის დამზოგი ჩართულია"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ამცირებს წარმადობას და უკანა ფონის მონაცემებს"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ბატარეის დაზოგვის გამორთვა"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"შიგთავსი დამალულია"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> დაიწყებს იმ ყველაფრის აღბეჭდვას, რაც თქვენს ეკრანზე ჩანს."</string>
@@ -299,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"შესაძლოა მოწყობილობის მონიტორინგი არ ხორციელდება"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"შესაძლოა ქსელზე ხორციელდება მონიტორინგი"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"მოწყობილობის მონიტორინგი"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ქსელის მონიტორინგი"</string>
+    <string name="open_app" msgid="4011771120339160755">"აპის გახსნა"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-ის გათიშვა"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ამ მოწყობილობის მმართველი არის:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"თქვენ მიეცით ნებართვა „<xliff:g id="APPLICATION">%1$s</xliff:g>“-ს დააყენოს VPN კავშირი.\n\nამ აპს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"თქვენ დაკავშირებული ხართ VPN-თან („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nთქვენი VPN სერვისის პროვაიდერს  შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ამ მოწყობილობის მმართველია:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების. დამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს.\n\nთქვენ მიეცით ნებართვა „<xliff:g id="APPLICATION">%2$s</xliff:g>“-ს დააყენოს VPN კავშირი. ამ აპს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ამ მოწყობილობის მმართველი არის:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო საიტების. დამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს.\n\nასევე, თქვენ დაკავშირებული ხართ VPN-თან („<xliff:g id="APPLICATION">%2$s</xliff:g>“). თქვენს VPN სერვისის პროვაიდერს ასევე შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml
index 6991615..18af59d 100644
--- a/packages/SystemUI/res/values-kk-rKZ/strings.xml
+++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Жуықта қолданылған қолданбалар жоқ"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Жуықта қолданылған қолданбаларды қоспау"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 жуықта қолданылған қолданба"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Ұшақ режимі"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Артқа"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Үй"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Mәзір"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Жуықта қолданылған қолданбалар"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Іздеу"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Хабар алынып тасталды."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Хабарландыру тақтасы"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Жылдам параметрлер."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Соңғы қолданбалар."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Параметрлер"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пайдаланушы <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Ұялы <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Тақтаны жабу"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Көбірек уақыт"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Азырақ уақыт"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G деректері өшірулі"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G деректері өшірулі"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Ұялы деректер өшірулі"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Қолданба ақпараты"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Параметрлер"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> туралы ескерту"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Жақындағы қолданбалар жоқ"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Қолданба туралы ақпарат"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"қолданбаға бекіту"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"іздеу"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> уақытында дабылды естімейсіз"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Шұғылдығы азырақ хабарландырулар төменде"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ашу үшін қайта түртіңіз"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Бекітпесін ашу үшін жанаңыз"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Телефон үшін оңға жанаңыз"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Камера үшін солға жанаңыз"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Басымдық"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Барлығы"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядталуда (толғанша <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Қонақ"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Қонақтан шығу"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Қонақты жою"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Қонақ сеансынан шығып жатырсыз ба?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Қонақ сеансынан шығу жергілікті деректерді жояды."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Қош келдіңіз, қонақ"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Жаңа сеанс бастау керек пе?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Иә"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Жоқ, рақмет"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Бір минут бойы"</item>
     <item quantity="other" msgid="6924190729213550991">"%d минут бойы"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d сағат бойы"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Батарея үнемдегіш қосулы"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Өнімділікті және фондық деректерді азайтады"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Батарея үнемдегішті өшіру"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Мазмұн жасырылған"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> экранда көрсетілгеннің барлығын түсіре бастайды."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Құрылғы бақылануы мүмкін"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Желі бақылауда болуы мүмкін"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Құрылғыны бақылау"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Желіні бақылау"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ашық қолданба"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN желісін ажырату"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Бұл құрылғыны басқаратын ұйым:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nӘкімші желілік белсенділікті, соның ішінде, электрондық хабарларды, қолданбаларды және қорғалған веб-сайттарды бақылауы мүмкін.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Сіз «<xliff:g id="APPLICATION">%1$s</xliff:g>» қолданбасына VPN байланысын орнату рұқсатын бердіңіз.\n\nБұл қолданба құрылғыңызды және желілік белсенділікті, соның ішінде, электрондық хабарларды, қолданбаларды және қорғалған веб-сайттарды бақылауы мүмкін."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Сіз VPN («<xliff:g id="APPLICATION">%1$s</xliff:g>») желісіне қосылғансыз.\n\nVPN қызмет жеткізушісі құрылғыңызды және желілік белсенділікті, соның ішінде, электрондық хабарларды, қолданбаларды және қорғалған веб-сайттарды бақылауы мүмкін."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Бұл құр. келесі ұйым бас.:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nӘкімші желілік белсенділікті, соның ішінде, электрондық хаб-ды, қолд-ды және қорғалған веб-сайттарды бақ. мүмкін. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз.\n\nСондай-ақ, сіз «<xliff:g id="APPLICATION">%2$s</xliff:g>» қолд-на VPN байланысын орнатуға рұқсат еттіңіз. Бұл қолд. да желілік белс-ті бақылауы мүмкін."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Бұл құрылғыны келесі ұйым басқарады:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nӘкімші желілік белсенділікті, соның ішінде, электрондық хабарларды, қолданбаларды және қорғалған веб-сайттарды бақылауы мүмкін. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз.\n\nСондай-ақ, сіз VPN («<xliff:g id="APPLICATION">%2$s</xliff:g>») желісіне қосылғансыз. VPN қызмет жет-сі де жел. белс-ті бақ. мүм."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index d9d8402..5ca2339 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"គ្មាន​កម្មវិធី​ថ្មីៗ"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"បដិសេធ​កម្មវិធី​ថ្មីៗ"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"កម្មវិធី​ថ្មី ១"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"មិន​គាំទ្រ​ការ​បញ្ចូល​ថ្ម​តាម​យូអេសប៊ី​ទេ។"</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"ប្រើ​តែ​ឧបករណ៍​បញ្ចូល​ថ្ម​ដែល​បាន​ផ្ដល់​ឲ្យ។"</string>
     <string name="battery_low_why" msgid="4553600287639198111">"ការកំណត់"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"វ៉ាយហ្វាយ"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ពេល​ជិះ​យន្តហោះ"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ថយក្រោយ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"គេហ​ទំព័រ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"ម៉ឺនុយ"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"កម្មវិធី​ថ្មីៗ"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ស្វែងរក"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ម៉ាស៊ីន​ថត"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ទូរស័ព្ទ"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"បាន​បដិសេធ​ការ​ជូនដំណឹង"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ពណ៌​ការ​ជូន​ដំណឹង"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ការ​កំណត់​រហ័ស។"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"កម្មវិធី​ថ្មី​ៗ។"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"អ្នក​ប្រើ <xliff:g id="USER">%s</xliff:g> ។"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ចល័ត <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"បិទ​បន្ទះ"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"ពេល​ច្រើនជាង"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"ពេល​តិចជាង"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"ទិន្នន័យ 2G-3G បាន​បិទ"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"ទិន្នន័យ 4G បាន​បិទ"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ទិន្នន័យ​ចល័ត​បាន​បិទ"</string>
@@ -182,7 +186,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ព័ត៌មាន​កម្មវិធី"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ការកំណត់"</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>
@@ -241,7 +245,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ការ​ព្រមាន"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"មិនមាន​​កម្មវិធី​ថ្មីៗ"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"ព័ត៌មាន​កម្មវិធី"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"ចាក់​សោ​ទៅ​កម្មវិធី"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ស្វែងរក"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"អ្នកនឹងមិនឮការជូន​ដំណឹងរបស់អ្នកនៅម៉ោង <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"ការ​ជូន​ដំណឹង​​មិន​សូវ​បន្ទាន់​ខាង​ក្រោម"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"ប៉ះ​ម្ដង​ទៀត ដើម្បី​បើក"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"អូស​ឡើង​លើ ដើម្បី​ដោះ​សោ"</string>
     <string name="phone_hint" msgid="3101468054914424646">"អូស​ទៅ​ស្ដាំ​ដើម្បី​បើក​​ទូរស័ព្ទ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"អូស​ទៅ​ឆ្វេង​​ដើម្បី​ប្រើ​​ម៉ាស៊ីន​ថត"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"អាទិភាព"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ទាំងអស់"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"កំពុង​បញ្ចូល​ថ្ម (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ទើប​ពេញ)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ភ្ញៀវ"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"ភ្ញៀវ​ចាកចេញ"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ចេញ​ពី​សម័យ​ភ្ញៀវ?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"ការ​ចេញ​ពី​សម័យ​ភ្ញៀវ​នឹង​លុប​ទិន្នន័យ​មូលដ្ឋាន។"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"សូម​ស្វាគមន៍​ការ​ត្រឡប់​មកវិញ, ភ្ញៀវ!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"តើ​អ្នក​ចង់​ចាប់ផ្ដើម​សម័យ​ថ្មី?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"បាទ/ចាស"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"ទេ, អរគុណ!"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"សម្រាប់​មួយ​នាទី"</item>
     <item quantity="other" msgid="6924190729213550991">"សម្រាប់ %d នាទី"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"សម្រាប់ %d ម៉ោង"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"កម្មវិធី​សន្សំ​ថ្ម​គឺ​បើក"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ការ​បន្ថយ​ការ​ប្រតិបត្តិ និង​ទិន្នន័យ​ផ្ទៃ​ខាងក្រោយ"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"បិទ​ធាតុ​រក្សា​ថាមពល​ថ្ម"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"បាន​លាក់​មាតិកា"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> នឹង​ចាប់ផ្ដើម​ចាប់​យក​អ្វីៗ​គ្រប់យ៉ាង​ដែល​បង្ហាញ​លើ​អេក្រង់​របស់​អ្នក។"</string>
@@ -299,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ឧបករណ៍​អាច​ត្រូវ​បាន​ត្រួតពិនិត្យ"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"បណ្ដាញ​អាច​ត្រូវ​បាន​ត្រួតពិនិត្យ"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ការ​ត្រួតពិនិត្យ​ឧបករណ៍"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ការ​ត្រួតពិនិត្យ​បណ្ដាញ"</string>
+    <string name="open_app" msgid="4011771120339160755">"បើក​កម្មវិធី"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"ផ្ដាច់ VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ឧបករណ៍​នេះ​ត្រូវ​បាន​គ្រប់គ្រង​ដោយ៖\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nអ្នកគ្រប់គ្រង​របស់​អ្នក​អាច​ពិនិត្យ​ឧបករណ៍ និង​សកម្មភាព​បណ្ដាញ​របស់​អ្នក​រួម​មាន​​ អ៊ីមែល, កម្មវិធី និង​តំបន់បណ្ដាញ​មាន​សុវត្ថិភាព។\n\nចំពោះ​ព័ត៌មាន​បន្ថែម សូម​ទាក់ទង​អ្នក​គ្រប់គ្រង​របស់​អ្នក។"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"អ្នក​បាន​ផ្ដល់​សិទ្ធិ \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ដើម្បី​រៀបចំ​ការ​ភ្ជាប់ VPN ។\n\nកម្មវិធី​នេះ​អាច​ពិនិត្យ​ឧបករណ៍ និង​សកម្មភាព​បណ្ដាញ​របស់​អ្នក​រួមមាន អ៊ីមែល, កម្មវិធី និង​តំបន់បណ្ដាញ​មាន​សុវត្ថិភាព។"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"អ្នក​​បាន​ភ្ជាប់​ទៅ VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\")។\n\nក្រុមហ៊ុន​ផ្ដល់​សេវាកម្ម VPN របស់​អ្នក​​អាច​ពិនិត្យ​ឧបករណ៍ និង​សកម្មភាព​បណ្ដាញ​របស់​អ្នក​​រួមមាន អ៊ីមែល, កម្មវិធី និង​តំបន់​បណ្ដាញ​មាន​សុវត្ថិភាព។"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ឧបករណ៍នេះត្រូវបានគ្រប់គ្រងដោយ​ \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n អ្នកគ្រប់គ្រងរបស់អ្នកមានសមត្ថភាពក្នុងការត្រួតពិនិត្យសកម្មភាពបណ្ដាញរបស់អ្នក រួមមានអ៊ីមែល​, កម្មវិធី​, និងតំបន់បណ្ដាញសុវត្ថិភាព​។ សម្រាប់ព័ត៌មានបន្ថែមសូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក​។ \n\n អ្នកបានផ្ដល់សិទ្ធិ\"<xliff:g id="APPLICATION">%2$s</xliff:g>\" ដើម្បីរៀបចំការតភ្ជាប់ VPN ។ កម្មវិធីនេះអាចតាមដានសកម្មភាពបណ្ដាញ។"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ឧបករណ៍នេះត្រូវបានគ្រប់គ្រងដោយ \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n អ្នកគ្រប់គ្រងរបស់អ្នកមានសមត្ថភាពក្នុងការត្រួតពិនិត្យសកម្មភាពបណ្ដាញរបស់អ្នករួមមានអ៊ីមែល​, កម្មវិធី និងតំបន់បណ្ដាញសុវត្ថិភាព។ សម្រាប់ព័ត៌មានបន្ថែមសូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។ \n\n ​អ្នកត្រូវបានតភ្ជាប់ទៅ VPN (\" <xliff:g id="APPLICATION">%2$s</xliff:g> \") ។ ក្រុមហ៊ុនផ្ដល់​សេវា VPN របស់អ្នកអាចតាមដានសកម្មភាពរបស់​អ្នក។"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml
index 1bd31d2..45d32b2 100644
--- a/packages/SystemUI/res/values-kn-rIN/strings.xml
+++ b/packages/SystemUI/res/values-kn-rIN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಲ್ಲ"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವಜಾಗೊಳಿಸು"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ಹಿಂದೆ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ಮುಖಪುಟ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"ಮೆನು"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ಹುಡುಕು"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ಕ್ಯಾಮರಾ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ಫೋನ್"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ಅಧಿಸೂಚನೆ ವಜಾಗೊಂಡಿದೆ."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ಅಧಿಸೂಚನೆಯ ಛಾಯೆ."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‍ಗಳು."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ಬಳಕೆದಾರ <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ಮೊಬೈಲ್ <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"ಫಲಕವನ್ನು ಮುಚ್ಚು"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"ಹೆಚ್ಚು ಸಮಯ"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"ಕಡಿಮೆ ಸಮಯ"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G ಡೇಟಾ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G ಡೇಟಾ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ಸೆಲ್ಯುಲಾರ್ ಡೇಟಾ ಆಫ್ ಆಗಿದೆ"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ಎಚ್ಚರಿಕೆ"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಲ್ಲ"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಲಾಕ್‌"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ಹುಡುಕಾಟ"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> ಗೆ ನೀವು ನಿಮ್ಮ ಅಲಾರಂ ಆಲಿಸುವುದಿಲ್ಲ"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"ಕೆಳಗೆ ಕಡಿಮೆ ಅವಸರದ ಅಧಿಸೂಚನೆಗಳು"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"ತೆರೆಯಲು ಮತ್ತೆ ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"ಅನ್‌ಲಾಕ್‌ ಮಾಡಲು ಸ್ವೈಪ್‌ ಮಾಡಿ"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ಫೋನ್‌ಗಾಗಿ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ಕ್ಯಾಮರಾಗಾಗಿ ಎಡಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ಆದ್ಯತೆ"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ಎಲ್ಲ"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ( ಪೂರ್ತಿ ಆಗುವವರೆಗೆ <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ಅತಿಥಿ"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"ಅತಿಥಿ ಅನ್ನು ನಿರ್ಗಮಿಸಿ"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"ಅತಿಥಿಯನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ಅತಿಥಿ ಅವಧಿಯನ್ನು ನಿರ್ಗಮಿಸಬೇಕೆ?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"ಅತಿಥಿ ಅವಧಿಯಿಂದ ನಿರ್ಗಮಿಸುವುದರಿಂದ ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದು."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ಮತ್ತೆ ಸುಸ್ವಾಗತ, ಅತಿಥಿ!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"ನೀವು ಹೊಸ ಅವಧಿಯನ್ನು ಆರಂಭಿಸಲು ಬಯಸುವಿರಾ?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ಹೌದು"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"ಬೇಡ, ಧನ್ಯವಾದಗಳು"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ಒಂದು ನಿಮಿಷದವರೆಗೆ"</item>
     <item quantity="other" msgid="6924190729213550991">"%d ನಿಮಿಷಗಳವರೆಗೆ"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d ಗಂಟೆಗಳವರೆಗೆ"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ಬ್ಯಾಟರಿ ರಕ್ಷಕ ಆನ್ ಆಗಿದೆ"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಹಿನ್ನೆಲೆ ಡೇಟಾವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ಬ್ಯಾಟರಿ ಉಳಿತಾಯವನ್ನು ಆಫ್ ಮಾಡಿ"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"ವಿಷಯಗಳನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುವ ಎಲ್ಲವನ್ನೂ <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ಯು ಸೆರೆಹಿಡಿಯಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ಸಾಧನವನ್ನು ಪರಿವೀಕ್ಷಿಸಬಹುದಾಗಿದೆ"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ವೀಕ್ಷಿಸಬಹುದಾಗಿ"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ಸಾಧನ ಪರಿವೀಕ್ಷಣೆ"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ನೆಟ್‌ವರ್ಕ್‌ ಪರಿವೀಕ್ಷಣೆ"</string>
+    <string name="open_app" msgid="4011771120339160755">"ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ಸಂಪರ್ಕಕಡಿತಗೊಳಿಸಿ"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ಈ ಸಾಧನವನ್ನು ಇವರು ನಿರ್ವಹಿಸಿದ್ದಾರೆ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು.\n\nಇನ್ನಷ್ಟು ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"ನೀವು VPN ಸಂಪರ್ಕ ಹೊಂದಿಸಲು \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ಗೆ ಅನುಮತಿ ನೀಡಿರುವಿರಿ.\n\n ಈ ಅಪ್ಲಿಕೇಶನ್ ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"ನೀವು VPN ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nನಿಮ್ಮ VPN ಸೇವೆ ಒದಗಿಸುವವರು ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ಇವರು ಈ ಸಾಧನವನ್ನು ನಿರ್ವಹಿಸುತ್ತಾರೆ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.\n\nಅಲ್ಲದೇ, ನೀವು VPN ಸಂಪರ್ಕ ಹೊಂದಿಸಲು \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" ಗೆ ಅನುಮತಿ ನೀಡಿರುವಿರಿ. ಈ ಅಪ್ಲಿಕೇಶನ್ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಸಹ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ಇವರು ಈ ಸಾಧನವನ್ನು ಇವರು ನಿರ್ವಹಿಸುತ್ತಾರೆ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್‌ಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.\n\nಅಲ್ಲದೇ, ನೀವು VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ. ನಿಮ್ಮ VPN ಸೇವೆ ಒದಗಿಸುವವರು ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಸಹ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index a62d501..fa2d05c 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"최근에 사용한 앱 없음"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"최근에 사용한 앱 숨기기"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"최근에 사용한 앱 1개"</item>
@@ -41,12 +42,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"비행기 모드"</string>
@@ -85,7 +83,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"뒤로"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"홈"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"메뉴"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"최근에 사용한 앱"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"검색"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"카메라"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"전화"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"알림이 제거되었습니다."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"알림 세부정보"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"빠른 설정"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"최근 앱"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"설정"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"사용자 <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"모바일 <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"패널 닫기"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"시간 늘리기"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"시간 줄이기"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G 데이터 사용 중지됨"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G 데이터 사용 중지됨"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"이동통신 데이터 사용 중지됨"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"앱 정보"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"설정"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 경고"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"최근에 사용한 앱 없음"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"애플리케이션 정보"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"앱에 잠금"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"검색"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>에 알람을 들을 수 없습니다."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"아래에 덜 급한 알림 표시"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"다시 탭하여 열기"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"위로 스와이프하여 잠금 해제"</string>
     <string name="phone_hint" msgid="3101468054914424646">"전화 기능을 사용하려면 오른쪽으로 스와이프하세요."</string>
     <string name="camera_hint" msgid="5241441720959174226">"카메라를 사용하려면 왼쪽으로 스와이프하세요."</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"최우선만 수신"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"모두 수신"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"충전 중(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> 후 충전 완료)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"새 손님 추가"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"손님 모드 종료"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"손님 삭제"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"손님 세션을 종료하시겠습니까?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"손님 세션을 종료하면 로컬 데이터가 삭제됩니다."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"손님 세션 다시 시작"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"새로운 세션을 시작하시겠습니까?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"예"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"아니요"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1분 동안"</item>
     <item quantity="other" msgid="6924190729213550991">"%d분 동안"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d시간 동안"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"배터리 세이버 사용 중"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"성능 및 백그라운드 데이터를 줄입니다."</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"배터리 절약 기능 사용 중지"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"숨겨진 콘텐츠"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>에서 화면에 표시된 모든 것을 캡처하기 시작합니다."</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"기기가 모니터링될 수 있음"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"네트워크가 모니터링될 수 있음"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"기기 모니터링"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"네트워크 모니터링"</string>
+    <string name="open_app" msgid="4011771120339160755">"앱 열기"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN 연결 해제"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"이 기기는 \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n에서 관리합니다. 관리자가 이메일, 앱 및 보안 웹사이트 등의 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"\'<xliff:g id="APPLICATION">%1$s</xliff:g>\'에 VPN 연결을 설정할 수 있는 권한을 부여했습니다.\n\n이 앱에서 내 기기와 이메일과 앱, 보안 웹사이트 등의 네트워크 활동을 모니터링할 수 있습니다."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN(\'<xliff:g id="APPLICATION">%1$s</xliff:g>\')에 연결되었습니다.\n\nVPN 서비스 제공업체에서 내 기기와 이메일, 앱, 보안 웹사이트 등의 네트워크 활동을 모니터링할 수 있습니다."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"이 기기는 \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자가 이메일, 앱, 보안 웹사이트 등의 네트워크 활동을 모니터링할 수 있습니다. 자세한 정보는 관리자에게 문의하세요.\n\n또한 \'<xliff:g id="APPLICATION">%2$s</xliff:g>\'에 VPN 연결을 설정할 수 있는 권한을 부여했습니다. 이 앱에서도 네트워크 활동을 모니터링할 수 있습니다."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"이 기기는 \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자가 이메일, 앱, 보안 웹사이트 등의 네트워크 활동을 모니터링할 수 있습니다. 자세한 정보는 관리자에게 문의하세요.\n\n또한 VPN에도 연결되었습니다(\'<xliff:g id="APPLICATION">%2$s</xliff:g>\'). VPN 서비스 제공업체에서도 네트워크 활동을 모니터링할 수 있습니다."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml
index 750c1d9..d3fc508 100644
--- a/packages/SystemUI/res/values-ky-rKG/strings.xml
+++ b/packages/SystemUI/res/values-ky-rKG/strings.xml
@@ -25,7 +25,8 @@
     <skip />
     <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="6576392951053994640">"Акыркы колдонмолор табылган жок"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Акыркы колдонмолорду жок кылуу"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 акыркы колдонмо"</item>
@@ -46,12 +47,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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>
     <!-- no translation found for status_bar_settings_settings_button (3023889916699270224) -->
     <skip />
     <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) -->
@@ -109,7 +107,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Артка"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Үйгө"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Меню"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Акыркы колдонмолор"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Издөө"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
@@ -184,7 +183,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Эскертме жок кылынды."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Эскертмелер көшөгөсү."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Тез тууралоолор."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Акыркы колдонмолор."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Жөндөөлөр"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Колдонуучу <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобилдик түйүн <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -196,6 +197,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Тактаны жабуу"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Көбүрөөк убакыт"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Азыраак убакыт"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2Гб-3Гб көлөмдөгү дайындар өчүрүлдү."</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4Гб көлөмдөгү дайындар өчүрүлдү"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Уюктук дайындар тармагы өчүк"</string>
@@ -208,7 +211,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Колдонмо тууралуу"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Жөндөөлөр"</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>
@@ -267,7 +270,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> эскертүү"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Акыркы колдонмолор жок"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Колдонмо жөнүндө маалымат"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"колдонмого кулпулоо"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"издөө"</string>
@@ -287,7 +291,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Саат <xliff:g id="ALARM_TIME">%s</xliff:g> үн ишаратын укпайсыз."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Анчейин шашылыш эмес эскертмелер төмөндө"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ачуу үчүн кайра таптап коюңуз"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Кулпуну ачуу үчүн серпип коюңуз"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Телефонду колдонуу үчүн оңго серпип коюңуз"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Камераны ачуу үчүн солго серпип коюңуз"</string>
@@ -296,15 +301,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Артыкчылыктуу"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Бардыгы"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Кубатталууда (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> толгонго чейин)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Конок"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Конок режиминен чыгуу"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Конокту алып салуу"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Конок сеансынан чыгасызбы?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Конок сеансынан чыкканда, жергиликтүү дайындар өчүрүлөт."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Кайтып келишиңиз менен, конок!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Жаңы сеанс баштайсызбы?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ооба"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Жок, рахмат"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Бир мүнөткө"</item>
     <item quantity="other" msgid="6924190729213550991">"%d мүнөткө"</item>
@@ -314,10 +329,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d саатка"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Батареяны үнөмдөгүч күйгүзүлдү"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Иштин майнаптуулугун начарлатып, фондук дайындарды чектейт"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Батареянын кубатын үнөмдөгүчтү өчүрүп коюу"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Мазмундар жашырылган"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> экранга чыккан нерсенин баарын сүрөткө тарта баштайт."</string>
@@ -325,26 +338,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Түзмөктү көзөмөлдөсө болот"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Тармак көзөмөлдөнүшү мүмкүн"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Түзмөккө көз салуу"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Тармакка көз салуу"</string>
+    <string name="open_app" msgid="4011771120339160755">"Колдонмону ачуу"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN\'ди ажыратуу"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Бул түзмөк төмөнкү тарабынан башкарылат:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистраторуңуз түзмөгүңүздү жана тармактагы аракетиңизди, анын ичинде email-дер, колдонмолор жана коопсуз вебсайттарды көзөмөлдөй алат.\n\nКөбүрөөк маалымат үчүн администраторуңузга кайрылыңыз."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" VPN туташуу орнотуусуна уруксат бердиңиз.\n\nБул колдонмо түзмөгүңүздү жана тармактагы аракетиңизди, анын ичинде email-дер, колдонмолор жана коопсуз вебсайттарды көзөмөлдөй алат."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Сиз VPN-ге туташкансыз (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nVPN кызмат камсыздоочуңуз түзмөгүңүздү жана тармактагы аракетиңизди, анын ичинде email-дер, колдонмолор жана коопсуз вебсайттарды көзөмөлдөй алат."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Бул түзмөк төмөнкүчө башкарылат:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор электрондук почталар, колдонмолор жана коопсуз вебсайттар сыяктуу тармактгы аракеттрге көз салып турт. Көбүрөөк билүү үчн, администратрго кайрылңз.\n\nОшондой эле \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" VPN туташуусн орнотууга урукст бердиңз. Бул колдонмо тармактгы аракеттерңзге дагы көз салат."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Бул түзмөк төмөнкүчө башкарылат:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор электрондук почта, колдонмолор жана коопсуз вебсайттар сыяктуу тармактагы аракеттериңизге көз салып турат. Көбүрөөк билүү үчүн, администраторго кайрылыңыз.\n\nОшондой эле VPN\'ге туташып турасыз. (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). VPN кызмат көрсөтүүчү тармактагы аракетиңизге көз салат."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-land/config.xml b/packages/SystemUI/res/values-land/config.xml
index 2b1a4dc..d608e25 100644
--- a/packages/SystemUI/res/values-land/config.xml
+++ b/packages/SystemUI/res/values-land/config.xml
@@ -29,5 +29,7 @@
 
     <!-- The number of columns that the top level tiles span in the QuickSettings -->
     <integer name="quick_settings_user_time_settings_tile_span">2</integer>
-</resources>
 
+    <!-- We have only space for one notification on phone landscape layouts. -->
+    <integer name="keyguard_max_notification_count">1</integer>
+</resources>
diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml
index a433b85..f7dfb89 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="6576392951053994640">"ບໍ່ມີແອັບຯທີ່ຫາກໍໃຊ້"</string>
+    <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string>
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ປິດແອັບຯຫຼ້າສຸດທີ່ໃຊ້"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ແອັບຯຫຼ້າສຸດ"</item>
@@ -80,7 +80,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"ກັບຄືນ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ໜ້າທຳອິດ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"ເມນູ"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"ແອັບຯຫຼ້າສຸດ"</string>
+    <string name="accessibility_recent" msgid="1606470783629913980">"ໜ້າ​ຈໍ​​ເມື່ອບໍ່​ດົນ​ມາ​ນີ້"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"ຊອກຫາ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ກ້ອງ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ໂທລະສັບ"</string>
@@ -155,7 +155,8 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ປິດການແຈ້ງເຕືອນແລ້ວ."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ໜ້າຈໍແຈ້ງເຕືອນ."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ການຕັ້ງຄ່າດ່ວນ."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"ແອັບຯທີ່ຫາກໍໃຊ້."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ການ​ຕັ້ງ​ຄ່າ"</string>
+    <string name="accessibility_desc_recent_apps" msgid="8376953390514779637">"ໜ້າ​ຈໍ​​ເມື່ອບໍ່​ດົນ​ມາ​ນີ້."</string>
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ຜູ່ໃຊ້ <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ມືຖື <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -167,6 +168,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"​ປິດ​ແຖບ"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"​ເພີ່ມ​ເວ​ລາ"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"ຫຼຸດ​ເວ​ລາ"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"ຂໍ້​ມູນ 2G-3G ​ແມ່ນ​ປິດ"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"ຂໍ້​ມູນ 4G ແມ່ນ​ປິດ"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ຂໍ້​ມູ​ນມ​ື​ຖື​ຖືກ​ປິດ"</string>
@@ -179,7 +182,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ຂໍ້ມູນແອັບຯ"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ການ​ຕັ້ງ​ຄ່າ"</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>
@@ -238,7 +241,7 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"ຄຳ​ເຕືອນ <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ບໍ່​ມີ​ແອັບຯ​ທີ່​ຫາ​ກໍ​ໃຊ້"</string>
+    <string name="recents_empty_message" msgid="8682129509540827999">"Your recent screens appear here"</string>
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"​ຂໍ້​ມູນ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lock to app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ຊອກຫາ"</string>
@@ -258,7 +261,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"ທ່ານ​ຈະ​ບໍ່​ໄດ້​ຍິນ​ສຽງ​ໂມງ​ປຸກ​ໃນ​ເວ​ລາ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"ການ​ແຈ້ງເຕືອນ​ທີ່​ສຳຄັນ​ໜ້ອຍ​ກວ່າ​ຢູ່​ດ້ານ​ລຸ່ມ"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"ແຕະ​ອີກ​ຄັ້ງ​ເພື່ອ​ເປີດ"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"ເລື່ອນ​ຂຶ້ນ​ເພື່ອ​ປົດ​ລັອກ"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ປັດ​ຂວາ​ເພື່ອ​ໃຊ້​ໂທ​ລະ​ສັບ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ປັດ​ຊ້າຍ​ເພື່ອ​ໃຊ້​ກ້ອງ"</string>
@@ -267,15 +271,24 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ລະດັບຄວາມສຳຄັນ"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ທັງໝົດ"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ກຳ​ລັງ​ສາກ​ໄຟ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ກວ່າ​ຈ​ະ​ເຕັມ)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ແຂກ"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"​ອອກ​ຈາກ​ຜູ່​ມາ​ຢາມ"</string>
+    <string name="guest_new_guest" msgid="600537543078847803">"Add guest"</string>
+    <string name="guest_exit_guest" msgid="7187359342030096885">"​ລຶບ​ແຂກ"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ສິ້ນ​ສຸດ​ການ​ນຳ​ໃຊ້​ຂອງ​ຜູ່​ຢ້ຽມ​ຢາມບໍ່?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"​ການ​ອອກ​ຈາກ​ເຊດ​ຊັນ​ຜູ່​ຢ້ຽມ​ຢາມ​ຈະ​ເປັນ​ການ​ລຶບ​ຂໍ້​ມູນ​ໃນ​ເຄື່ອງອອ."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ຍິນ​ດີ​ຕ້ອນ​ຮັບ​ກັບ​ມາ, ຜູ່​ຢ້ຽມ​ຢາມ!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"ທ່ານ​ຕ້ອງ​ການ​ເລີ່ມ​ເຊດ​ຊັນ​ໃໝ່​ບໍ່?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"​ແມ່ນ​ແລ້ວ"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"ບໍ່, ຂອບໃຈ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ເປັນ​ເວລາ​ນຶ່ງ​ນາ​ທີ"</item>
     <item quantity="other" msgid="6924190729213550991">"ເປັນ​ເວລາ %d ນາ​ທີ"</item>
@@ -300,9 +313,10 @@
     <string name="monitoring_title" msgid="169206259253048106">"ການກວດ​ສອບ​ຕິດ​ຕາມ​ເຄືອ​ຂ່າຍ"</string>
     <string name="open_app" msgid="4011771120339160755">"ເປີດແອັບຯ"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"ຕັດ​ການ​ເຊື່ອມ​ຕໍ່ VPN"</string>
-    <string name="monitoring_description_device_owned" msgid="7801926679066533391">"ອຸ​ປະ​ກອນ​ນີ້​ຖືກ​ຈັດ​ການ​ໂດຍ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄື​ອ​ຂ່າຍ​ຂອງ​ທ່ານ ຮວມ​ເຖິງ: ອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ.\n\nສຳ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ, ໃຫ້​ຕິດ​ຕໍ່​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ."</string>
-    <string name="monitoring_description_vpn" msgid="93140751707065515">"​ທ່ານມອບ​ສິດ​ອະ​ນຸ​ຍາດໃຫ້ \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ເພື່ອ​ຕັ້ງ​ຄ່າ​ການ​ເຊື່ອມ​ຕໍ່ VPN.\n\nແອັບຯ​ນີ້​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງ​ອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ."</string>
-    <string name="monitoring_description_legacy_vpn" msgid="5397847778080663075">"ທ່ານ​ເຊື່ອມ​ຕໍ່​ຫາ VPN ແລ້ວ (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nຜູ່​ໃຫ້​ບໍ​ລິ​ການ VPN ​ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້​ ຮວມ​ເຖິງອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ."</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ອຸ​ປະ​ກອນ​ນີ້​​ຖືກ​ຈັດ​ການ​ໂດຍ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ອຸ​ປະ​ກອນ​ແລະ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ.\n\nສຳ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ, ໃຫ້​ຕິດ​ຕໍ່​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"ທ່ານ​ໃຫ້​ສິດ​ອະ​ນຸ​ຍາດ​ກັບ \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ເພື່ອ​ຕັ້ງ​ຄ່າ​ການ​ເຊື່ອມ​ຕໍ່ VPN.\n\nແອັບຯ​ນີ້​ຈະ​ສາ​ມາດເຝົ້າ​ຕິດ​ຕາມອຸ​ປະ​ກອນ​ແລະ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"ທ່ານ​ເຊື່ອມ​ຕ​ໍ່​ຫາ VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") ແລ້ວ.\n\n​ຜູ່​ໃຫ້​ບໍ​ລິ​ການ VPN ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມອຸ​ປະ​ກອນ​ແລະ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​ຫັດ."</string>
     <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຖືກ​ຈັດ​ການ​ໂດຍ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງ​ອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​​ຫັດ. ສຳ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ, ໃຫ້​ຕິດ​ຕໍ່​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ.\n\nອີກ​ຢ່າງ​ນຶ່ງ, ທ່ານມອບ​ສິດ​ອະ​ນຸ​ຍາດໃຫ້ \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" ເພື່ອ​ຕັ້ງ​ຄ່າ​ການ​ເຊື່ອມ​ຕໍ່ VPN. ແອັບຯ​ນີ້​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້."</string>
     <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ຖືກ​ຈັດ​ການ​ໂດຍ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້ ຮວມ​ເຖິງ​ອີ​ເມວ, ແອັບຯ ແລະ​ເວັບ​ໄຊ​ທີ່​ເຂົ້າ​ລະ​​ຫັດ. ສຳ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ, ໃຫ້​ຕິດ​ຕໍ່​ຜູ່​ເບິ່ງ​ແຍງ​ລະ​ບົບ​ຂອງ​ທ່ານ.\n\nນອກ​ຈາກ​ນັ້ນ, ທ່ານ​​ໄດ້​ເຊື່ອມ​ຕໍ່​ຫາ VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). ຜູ່​ໃຫ້​ບໍ​ລິ​ການ VPN ຂອງ​ທ່ານ​ສາ​ມາດ​ເຝົ້າ​ຕິດ​ຕາມ​ການ​ເຄື່ອນ​ໄຫວ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ໄດ້​ເຊັ່ນ​ກັນ."</string>
+    <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Device will stay locked until you manually unlock"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 3ea3f0b..98155d9 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Išvalyti"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Pašalinti iš sąrašo"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Programos informacija"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nėra naujausių programų"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Atsisakyti naujausių programų"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 naujausia programa"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB įkrovimas nepalaikomas."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Naudokite tik pateiktą kroviklį."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Nustatymai"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Įjungti Akumuliatoriaus tausojimo priemonę?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Įjungti"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Įjungti Akumuliatoriaus tausojimo priemonę"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nustatymai"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lėktuvo režimas"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Atgal"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Pagrindinis"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meniu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Naujausios programos"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Ieškoti"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparatas"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonas"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pranešimo atsisakyta."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pranešimų gaubtas."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Spartieji nustatymai."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Naujausios programos."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nustatymai"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Naudotojas <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobilusis ryšys <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Uždaryti skydelį"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Daugiau laiko"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mažiau laiko"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G–3G duomenys išjungti"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G duomenys išjungti"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobiliojo ryšio duomenys išjungti"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS nustatyta vieta"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Vietovės užklausos aktyvios"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Išvalyti visus pranešimus."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Programos informacija"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Nustatymai"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekranas bus sukamas automatiškai."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Užrakintas ekranas yra horizontalios orientacijos."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Užrakintas ekranas yra vertikalios orientacijos."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Išnaudota: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limitas: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> įspėjimas"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nėra naujausių programų"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Programos informacija"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Programos užrakinimo funkcija"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"paieška"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> signalo negirdėsite"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Mažiau skubūs pranešimai toliau"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Palieskite dar kartą, kad atidarytumėte"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Perbraukite aukštyn, kad atrakintumėte"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Perbraukite į dešinę, kad galėtumėte skambinti"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Perbraukite į kairę, kad būtų įjungtas fotoaparatas"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritetas"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kraunama (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> iki visiško įkrovimo)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Naudotojo pridėjimas"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Naujas naudotojas"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Svečias"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Svečias"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Išeiti iš svečio režimo"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Pašalinti svečią"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Išeinate iš svečio sesijos?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Išėjus iš svečio sesijos bus pašalinti vietiniai duomenys."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Sveiki sugrįžę, svety!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Ar norite pradėti naują sesiją?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Taip"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ne, ačiū"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 min."</item>
     <item quantity="other" msgid="6924190729213550991">"%d min."</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d val."</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Akumuliatoriaus tausojimo priemonė įjungta"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Sumažinamas našumas ir foninių duomenų naudojimas"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Išjungti Akumuliatoriaus tausojimo priemonę"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Turinys paslėptas"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"„<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>“ pradės fiksuoti viską, kas rodoma jūsų ekrane."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Viską išvalyti"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Pradėti dabar"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nėra įspėjimų"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Įrenginys gali būti stebimas"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Tinklas gali būti stebimas"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Įrenginio stebėjimas"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Tinklo stebėjimas"</string>
+    <string name="open_app" msgid="4011771120339160755">"Atidaryti programą"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Atjungti VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Šį įrenginį tvarko\n„<xliff:g id="ORGANIZATION">%1$s</xliff:g>“\n\nJūsų administratorius gali stebėti įrenginio ir tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines.\n\nJei reikia daugiau informacijos, susisiekite su administratoriumi."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Suteikėte leidimą „<xliff:g id="APPLICATION">%1$s</xliff:g>“ užmegzti VPN ryšį.\n\nŠi programa gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Esate prisijungę prie VPN („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nVPN paslaugos teikėjas gali stebėti įrenginį ir tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Šį įrenginį tvarko:\n„<xliff:g id="ORGANIZATION">%1$s</xliff:g>“\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines. Kad gautumėte daugiau informacijos, susisiekite su administratoriumi.\n\nSuteikėte leidimą „<xliff:g id="APPLICATION">%2$s</xliff:g>“ užmegzti VPN ryšį. Ši programa taip pat gali stebėti tinklo veiklą."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Šį įrenginį tvarko:\n„<xliff:g id="ORGANIZATION">%1$s</xliff:g>“\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines. Kad gautumėte daugiau informacijos, susisiekite su administratoriumi.\n\nBe to, esate prisijungę prie VPN („<xliff:g id="APPLICATION">%2$s</xliff:g>“). VPN paslaugos teikėjas taip pat gali stebėti tinklo veiklą."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index b9a4994..387b850 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Notīrīt"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Noņemšana no saraksta"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Lietotnes informācija"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nav nesen izmantotu lietotņu."</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Nerādīt nesen izmantotās lietotnes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 nesen izmantotā lietotne"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB uzlāde netiek atbalstīta."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Izmantojiet tikai komplektā iekļauto lādētāju."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Iestatījumi"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vai ieslēgt akumulatora jaudas taupīšanu?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ieslēgt"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Ieslēgt akumulatora jaudas taupīšanu"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Iestatījumi"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Lidmašīnas režīms"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Atpakaļ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Sākums"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Izvēlne"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nesen izmantotās lietotnes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Meklēt"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Tālruņa numurs"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Paziņojums netiek rādīts."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Paziņojumu panelis"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ātrie iestatījumi"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Pēdējās izmantotās lietotnes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Iestatījumi"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Lietotājs: <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobilo sakaru tīkls. <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Aizvērt paneli"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Ilgāk"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mazāks laiks"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G–3G dati ir atslēgti"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G dati ir atslēgti"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobilie dati ir atslēgti"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS iestatītā atrašanās vieta"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktīvi atrašanās vietu pieprasījumi"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Notīrīt visus paziņojumus"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informācija par lietotni"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Iestatījumi"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekrāns tiks pagriezts automātiski."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekrāns tagad ir bloķēts ainavas orientācijā."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekrāns tagad ir bloķēts portreta orientācijā."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Tiek izmantots: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Ierobežojums: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> brīdinājums"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nav nesen izmantotu lietotņu"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informācija par lietojumprogrammu"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"fiksēt lietotni"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"Meklēt"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Jūs nedzirdēsiet iestatīto signālu: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Mazāk steidzami paziņojumi tiek rādīti tālāk"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Pieskarieties vēlreiz, lai atvērtu"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Velciet uz augšu, lai atbloķētu"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Lai lietotu tālruni, velciet pa labi."</string>
     <string name="camera_hint" msgid="5241441720959174226">"Lai lietotu kameru, velciet pa kreisi."</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritāte"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Notiek uzlāde (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> līdz pilnīgai uzlādei)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Lietotāja pievienošana"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Jauns lietotājs"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Viesis"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+Viesis"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Iziet no viesa režīma"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Noņemt viesi"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Vai iziet no viesa sesijas?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Pārtraucot viesa sesiju, tiks noņemti lokālie dati."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Laipni lūdzam atpakaļ, viesi!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vai vēlaties sākt jaunu sesiju?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Jā"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nē, paldies"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Vienu minūti"</item>
     <item quantity="other" msgid="6924190729213550991">"%d min"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d h"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Ieslēgts akumulatora enerģijas taupīšanas režīms"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Samazina veiktspēju un fona datus"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Izslēgt akumulatora jaudas taupīšanu"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Saturs paslēpts"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> sāks uzņemt visu, kas tiks rādīts jūsu ekrānā."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Dzēst visu"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Sākt tūlīt"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nav paziņojumu"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Ierīci var pārraudzīt"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Iespējams, tīklā veiktās darbības tiek pārraudzītas."</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Ierīces pārraudzība"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Tīkla pārraudzība"</string>
+    <string name="open_app" msgid="4011771120339160755">"Atvērt lietotni"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Atvienot VPN tīklu"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Šo ierīci pārvalda:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJūsu administrators var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes. \n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Jūs piešķīrāt lietotnei “<xliff:g id="APPLICATION">%1$s</xliff:g>” atļauju izveidot savienojumu ar VPN tīklu\n\nŠī lietotne var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Ir izveidots savienojums ar VPN tīklu (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nJūsu VPN pakalpojumu sniedzējs var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Šo ierīci pārvalda:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJūsu administrators var pārraudzīt tīklā veiktās darbības, arī e-pastus, lietotnes un drošās vietnes. Lai uzzinātu vairāk, sazinieties ar administratoru.\n\nJūs arī piešķīrāt atļauju izveidot savienojumu ar VPN tīklu lietotnei “<xliff:g id="APPLICATION">%2$s</xliff:g>”. Šī lietotne arī var pārraudzīt jūsu tīklā veiktās darbības."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Šo ierīci pārvalda:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJūsu administrators var pārraudzīt jūsu tīklā veiktās darbības, arī e-pastus, lietotnes un drošās vietnes. Lai uzzinātu vairāk, sazinieties ar administratoru.\n\nIr arī izveidots savienojums ar VPN tīklu (“<xliff:g id="APPLICATION">%2$s</xliff:g>”). Tīklā veiktās darbības var pārraudzīt arī jūsu VPN pakalpojumu sniedzējs."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml
index 82adb40..6f41457 100644
--- a/packages/SystemUI/res/values-mk-rMK/strings.xml
+++ b/packages/SystemUI/res/values-mk-rMK/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Нема скорешни апликации"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Отфрли ги скорешните апликации"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 скорешна апликација"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Полнењето преку УСБ не е поддржано."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Користете го само доставениот полнач."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Поставки"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим на работа во авион"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Почетна страница"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Мени"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Скорешни апликации"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пребарај"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Фотоапарат"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Известувањето е отфрлено."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панел за известување"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Брзи подесувања."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Неодамнешни апликации."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Поставки"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобилен <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Затвори ја плочата"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Повеќе време"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Помалку време"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Податоците 2G-3G се исклучени"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Податоците 4G се исклучени"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Мобилните податоци се исклучени"</string>
@@ -184,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Локацијата е поставена со ГПС"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Активни барања за локација"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Исчисти ги сите известувања."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Информации за апликацијата"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Поставки"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Предупредување за <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Нема неодамнешни апликации"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информации за апликацијата"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"заклучи на апликација"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"пребарај"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Нема да го слушнете алармот во <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Долу се помалку итни известувања"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Допрете повторно за да се отвори"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Повлечете за да се отклучи"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Повлечете надесно за телефон"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Повлечете налево за камера"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Сѐ"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Се полни (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> додека не се наполни)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ гостин"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Излези како гостин"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Отстрани гостин"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Да излеземе од гостинската сесија?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Излегувањето од гостинската сесија ќе ги отстрани локалните податоци."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Добредојде назад, гостине!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Дали сакате да започнете нова сесија?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Да"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Не, фала"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"За една минута"</item>
     <item quantity="other" msgid="6924190729213550991">"За %d минути"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"За %d часа"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Штедачот на батерија е вклучен"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Ја намалува изведбата и податоците во заднина"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Исклучете го штедачот на батерија"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Содржините се скриени"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ќе започне да презема сѐ што се прикажува на вашиот екран."</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Уредот може да се следи"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Мрежата може да се следи"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Следење на уредот"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Следење на мрежата"</string>
+    <string name="open_app" msgid="4011771120339160755">"Отвори апликација"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Исклучи ВПН"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Со уредот управува:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nВашиот администратор може да ги следи уредот и мрежната активност, заедно со е-пораките, апликациите и безбедните веб-локации.\n\nЗа повеќе информации, контактирајте со администраторот."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Дозволивте „<xliff:g id="APPLICATION">%1$s</xliff:g>“ да постави поврзување ВПН.\n\nОваа апликација може да ги следи уредот и мрежната активност, заедно со е-пораките, апликациите и безбедните веб-локации."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Поврзани сте на ВПН („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nОператорот на услугата ВПН може да ги следи уредот и мрежната активност, заедно со е-пораките, апликациите и безбедните веб-локации."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Уредот е управуван од:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n}Администраторот е во состојба да ја следи вашата активност на мрежата, вклучувајќи ги е-пораките, апликациите и безбедните веб-локации.За повеќе информации, контактирајте со администраторот.\n\nДозволивте „<xliff:g id="APPLICATION">%2$s</xliff:g>“ да постави поврзување со ВПН.Оваа апликација може да ја следи вашата активност на мрежата исто така."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Уредот е управуван од:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистраторот е во состојба да ја следи вашата активност на мрежата, вклучувајќи ги е-пораките, апликациите и безбедните веб-локации.За повеќе информации, контактирајте со администраторот.\n\nПоврзани сте и на ВПН („<xliff:g id="APPLICATION">%2$s</xliff:g>“)Давателот на услуги на ВПН може да ја следи активноста на мрежата исто така."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml
index 06f5190..74ff0a8 100644
--- a/packages/SystemUI/res/values-ml-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ml-rIN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"സമീപകാല അപ്ലിക്കേഷനുകളൊന്നുമില്ല"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"സമീപകാല അപ്ലിക്കേഷനുകൾ നിരസിക്കുക"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"ഒരു സമീപകാല അപ്ലിക്കേഷൻ"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"വിമാന മോഡ്"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"മടങ്ങുക"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ഹോം"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"മെനു"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"സമീപകാല അപ്ലിക്കേഷനുകൾ"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"തിരയൽ"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ക്യാമറ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ഫോണ്‍"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"അറിയിപ്പ് നിരസിച്ചു."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"അറിയിപ്പ് ഷെയ്‌ഡ്."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ദ്രുത ക്രമീകരണങ്ങൾ."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"സമീപകാല അപ്ലിക്കേഷനുകൾ."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ക്രമീകരണങ്ങൾ"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ഉപയോക്താവ് <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"മൊബൈൽ <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"പാനൽ അടയ്‌ക്കുക"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"കൂടുതൽ സമയം"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"കുറഞ്ഞ സമയം"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G ഡാറ്റ ഓഫാണ്"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G ഡാറ്റ ഓഫാണ്"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"സെല്ലുലാർ ഡാറ്റ ഓഫാണ്"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"അപ്ലിക്കേഷൻ വിവരം"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ക്രമീകരണങ്ങൾ"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> മുന്നറിയിപ്പ്"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"അടുത്തിടെയുള്ള അപ്ലിക്കേഷനുകളൊന്നുമില്ല"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"അപ്ലിക്കേഷൻ വിവരം"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"അപ്ലിക്കേഷനിലേക്ക് ലോക്കുചെയ്യൽ"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"തിരയുക"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"നിങ്ങൾ <xliff:g id="ALARM_TIME">%s</xliff:g>-ന് അലാറം കേൾക്കില്ല"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"ആവശ്യം കുറഞ്ഞ അറിയിപ്പുകൾ ചുവടെ നൽകിയിരിക്കുന്നു"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"തുറക്കുന്നതിന് വീണ്ടും ടാപ്പുചെയ്യുക"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"അൺലോക്കുചെയ്യുന്നതിന് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ഫോണിനായി വലതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ക്യാമറയ്‌ക്കായി ഇടതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"മുന്‍‌ഗണന"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"എല്ലാം"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ചാർജ്ജുചെയ്യുന്നു (പൂർണ്ണമാകുന്നതിന്, <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ അതിഥി"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"അതിഥി മോഡിൽ നിന്ന് പുറത്തുകടക്കുക"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"അതിഥിയെ നീക്കംചെയ്യുക"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"അതിഥി സെഷനിൽ നിന്ന് പുറത്തുകടക്കണോ?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"അതിഥി സെഷനിൽ നിന്ന് പുറത്തുകടക്കുന്നത് പ്രാദേശിക ഡാറ്റയെ നീക്കംചെയ്യും."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"അതിഥിയ്‌ക്ക് വീണ്ടും സ്വാഗതം!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"നിങ്ങൾക്ക് ഒരു പുതിയ സെഷൻ ആരംഭിക്കണോ?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ഉവ്വ്"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"വേണ്ട, നന്ദി"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ഒരു മിനിറ്റ് ദൈർഘ്യം"</item>
     <item quantity="other" msgid="6924190729213550991">"%d മിനിറ്റ് ദൈർഘ്യം"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d മണിക്കൂർ ദൈർഘ്യം"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ബാറ്ററി സേവർ ഓണാണ്"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"പ്രവർത്തനവും പശ്ചാത്തല ഡാറ്റയും കുറയ്‌ക്കുന്നു"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ബാറ്ററി സേവർ ഓഫാക്കുക"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"കോൺടാക്‌റ്റുകൾ മറച്ചു"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"നിങ്ങളുടെ സ്ക്രീനിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്ന എല്ലാ കാര്യങ്ങളും <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ക്യാപ്‌ചർ ചെയ്യുന്നത് ആരംഭിക്കും."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ഉപകരണം നിരീക്ഷിക്കപ്പെടാം"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"നെറ്റ്‌വർക്ക് നിരീക്ഷിക്കപ്പെടാം"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ഉപകരണം നിരീക്ഷിക്കൽ"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"നെറ്റ്‌വർക്ക് നിരീക്ഷിക്കൽ"</string>
+    <string name="open_app" msgid="4011771120339160755">"അപ്ലിക്കേഷൻ തുറക്കുക"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN വിച്‌ഛേദിക്കുക"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nനിങ്ങളുടെ അഡ്‌മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്‌സൈറ്റുകൾ സുരക്ഷിതമാക്കലും ഉൾപ്പെടെയുള്ള നിങ്ങളുടെ നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ നിരീക്ഷിക്കാനാകും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക് അഡ്‌മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"VPN കണക്ഷൻ സജ്ജീകരിക്കാൻ നിങ്ങൾ \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" എന്നതിന് അനുമതി നൽകി.\n\n ഇമെയിലുകൾ, അപ്ലിക്കേഷനുകൾ, വെബ്‌സൈറ്റുകൾ സുരക്ഷിതമാക്കൽ എന്നിവ ഉൾപ്പെടെയുള്ള നിങ്ങളുടെ നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ ഈ അപ്ലിക്കേഷന് നിരീക്ഷിക്കാനാകും."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"നിങ്ങൾ VPN-ൽ (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") കണക്റ്റുചെയ്‌തിരിക്കുന്നു.\n\nഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്‌സൈറ്റുകൾ സുരക്ഷിതമാക്കലും ഉൾപ്പെടെയുള്ള നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ നിരീക്ഷിക്കാൻ നിങ്ങളുടെ VPN സേവന ദാതാവിന് കഴിയും."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nനിങ്ങളുടെ അഡ്‌മിനിസ്ട്രേറ്റർ ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്‌സൈറ്റുകൾ സുരക്ഷിതമാക്കലും ഉൾപ്പെടെയുള്ള നിങ്ങളുടെ നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ നിരീക്ഷിക്കുന്നതിന് പ്രാപ്‌തമാണ്. കൂടുതൽ വിവരങ്ങൾക്ക് അഡ്‌മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.\n\nഅതോടൊപ്പം, നിങ്ങൾ ഒരു VPN കണക്ഷൻ സജ്ജീകരിക്കാൻ \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" എന്നതിന് അനുമതിയും നൽകി. ഈ അപ്ലിക്കേഷന് നെറ്റ്‌വർക്ക് പ്രവർത്തനവും നിരീക്ഷിക്കാനാകും."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nനിങ്ങളുടെ അഡ്‌മിനിസ്ട്രേറ്റർ ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്‌സൈറ്റുകൾ സുരക്ഷിതമാക്കലും ഉൾപ്പെടെയുള്ള നിങ്ങളുടെ നെറ്റ്‌വർക്ക് പ്രവർത്തനങ്ങൾ നിരീക്ഷിക്കുന്നതിന് പ്രാപ്‌തമാണ്. കൂടുതൽ വിവരങ്ങൾക്ക് അഡ്‌മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.\n\nഅതോടൊപ്പം, നിങ്ങൾ ഒരു VPN-ലും (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") കണക്റ്റുചെയ്തിരിക്കുന്നു. നിങ്ങളുടെ VPN സേവന ദാതാവിന് നെറ്റ്‌വർക്ക് പ്രവർത്തനവും നിരീക്ഷിക്കാനാകും."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
index 0faf210..7cd48a0 100644
--- a/packages/SystemUI/res/values-mn-rMN/strings.xml
+++ b/packages/SystemUI/res/values-mn-rMN/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="6576392951053994640">"Сүүлийн апп хоосон"</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">
     <item quantity="one" msgid="5854176083865845541">"1 сүүлийн апп"</item>
@@ -39,12 +39,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Нислэгийн горим"</string>
@@ -83,7 +80,7 @@
     <string name="accessibility_back" msgid="567011538994429120">"Буцах"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Гэрийн"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Цэс"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Сүүлийн апп"</string>
+    <string name="accessibility_recent" msgid="1606470783629913980">"Саяхны дэлгэцүүд"</string>
     <string name="accessibility_search_light" msgid="1103867596330271848">"Хайх"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камер"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Утас"</string>
@@ -158,7 +155,8 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Мэдэгдэл хаагдсан."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Мэдэгдлийн хураангуй самбар"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Шуурхай тохиргоо."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Сүүлийн апп"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Тохиргоо"</string>
+    <string name="accessibility_desc_recent_apps" msgid="8376953390514779637">"Саяхны дэлгэцүүд."</string>
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Хэрэглэгч <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобайл <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +168,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Самбарыг хаах"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Цаг нэмэх"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Цаг хасах"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G дата идэвхгүй"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G дата идэвхгүй"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Үүрэн дата идэвхгүй"</string>
@@ -182,7 +182,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Апп мэдээлэл"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Тохиргоо"</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>
@@ -241,7 +241,7 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> анхааруулга"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Сүүлд ашигласан апп байхгүй"</string>
+    <string name="recents_empty_message" msgid="8682129509540827999">"Таны саяхны дэлгэц энд харагдах болно"</string>
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Аппликешны мэдээлэл"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Апп-дотор-түгжих"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"хайх"</string>
@@ -261,7 +261,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Та <xliff:g id="ALARM_TIME">%s</xliff:g>-д өөрийн сэрүүлгээ сонсохгүй"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Яаралтай биш мэдэгдлүүдийг доор"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Нээхийн тулд дахин товшино уу"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Түгжээг тайлах бол шудрана уу"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Утас гаргахын тулд баруун шударна уу"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Камер гаргахын тулд зүүн шударна уу"</string>
@@ -270,15 +271,24 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Нэн тэргүүний"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Бүгд"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Цэнэглэж байна (дүүргэхэд <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Зочин"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Зочноос гарах"</string>
+    <string name="guest_new_guest" msgid="600537543078847803">"Зочин нэмэх"</string>
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Зочныг хасах"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Зочны нэвтрэлтээс гарч байна уу?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Зочны нэвтрэлтээс гарснаар локал датаг арилгах болно."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Тавтай морилно уу!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Та шинээр нэвтрэх гэж байна уу?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Тийм"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Үгүй, баярлалаа"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Нэг минутын турш"</item>
     <item quantity="other" msgid="6924190729213550991">"%d минутын турш"</item>
@@ -288,10 +298,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d цагийн турш"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Батерей хэмнэгч асаалттай"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Ажиллагаа болон далд датаг бууруулна"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Батерей хэмнэгчийг унтраах"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Контентыг нуусан"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> таны дэлгэц дээр гаргасан бүх зүйлийн зургийг авч эхэлнэ."</string>
@@ -299,26 +307,16 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
-    <skip />
+    <string name="device_owned_footer" msgid="3802752663326030053">"Төхөөрөмжийг хянах боломжтой"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Сүлжээ хянагдаж байж болзошгүй"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Төхөөрөмжийн хяналт"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Сүлжээний хяналт"</string>
+    <string name="open_app" msgid="4011771120339160755">"Апп нээх"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN таслах"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Энэ төхөөрөмжийг \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n удирдаж байна.\nТаны админ таны төхөөрөмж болон имэйл, апп-ууд болон аюулгүй вебсайтууд зэрэг таны сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээллийг админаас авна уу."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Та \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"-д VPN холболт үүсгэх зөвшөөрөл өгсөн.\n\nЭнэ апп таны төхөөрөмж болон имэйл, апп-ууд болон аюулгүй вэбсайтууд зэрэг сүлжээний үйл ажиллагааг хянах боломжтой."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Та VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") холбогдсон байна.\n\nТаны VPN үйлчилгээ үзүүлэгч нь таны төхөөрөмж болон имэйл, апп-ууд болон аюулгүй вэбсайтууд зэрэг таны сүлжээний үйл ажиллагааг хянах боломжтой."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Энэ төхөөрөмжийг \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n удирдаж байна \n Танай админ имэйл, апп-ууд, аюулгүй вэбсайтууд зэргийг оруулан таны сүлжээний үйл ажиллагааг хянах боломжтой. Дэлгэрэнгүй мэдээллийг админаас авна уу.\n\nМөн та <xliff:g id="APPLICATION">%2$s</xliff:g>-д VPN холболт үүсгэх зөвшөөрөл өгсөн байна. Энэ апп мөн сүлжээний үйл ажиллагааг хянах боломжтой."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Энэ төхөөрөмжийг \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n удирдаж байна \nТанай админ имэйл, апп-ууд, аюулгүй вэбсайтууд зэргийг оруулан таны сүлжээний үйл ажиллагааг хянах боломжтой. Дэлгэрэнгүй мэдээллийг админаас авна уу.\n\nМөн та VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\")-д холбогдсон байна. VPN үйлчилгээ үзүүлэгч таны сүлжээний үйл ажиллагааг мөн хянах боломжтой."</string>
+    <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Таныг гараар онгойлгох хүртэл төхөөрөмж түгжээтэй байх болно"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml
index d670ab6..d7931f5 100644
--- a/packages/SystemUI/res/values-mr-rIN/strings.xml
+++ b/packages/SystemUI/res/values-mr-rIN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"कोणतेही अलीकडील अ‍ॅप्स नाहीत"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"अलीकडील अॅप्स डिसमिस करा"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 अलीकडील अ‍ॅप"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"विमान मोड"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"परत"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"मुख्‍यपृष्‍ठ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"मेनू"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"अलीकडील अ‍ॅप्स"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"शोधा"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"कॅमेरा"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"फोन"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"सूचना डिसमिस केल्या."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"सूचना शेड."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"द्रुत सेटिंग्ज."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"अलीकडील अ‍ॅप्स."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग्ज"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"वापरकर्ता <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"मोबाईल <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"पॅनेल बंद करा"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"अधिक वेळ"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"कमी वेळ"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G डेटा बंद आहे"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G डेटा बंद आहे"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"सेल्युलर डेटा बंद आहे"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"अॅप माहिती"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"सेटिंग्ज"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावणी"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"कोणतेही अलीकडील अ‍ॅप्स नाहीत"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"अनुप्रयोग माहिती"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"अ‍ॅप-लॉक-करणे"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"शोधा"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"आपण आपला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता ऐकणार नाही"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"खाली कमी तातडीच्या सूचना"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"उघडण्यासाठी पुन्हा टॅप करा"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करण्यासाठी स्वाइप करा"</string>
     <string name="phone_hint" msgid="3101468054914424646">"फोन साठी उजवीकडे स्वाइप करा"</string>
     <string name="camera_hint" msgid="5241441720959174226">"कॅमेर्‍यासाठी डावीकडे स्वाइप करा"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"प्राधान्य"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"सर्व"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण होईपर्यंत) चार्ज होत आहे"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ अतिथी"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"निर्गमन करणारे अतिथी"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"अतिथी काढा"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"अतिथी सत्रातून निर्गमन करायचे?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"अतिथी सत्रातून निर्गमन केल्‍याने स्‍थानिक डेटा काढला जाईल."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"अतिथी, आपले पुन्‍हा स्‍वागत आहे!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"आपण एक नवीन सत्र प्रारंभ करु इच्‍छिता?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"होय"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"नाही, धन्यवाद"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"एक मिनिटासाठी"</item>
     <item quantity="other" msgid="6924190729213550991">"%d मिनिटांसाठी"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d तासांसाठी"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"बॅटरी बचतकर्ता चालू आहे"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"कार्यप्रदर्शन आणि पार्श्वभूमी डेटा कमी करते"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"बॅटरी बचतकर्ता बंद करा"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"लपविलेली सामग्री"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> आपल्‍या स्‍क्रीनवर प्रदर्शित होणारी प्रत्‍येक गोष्‍ट कॅप्‍चर करणे प्रारंभ करेल."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"डिव्हाइसचे परीक्षण केले जाऊ शकते"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"नेटवर्कचे परीक्षण केले जाऊ शकते"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"डिव्हाइस परीक्षण"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"नेटवर्क परीक्षण"</string>
+    <string name="open_app" msgid="4011771120339160755">"अ‍ॅप उघडा"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN डिस्कनेक्ट करा"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"हे डिव्हाइस याद्वारे व्यवस्थापित केले जाते:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपला प्रशासक ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या डिव्हाइस आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"आपण VPN कनेक्शन सेट करण्यासाठी \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ला परवानगी दिली आहे.\n\nहा अॅप ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या डिव्हाइस आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"आपण VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") कनेक्ट केले आहे.\n\nआपला VPN सेवा प्रदाता ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या डिव्हाइस आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"हे डिव्हाइस याद्वारे व्यवस्थापित केले जाते:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपला प्रशासक ईमेल, अॅप्स आणि सुरक्षित वेबसाइट, यासह आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करण्यास सक्षम आहे. अधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nतसेच, आपण VPN कनेक्शन सेट करण्यासाठी \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" ला परवानगी दिली आहे. हा अॅप नेटवर्क क्रियाकलापाचे देखील परीक्षण करू शकतो."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"हे डिव्हाइस याद्वारे व्यवस्थापित केले जाते:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nआपला प्रशासक ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करण्यास सक्षम आहे. अधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nतसेच, आपण एका VPN शी कनेक्ट केले आहे (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). आपला VPN सेवा प्रदाता नेटवर्क क्रियाकलापाचे देखील परीक्षण करू शकतो."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index 93acf79..f4b29f6 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Pdm bersih"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Alih keluar dari senarai"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Maklumat aplikasi"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Tiada aplikasi terbaharu"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Buang aplikasi terbaharu"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplikasi terbaharu"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Pengecasan USB tidak disokong."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Gunakan pengecas yang dibekalkan sahaja."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Tetapan"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Hidupkan penjimat bateri?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Hidupkan"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Hidupkan penjimat bateri"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Tetapan"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod pesawat"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Kembali"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Rumah"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplikasi terbaharu"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Cari"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pemberitahuan diketepikan."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bidai pemberitahuan."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Tetapan pantas."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Apl terbaru."</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mudah Alih <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Tutup panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Lagi masa"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Kurang masa"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Data 2G-3G dimatikan"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Data 4G dimatikan"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Data selular dimatikan"</string>
@@ -182,7 +186,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokasi ditetapkan oleh GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Permintaan lokasi aktif"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Padamkan semua pemberitahuan."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Maklumat apl"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Tetapan"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skrin akan berputar secara automatik."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skrin dikunci dalam orientasi landskap."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skrin dikunci dalam orientasi potret."</string>
@@ -241,7 +245,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> digunakan"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> had"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Amaran <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Tiada apl terbaharu"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Maklumat Aplikasi"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"kunci ke apl"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"cari"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tdk akan mdgr penggera anda pd <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Pemberitahuan kurang penting di bawah"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ketik lagi untuk membuka"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Leret ke atas untuk membuka kunci"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Leret ke kanan untuk telefon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Leret ke kiri untuk kamera"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Keutamaan"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengecas (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> sehingga penuh)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Tambah pengguna"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Pengguna baharu"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Tetamu"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Tetamu"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Tetamu keluar"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Keluar dari sesi tetamu?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Data tempatan akan dialih keluar apabila anda keluar dari sesi tetamu."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Selamat kembali, tetamu!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Adakah anda ingin memulakan sesi baharu?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ya"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Tidak, terima kasih"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Selama satu minit"</item>
     <item quantity="other" msgid="6924190729213550991">"Selama %d minit"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"Selama %d jam"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Penjimat bateri dihidupkan"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Mengurangkan prestasi dan data latar belakang"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Matikan penjimat bateri"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Kandungan tersembunyi"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> akan mula mengabadikan semua yang dipaparkan pada skrin anda.."</string>
@@ -299,26 +314,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Kosongkan semua"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Mulakan sekarang"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Tiada pemberitahuan"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Peranti mungkin dipantau"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Rangkaian mungkin dipantau"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Pemantauan peranti"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Pemantauan rangkaian"</string>
+    <string name="open_app" msgid="4011771120339160755">"Buka apl"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Putuskan sambungan VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Peranti ini diurus oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nPentadbir anda boleh mengawasi aktiviti peranti dan rangkaian anda, termasuk e-mel, apl dan tapak web selamat.\n\nUntuk maklumat lanjut, hubungi pentadbir anda."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Anda memberi \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" kebenaran untuk menyediakan sambungan VPN.\n\nApl ini boleh memantau aktiviti peranti dan rangkaian anda, termasuk e-mel, apl dan tapak web yang selamat."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Anda disambungkan ke VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nPembekal perkhidmatan VPN anda boleh memantau aktiviti peranti dan rangkaian anda termasuk e-mel, apl dan tapak web selamat."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Peranti ini diuruskan oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nPentadbir anda berkemampuan memantau aktiviti rangkaian anda termasuk e-mel, apl dan tapak web yang selamat. Untuk maklumat lanjut, hubungi pentadbir anda.\n\nAnda juga memberikan \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" kebenaran untuk menyediakan rangkaian VPN. Apl ini juga boleh memantau aktiviti rangkaian."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Peranti ini diuruskan oleh:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nPentadbir anda berkemampuan memantau aktiviti rangkaian anda termasuk e-mel, apl dan tapak web yang selamat. Untuk maklumat lanjut, hubungi pentadbir anda.\n\nAnda juga disambungkan ke VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Pembekal perkhidmatan VPN anda juga boleh memantau aktiviti rangkaian."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml
index 52883dd..f6a89e0 100644
--- a/packages/SystemUI/res/values-my-rMM/strings.xml
+++ b/packages/SystemUI/res/values-my-rMM/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"လတ်တလောအပ်ပလီကေးရှင်းများမရှိပါ"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"လတ်တလောအပ်ပလီကေးရှင်းများအား ဖယ်ထုတ်မည်"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for status_bar_accessibility_recent_apps:other (1040784359794890744) -->
@@ -37,12 +38,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"ဝိုင်ဖိုင်"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"လေယာဥ်ပျံပေါ်အသုံးပြုသောစနစ်"</string>
@@ -81,7 +79,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"နောက်သို့"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ပင်မစာမျက်နှာ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"မီနူး"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"လတ်တလော သုံးခဲ့ အပ်ပလီကေးရှင်း"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ရှာဖွေရန်"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"ကင်မရာ"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ဖုန်း"</string>
@@ -156,7 +155,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"အကြောင်းကြားချက်ကိုဖယ်ရှားပြီး"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"အ​ကြောင်းကြားစာအကွက်"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"အမြန်လုပ် အပြင်အဆင်"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"လတ်တလော သုံးခဲ့ အပလီကေးရှင်း"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ဆက်တင်များ"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"သုံးစွဲသူ <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"မိုဘိုင်းလ် <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -168,6 +169,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"ပိတ်ရန် အကွက်"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"အချိန် တိုးရန်"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"အချိန် လျှော့ရန်"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G ဒေတာ ပိတ်ထား"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G ဒေတာ ပိတ်ထား"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ဆယ်လူလာ ဒေတာကို ပိတ်ထား"</string>
@@ -180,7 +183,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"အပလီကေးရှင်း အချက်အလက်များ"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ဆက်တင်များ"</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>
@@ -239,7 +242,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> သတိပေးချက်"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"မကြာမီတုန်းက appများ မရှိ"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"အပလီကေးရှင်း အင်ဖို"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"appသို့ သော့ခတ်ထားရန်"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ရှာဖွေရန်"</string>
@@ -259,7 +263,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"သင်သည် သင်၏ <xliff:g id="ALARM_TIME">%s</xliff:g> နှိုးစက်ကို ကြားရမည် မဟုတ်"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"အရေးပါမှု နည်းသည့် အကြောင်းကြားချက်များ အောက်မှာ"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"ဖွင့်ရန် ထပ်ပြီး ပုတ်ပါ"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"သော့ဖွင့်ရန် အပေါ်သို့ ပွတ်ဆွဲပါ"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ဖုန်း အတွက် ညာသို့ ပွတ်ဆွဲပါ"</string>
     <string name="camera_hint" msgid="5241441720959174226">"ကင်မရာ အတွက် ဘယ်သို့ ပွတ်ဆွဲပါ"</string>
@@ -268,15 +273,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ဦးစားပေးမှု"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"အားလုံး"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> အပြည့် အထိ) အားသွင်းနေ"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ဧည့်သည်"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"ဧည့်သည့် ထွက်ရန်"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"ဧည့်သည်ကို ဖယ်ထုတ်ရန်"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ဧည့်သည် ချိတ်ဆက်မှုထဲက ထွက်မလား?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"ဧည့်သည် ချိတ်ဆက်မှု ထဲမှ ထွက်လိုက်ခြင်းက စက်တွင်း ဒေတာကို ဖယ်ရှားပစ်မည်။"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ပြန်လာတာ ကြိုဆိုပါသည်၊ ဧည့်သည်!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"သင်သည် ချိတ်ဆက်မှု အသစ် တစ်ခုကို စတင်ချင်သလား?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ဟုတ်"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"မလို၊ ကျေးဇူးပဲ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"တစ်မိနစ် အတွင်း"</item>
     <item quantity="other" msgid="6924190729213550991">"%d မိနစ် အတွင်း"</item>
@@ -284,10 +299,8 @@
     <!-- String.format failed for translation -->
     <!-- no translation found for zen_mode_duration_hours:other (5408537517529822157) -->
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ဘက်ထရီ ချွေတာသူ ဖွင့်ထား"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"လုပ်ကိုင်မှုကို လျှော့ချလျက် နောက်ခံ ဒေတာကို ကန့်သတ်သည်"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ဘက်ထရီ ချွေတာမှုကို ပိတ်ထားရန်"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"အကြောင်းအရာများ ဝှက်ထား"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> က သင်၏ မျက်နှာပြင် ပေါ်မှာ ပြသထားသည့် အရာတိုင်းကို စတင် ဖမ်းယူမည်။"</string>
@@ -295,26 +308,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ကိရိယာကို စောင့်ကြပ် နိုင်ပါသည်"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ကွန်ရက်ကို ကို စောင့်ကြပ် နိုင်ပါသည်"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"ကိရိယာကို စောင့်ကြပ်ခြင်း"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ကွန်ရက်ကို စောင့်ကြပ်ခြင်း"</string>
+    <string name="open_app" msgid="4011771120339160755">"appကို ဖွင့်ရန်"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ကို အဆက်ဖြတ်ရန်"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ဤစက်ပစ္စည်းကို စီမံခန့်ခွဲသူ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင့်အက်ဒ်မင်သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။\n\nနောက်ထပ်အချက်အလက်များအတွက်၊ သင့်အက်ဒ်မင်ကို ဆက်သွယ်ပါ။"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"သင် \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ကို VPN စတင်သုံးခွင့်ပေးလိုက်သည်။ \n\n ဤ app သည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") ကို သင်ချိတ်ဆက်မိ၏။\n\nသင့် VPN ဝန်ဆောင်မှုပေးသူသည် သင့်စက်ပစ္စည်းနှင့် အီးမေးများ၊ app များ နှင့် လုံခြုံသည့်ဝက်ဘ်ဆိုက် အပါအဝင် ကွန်ယက် လှုပ်ှရားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ဒီကိရိယာကို စီမံကွပ်ကဲသူမှာ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင်၏ စီမံအုပ်ချုပ်သူက သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို၊ အီးမေးလ်များ၊ appများ နှင့် လုံခြုံသည့် ဝက်ဘ်ဆိုက်များ အပါအဝင်ကို၊ စောင့်ကြပ် နိုင်ပါသည်။ အချက်အလက်များ ပိုပြီး ရယူရန်၊ သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။\n\n ထို့အပြင် သင်သည် \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" အား VPN ချိတ်ဆက်မှု စဖွင့်လုပ်ကိုင်ရန် ခွင့်ပြုခဲ့သည်။ ဒီ  appကပါ သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို စောင့်ကြပ် နိုင်ပါသည်။"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ဒီကိရိယာကို စီမံကွပ်ကဲသူမှာ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nသင်၏  စီမံအုပ်ချုပ်သူက သင်၏ ကွန်ရက် လှုပ်ရှားမှုကို၊ အီးမေးလ်များ၊ appများ နှင့် လုံခြုံသည့် ဝက်ဘ်ဆိုက်များ အပါအဝင်ကို၊ စောင့်ကြပ် နိုင်ပါသည်။ အချက်အလက်များ ပိုပြီး ရယူရန်၊ သင်၏ စီမံအုပ်ချုပ်သူကို ဆက်သွယ်ပါ။\n\nထို့အပြင်၊ သင်သည် VPN  (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") သို့ ချိတ်ဆက်ထားသည်။ သင်၏ VPN ဝန်ဆောင်မှုကို စီမံပေးသူကပါ ကွန်ရက် လှုပ်ရှားမှုများကို စောင့်ကြပ်နိုင်သေးသည်။"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml
index 2690ceb..896cb50 100644
--- a/packages/SystemUI/res/values-nb/strings.xml
+++ b/packages/SystemUI/res/values-nb/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Fjern"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Fjern fra listen"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info om appen"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Ingen nylige apper"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Avvis nylige apper"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Én nylig app"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Lading via USB støttes ikke."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Bruk bare den tilhørende laderen."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Innstillinger"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vil du slå på batterisparing?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Slå på"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Slå på batterisparing"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Innstillinger"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Trådløse nettverk"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flymodus"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Tilbake"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Startside"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meny"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nylige apper"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Søk"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonnummer"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Varselet ble skjult."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Varselskygge."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hurtiginnstillinger."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Nylige apper."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Innstillinger"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruker: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil – <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Lukk panelet"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mer tid"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mindre tid"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G- og 3G-data er slått av"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-datatrafikk er slått av"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobildatatrafikk er slått av"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Posisjon angitt av GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktive stedsforespørsler"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Fjern alle varslinger."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Info om appen"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Innstillinger"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skjermen roterer automatisk."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skjermen er låst i liggende retning."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skjermen er låst i stående retning."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> brukt"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Grense på <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advarsel for <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ingen nylige apper"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Appinformasjon"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lås til app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"Søk"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Du kommer ikke til å høre alarmen kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre presserende varsler nedenfor"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Trykk på nytt for å åpne"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Sveip oppover for å låse opp"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Sveip mot høyre for å åpne telefonen"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Sveip mot venstre for å åpne kameraet"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Lader (fulladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Legg til brukere"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Ny bruker"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gjest"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gjest"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Avslutt gjesteøkten"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Fjern gjesten"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Vil du avslutte gjesteøkten?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Hvis du avslutter gjesteøkten, fjernes lokale data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Velkommen tilbake, gjest!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vil du starte en ny økt?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nei takk"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"I ett minutt"</item>
     <item quantity="other" msgid="6924190729213550991">"I %d minutter"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"I %d timer"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Batterisparing er på"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduserer ytelsen og begrenser bakgrunnsdataene"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Slå av batterisparing"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g> %%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Innholdet er skjult"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> tar opp alt som vies på skjermen din."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Fjern alt"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Start nå"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ingen varsler"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Enheten kan være overvåket"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Nettverket kan være overvåket"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Enhetsovervåking"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Nettverksovervåking"</string>
+    <string name="open_app" msgid="4011771120339160755">"Åpne appen"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Koble fra VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Denne enheten administreres av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoren din kan overvåke enheten og nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder.\n\nTa kontakt med administratoren for mer informasjon."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Du ga «<xliff:g id="APPLICATION">%1$s</xliff:g>» tillatelse til å konfigurere en VPN-tilkobling.\n\nDenne appen kan overvåke nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Enheten er koblet til et VPN-nettverk («<xliff:g id="APPLICATION">%1$s</xliff:g>»).\n\nVPN-tjenesteleverandøren din kan overvåke nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Denne enheten administreres av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-poster, apper og sikre nettsteder. Ta kontakt med administratoren din for mer om dette.\n\nI tillegg ga du «<xliff:g id="APPLICATION">%2$s</xliff:g>» tillatelse til å konfigurere en VPN-tilkobling. Denne appen kan også overvåke nettverksaktiviteten din."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Denne enheten administreres av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-poster, apper og sikre nettsteder. Ta kontakt med administratoren din for mer om dette.\n\nI tillegg er enheten koblet til et VPN-nettverk («<xliff:g id="APPLICATION">%2$s</xliff:g>»). VPN-tjenesteleverandøren kan også overvåke nettverksaktiviteten din."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index 2e45f22..5f2c7ba 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"कुनै नयाँ अनुप्रयोगहरू छैनन्"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"नयाँ अनुप्रयोगहरू खारेज गर्नुहोस्"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"१ भरखरै अनुप्रयोग"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"वाइफाइ"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"हवाइजहाज मोड"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"पछाडि"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"गृह"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"मेनु"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"भर्खरका अनुप्रयोगहरू"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"खोज्नुहोस्"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"क्यामेरा"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"फोन"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"सूचना खारेज।"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"सूचना कक्ष।"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"द्रुत सेटिङहरू"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"वर्तमान अनुप्रयोगहरू"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"प्रयोगकर्ता <xliff:g id="USER">%s</xliff:g>।"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>। <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"मोवाइल <xliff:g id="SIGNAL">%1$s</xliff:g>। <xliff:g id="TYPE">%2$s</xliff:g>। <xliff:g id="NETWORK">%3$s</xliff:g>।"</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"प्यानल बन्द गर्नुहोस्"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"थप समय"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"कम समय"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G डेटा बन्द छ"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G डेटा बन्द छ"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"सेलुलर डेटा बन्द छ"</string>
@@ -182,7 +186,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"अनुप्रयोगको जानकारी"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"सेटिङ्हरू"</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>
@@ -241,7 +245,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावनी दिँदै"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"कुनै वर्तमान अनुप्रयोगहरू छैनन्"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"अनुप्रयोग जानकारी"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"अनुप्रयोग बन्द गर्न"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"खोजी गर्नुहोस्"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> मा तपाईंले आफ्नो सचेतक सुन्नुहुने छैन"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"तल कम जरुरी सूचनाहरू"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"खोल्न पुनः ट्याप गर्नुहोस्"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"अनलक गर्न स्वाप गर्नुहोस्"</string>
     <string name="phone_hint" msgid="3101468054914424646">"फोनका लागि दाँया स्वाइप"</string>
     <string name="camera_hint" msgid="5241441720959174226">"क्यामेराका लागि बाँया स्वाइप"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"प्राथमिकता"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"सबै"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हुँदै (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण भएसम्म)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+अतिथि"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"अतिथि बन्द"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"अतिथि सत्र बाहिरिंदै छ?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"अतिथि सत्र अन्त्यले स्थानीय डेटा हटाउने छ।"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"पुनः स्वागत, अतिथि!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"के तपाईं एक नयाँ सत्र सुरु गर्न चाहनुहुन्छ?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"हो"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"होइन, धन्यवाद"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"एक मिनेटको लागि"</item>
     <item quantity="other" msgid="6924190729213550991">"%d मिनेटको लागि"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d घण्टाको लागि"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"ब्याट्रि सेभर चालु छ"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"प्रदर्शन र पृष्ठभूमि डेटा घटाउँनुहोस्"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ब्याट्री बचत बन्द गर्नुहोस्"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"लुकेका सामाग्रीहरू"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ले आफ्नो स्क्रीनमा प्रदर्शित हुने सबै खिच्न शुरू गर्नेछ।"</string>
@@ -299,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"उपकरण अनुगमन हुन सक्छ"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"सञ्जाल अनुगमित हुन सक्छ"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"उपकरण अनुगमन"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"सञ्जाल अनुगमन"</string>
+    <string name="open_app" msgid="4011771120339160755">"अनुप्रयोग खोल्नुहोस्"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"विच्छेद VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"यो उपकरण निम्न द्वारा व्यवस्थित छ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nतपाईंको प्रशासनले इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू सहित आफ्नो उपकरण र सञ्जाल गतिविधि निगरानी गर्न सक्छन्।\n\nथप जानकारीको लागि, आफ्नो प्रशासक सँग सम्पर्क गर्नुहोस्।"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"तपाईंले एउटा VPN जडान स्थापित गर्न \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" अनुमति दिनुभयो।\n\nयो अनुप्रयोगले तपाईंको इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइट सहित आफ्नो उपकरण र सञ्जाल गतिविधि निगरानी गर्न सक्छ।"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"तपाईं VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") मा जडित हुनुहुन्छ।\n\nतपाईंको VPN सेवा प्रदायकले इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइट सहित आफ्नो उपकरण र सञ्जाल गतिविधि निगरानी गर्न सक्छन्।"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"यो उपकरण व्यवस्थित गरिएको छ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nतपाईंको प्रशासनले इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि निगरानी गर्न सक्षम छ। थप जानकारीको लागि, आफ्नो प्रशासन सँग सम्पर्क गर्नुहोस्।\n\nसाथै, तपाईंले एउटा VPN जडान स्थापित गर्न \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" अनुमति दिनुभयो। यो अनुप्रयोगले सञ्जाल गतिविधि पनि निगरानी गर्न सक्छन्।"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"यो उपकरण व्यवस्थित गरिएको छ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nतपाईंको प्रशासनले इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि निगरानी गर्न सक्षम छ। थप जानकारीको लागि, आफ्नो प्रशासन सँग सम्पर्क गर्नुहोस्।\n\nतपाईं VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") मा जडित हुनुहुन्छ। तपाईंको VPN सेवा प्रदायकले आफ्नो सञ्जाल गतिविधि पनि निगरानी गर्न सक्छन्।"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml
index 0f59a3f..009d977 100644
--- a/packages/SystemUI/res/values-nl/strings.xml
+++ b/packages/SystemUI/res/values-nl/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wissen"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Verwijderen uit lijst"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App-info"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Geen recente apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Recente apps negeren"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 recente app"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Opladen via USB wordt niet ondersteund."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Gebruik alleen de bijgeleverde oplader."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Instellingen"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Accubesparing inschakelen?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Inschakelen"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Accubesparing inschakelen"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Instellingen"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wifi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Vliegmodus"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Terug"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Startpagina"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Recente apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Zoeken"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefoon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Melding verwijderd."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Meldingenpaneel."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Snelle instellingen."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Recente apps."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellingen"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobiel <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Deelvenster sluiten"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Meer tijd"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Minder tijd"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G/3G-data zijn uitgeschakeld"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-data zijn uitgeschakeld"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobiele data zijn uitgeschakeld"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Locatie bepaald met GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Locatieverzoeken actief"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Alle meldingen wissen."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"App-info"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Instellingen"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Scherm wordt automatisch geroteerd."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Het scherm is nu vergrendeld in liggende stand."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Het scherm is nu vergrendeld in staande stand."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> gebruikt"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limiet van <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Waarschuwing voor <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Geen recente apps"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"App-informatie"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"app-slot"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"zoeken"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"U hoort uw alarm niet om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Minder urgente meldingen onderaan"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tik nogmaals om te openen"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Veeg omhoog om te ontgrendelen"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Veeg naar rechts voor telefoon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Veeg naar links voor camera"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioriteit"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Opladen (vol over <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Gebruiker toevoegen"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nieuwe gebruiker"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gast"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Gast"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Gastmodus verlaten"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Gast verwijderen"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Gastsessie sluiten?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Als u de gastsessie sluit, worden lokale gegevens verwijderd."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Welkom terug, gast!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Wilt u een nieuwe sessie starten?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nee, bedankt"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Eén minuut"</item>
     <item quantity="other" msgid="6924190729213550991">"%d minuten"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d uur"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Accubesparing is ingeschakeld"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Vermindert de prestaties en achtergrondgegevens"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Accubesparing uitschakelen"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Inhoud verborgen"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> gaat alles vastleggen dat wordt weergegeven op uw scherm."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Alles wissen"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Nu starten"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Geen meldingen"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Apparaat wordt mogelijk gecontroleerd"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Netwerk kan worden gecontroleerd"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Apparaatcontrole"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Netwerkcontrole"</string>
+    <string name="open_app" msgid="4011771120339160755">"App openen"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Verbinding met VPN verbreken"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Dit apparaat wordt beheerd door:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUw beheerder kan uw apparaat- en netwerkactiviteit bijhouden, waaronder e-mails, apps en beveiligde websites.\n\nNeem voor meer informatie contact op met uw beheerder."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"U heeft \'<xliff:g id="APPLICATION">%1$s</xliff:g>\' toestemming gegeven een VPN-verbinding in te stellen.\n\nDeze app kan uw apparaat- en netwerkactiviteit bijhouden, waaronder e-mails, apps en beveiligde websites."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"U heeft verbinding met een VPN (\'<xliff:g id="APPLICATION">%1$s</xliff:g>\').\n\nUw VPN-provider kan uw apparaat- en netwerkactiviteit bijhouden, waaronder e-mails, apps en beveiligde websites."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Dit apparaat wordt beheerd door:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUw beheerder kan uw netwerkactiviteit beheren, waaronder e-mails, apps en beveiligde websites. Neem voor meer informatie contact op met uw beheerder.\n\nDaarnaast heeft u \'<xliff:g id="APPLICATION">%2$s</xliff:g>\' toestemming gegeven een VPN-verbinding in te stellen. Deze app kan uw netwerkactiviteit ook controleren."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Dit apparaat wordt beheerd door:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUw beheerder kan uw netwerkactiviteit beheren, waaronder e-mails, apps en beveiligde websites. Neem voor meer informatie contact op met uw beheerder.\n\nDaarnaast bent u verbonden met een VPN (\'<xliff:g id="APPLICATION">%2$s</xliff:g>\'). Uw VPN-serviceprovider kan uw netwerkactiviteit ook controleren."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index d301248..6f0e1ec 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wyczyść"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Usuń z listy"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informacje o aplikacji"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Brak ostatnio uruchomionych aplikacji."</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ukryj ostatnie aplikacje"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ostatnia aplikacja"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Ładowanie przez USB nie jest obsługiwane."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Używaj tylko ładowarki dostarczonej z urządzeniem."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Ustawienia"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Włączyć oszczędzanie baterii?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Włącz"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Włącz oszczędzanie baterii"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ustawienia"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Tryb samolotowy"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Wróć"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Ekran główny"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Ostatnie aplikacje"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Szukaj"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Aparat"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Zamknięto powiadomienie."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Obszar powiadomień."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Szybkie ustawienia."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Ostatnii używane aplikacje."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ustawienia"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Użytkownik: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Sieć komórkowa: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Zamknij panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Więcej czasu"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mniej czasu"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Połączenie danych 2G-3G wyłączone"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Połączenie danych 4G wyłączone"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Komórkowe połączenie danych jest wyłączone"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokalizacja z GPSa"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Prośby o lokalizację są aktywne"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Usuń wszystkie powiadomienia."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"O aplikacji"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Ustawienia"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekran zostanie obrócony automatycznie."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran jest zablokowany w orientacji poziomej."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran jest zablokowany w orientacji pionowej."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Wykorzystano <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Ostrzeżenie: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Brak ostatnio uruchomionych aplikacji"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informacje o aplikacji"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"zablokuj na aplikacji"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"szukaj"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Nie usłyszysz alarmu o <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Poniżej widać mniej pilne powiadomienia"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Kliknij ponownie, by otworzyć"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Przesuń w górę, by odblokować"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Przesuń w prawo, by przełączyć się na telefon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Przesuń w lewo, by przełączyć się na aparat"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priorytet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Wszystkie"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ładuje się (pełne naładowanie za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Dodaj użytkownika"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nowy użytkownik"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gość"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Dodaj gościa"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Zakończ tryb gościa"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Usuń gościa"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Zakończyć sesję gościa?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Zakończenie sesji gościa spowoduje usunięcie danych lokalnych."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Witaj ponownie, gościu!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Chcesz rozpocząć nową sesję?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Tak"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nie, dziękuję"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Przez minutę"</item>
     <item quantity="other" msgid="6924190729213550991">"Przez %d min"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Przez %d godz."</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Oszczędzanie baterii jest włączone"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Zmniejsza wydajność i ogranicza dane w tle"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Wyłącz oszczędzanie baterii"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Treści ukryte"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> będzie zapisywać wszystko, co wyświetli się na ekranie."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Usuń wszystkie"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Rozpocznij teraz"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Brak powiadomień"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Urządzenie może być monitorowane"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Sieć może być monitorowana"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitorowanie urządzeń"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Monitorowanie sieci"</string>
+    <string name="open_app" msgid="4011771120339160755">"Otwórz aplikację"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Rozłącz z VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Urządzeniem zarządza:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator może monitorować Twoją aktywność na urządzeniu i w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe.\n\nSkontaktuj się z nim, by dowiedzieć się więcej."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Aplikacji „<xliff:g id="APPLICATION">%1$s</xliff:g>” nadałeś uprawnienie do konfigurowania połączenia VPN.\n\nMoże ona monitorować Twoją aktywność na urządzeniu i w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Łączysz się z siecią VPN („<xliff:g id="APPLICATION">%1$s</xliff:g>”).\n\nDostawca usługi VPN może monitorować Twoją aktywność na urządzeniu i w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Urządzeniem zarządza:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator ma możliwość monitorowania Twojej aktywności w sieci, w tym e-maili, aplikacji i bezpiecznych witryn. Skontaktuj się z nim, by dowiedzieć się więcej.\n\nDałeś też aplikacji „<xliff:g id="APPLICATION">%2$s</xliff:g>” uprawnienia do skonfigurowania połączenia VPN. Ona również może monitorować aktywność sieciową."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Urządzeniem zarządza:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator ma możliwość monitorowania Twojej aktywności w sieci, w tym e-maili, aplikacji i bezpiecznych witryn. Skontaktuj się z nim, by dowiedzieć się więcej.\n\nŁączysz się też z siecią VPN („<xliff:g id="APPLICATION">%2$s</xliff:g>”). Dostawca usługi VPN również może monitorować aktywność sieciową."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index c06f267..b7222eb 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Remover da lista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informações da aplicação"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Não existem aplicações recentes"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignorar aplicações recentes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicação recente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"O carregamento por USB não é suportado."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utilize apenas o carregador fornecido."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Definições"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Ativar a poupança de bateria?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ativar"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Ativar a poupança de bateria"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Definições"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo de avião"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Anterior"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Página inicial"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicações recentes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmara"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telemóvel"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificação ignorada."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Painel de notificações."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Definições rápidas."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicações recentes"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Definições"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizador <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Dispositivo Móvel <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Fechar painel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mais tempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menos tempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Dados 2G-3G desligados"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Dados 4G desligados"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Dados de rede móvel desligados"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Localização definida por GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Pedidos de localização ativos"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Limpar todas as notificações."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informações da aplicação"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Definições"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"O ecrã será rodado automaticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"O ecrã está bloqueado na orientação horizontal."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"O ecrã está bloqueado na orientação vertical."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizado(s)"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nenhuma aplicação recente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informações da aplicação"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"bloquear numa aplicação"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Não vai ouvir o alarme à(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificações menos urgentes abaixo"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Toque novamente para abrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar rapidamente com o dedo para cima para desbloquear"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Deslize rapidamente para a direita para aceder ao telemóvel"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Deslize rapidamente para a esquerda para aceder à câmara"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"A carregar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até à carga máxima)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Adicionar utilizador"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Novo utilizador"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Convidado"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Convidado"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Sair de modo convidado"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Remover convidado"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Pretende sair da sessão de convidado?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Ao terminar a sessão de convidado, os dados locais serão removidos."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bem-vindo(a) de volta, caro(a) convidado(a)!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Pretende iniciar uma nova sessão?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sim"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Não, obrigado(a)"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Durante um minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Durante %d minutos"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Durante %d horas"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"A poupança de bateria está ligada"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduz o desempenho e os dados de segundo plano"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desativar a poupança de bateria"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Conteúdo oculto"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"O(a) <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> vai começar a captar tudo o que é apresentado no ecrã."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Limpar tudo"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Começar agora"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Sem notificações"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"O dispositivo pode ser monitorizado"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"A rede pode ser monitorizada"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitorização de dispositivos"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Monitorização da rede"</string>
+    <string name="open_app" msgid="4011771120339160755">"Abrir aplicação"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desligar VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Este dispositivo é gerido por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO administrador pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites seguros.\n\nPara mais informações, contacte o administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Concedeu autorização a \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" para configurar uma ligação VPN.\n\nEsta aplicação pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites seguros."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Está ligado a uma VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nO fornecedor de serviços VPN pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites seguros."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Este dispositivo é gerido por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\no admin. pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites seguros. Para mais informações, contacte o administrador.\n\nAlém disso, deu permissão a \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" para configurar uma ligação VPN. Esta aplicação pode também monitorizar a atividade da rede."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Este dispositivo é gerido por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\no administrador pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites seguros. Para mais informações, contacte o administrador.\n\nAlém disso, está ligado a uma VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). O fornecedor de serviços VPN pode também monitorizar a atividade da rede."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 87c501f..51c0526 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Remover da lista"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informações do aplicativo"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nenhum aplicativo recente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dispensar aplicativos recentes"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicativo recente"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"O carregamento via USB não é suportado."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Use apenas o carregador fornecido."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Configurações"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Ativar a economia de bateria?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ativar"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Ativar a economia de bateria"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configurações"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Modo avião"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Voltar"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Página inicial"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicativos recentes"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefone"</string>
@@ -160,7 +159,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificação dispensada."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Aba de notificações."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configurações rápidas."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicativos recentes."</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuário <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Celular <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -172,6 +174,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Fechar painel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mais tempo"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Menos tempo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Os dados 2G-3G foram desativados"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Os dados 4G foram desativados"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Os dados da rede celular foram desativados"</string>
@@ -184,7 +188,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Local definido por GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitações de localização ativas"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Limpar todas as notificações."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informações do aplicativo"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Configurações"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"A tela girará automaticamente."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A tela está bloqueada na orientação paisagem."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A tela está bloqueada na orientação retrato."</string>
@@ -243,7 +247,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Usados: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nenhum app recente"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informações do aplicativo"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"bloquear no app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string>
@@ -263,7 +268,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Você não ouvirá o alarme às <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificações menos urgentes abaixo"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Toque novamente para abrir"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Deslize para cima para desbloquear"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Deslize para a esquerda para usar o telefone"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Deslize para a esquerda para usar a câmera"</string>
@@ -272,15 +278,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioridade"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até concluir)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Adicionar usuário"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Novo usuário"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Convidado"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ convidado"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Remover convidado"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Sair da sessão de convidado?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Sair da sessão de convidado removerá os dados locais."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bem-vindo, convidado."</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Deseja iniciar uma nova sessão?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Sim"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Não, obrigado."</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Por 1 minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Por %d minutos"</item>
@@ -290,10 +307,8 @@
     <item quantity="other" msgid="5408537517529822157">"Por %d horas"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"A Economia de bateria está ativada"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduz o desempenho e os dados em segundo plano"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desativar a economia de bateria"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Conteúdo oculto"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> começará a capturar tudo o que for exibido na tela."</string>
@@ -301,26 +316,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Limpar tudo"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Iniciar agora"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Sem notificações"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"O dispositivo pode ser monitorado"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"A rede pode ser monitorada"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitoramento de dispositivos"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Monitoramento de rede"</string>
+    <string name="open_app" msgid="4011771120339160755">"Abrir app"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Este dispositivo é gerenciado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO administrador pode monitorar seu dispositivo e a atividade na rede, incluindo e-mails, apps e websites seguros.\n\nPara mais informações, entre em contato com o administrador."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Você autorizou \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" a configurar uma conexão VPN.\n\nEste app pode monitorar seu dispositivo e a atividade na rede, incluindo e-mails, apps e websites seguros."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Você está conectado a uma VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nO provedor de serviços de VPN pode monitorar seu dispositivo e a atividade na rede, incluindo e-mails, apps e websites seguros."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Este dispositivo é gerenciado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO administrador pode monitorar sua atividade na rede, incluindo e-mails, apps e websites seguros. Para mais informações, entre em contato com o administrador.\n\nAlém disso, você autorizou \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" a configurar uma conexão VPN. Esse app também pode monitorar a atividade na rede."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Este dispositivo é gerenciado por:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nO administrador pode monitorar sua atividade na rede, incluindo e-mails, apps e websites seguros. Para mais informações, entre em contato com o administrador.\n\nAlém disso, você está conectado a uma VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). O provedor de serviços de VPN também pode monitorar a atividade na rede."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index a5736af..9da5cc5 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ștergeţi"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Eliminaţi din listă"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informaţii despre aplicaţie"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Nu există aplicaţii recente"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Renunţaţi la aplicaţiile recente"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 aplicaţie recentă"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Încărcarea prin USB nu este acceptată."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Utilizați numai încărcătorul furnizat."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Setări"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Activați economisirea bateriei?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Activați"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Activați economisirea bateriei"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Setări"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Mod Avion"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Înapoi"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Ecranul de pornire"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meniu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Aplicaţii recente"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Căutați"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Cameră foto"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificarea a fost închisă."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Fereastră pentru notificări."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Setări rapide."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Aplicaţii recente"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizatorul <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Semnal mobil: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Închideți panoul"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Mai mult timp"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mai puțin timp"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Datele 2G-3G sunt dezactivate"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Datele 4G sunt dezactivate"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Datele mobile sunt dezactivate"</string>
@@ -182,7 +186,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Locaţie setată prin GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitări locație active"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Ștergeţi toate notificările."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informaţii despre aplicaţie"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Setări"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ecranul se va roti în mod automat."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ecranul este blocat în orientarea de tip peisaj."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ecranul este blocat în orientarea de tip portret."</string>
@@ -241,7 +245,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizați"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limită de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avertizare: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Nicio aplicație recentă"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informații despre aplicație"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"blocare la aplicație"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"căutare"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Nu veți auzi alarma la <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificările mai puțin urgente mai jos"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Atingeți din nou pentru a deschide"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Glisați în sus pentru a debloca"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Glisați la dreapta pentru a acesa telefonul"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Glisați la stânga pentru a accesa camera foto"</string>
@@ -270,20 +276,28 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritate"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Toate"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Se încarcă (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> până la finalizare)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Adăugați un utilizator"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Utilizator nou"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Invitat"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Invitat"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Închideți invitatul"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <!-- no translation found for guest_exit_guest_dialog_title (7587460301980067285) -->
     <skip />
     <!-- no translation found for guest_exit_guest_dialog_message (10255285459589280) -->
     <skip />
     <!-- no translation found for guest_wipe_session_title (6419439912885956132) -->
     <skip />
-    <!-- no translation found for guest_wipe_session_message (5369763062345463297) -->
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
     <skip />
-    <!-- no translation found for guest_wipe_session_wipe (9154291314115781448) -->
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
     <skip />
-    <!-- no translation found for guest_wipe_session_dontwipe (850084868661344050) -->
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
     <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Timp de un minut"</item>
@@ -294,10 +308,8 @@
     <item quantity="other" msgid="5408537517529822157">"Timp de %d (de) ore"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Economisirea bateriei este activată"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduce performanța și datele de fundal"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Dezactivați economisirea bateriei"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Conținutul este ascuns"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> va începe să captureze tot ceea ce se afișează pe ecran."</string>
@@ -305,26 +317,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Ștergeți toate notificările"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Începeți acum"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Nicio notificare"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Dispozitivul poate fi monitorizat"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Rețeaua poate fi monitorizată"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitorizarea dispozitivului"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Monitorizarea rețelei"</string>
+    <string name="open_app" msgid="4011771120339160755">"Deschideți aplicația"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Deconectați rețeaua VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Acest dispozitiv este administrat de:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratorul vă poate monitoriza activitatea pe dispozitiv și în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Ați acordat aplicației „<xliff:g id="APPLICATION">%1$s</xliff:g>” permisiunea de a configura o conexiune VPN.\n\nAceastă aplicație vă poate monitoriza activitatea pe dispozitiv și în rețea, inclusiv email-urile, aplicațiile și site-urile securizate."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Sunteți conectat(ă) la o rețea VPN („<xliff:g id="APPLICATION">%1$s</xliff:g>”).\n\nFurnizorul de servicii VPN vă poate monitoriza activitatea pe dispozitiv și în rețea, inclusiv email-urile, aplicațiile și site-urile securizate."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Dispozitiv administrat de:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratorul vă poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate. Pentru detalii, contactați administratorul.\n\nAți permis aplicației „<xliff:g id="APPLICATION">%2$s</xliff:g>” să configureze o conexiune VPN. Aplicația vă poate monitoriza activitatea în rețea."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Dispozitiv administrat de:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratorul vă poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate. Pentru detalii, contactați administratorul.\n\nSunteți conectat(ă) la o rețea VPN („<xliff:g id="APPLICATION">%2$s</xliff:g>”). Furnizorul de servicii VPN vă poate monitoriza activitatea în rețea."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index e8900fe..d24f356 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Список недавно использованных приложений пуст."</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Закрыть недавние приложения"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Недавних приложений: 1"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим полета"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Домой"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Меню"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Недавние приложения"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Поиск"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон."</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Уведомление закрыто"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панель уведомлений"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Быстрые настройки"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Недавние приложения"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пользователь <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="NETWORK">%2$s</xliff:g>: <xliff:g id="SIGNAL">%1$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобильная сеть: <xliff:g id="NETWORK">%3$s</xliff:g> (<xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="SIGNAL">%1$s</xliff:g>)"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Закрыть панель."</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Увеличить продолжительность."</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Уменьшить продолжительность."</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Передача данных 2G/3G отключена"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Передача данных 4G отключена"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Передача мобильных данных отключена"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"О приложении"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Настройки"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Предупреждение: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ничего не найдено."</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Сведения о приложении"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Блокировать в приложении"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"поиск"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Следующий будильник: <xliff:g id="ALARM_TIME">%s</xliff:g>. Звук отключен."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Показать менее важные оповещения"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Нажмите ещё раз, чтобы открыть"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Для разблокировки проведите пальцем по экрану"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Чтобы открыть приложение \"Телефон\", пролистните вправо"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Чтобы включить камеру, пролистните влево"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Все"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядка батареи (осталось <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"Добавить гостя"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Выйти из гостевого режима"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Удалить аккаунт гостя"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Выйти из гостевого режима?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"При выходе из гостевого режима локальные данные будут удалены."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Рады видеть вас снова!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Начать новый сеанс?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Да"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Нет"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 мин."</item>
     <item quantity="other" msgid="6924190729213550991">"%d мин."</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d ч."</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Включен режим энергосбережения"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Прекращение передачи данных в фоновом режиме"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Отключить режим энергосбережения"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Содержимое скрыто"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Приложение <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> получит доступ к изображению на экране устройства."</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Устройство может контролироваться"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Сеть может отслеживаться"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Отслеживание устройств"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Отслеживание сетей"</string>
+    <string name="open_app" msgid="4011771120339160755">"Открыть приложение"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Отключить VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Этим устройством управляет организация:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами.\n\nЗа дополнительной информацией обратитесь к администратору."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Вы разрешили приложению \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" подключаться к сети VPN.\n\nЭто приложение может отслеживать использование устройства и ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Устройство подключено к сети VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nПоставщик услуг VPN может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Этим устройством управляет организация:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор может отслеживать вашу работу с электронной почтой, приложениями и защищенными веб-сайтами. Обратитесь к нему за дополнительной информацией.\n\nВаши действия в сети также доступны приложению \"<xliff:g id="APPLICATION">%2$s</xliff:g>\", которому вы разрешили подключаться к сети VPN."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Этим устройством управляет организация:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор может отслеживать вашу работу с электронной почтой, приложениями и защищенными веб-сайтами. Обратитесь к нему за дополнительной информацией.\n\nУстройство подключено к сети VPN (<xliff:g id="APPLICATION">%2$s</xliff:g>). Ваши действия также доступны поставщику услуг VPN."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index 6dd4a57..18601a0 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"මෑත උපාංග නැත"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"මෑත යෙදුම් ඉවතලන්න"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"මෑත යෙදුම් 1 ක්"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"අහස්යානා ආකාරය"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"ආපසු"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"මුල් පිටුව"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"මෙනුව"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"මෑත යෙදුම්"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"සොයන්න"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"කැමරාව"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"දුරකථනය"</string>
@@ -158,7 +157,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"දැනුම්දීම නිෂ්ප්‍රභා කරඇත."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"දැනුම්දීම් ආවරණය."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ක්ෂණික සැකසීම්."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"මෑත කාලීන යෙදුම්."</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"පරිශීලකයා <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"ජංගම <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +172,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"පැනලය වහන්න"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"වේලාව වැඩියෙන්"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"වේලාව අඩුවෙන්"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G දත්ත අක්‍රියයි"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G දත්ත අක්‍රියයි"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"සෙලියුලර් දත්ත අක්‍රියයි"</string>
@@ -182,7 +186,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"යෙදුම් තොරතුරු"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"සැකසීම්"</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>
@@ -241,9 +245,10 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> අවවාද කිරීම"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"මෑත යෙදුම් නැත"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"යෙදුම් තොරතුරු"</string>
-    <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"අගුළු යෙදුම"</string>
+    <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"යෙදුමට අඟුළු දැමීම"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"සෙවීම"</string>
     <string name="expanded_header_battery_charged" msgid="5945855970267657951">"අරෝපිතයි"</string>
     <string name="expanded_header_battery_charging" msgid="205623198487189724">"ආරෝපණය වෙමින්"</string>
@@ -261,7 +266,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> හි තිබෙන ඔබගේ සීනුව ඔබට ඇසෙන්නේ නැත"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"හදිසිය අඩු දැනුම් දීම් පහත"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"විවෘත කිරීමට නැවත තට්ටු කරන්න"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"අගුළු ඇරීමට ස්වයිප් කරන්න."</string>
     <string name="phone_hint" msgid="3101468054914424646">"දුරකථන සඳහා දකුණට ස්වයිප් කරන්න"</string>
     <string name="camera_hint" msgid="5241441720959174226">"කැමරාව සඳහා දකුණට ස්වයිප් කරන්න"</string>
@@ -270,15 +276,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ප්‍රමුඛතාව"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"සියලු"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ආරෝපණය වෙමින් (සම්පුර්ණ වන තෙක් <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ අමුත්තා"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"අමුත්තා පිටවීම"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"අමුත්තාගේ සැසියෙන් පිටවෙයිද?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"අමුත්තාගේ සැසිය අවසන් කිරීමෙන් පෙදෙසි දත්ත සියල්ලම පිට කරයි."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"නැවත සාදරයෙන් පිළිගනිමු, අමුත්තා!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"අලුත් සැසියක් ආරම්භ කිරීමට ඔබට අවශ්‍යද?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ඔව්"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"එපා, ස්තූතියි"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"විනාඩි එකක් සඳහා"</item>
     <item quantity="other" msgid="6924190729213550991">"විනාඩි %d සඳහා"</item>
@@ -288,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"පැය %d ක් සඳහා"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"බැටරි ඉතිරි කරන්නා සක්‍රීයයි"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ක්‍රියාකාරිත්වය සහ පසුබිම් දත්ත අඩු කරන්න"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"බැටරි සුරැකීම අක්‍රිය කරන්න"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"සැඟවුණු සම්බන්ධතා"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"ඔබගේ තීරයේ දර්ශනය වන සෑම දෙයම <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ලබාගැනීම ආරම්භ කරන ලදි."</string>
@@ -299,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"ඇතැම් විට උපාංගය නිරීක්ෂණය විය හැක"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"ඇතැම් විට ජාලය නිරීක්ෂණය විය හැක"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"උපාංගය නිරීක්ෂණය"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"ජාල නිරීක්ෂණය"</string>
+    <string name="open_app" msgid="4011771120339160755">"යෙදුම විවෘත කරන්න"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN විසන්ධි කරන්න"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"මෙම උපාංගය කළමනාකරණය කරනු ලබන්නේ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nඊ-මේල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්‍රියාකාරකම නිරීක්ෂණය කිරීමට ඔබගේ පරිපාලකට හැක.\n\nවැඩිදුර විස්තර සඳහා, ඔබගේ පරිපාලක අමතන්න."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"VPN සම්බන්ධතාව සකස් කරගැනීමට \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" අවසර ඔබ දෙන ලදි.\n\nඊ-තැපැල්, යෙදුම්, සහ අරක්ෂිත වෙබ් අඩවි ඇතුළුව ඔබගේ ජාලයේ ක්‍රියාකාරකම් නිරීක්ෂණය කිරීමට මෙම යෙදුමට හැකිය."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") වෙත ඔබ සම්බන්ධ වී තිබේ.\n\nඊ-තැපැල්, යෙදුම්, සහ අරක්ෂිත වෙබ් අඩවි ඇතුළුව ඔබගේ VPN සේවාවේ සපයන්නාට ජාල ක්‍රියාකාරකම් නිරීක්ෂණය කළ හැක."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"මෙම උපාංගය පාලනය කරන්නේ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nඊ-තැපැල්, යෙදුම්, සහ අරක්ෂිත වෙබ් අඩවි ඇතුළුව ඔබගේ ජාලයේ ක්‍රියාකාරකම් නිරීක්ෂණය කිරීමට ඔබගේ පාලකයාට හැකියාව තිබේ. වැඩිපුර තොරතුරු සඳහා ඔබගේ පාලකයා සම්බන්ධ කර ගන්න.\n\nතවද, VPN සම්බන්ධතාව සකස් කරගැනීමට \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" අවසර ඔබ දෙන ලදි. මෙම යෙදුම ජාල ක්‍රියාකාරකම් නිරීක්ෂණය කරයි."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"මෙම උපාංගය පාලනය කරන්නේ:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nඊ-තැපැල්, යෙදුම්, සහ අරක්ෂිත වෙබ් අඩවි ඇතුළුව ඔබගේ ජාලයේ ක්‍රියාකාරකම් නිරීක්ෂණය කිරීමට ඔබගේ පාලකයාට හැකියාව තිබේ. වැඩිපුර තොරතුරු සඳහා ඔබගේ පාලකයා සම්බන්ධ කර ගන්න.\n\nතවද, VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") වෙත ඔබ සම්බන්ධ වී තිබේ. තවද ඔබගේ VPN සේවාවේ සපයන්නාට ජාල ක්‍රියාකාරකම් නිරීක්ෂණය කළ හැක."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index 516a9ac..89235b0 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Vymazať"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Odstrániť zo zoznamu"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informácie o aplikácii"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Žiadne nedávne aplikácie"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zatvoriť nedávne aplikácie"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 nová aplikácia"</item>
@@ -80,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Späť"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Plocha"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nové aplikácie"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hľadať"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefón"</string>
@@ -157,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Upozornenie bolo zrušené."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Panel upozornení."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Rýchle nastavenia."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Nedávne aplikácie"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavenia"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Používateľ: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -169,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Zavrieť panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Dlhší čas"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Kratší čas"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"dáta 2G–3G sú vypnuté"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"dáta 4G sú vypnuté"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobilné dáta sú vypnuté"</string>
@@ -181,7 +187,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Poloha nastavená pomocou GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Žiadosti o polohu sú aktívne"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Vymazať všetky upozornenia."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Informácie o aplikácii"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Nastavenia"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Obrazovka sa automaticky otočí."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Obrazovka je uzamknutá v orientácii na šírku."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Obrazovka je uzamknutá v orientácii na výšku."</string>
@@ -240,7 +246,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Využité: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozornenie pri <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Žiadne nedávne aplikácie"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informácie o aplikácii"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"Uzamknutie v aplikácii"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"hľadať"</string>
@@ -260,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Váš budík o <xliff:g id="ALARM_TIME">%s</xliff:g> sa nespustí"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Menej naliehavé upozornenia sa nachádzajú nižšie"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Upozornenie otvoríte opätovným klepnutím"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Zariadenie odomknete prejdením prstom nahor"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefón otvoríte prejdením prstom doľava"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otvoríte prejdením prstom doľava"</string>
@@ -269,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Priorita"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Všetky"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíja sa (úplné nabitie o <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Pridať používateľa"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nový používateľ"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Hosť"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Pridať hosťa"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Ukončiť režim hosťa"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Odstrániť hosťa"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Chcete ukončiť reláciu hosťa?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Ukončením relácie hosťa sa odstránia mieste údaje."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Hosť, vitajte späť!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Chcete spustiť novú reláciu?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Áno"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nie, ďakujem"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Na jednu minútu"</item>
     <item quantity="other" msgid="6924190729213550991">"Na %d min"</item>
@@ -302,9 +320,11 @@
     <string name="monitoring_title" msgid="169206259253048106">"Sledovanie siete"</string>
     <string name="open_app" msgid="4011771120339160755">"Otvoriť aplikáciu"</string>
     <string name="disconnect_vpn" msgid="1324915059568548655">"Odpojiť sieť VPN"</string>
-    <string name="monitoring_description_device_owned" msgid="7801926679066533391">"Toto zariadenie spravuje organizácia:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string>
-    <string name="monitoring_description_vpn" msgid="93140751707065515">"Aplikácii <xliff:g id="APPLICATION">%1$s</xliff:g> ste povolili nastaviť pripojenie VPN.\n\nTáto aplikácia môže sledovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok."</string>
-    <string name="monitoring_description_legacy_vpn" msgid="5397847778080663075">"Ste pripojený/-á k sieti VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nPoskytovateľ služby VPN môže sledovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok."</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Toto zariadenie spravuje organizácia:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávca môže sledovať vaše zariadenie a aktivitu v sieti vrátane správ, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Aplikácii <xliff:g id="APPLICATION">%1$s</xliff:g> ste povolili nastaviť pripojenie VPN.\n\nTáto aplikácia môže sledovať vaše zariadenie a aktivitu v sieti vrátane správ, aplikácií a zabezpečených webových stránok."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Ste pripojený/-á k sieti VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nPoskytovateľ služby VPN môže sledovať vaše zariadenie a aktivitu v sieti vrátane správ, aplikácií a zabezpečených webových stránok."</string>
     <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Toto zariadenie spravuje organizácia:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok. Ďalšie informácie získate od svojho správcu.\n\nZároveň ste aplikácii <xliff:g id="APPLICATION">%2$s</xliff:g> povolili nastaviť pripojenie VPN. Táto aplikácia môže tiež sledovať vašu aktivitu v sieti."</string>
     <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Toto zariadenie spravuje organizácia:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok. Ďalšie informácie získate od svojho správcu.\n\nZároveň ste pripojený/-á aj k sieti VPN (<xliff:g id="APPLICATION">%2$s</xliff:g>). Poskytovateľ služby VPN môže tiež sledovať vašu aktivitu v sieti."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
+    <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index d67b646..22fb1c6 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Počisti"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Odstrani s seznama"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Podatki o programu"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Ni nedavnih programov"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zapre nedavne programe"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 nedavni program"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Polnjenje prek USB-ja ni podprto."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Uporabljajte samo priloženi polnilnik."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Nastavitve"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Želite vklopiti varčevanje z energijo akumulatorja?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Vklopi"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Vklop varčevanja z energijo"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Nastavitve"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Način za letalo"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Nazaj"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Začetni zaslon"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meni"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Nedavni programi"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Iskanje"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Obvestilo je bilo odstranjeno."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Zaslon z obvestili."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hitre nastavitve."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Nedavne aplikacije."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavitve"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uporabnik: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobilni telefon: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Zapri podokno"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Daljši čas"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Krajši čas"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Prenos podatkov v omrežjih 2G/3G je izklopljen"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Prenos podatkov v omrežjih 4G je izklopljen"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Prenos podatkov v mobilnih omrežjih je izklopljen"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokacija nastavljena z GPS-om"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktivne zahteve za lokacijo"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Izbriši vsa obvestila."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Podatki o aplikaciji"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Nastavitve"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Zaslon se bo samodejno zasukal."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Zaslon je zaklenjen v ležeči usmerjenosti."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Zaslon je zaklenjen v pokončni usmerjenosti."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Porabljeno: <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Omejitev: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Opozorilo – <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Ni nedavnih aplikacij"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Podatki o aplikaciji"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"zakleni v aplikacijo"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"iskanje"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarma ob <xliff:g id="ALARM_TIME">%s</xliff:g> ne boste slišali"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Manj nujna obvestila spodaj"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Znova se dotaknite, da odprete"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Povlecite, da odklenete"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Povlecite v desno za telefon"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Povlecite v levo za fotoaparat"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prednost"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Vse"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Polnjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napolnjenosti)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Dodajanje uporabnika"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Nov uporabnik"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gost"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Dodajanje gosta"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Izhod iz načina za goste"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Odstranitev gosta"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Želite končati sejo gosta?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Če končate sejo gosta, bodo lokalni podatki izbrisani."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Znova pozdravljeni, gost!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Želite začeti novo sejo?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Da"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ne, hvala"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Za eno minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Za %d min"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Za %d h"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Varčevanje z energijo akumulatorja je vklopljeno"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Omeji zmogljivost delovanja in prenos podatkov v ozadju"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Izklop varčevanja z energijo akumulatorja"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Vsebina je skrita"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"Aplikacija <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> bo začela zajemati vse, kar je prikazano na zaslonu."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Izbriši vse"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Začni zdaj"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Ni obvestil"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Naprava je morda nadzorovana"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Omrežje je lahko nadzorovano"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Nadzor naprave"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Nadzor omrežja"</string>
+    <string name="open_app" msgid="4011771120339160755">"Odpri aplikacijo"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Prekini povezavo z VPN-jem"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"To napravo upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSkrbnik lahko nadzira vašo napravo in dejavnost v omrežju, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Aplikaciji »<xliff:g id="APPLICATION">%1$s</xliff:g>« ste dovolili vzpostavitev povezave z omrežjem VPN.\n\nTa aplikacija lahko nadzira vašo napravo in dejavnost v omrežju, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Povezani ste v omrežje VPN (»<xliff:g id="APPLICATION">%1$s</xliff:g>«).\n\nPonudnik omrežja VPN lahko nadzira vašo napravo in dejavnost v omrežju, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"To napravo upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSkrbnik lahko nadzira vašo dejavnost v omrežju, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti. Če želite več informacij, se obrnite na skrbnika.\n\nPoleg tega ste aplikaciji »<xliff:g id="APPLICATION">%2$s</xliff:g>« dovolili vzpostavitev povezave z omrežjem VPN. Vašo dejavnost v omrežju lahko nadzoruje tudi ta aplikacija."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"To napravo upravlja:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nSkrbnik lahko nadzira vašo dejavnost v omrežju, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti. Če želite več informacij, se obrnite na skrbnika.\n\nPoleg tega ste povezani v omrežje VPN (»<xliff:g id="APPLICATION">%2$s</xliff:g>«). Vašo dejavnost v omrežju lahko nadzira tudi ponudnik omrežja VPN."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index b1712f9..0f305c5 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Нема недавних апликација"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Одбаци недавне апликације"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 недавна апликација"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим рада у авиону"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Почетна"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Мени"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Недавне апликације"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Претражите"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Обавештење је одбачено."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Прозор са обавештењима."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Брза подешавања."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Недавне апликације."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Подешавања"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобилна мрежа: <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Затворите таблу"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Више времена"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Мање времена"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G–3G подаци су искључени"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G подаци су искључени"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Мобилни пренос података је искључен"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Информације о апликацији"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Подешавања"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Упозорење за <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Нема недавних апликација"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информације о апликацији"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"закључај апликацију"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"претражи"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Нећете чути аларм у <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Мање хитна обавештења су у наставку"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Додирните поново да бисте отворили"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Превуците нагоре да бисте откључали"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Превуците удесно за телефон"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Превуците улево за камеру"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Приоритет"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Све"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Пуњење (пун је за <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ Гост"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Изађи из режима госта"</string>
-    <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Желите ли да изађете из сесије за госта?"</string>
-    <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Изласком из сесије за госта уклонићете локалне податке."</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Уклони госта"</string>
+    <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Желите ли да изађете из сесије госта?"</string>
+    <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Изласком из сесије госта уклонићете локалне податке."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Добро дошли назад, госте!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Желите ли да започнете нову сесију?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Да"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Не, хвала"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Један минут"</item>
     <item quantity="other" msgid="6924190729213550991">"%d мин"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d с"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Штедња батерије је укључена"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Смањује перформансе и позадинске податке"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Искључи штедњу батерије"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Садржај је сакривен"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ће почети да снима све што се приказује на екрану."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Уређај се можда надгледа"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Мрежа се можда надгледа"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Надгледање уређаја"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Надгледање мреже"</string>
+    <string name="open_app" msgid="4011771120339160755">"Отвори апликацију"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Прекини везу са VPN-ом"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Овим уређајем управља:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор може да надгледа уређај и мрежне активности, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Дали сте дозволу апликацији „<xliff:g id="APPLICATION">%1$s</xliff:g>“ да подешава VPN везу.\n\nТа апликација може да надгледа уређај и мрежне активности, укључујући имејлове, апликације и безбедне веб-сајтове."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Повезани сте са VPN-ом („<xliff:g id="APPLICATION">%1$s</xliff:g>“).\n\nДобављач VPN услуге може да надгледа уређај и мрежне активности, укључујући имејлове, апликације и безбедне веб-сајтове."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Овим уређајем управља:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор може да надгледа мрежне активности, укључујући имејлове, апликације и безбедне веб-сајтове. Више информација потражите од администратора.\n\nДали сте и дозволу апликацији <xliff:g id="APPLICATION">%2$s</xliff:g> да подешава VPN везу. И та апликација може да надгледа мрежне активности."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Овим уређајем управља:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдминистратор може да надгледа мрежне активности, укључујући имејлове, апликације и безбедне веб-сајтове. Више информација потражите од администратора.\n\nПовезани сте и са VPN-ом („<xliff:g id="APPLICATION">%2$s</xliff:g>“). И добављач VPN услуге може да надгледа мрежне активности."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 09efed1..bfa9fdc 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ta bort"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Ta bort från listan"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info om appen"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Inga aktiva appar"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Avvisa nya appar"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ny app"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Det finns inget stöd för laddning via USB."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Använd endast den medföljande laddaren."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Inställningar"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vill du aktivera batterisparläget?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aktivera"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Aktivera batterisparläge"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Inställningar"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Flygplansläge"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Tillbaka"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Startsida"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Meny"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Senaste apparna"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Sök"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Mobil"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Meddelandet ignorerades."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Meddelandepanel."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Snabbinställningar."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Senaste apparna"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Inställningar"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Användare <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Stäng panelen"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Längre tid"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Kortare tid"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-/3G-data har inaktiverats"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G-data har inaktiverats"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobildata har inaktiverats"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Platsen har identifierats av GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Det finns aktiva platsbegäranden"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Ta bort alla meddelanden."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Info om appen"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Inställningar"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skärmen roteras automatiskt."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Bildskärmens riktning är nu låst i liggande format."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Bildskärmens riktning är nu låst i stående format."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> används"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Gräns: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Varning <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Inga aktiva appar"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Appinformation"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lås till app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"sök"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarmet kommer inte att höras kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre brådskande aviseringar nedan"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Tryck igen för att öppna"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Dra uppåt om du vill låsa upp"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Dra åt höger om du vill visa telefonen"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Dra åt vänster om du vill visa kameran"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prioritet"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Alla"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laddar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tills batteriet är fulladdat)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Lägg till användare"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Ny användare"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Gäst"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"Lägg till gäst"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Avsluta gäst"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Ta bort gäst"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Vill du avsluta gästsessionen?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Om du avslutar gästsessionen kommer lokala uppgifter att tas bort."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Välkommen tillbaka gäst!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Vill du starta en ny session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ja"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Nej tack"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"I en minut"</item>
     <item quantity="other" msgid="6924190729213550991">"I %d minuter"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"I %d timmar"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Batterisparläget har aktiverats"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Minskar prestanda och bakgrundsdata"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Inaktivera batterisparläget"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Innehåll har dolts"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> tar en bild av allt som visas på skärmen."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Rensa alla"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Starta nu"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Inga aviseringar"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Enheten kan övervakas"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Nätverket kan vara övervakat"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Enhetsövervakning"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Nätverksövervakning"</string>
+    <string name="open_app" msgid="4011771120339160755">"Öppna appen"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Koppla från VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Den här enheten administreras av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratören kan övervaka enheten och din nätverksaktivitet, inklusive e-post, appar och säkra webbplatser.\n\nKontakta administratören om du vill veta mer."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Du har gett <xliff:g id="APPLICATION">%1$s</xliff:g> tillåtelse att skapa en VPN-anslutning.\n\nAppen kan övervaka enheten och din nätverksaktivitet, inklusive e-post, appar och säkra webbplatser."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Du är ansluten till ett VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nVPN-tjänsteleverantören kan övervaka enheten och din nätverksaktivitet, inklusive e-post, appar och säkra webbplatser."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Den här enheten administreras av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nDin administratör kan övervaka din nätverksaktivitet, inklusive e-post, appar och säkra webbplatser. Kontakta din administratör för mer information.\n\nDu har också gett <xliff:g id="APPLICATION">%2$s</xliff:g> tillåtelse att skapa en VPN-anslutning. Även den här appen kan övervaka nätverksaktivitet."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Den här enheten administreras av:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nDin administratör kan övervaka din nätverksaktivitet, inklusive e-post, appar och säkra webbplatser. Kontakta din administratör för mer information.\n\nDu är även ansluten till VPN (<xliff:g id="APPLICATION">%2$s</xliff:g>). Även din VPN-tjänsteleverantör kan övervaka nätverksaktiviteten."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index f5425bc..32b1c28 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Futa"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Ondoa kwenye orodha"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Taarifa za programu-matumizi"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Hakuna programu za sasa"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ondosha programu za hivi karibuni"</string>
     <!-- String.format failed for translation -->
     <!-- no translation found for status_bar_accessibility_recent_apps:other (1040784359794890744) -->
@@ -37,12 +38,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Kuchaji kwa kutumia USB hakutumiki."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Tumia chaja iliyonunuliwa pamoja na kifaa pekee."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Mipangilio"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Ungependa kuwasha kiokoa betri?"</string>
+    <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_airplane" msgid="4879879698500955300">"Hali ya Ndege"</string>
@@ -81,7 +79,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Nyuma"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Nyumbani"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menyu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Programu za hivi karibuni"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Tafuta"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Simu"</string>
@@ -156,7 +155,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Arifa imetupwa."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Kivuli cha arifa."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Mipangilio ya haraka."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Programu za hivi karibuni."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Mipangilio"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Mtumiaji <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Simu <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -168,6 +169,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Funga paneli ya maelezo"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Muda zaidi"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Muda kidogo"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Data ya 2G-3G imezimwa"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Data ya 4G imezimwa"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Data ya simu ya mkononi imezimwa"</string>
@@ -180,7 +183,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Mahali pamewekwa na GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Maombi ya eneo yanatumika"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Futa arifa zote."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Taarifa ya programu"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Mipangilio"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Skrini itazunguka kiotomatiki."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Skrini imefungwa sasa katika uelekezo wa mandhari."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Skrini imefungwa katika uelekeo wa picha."</string>
@@ -239,7 +242,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> imetumika"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"kikomo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Onyo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Hakuna programu za karibuni"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Maelezo ya Programu"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lazimisha kutumia programu"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"tafuta"</string>
@@ -259,7 +263,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Hutasikia kengele yako ifikapo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>+"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Arifa zisizo za dharura sana ziko hapo chini"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Gonga tena ili ufungue"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Telezesha kidole ili ufungue"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telezesha kidole kulia ili ufikie simu"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Telezesha kidole kushoto ili ufikie kamera"</string>
@@ -268,15 +273,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Kipaumbele"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Zote"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Inachaji (Imebakisha <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ijae)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Ongeza mtumiaji"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Mtumiaji mpya"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Aliyealikwa"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Aliyealikwa"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Ondoa aliyealikwa"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Ondoa aliyealikwa"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Je, ungependa kuondoa kipindi cha aliyealikwa?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Kuondoa kipindi cha aliyealikwa kutaondoa data yako."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Karibu tena, mwalikwa!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Je, unataka kuanzisha kipindi kipya?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ndiyo"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Hapana, asante"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Kwa dakika moja"</item>
     <item quantity="other" msgid="6924190729213550991">"Kwa dakika %d"</item>
@@ -286,10 +301,8 @@
     <item quantity="other" msgid="5408537517529822157">"Kwa saa %d"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Kiokoa betri kimewashwa"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Hupunguza utendaji na data ya chini chini"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Zima kiokoa betri"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Maudhui yamefichwa"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> itaanza kupiga picha kila kitu kinachoonyeshwa kwenye skrini yako."</string>
@@ -297,26 +310,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Futa zote"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Anza sasa"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Hakuna arifa"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Huenda kifaa kinafuatiliwa"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Huenda mtandao unafuatiliwa"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Ufuatiliaji wa kifaa"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Ufuatiliaji wa mtandao"</string>
+    <string name="open_app" msgid="4011771120339160755">"Fungua programu"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Ondoa VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Kifaa kinasimamiwa na:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMsimamizi wako anaweza kufuatilia shughuli ya kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti salama.\n\nKwa maelezo zaidi, wasiliana na msimamizi wako."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Umeruhusu \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" isanidi muunganisho wa VPN.\n\nProgramu hii inaweza kufuatilia shughuli za kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti salama."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Umeunganishwa kwenye VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nMtoa huduma wako wa VPN anaweza kufuatilia kifaa na shughuli za kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti salama."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Kifaa hiki kinasimamiwa na:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMsimamizi anaweza kufuatilia shughuli za mtandao wako ikiwa ni pamoja na barua pepe, programu na tovuti salama. Kwa maelezo zaidi, wasiliana na msimamizi wako.\n\nPia, umeruhusu \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" isanidi muunganisho wa VPN. Programu hii pia inaweza kufuatilia shughuli za mtandao wako."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Kifaa hiki kinasimamiwa na:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMsimamizi anaweza kufuatilia shughuli za mtandao wako ikiwa ni pamoja na barua pepe, programu na tovuti salama. Kwa maelezo zaidi, wasiliana na msimamizi wako.\n\nPia, umeunganishwa kwenye VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Mtoa huduma wako wa VPN pia anaweza kufuatilia shughuli za mtandao."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-sw600dp-land/dimens.xml b/packages/SystemUI/res/values-sw600dp-land/dimens.xml
index 5367fbc..2c22cef 100644
--- a/packages/SystemUI/res/values-sw600dp-land/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp-land/dimens.xml
@@ -27,4 +27,6 @@
 
     <dimen name="keyguard_clock_notifications_margin_min">36dp</dimen>
     <dimen name="keyguard_clock_notifications_margin_max">36dp</dimen>
+
+    <dimen name="keyguard_indication_margin_bottom">80dp</dimen>
 </resources>
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 7cdc078..9901e44 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -79,4 +79,6 @@
     <!-- The width of the region on the left/right edge of the screen for performing the camera/
      phone hints. -->
     <dimen name="edge_tap_area_width">80dp</dimen>
+
+    <dimen name="keyguard_indication_margin_bottom">90dp</dimen>
 </resources>
diff --git a/packages/SystemUI/res/values-sw720dp-land/config.xml b/packages/SystemUI/res/values-sw720dp-land/config.xml
new file mode 100644
index 0000000..1b50288
--- /dev/null
+++ b/packages/SystemUI/res/values-sw720dp-land/config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<resources>
+    <integer name="keyguard_max_notification_count">4</integer>
+</resources>
+
diff --git a/packages/SystemUI/res/values-sw720dp-land/dimens.xml b/packages/SystemUI/res/values-sw720dp-land/dimens.xml
index 2532dd6..511d45f 100644
--- a/packages/SystemUI/res/values-sw720dp-land/dimens.xml
+++ b/packages/SystemUI/res/values-sw720dp-land/dimens.xml
@@ -19,5 +19,5 @@
          min value is used when no notifications are displaying, and the max value is when the
          highest possible number of notifications are showing. -->
     <fraction name="keyguard_clock_y_fraction_max">35%</fraction>
-    <fraction name="keyguard_clock_y_fraction_min">20%</fraction>
+    <fraction name="keyguard_clock_y_fraction_min">24%</fraction>
 </resources>
diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml
index 2d46822..6c47bdc 100644
--- a/packages/SystemUI/res/values-ta-rIN/strings.xml
+++ b/packages/SystemUI/res/values-ta-rIN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"சமீபத்திய பயன்பாடுகள் எதுவுமில்லை"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"சமீபத்திய பயன்பாடுகளை நிராகரி"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 சமீபத்திய பயன்பாடு"</item>
@@ -38,14 +39,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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
-    <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"அமைப்புகள்"</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_wifi_button" msgid="1733928151698311923">"வைஃபை"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"விமானப் பயன்முறை"</string>
     <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"திரையைத் தானாகச் சுழற்று"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"பின்செல்"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"முகப்பு"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"மெனு"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"சமீபத்திய பயன்பாடுகள்"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"தேடு"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"கேமரா"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"மொபைல்"</string>
@@ -144,7 +143,7 @@
     <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"புளூடூத் இணைப்பு முறை."</string>
     <string name="accessibility_airplane_mode" msgid="834748999790763092">"விமானப் பயன்முறை."</string>
     <string name="accessibility_battery_level" msgid="7451474187113371965">"பேட்டரி சக்தி <xliff:g id="NUMBER">%d</xliff:g> சதவிகிதம் உள்ளது."</string>
-    <string name="accessibility_settings_button" msgid="799583911231893380">"கணினி அமைப்புகள்."</string>
+    <string name="accessibility_settings_button" msgid="799583911231893380">"கணினி அமைப்பு."</string>
     <string name="accessibility_notifications_button" msgid="4498000369779421892">"அறிவிப்புகள்."</string>
     <string name="accessibility_remove_notification" msgid="3603099514902182350">"அறிவிப்பை அழி."</string>
     <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS இயக்கப்பட்டது."</string>
@@ -157,8 +156,10 @@
     <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ஐத் தொடங்குகிறது."</string>
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"அறிவிப்பு நிராகரிக்கப்பட்டது."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"அறிவிப்பு விவரம்."</string>
-    <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"உடனடி அமைப்புகள்."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"சமீபத்திய பயன்பாடுகள்."</string>
+    <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"உடனடி அமைப்பு."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"அமைப்புகள்"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"பயனர் <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"மொபைல் <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"பேனலை மூடு"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"நேரத்தை அதிகரி"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"நேரத்தைக் குறை"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G தரவு முடக்கப்பட்டது"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G தரவு முடக்கப்பட்டது"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"செல்லுலார் தரவு முடக்கப்பட்டது"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"பயன்பாட்டுத் தகவல்"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"அமைப்புகள்"</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>
@@ -207,7 +210,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>
@@ -226,7 +229,7 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"தானியங்கு"</string>
     <string name="quick_settings_inversion_label" msgid="8790919884718619648">"வண்ணங்களை மாற்று"</string>
     <string name="quick_settings_color_space_label" msgid="853443689745584770">"வண்ணத்தைச் சரிப்படுத்தும் முறை"</string>
-    <string name="quick_settings_more_settings" msgid="326112621462813682">"மேலும் அமைப்புகள்"</string>
+    <string name="quick_settings_more_settings" msgid="326112621462813682">"மேலும் அமைப்பு"</string>
     <string name="quick_settings_done" msgid="3402999958839153376">"முடிந்தது"</string>
     <string name="quick_settings_connected" msgid="1722253542984847487">"இணைக்கப்பட்டது"</string>
     <string name="quick_settings_connecting" msgid="47623027419264404">"இணைக்கிறது..."</string>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> எச்சரிக்கை"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"சமீபத்திய பயன்பாடுகள் எதுவுமில்லை"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"பயன்பாட்டு தகவல்"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"லாக்-டு-ஆப்"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"தேடு"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> க்கு அலாரத்தைக் கேட்க மாட்டீர்கள்"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"அவசர நிலைக் குறைவான அறிவிப்புகள் கீழே உள்ளன"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"திறக்க, மீண்டும் தட்டவும்"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"திறக்க, மேலே ஸ்வைப் செய்யவும்"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ஃபோனுக்கு, வலப்புறம் ஸ்வைப் செய்க"</string>
     <string name="camera_hint" msgid="5241441720959174226">"கேமராவிற்கு இடப்புறம் ஸ்வைப் செய்க"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"முன்னுரிமை"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"எல்லாம்"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"சார்ஜாகிறது (முழு சார்ஜிற்கு <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ஆகும்)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ அழைக்கப்பட்டவர்"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"விருந்தினரிலிருந்து வெளியேறு"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"அழைக்கப்பட்டவரை அகற்று"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"விருந்தினர் அமர்விலிருந்து வெளியேறவா?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"விருந்தினர் அமர்விலிருந்து வெளியேறுவது அகத் தரவை அகற்றும்."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"வரவேற்கிறோம்!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"புதிய அமர்வைத் தொடங்க விருப்பமா?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ஆம்"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"வேண்டாம், நன்றி"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ஒரு நிமிடம்"</item>
     <item quantity="other" msgid="6924190729213550991">"%d நிமிடங்கள்"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d மணிநேரம்"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"பேட்டரி சேமிப்பான் இயக்கத்தில் உள்ளது"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"செயல்திறனையும் பின்புலத் தரவையும் குறைக்கிறது"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"பேட்டரி சேமிப்பானை முடக்கு"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"மறைந்துள்ள உள்ளடக்கம்"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"திரையில் காட்டப்படும் அனைத்தையும் <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> படமெடுக்கும்."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"சாதனம் கண்காணிக்கப்படலாம்"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"நெட்வொர்க் கண்காணிக்கப்படலாம்"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"சாதனத்தைக் கண்காணித்தல்"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"நெட்வொர்க்கைக் கண்காணித்தல்"</string>
+    <string name="open_app" msgid="4011771120339160755">"பயன்பாட்டைத் திற"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPNஐத் துண்டி"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"சாதனத்தை நிர்வகிப்பது:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உள்ளிட்ட சாதனம் மற்றும் நெட்வொர்க் செயல்பாட்டை உங்கள் நிர்வாகியால் கண்காணிக்க முடியும்.\n\nமேலும் தகவலுக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"VPN இணைப்பை அமைக்க \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"க்கு அனுமதி வழங்கியுள்ளீர்கள்.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உள்ளிட்ட சாதனம் மற்றும் நெட்வொர்க் செயல்பாட்டை இந்தப் பயன்பாட்டினால் கண்காணிக்க முடியும்."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") உடன் இணைக்கப்பட்டீர்கள்.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உள்ளிட்ட சாதனம் மற்றும் நெட்வொர்க் செயல்பாட்டை உங்கள் VPN சேவை வழங்குநரால் கண்காணிக்க முடியும்."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"சாதனத்தை நிர்வகிப்பது:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட நெட்வொர்க் செயல்பாட்டை உங்கள் நிர்வாகியால் கண்காணிக்க முடியும். மேலும் தகவலுக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.\n\nமேலும் VPN இணைப்பை அமைக்க, \"<xliff:g id="APPLICATION">%2$s</xliff:g>\"க்கு அனுமதி வழங்கியுள்ளீர்கள். இந்தப் பயன்பாட்டினால் நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்க முடியும்."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"சாதனத்தை நிர்வகிப்பது:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட நெட்வொர்க் செயல்பாட்டை உங்கள் நிர்வாகியால் கண்காணிக்க முடியும். மேலும் தகவலுக்கு உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.\n\nமேலும் (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") உடன் இணைக்கப்பட்டீர்கள். VPN சேவை வழங்குநரும் நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்க முடியும்."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml
index a41bd75..42fc147 100644
--- a/packages/SystemUI/res/values-te-rIN/strings.xml
+++ b/packages/SystemUI/res/values-te-rIN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ఇటీవలి అనువర్తనాలు లేవు"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ఇటీవలి అనువర్తనాలను తీసివేయండి"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ఇటీవలి అనువర్తనం"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ఎయిర్‌ప్లేన్ మోడ్"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"వెనుకకు"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"హోమ్"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"మెను"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"ఇటీవలి అనువర్తనాలు"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"శోధించు"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"కెమెరా"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"ఫోన్"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"నోటిఫికేషన్ తీసివేయబడింది."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"నోటిఫికేషన్ షేడ్."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"శీఘ్ర సెట్టింగ్‌లు."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"ఇటీవలి అనువర్తనాలు."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"సెట్టింగ్‌లు"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"వినియోగదారు <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"మొబైల్ <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"ప్యానెల్‌ని మూసివేయి"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"ఎక్కువ సమయం"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"తక్కువ సమయం"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G డేటా ఆఫ్‌లో ఉంది"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G డేటా ఆఫ్‌లో ఉంది"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"సెల్యూలార్ డేటా ఆఫ్‌లో ఉంది"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"అనువర్తన సమాచారం"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"సెట్టింగ్‌లు"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> హెచ్చరిక"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ఇటీవలి అనువర్తనాలు ఏవీ లేవు"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"అనువర్తన సమాచారం"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"లాక్ టు యాప్"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"శోధించు"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"మీరు <xliff:g id="ALARM_TIME">%s</xliff:g>కి సెట్ చేసిన అలారం మీకు వినిపించదు"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"తక్కువ అత్యవసర నోటిఫికేషన్‌లు దిగువన"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"తెరవడానికి మళ్లీ నొక్కండి"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"అన్‌లాక్ చేయడానికి ఎగువకు స్వైప్ చేయండి"</string>
     <string name="phone_hint" msgid="3101468054914424646">"ఫోన్ కోసం కుడివైపుకి స్వైప్ చేయండి"</string>
     <string name="camera_hint" msgid="5241441720959174226">"కెమెరా కోసం ఎడమవైపుకి స్వైప్ చేయండి"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ప్రాధాన్యత"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"అన్నిటికీ"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ఛార్జ్ అవుతోంది (పూర్తిగా నిండటానికి <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ అతిథి"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"అతిథి మోడ్ నుండి నిష్క్రమించండి"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"అతిథిని తీసివేయండి"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"అతిథి సెషన్ నుండి నిష్క్రమిస్తున్నారా?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"అతిథి సెషన్ నుండి నిష్క్రమించడం వలన స్థానిక డేటా తీసివేయబడుతుంది."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"పునఃస్వాగతం, అతిథి!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"మీరు కొత్త సెషన్‌ను ప్రారంభించాలనుకుంటున్నారా?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"అవును"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"వద్దు, ధన్యవాదాలు"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ఒక నిమిషానికి"</item>
     <item quantity="other" msgid="6924190729213550991">"%d నిమిషాలకి"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d గంటలకు"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"బ్యాటర్ సేవర్ ఆన్ చేయబడింది"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"పనితీరుని మరియు నేపథ్య డేటాను తగ్గిస్తుంది"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"బ్యాటరీ సేవర్‌ను ఆఫ్ చేయి"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"కంటెంట్‌లు దాచబడ్డాయి"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> మీ స్క్రీన్‌పై కనిపించే ప్రతిదాన్ని క్యాప్చర్ చేయడం ప్రారంభిస్తుంది."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"పరికరం పర్యవేక్షించబడవచ్చు"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"నెట్‌వర్క్ పర్యవేక్షించబడవచ్చు"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"పరికర పర్యవేక్షణ"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"నెట్‌వర్క్ పర్యవేక్షణ"</string>
+    <string name="open_app" msgid="4011771120339160755">"అనువర్తనాన్ని తెరువు"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPNను డిస్‌కనెక్ట్ చేయి"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"ఈ పరికరం దీని నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nమీ నిర్వాహకుడు ఇమెయిల్‌లు, అనువర్తనాలు మరియు సురక్షిత వెబ్‌సైట్‌లతో సహా మీ పరికరాన్ని మరియు నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"మీరు VPN కనెక్షన్‌ను సెటప్ చేయడానికి \"<xliff:g id="APPLICATION">%1$s</xliff:g>\"కి అనుమతి ఇచ్చారు.\n\nఈ అనువర్తనం ఇమెయిల్‌లు, అనువర్తనాలు మరియు సురక్షిత వెబ్‌సైట్‌లతో సహా మీ పరికరాన్ని మరియు నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"మీరు VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\")కి కనెక్ట్ చేయబడ్డారు.\n\nమీ VPN సేవా ప్రదాత ఇమెయిల్‌లు, అనువర్తనాలు మరియు సురక్షిత వెబ్‌సైట్‌లతో సహా మీ పరికరాన్ని మరియు నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలరు."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"ఈ పరికరం దీని నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nమీ నిర్వాహకుడు ఇమెయిల్‌లు, అనువర్తనాలు మరియు సురక్షిత వెబ్‌సైట్‌లతో సహా మీ నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలరు. మరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి.\n\nఅలాగే, మీరు VPN కనెక్షన్‌ను సెటప్ చేయడానికి \"<xliff:g id="APPLICATION">%2$s</xliff:g>\"ని అనుమతించారు. కనుక ఈ అనువర్తనం కూడా నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"ఈ పరికరం దీని నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nమీ నిర్వాహకుడు ఇమెయిల్‌లు, అనువర్తనాలు మరియు సురక్షిత వెబ్‌సైట్‌లతో సహా మీ నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలరు. మరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి.\n\nఅలాగే, మీరు VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\")కి కనెక్ట్ చేయబడ్డారు. కనుక మీ VPN సేవా ప్రదాత కూడా నెట్‌వర్క్ కార్యాచరణను పర్యవేక్షించగలరు."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index ec35d9e..61d8cef 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"ไม่มีแอปพลิเคชันล่าสุด"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ปิดแอปพลิเคชันล่าสุด"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 แอปพลิเคชันล่าสุด"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"WiFi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"โหมดใช้งานบนเครื่องบิน"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"กลับ"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"หน้าแรก"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"เมนู"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"แอปพลิเคชันล่าสุด"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"ค้นหา"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"กล้องถ่ายรูป"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"โทรศัพท์"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ปิดการแจ้งเตือนแล้ว"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"หน้าต่างแจ้งเตือน"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"การตั้งค่าด่วน"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"แอปพลิเคชันล่าสุด"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"การตั้งค่า"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ผู้ใช้ <xliff:g id="USER">%s</xliff:g>"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g> <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"มือถือ <xliff:g id="SIGNAL">%1$s</xliff:g> <xliff:g id="TYPE">%2$s</xliff:g> <xliff:g id="NETWORK">%3$s</xliff:g>"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"ปิดแผงควบคุม"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"เวลามากขึ้น"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"เวลาน้อยลง"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"ข้อมูล 2G-3G ปิดอยู่"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"ข้อมูล 4G ปิดอยู่"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"ข้อมูลมือถือปิดอยู่"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ข้อมูลแอป"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"การตั้งค่า"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"คำเตือน <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"ไม่มีแอปล่าสุด"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"ข้อมูลแอปพลิเคชัน"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"การล็อกแอป"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ค้นหา"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"คุณจะไม่ได้ยินเสียงปลุกในเวลา <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"การแจ้งเตือนที่เร่งด่วนน้อยด้านล่าง"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"แตะอีกครั้งเพื่อเปิด"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"กวาดขึ้นเพื่อปลดล็อก"</string>
     <string name="phone_hint" msgid="3101468054914424646">"กวาดไปทางขวาเพื่อใช้โทรศัพท์"</string>
     <string name="camera_hint" msgid="5241441720959174226">"กวาดไปทางซ้ายเพื่อใช้กล้องถ่ายรูป"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"สำคัญ"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"ทั้งหมด"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"กำลังชาร์จ (อีก <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> เต็ม)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ ผู้เข้าร่วม"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"ออกจากโหมดผู้เยี่ยมชม"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"นำผู้เข้าร่วมออก"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"ต้องการออกจากเซสชันผู้เยี่ยมชมไหม"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"การออกจากเซสชันผู้เยี่ยมชมจะนำข้อมูลในเครื่องออก"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"ยินดีต้อนรับท่านผู้เยี่ยมชมกลับมาอีกครั้ง!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"คุณต้องการเริ่มเซสชันใหม่ไหม"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ใช่"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"ไม่เป็นไร ขอบคุณ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 นาที"</item>
     <item quantity="other" msgid="6924190729213550991">"%d นาที"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d ชั่วโมง"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"เปิดโหมดประหยัดแบตเตอรี่อยู่"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"ลดการใช้แบตเตอรี่และข้อมูลแบ็กกราวด์"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ปิดโหมดประหยัดแบตเตอรี่"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"เนื้อหาที่ซ่อน"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> จะเริ่มจับภาพทุกอย่างที่แสดงบนหน้าจอ"</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"อาจมีการตรวจสอบอุปกรณ์"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"เครือข่ายอาจได้รับการตรวจสอบ"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"การตรวจสอบอุปกรณ์"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"การตรวจสอบเครือข่าย"</string>
+    <string name="open_app" msgid="4011771120339160755">"เปิดแอป"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"ยกเลิกการเชื่อมต่อ VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"อุปกรณ์นี้จัดการโดย:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบอุปกรณ์และกิจกรรมเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"คุณให้สิทธิ์ \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" ในการตั้งค่าการเชื่อมต่อ VPN\n\nแอปนี้สามารถตรวจสอบอุปกรณ์และกิจกรรมเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"คุณเชื่อมต่อกับ VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") อยู่\n\nผู้ให้บริการ VPN สามารถตรวจสอบอุปกรณ์และกิจกรรมเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัยได้"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"อุปกรณ์นี้ได้รับการจัดการโดย:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบของคุณสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณได้ รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย สำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบของคุณ\n\nนอกจากนี้ คุณได้ให้สิทธิ์ \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" เพื่อตั้งค่าการเชื่อมต่อ VPN แอปนี้สามารถตรวจสอบกิจกรรมในเครือข่ายได้เช่นกัน"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"อุปกรณ์นี้ได้รับการจัดการโดย:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบของคุณสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณได้ รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย สำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบของคุณ\n\nนอกจากนี้ คุณเชื่อมต่อกับ VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") ผู้ให้บริการ VPN ของคุณสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณได้เช่นกัน"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index b05dd4a..96dfdd7 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"I-clear"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Alisin mula sa listahan"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Impormasyon ng app"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Walang kamakailang apps"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Huwag pansinin ang kamakailang apps"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 kamakailang app"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Hindi sinusuportahan ang pagtsa-charge gamit ang USB."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Gamitin lang ang ibinigay na charger."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Mga Setting"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"I-on ang pagtitipid ng baterya?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"I-on"</string>
+    <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_airplane" msgid="4879879698500955300">"Airplane mode"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Bumalik"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Home"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Kamakailang apps"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Hanapin"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telepono"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Na-dismiss ang notification."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Mga mabilisang setting."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Kamakailang apps."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Mga Setting"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User na si <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobile <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Isara ang panel"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Higit pang oras"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Mas kaunting oras"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Naka-off ang 2G-3G data"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Naka-off ang 4G data"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Naka-off ang cellular data"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Lokasyong itinatakda ng GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Aktibo ang mga kahilingan ng lokasyon"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"I-clear ang lahat ng notification."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Impormasyon ng app"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Mga Setting"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Awtomatikong iikot ang screen."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Naka-lock ang screen sa pahigang oryentasyon."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Naka-lock ang screen sa patayong oryentasyon."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ang nagamit"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ang limitasyon"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Babala sa <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Walang kamakailang mga app"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Impormasyon ng Application"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"lock to app"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"maghanap"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Hindi mo maririnig ang alarma mo ng <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Nasa ibaba ang mga notification na hindi masyadong mahalaga"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"I-tap ulit upang buksan"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Mag-swipe pataas upang i-unlock"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Mag-swipe pakanan para sa telepono"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Mag-swipe pakaliwa para sa camera"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Prayoridad"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Lahat"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nagtsa-charge (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hanggang mapuno)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Magdagdag ng user"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Bagong user"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Bisita"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Bisita"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Lumabas bilang guest"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Alisin ang bisita"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Lalabas sa session ng bisita?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Maaalis ng paglabas sa session ng bisita ang lokal na data."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Maligayang pagbabalik, bisita!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Gusto mo bang magsimula ng bagong session?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Oo"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Hindi, salamat na lang"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Sa loob ng isang minuto"</item>
     <item quantity="other" msgid="6924190729213550991">"Sa loob ng %d (na) minuto"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Sa loob ng %d (na) oras"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Naka-on ang tagatipid ng baterya"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Binabawasan ang pagganap at data sa background"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"I-off ang pagtitipid ng baterya"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Nakatago ang mga content"</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>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"I-clear lahat"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Magsimula ngayon"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Walang mga notification"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Maaaring subaybayan ang device"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Maaaring sinusubaybayan ang network"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Pagsubaybay sa device"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Pagsubaybay sa network"</string>
+    <string name="open_app" msgid="4011771120339160755">"Buksan ang app"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Idiskonekta ang VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Ang device na ito ay pinamamahalaan ng:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMaaaring subaybayan ng iyong administrator ang iyong device at aktibidad sa network, kabilang ang mga email, app at secure na website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Pinahintulutan mo ang \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" na mag-set up ng koneksyon sa VPN.\n\nMaaaring subaybayan ng app na ito ang iyong device at aktibidad sa network, kabilang ang mga email, app at secure na website."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Nakakonekta ka sa isang VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nMaaaring subaybayan ng iyong VPN service provider ang iyong device at aktibidad sa network kabilang ang mga email, app at secure na website."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Ang device ay pinapamahalaan ng:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMay kakayahan ang iyong administrator na subaybayan ang iyong aktibidad sa network kabilang ang mga email, apps at secure na website. Para sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.\n\nGayundin, pinahintulutan mo ang \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" na mag-set up ng koneksyon sa VPN. Maaari ding subaybayan ng app na ito ang aktibidad sa network."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Ang device ay pinapamahalaan ng:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nMay kakayahan ang iyong administrator na subaybayan ang iyong aktibidad sa network kabilang ang mga email, apps at secure na website. Para sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.\n\nGayundin, nakakonekta ka sa isang VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Maaari ding subaybayan ng iyong VPN service provider ang mga aktibidad sa network."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 110dd05..de21586 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Temizle"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Listeden kaldır"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Uygulama bilgileri"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Son uygulama yok"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Son uygulamaları kapat"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 tane son uygulama"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB şarjı desteklenmiyor."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Yalnızca ürünle birlikte verilen şarj cihazını kullanın."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Ayarlar"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Pil tasarrufu açılsın mı?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Aç"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Pil tasarrufunu aç"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ayarlar"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Kablosuz"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Uçak modu"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Geri"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Ana sayfa"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menü"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Son uygulamalar"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Ara"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Bildirim kapatıldı."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bildirim gölgesi."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hızlı ayarlar."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Son uygulamalar."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ayarlar"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kullanıcı: <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Paneli kapatın"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Daha uzun süre"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Daha kısa süre"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G veri kullanımı kapalı"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G veri kullanımı kapalı"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Hücresel veri kapalı"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Konum GPS ile belirlendi"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Konum bilgisi istekleri etkin"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Tüm bildirimleri temizle"</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Uygulama bilgileri"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Ayarlar"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekran otomatik olarak dönecektir."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran yatay yönde kilitlendi."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran dikey yönde kilitlendi."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> kullanıldı"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Sınır: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> uyarısı"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Yakın zamanda kullanılan uygulama yok"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Uygulama Bilgileri"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"uygulamaya kilitle"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"ara"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> olarak ayarlanan alarmı duymayacaksınız"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Daha az acil bildirimler aşağıdadır"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Açmak için tekrar hafifçe vurun"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Kilidi açmak için hızlıca yukarı kaydırın"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefon için sağa kaydırın"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Kamera için sola kaydırın"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Öncelik"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tümü"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Şarj oluyor (tamamen dolmasına <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kaldı)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Kullanıcı ekle"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Yeni kullanıcı"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Misafir"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Misafir"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Misafir oturumundan çık"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Misafir oturumunu kaldır"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Misafir oturumundan çıkılsın mı?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Misafir oturumundan çıkmak tüm yerel verileri kaldıracaktır."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Tekrar hoş geldiniz sayın misafir!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Yeni bir oturum başlatmak istiyor musunuz?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Evet"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Hayır, teşekkürler"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Bir dakika süreyle"</item>
     <item quantity="other" msgid="6924190729213550991">"%d dakika süreyle"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d saat süreyle"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Pil tasarrufu açık"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Performansı ve arka plan verilerini azaltır"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Pil tasarrufunu kapat"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"%%<xliff:g id="LEVEL">%d</xliff:g>"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"İçerik gizlendi"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>, ekranınızda görüntülenen her şeyi kaydetmeye başlayacak."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Tümü temizle"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Şimdi başla"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Bildirim yok"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Cihaz izlenebilir"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Ağ etkinliği izlenebilir"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Cihaz izleme"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Ağ izleme"</string>
+    <string name="open_app" msgid="4011771120339160755">"Uygulamayı aç"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN bağlantısını kes"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Bu cihazı yöneten kuruluş:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYöneticiniz e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi edinmek için yöneticinizle iletişim kurun."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" uygulamasına bir VPN bağlantısı kurma izni verdiniz.\n\nBu uygulama e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Bir VPN\'ye (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\") bağlısınız.\n\nVPN servis sağlayıcınız e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Bu cihazı yöneten kuruluş:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nYöneticiniz e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nAyrıca \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" uygulamasına VPN bağlantısı kurma izni de verdiniz. Bu uygulama da ağ etkinliğini izleyebilir."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Bu cihazı yöneten kuruluş:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n.Yöneticiniz e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir. Daha fazla bilgi için yöneticinizle iletişim kurun.\n\n Ayrıca bir VPN\'ye de (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") bağlısınız. VPN servis sağlayıcınız da ağ etkinliğini izleyebilir."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml
index 79193d8..8cf85bd 100644
--- a/packages/SystemUI/res/values-uk/strings.xml
+++ b/packages/SystemUI/res/values-uk/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"Немає останніх програм"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Відхилити останні програми"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 остання програма"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Режим польоту"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Назад"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Головна"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Меню"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Останні програми"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Пошук"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Номер телефону"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Сповіщення відхилено."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панель сповіщень."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Швидке налаштування."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Нещодавні програми."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Налаштування"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Користувач <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобільне передавання даних: <xliff:g id="SIGNAL">%1$s</xliff:g>, <xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Закрити панель"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Більше часу"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Менше часу"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Дані 2G–3G вимкнено"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Дані 4G вимкнено"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Мобільні дані вимкнено"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Інформація про програму"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Налаштування"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Застереження: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Немає останніх додатків"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Інформація про додаток"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"блокування в додатку"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"пошук"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Сигнал не лунатиме о <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Менше термінових сповіщень нижче"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Торкніться знову, щоб відкрити"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Проведіть пальцем угору, щоб розблокувати"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Проведіть пальцем праворуч, щоб скористатися телефоном"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Проведіть пальцем ліворуч, щоб скористатися камерою"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Пріоритетні"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Усі"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Заряджання (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до повного зарядження)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"Додати гостя"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Вийти з режиму гостя"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Видалити гостя"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Закінчити сеанс у режимі \"Гість\"?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Якщо закінчити сеанс у режимі \"Гість\", локальні дані буде видалено."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"З поверненням!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Почати новий сеанс?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Так"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Ні, дякую"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Протягом хвилини"</item>
     <item quantity="other" msgid="6924190729213550991">"Протягом %d хв"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Протягом %d год"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Режим заощадження заряду акумулятора ввімкнено"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Знижується продуктивність і обмежуються фонові дані"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Вимкнути режим заощадження заряду акумулятора"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Вміст сховано"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> отримає доступ до всіх даних, які відображаються на вашому екрані."</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Дії на пристрої можуть відстежуватися"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Дії в мережі можуть відстежуватися"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Відстеження дій на пристрої"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Відстеження дій у мережі"</string>
+    <string name="open_app" msgid="4011771120339160755">"Відкрити додаток"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Від’єднатися від мережі VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Цим пристроєм керує \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдміністратор може відстежувати пристрій та дії в мережі, зокрема листування, роботу в додатках і на захищених веб-сайтах.\n\nЩоб дізнатися більше, зверніться до адміністратора."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Ви дозволили додатку <xliff:g id="APPLICATION">%1$s</xliff:g> під’єднуватися до мережі VPN.\n\nДодаток може відстежувати ваш пристрій та дії в мережі, зокрема листування, роботу в додатках і на захищених веб-сайтах."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Ви під’єднані до мережі VPN (<xliff:g id="APPLICATION">%1$s</xliff:g>).\n\nПостачальник послуг VPN може відстежувати пристрій та дії в мережі, зокрема листування, роботу в додатках і на захищених веб-сайтах."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Цим пристроєм керує \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдміністратор може відстежувати ваші дії в мережі, зокрема листування, роботу в додатках і на захищених веб-сайтах. Щоб дізнатися більше, зверніться до адміністратора.\n\nВи також дозволили додатку <xliff:g id="APPLICATION">%2$s</xliff:g> під’єднатися до мережі VPN. Цей додаток теж може відстежувати ваші дії в мережі."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Цим пристроєм керує \n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nАдміністратор може відстежувати ваші дії в мережі, зокрема листування, роботу в додатках і на захищених веб-сайтах. Щоб дізнатися більше, зверніться до адміністратора.\n\nВаш пристрій також під’єднаний до мережі VPN (<xliff:g id="APPLICATION">%2$s</xliff:g>). Постачальник послуг VPN може відстежувати ваші дії в мережі."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml
index 0416be3..cb92e83 100644
--- a/packages/SystemUI/res/values-ur-rPK/strings.xml
+++ b/packages/SystemUI/res/values-ur-rPK/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"کوئی حالیہ ایپس نہیں ہیں"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"حالیہ ایپس برخاست کریں"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 حالیہ ایپ"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"ہوائی جہاز وضع"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"واپس جائیں"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"ہوم"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"مینو"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"حالیہ ایپس"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"تلاش کریں"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"کیمرا"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"فون"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"اطلاع مسترد ہوگئی۔"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"اطلاعاتی شیڈ۔"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"فوری ترتیبات۔"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"حالیہ ایپس۔"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"ترتیبات"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"صارف <xliff:g id="USER">%s</xliff:g>۔"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>۔ <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"موبائل <xliff:g id="SIGNAL">%1$s</xliff:g>۔ <xliff:g id="TYPE">%2$s</xliff:g>۔ <xliff:g id="NETWORK">%3$s</xliff:g>۔"</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"پینل بند کریں"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"مزید وقت"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"کم وقت"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"‏2G-3G ڈیٹا آف ہے"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"‏4G ڈیٹا آف ہے"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"سیلولر ڈیٹا آف ہے"</string>
@@ -182,7 +185,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"ایپ کی معلومات"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"ترتیبات"</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>
@@ -241,7 +244,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> وارننگ"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"کوئی حالیہ ایپس نہیں ہیں"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"ایپلیکیشن کی معلومات"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"لاک ٹو ایپ"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"تلاش کریں"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"آپ کو <xliff:g id="ALARM_TIME">%s</xliff:g> بجے اپنا الارم سنائی نہیں دیگا"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"‎+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>‎"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"کم اہم اطلاعات ذیل میں ہیں"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"کھولنے کیلئے دوبارہ تھپتھپائیں"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"غیر مقفل کرنے کیلئے اوپر سوائپ کریں"</string>
     <string name="phone_hint" msgid="3101468054914424646">"فون کیلئے دائیں سوائپ کریں"</string>
     <string name="camera_hint" msgid="5241441720959174226">"کیمرہ کیلئے بائیں سوائپ کریں"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"ترجیح"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"سبھی"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"چارج ہو رہا ہے (مکمل ہونے تک <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> باقی ہیں)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"+ مہمان"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"مہمان وضع سے باہر نکلیں"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"مہمان کو ہٹائیں"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"مہمان سیشن سے باہر نکل رہے ہیں؟"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"مہمان سیشن سے باہر نکلنے سے مقامی ڈیٹا ہٹ جائے گا۔"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"مہمان، پھر سے خوش آمدید!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"کیا آپ ایک نیا سیشن شروع کرنا چاہتے ہیں؟"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"ہاں"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"نہیں، شکریہ"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"ایک منٹ کیلئے"</item>
     <item quantity="other" msgid="6924190729213550991">"‏%d منٹ کیلئے"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"‏%d گھنٹوں کیلئے"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"بیٹری سیور آن ہے"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"کارکردگی اور پس منظر کا ڈیٹا کم کر دیتا ہے"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"بیٹری کی بچت آف کریں"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"‎<xliff:g id="LEVEL">%d</xliff:g>%%‎"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"مواد مخفی ہیں"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> آپ کی اسکرین پر ڈسپلے ہونے والی ہر چیز کو کیپچر کرنا شروع کر دیگی۔"</string>
@@ -299,26 +312,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"آلہ کو مانیٹر کیا جا سکتا ہے"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"نیٹ ورک کو مانیٹر کیا جا سکتا ہے"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"آلہ کو مانیٹر کرنا"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"نیٹ ورک کو مانیٹر کرنا"</string>
+    <string name="open_app" msgid="4011771120339160755">"ایپ کھولیں"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"‏VPN کو غیر منسلک کریں"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"اس آلہ کا نظم مندرجہ ذیل کے ذریعے کیا جاتا ہے:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nآپ کا منتظم آپ کے آلہ اور نیٹ ورک کی سرگرمی، بشمول ای میلز، ایپس اور محفوظ ویب سائٹس کو مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"‏آپ نے \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" کو ایک VPN کنکشن سیٹ اپ کرنے کی اجازت دی ہے۔\n\nیہ ایپ ای میلز، ایپس اور محفوظ ویب سائٹس کے بشمول آپ کے آلہ اور نیٹ ورک کی سرگرمی کو مانیٹر کر سکتی ہے۔"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"‏آپ ایک VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\")‎ سے منسلک ہیں۔\n\nآپ کا VPN سروس فراہم کنندہ ای میلز، ایپس اور محفوظ ویب سائٹس کے بشمول آپ کے آلہ اور نیٹ ورک کی سرگرمی کو مانیٹر کر سکتا ہے۔"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"‏اس آلہ کا نظم مندرجہ ذیل کے ذریعے کیا جاتا ہے:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nآپ کا منتظم آپ کے نیٹ ورک کی سرگرمی بشمول ای میلز، ایپس اور محفوظ ویب سائٹس کو مانیٹر کرنے کا اہل ہے۔ مزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔\n\nنیز، آپ نے \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" کو ایک VPN کنکشن ترتیب دینے کی اجازت دی ہے۔ یہ ایپ نیٹ ورک کی سرگرمی بھی مانیٹر کر سکتی ہے۔"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"‏اس آلہ کا نظم مندرجہ ذیل کے ذریعے کیا جاتا ہے:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nآپ کا منتظم آپ کے نیٹ ورک کی سرگرمی بشمول ای میلز، ایپس اور محفوظ ویب سائٹس کو مانیٹر کرنے کا اہل ہے۔ مزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔\n\nنیز، آپ ایک VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\") سے منسلک ہیں۔ آپ کی VPN سروس کا فراہم کنندہ نیٹورک کی سرگرمی کو بھی مانیٹر کر سکتا ہے۔"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml
index 62bcb12..369c6ee 100644
--- a/packages/SystemUI/res/values-uz-rUZ/strings.xml
+++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Tozalash"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Ro‘yxatdan o‘chirish"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Ilova xaqida"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Yaqinda foydalanilgan ilova dasturlar mavjud emas"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"So‘nggi dasturlarni tozalash"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ta so‘nggi foydalanilgan dastur"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"USB orqali quvvat oldirish qo‘llab-quvvatlanmaydi."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Faqat qurilma bilan kelgan quvvatlash moslamasidan foydalaning."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Sozlamalar"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Quvvat tejash funksiyasi yoqilsinmi?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Yoqish"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Quvvat tejash funksiyasini yoqing"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Sozlamalar"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Parvoz rejimi"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Orqaga"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Uyga"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menyu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"So‘nggi foydalanilgan ilovalar"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Izlash"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Xabarnoma e‘tiborsiz qoldirildi."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Xabarnoma soyasi."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Tezkor sozlamalar."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Yaqinda ishlatilgan ilovalar."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Sozlamalar"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Foydalanuvchi <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Uyali <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Panelni yopish"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Vaqtni ko‘paytirish"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Vaqtni kamaytirish"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G/3G internet o‘chirib qo‘yildi"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G internet o‘chirib qo‘yildi"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Mobil internet o‘chirib qo‘yildi"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS yordamida manzilni o‘rnatish"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Joylashuv so‘rovlari yoniq"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Barcha eslatmalarni tozalash."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Ilova ma’lumoti"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Sozlamalar"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekran avtomatik ravishda aylanadi."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran eniga holatida qulflandi."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran bo‘yiga holatida qulflandi."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> foydalanilgan"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> chegarasi"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Ogohlantirish: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"So‘nggi foydalanilgan ilovalar yo‘q"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Ilova haqida ma’lumot"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"ilovaga qulflash"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"qidirish"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Keyingi uyg‘otkich: <xliff:g id="ALARM_TIME">%s</xliff:g>. Ovoz eshitilmaydi."</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Kam ahamiyatli bildirishnomalarni pastda ko‘rsatish"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Ochish uchun yana bosing"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Qulfdan chiqarish uchun yuqoriga suring"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Telefonni ochish uchun o‘ngga"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Kamerani ochish uchun chapga suring"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Ustuvorlik"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Barchasi"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Quvvat olmoqda (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>da to‘ladi)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Foydalanuvchi qo‘shish"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Yangi foydalanuvchi"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Mehmon"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Mehmon"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Mehmon rejimidan chiqish"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Mehmon rejimini o‘chirish"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Mehmon rejimidan chiqilsinmi?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Qurilmadagi mehmon rejimida saqlangan ma’lumotlar o‘chib ketadi."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Xush kelibsiz, mehmon!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Yangi seans boshlamoqchimisiz?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Ha"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Yo‘q, kerak emas"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 daqiqa"</item>
     <item quantity="other" msgid="6924190729213550991">"%d daqiqa"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d soat"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Quvvat tejash yoqilgan"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Unumdorlikni pasaytiradi va fonda int-dan foyd-ni cheklaydi"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Quvvat tejash funksiyasini o‘chiring"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Kontent yashirildi"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ilovasi qurilma ekranidagi har qanday tasvirni ko‘rishni boshlaydi."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Barchasini tozalash"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Boshlash"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Bildirishnomalar yo‘q"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Qurilma kuzatilishi mumkin"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Tarmoq kuzatuv ostida bo‘lishi mumkin"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Qurilmalarni kuzatish"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Tarmoqlarni kuzatish"</string>
+    <string name="open_app" msgid="4011771120339160755">"Ilovani ochish"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ulanishini uzish"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Bu qurilma boshqaruvchisi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoringiz tarmoqdagi faollik – e-pochta, ilova va xavfsiz veb-saytlardagi harakatlaringizni kuzatishi mumkin.\n\nQo‘shimcha ma’lumot olish uchun administratoringizga murojaat qiling."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Siz “<xliff:g id="APPLICATION">%1$s</xliff:g>” ilovasiga VPN ulanishini o‘rnatishga ruxsat bergansiz.\n\nShuning uchun, ushbu ilova qurilmangiz va tarmoqdagi faolligingizni, jumladan, e-pochta, ilovalar va xavfsiz veb-saytlar bilan ishlashingizni kuzatishi mumkin."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Qurilma VPN tarmog‘iga ulangan (“<xliff:g id="APPLICATION">%1$s</xliff:g>”).\n\nXatti-harakatlaringiz VPN xizmati ta’minotchisiga ham ko‘rinadi."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Bu qurilma boshqaruvchisi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdmin-ngiz tarmoqdagi faollik – e-pochta, ilova va xavfsiz veb-saytlardagi harakat-ni kuzatishi m-n. Qo‘shimcha ma’lumot olish u-n admin-ga murojaat qiling.\n\nSiz “<xliff:g id="APPLICATION">%2$s</xliff:g>” ilovasiga VPN ulanishini sozlash u-n ruxsat berdingiz. U ham tarmoqdagi faolligingizni kuzatishi mumkin."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Bu qurilma boshqaruvchisi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdmin-ngiz tarmoqdagi faollik – e-pochta, ilova va xavfsiz veb-saytlardagi harakat-ni kuzatishi m-n. Qo‘shimcha ma’lumot olish u-n admin-ga murojaat qiling.\n\nSiz VPN tarmog‘iga ham ulangansiz (“<xliff:g id="APPLICATION">%2$s</xliff:g>”). VPN xizmati ta’minotchingiz ham tarmoqdagi faollingizni kuzatishi m-n."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index ffc0621..acbcbaa 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Xóa"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Xóa khỏi danh sách"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Thông tin về ứng dụng"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Không có ứng dụng nào gần đây"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Loại bỏ các ứng dụng gần đây"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 ứng dụng gần đây"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Sạc qua USB không được hỗ trợ."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Chỉ sử dụng bộ sạc được cung cấp."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Cài đặt"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Bật trình tiết kiệm pin?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Bật"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Bật trình tiết kiệm pin"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Cài đặt"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Chế độ trên máy bay"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Quay lại"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Trang chủ"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Ứng dụng gần đây"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Tìm kiếm"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Máy ảnh"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Điện thoại"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Đã loại bỏ thông báo."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bóng thông báo."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Cài đặt nhanh."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Ứng dụng gần đây."</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Cài đặt"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Người dùng <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Di động <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Đóng bảng điều khiển"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Nhiều thời gian hơn"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Ít thời gian hơn"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Dữ liệu 2G-3G bị tắt"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Dữ liệu 4G bị tắt"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Dữ liệu di động bị tắt"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Vị trí đặt bởi GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Yêu cầu về thông tin vị trí đang hoạt động"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Xóa tất cả thông báo."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Thông tin về ứng dụng"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Cài đặt"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Màn hình sẽ xoay tự động."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Màn hình hiện bị khóa theo hướng ngang."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Màn hình hiện bị khóa theo hướng dọc."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Đã sử dụng <xliff:g id="DATA_USED">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Giới hạn <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Cảnh báo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Không có ứng dụng nào gần đây"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Thông tin ứng dụng"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"khóa trong ứng dụng"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"tìm kiếm"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Bạn sẽ không nghe thấy báo thức lúc <xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Thông báo ít khẩn cấp hơn bên dưới"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Nhấn lại để mở"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Vuốt lên để mở khóa"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Vuốt sang phải để mở điện thoại"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Vuốt sang trái để mở máy ảnh"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Ưu tiên"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Tất cả"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Đang sạc (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> cho đến khi đầy)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Thêm người dùng"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Người dùng mới"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Khách"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Khách"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Thoát chế độ khách"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Xóa phiên khách"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Bạn có muốn thoát khỏi phiên khách không?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Thoát khỏi phiên khách sẽ xóa dữ liệu cục bộ."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Chào mừng bạn trở lại!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Bạn có muốn bắt đầu phiên mới không?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Có"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Không, xin cảm ơn"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Trong một phút"</item>
     <item quantity="other" msgid="6924190729213550991">"Trong %d phút"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Trong %d giờ"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Trình tiết kiệm pin đang bật"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Giảm hiệu suất và dữ liệu nền"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Tắt trình tiết kiệm pin"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Nội dung bị ẩn"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> sẽ bắt đầu chụp mọi thứ hiển thị trên màn hình."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Xóa tất cả"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Bắt đầu ngay"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Không có thông báo nào"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Thiết bị có thể được giám sát"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Mạng có thể được giám sát"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Giám sát thiết bị"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Giám sát mạng"</string>
+    <string name="open_app" msgid="4011771120339160755">"Mở ứng dụng"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Ngắt kết nối VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Thiết bị này được quản lý bởi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nQuản trị viên có thể giám sát hoạt động mạng và thiết bị của bạn, bao gồm email, ứng dụng và các trang web an toàn.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Bạn đã cấp cho \"<xliff:g id="APPLICATION">%1$s</xliff:g>\" quyền thiết lập kết nối VPN.\n\nỨng dụng này có thể giám sát hoạt động mạng và thiết bị của bạn, bao gồm email, ứng dụng và các trang web an toàn."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Bạn đang kết nối với VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nNhà cung cấp dịch vụ VPN có thể giám sát hoạt động mạng và thiết bị của bạn bao gồm email, ứng dụng và các trang web an toàn."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Thiết bị này được quản lý bởi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nQuản trị viên có thể giám sát hoạt động mạng gồm email, ứng dụng và trang web an toàn. Để biết thêm thông tin, hãy liên hệ với quản trị viên.\n\nNgoài ra, bạn đã cấp cho \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" quyền thiết lập kết nối VPN. Ứng dụng này có thể giám sát hoạt động mạng."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Thiết bị này được quản lý bởi:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nQuản trị viên có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và các trang web an toàn. Để biết thêm thông tin, hãy liên hệ với quản trị viên của bạn.\n\nNgoài ra, bạn được kết nối với VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Nhà cung cấp dịch vụ VPN cũng có thể giám sát hoạt động mạng."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index 0556c29..c09209c 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"最近没有运行任何应用"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"关闭最近运行的应用"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 个最近运行的应用"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"WLAN"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飞行模式"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"返回"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"主屏幕"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"菜单"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"最近运行的应用"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜索"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相机"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"电话"</string>
@@ -160,7 +159,10 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"已关闭通知。"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知栏。"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快捷设置。"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"最近使用的应用。"</string>
+    <!-- no translation found for accessibility_desc_settings (3417884241751434521) -->
+    <skip />
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"用户:<xliff:g id="USER">%s</xliff:g>。"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>,<xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"移动数据连接:<xliff:g id="SIGNAL">%1$s</xliff:g>,<xliff:g id="TYPE">%2$s</xliff:g>,<xliff:g id="NETWORK">%3$s</xliff:g>。"</string>
@@ -172,6 +174,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"关闭面板"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"更长时间"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"更短时间"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G数据网络已关闭"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G数据网络已关闭"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"移动数据网络已关闭"</string>
@@ -184,7 +188,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"应用信息"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"设置"</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>
@@ -243,7 +247,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g>警告"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"最近没有用过任何应用"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"应用信息"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"开启单应用模式"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"搜索"</string>
@@ -263,7 +268,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"您在<xliff:g id="ALARM_TIME">%s</xliff:g>将不会听到闹钟响铃"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"不太紧急的通知会显示在下方"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"再次点按即可打开"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑动即可解锁"</string>
     <string name="phone_hint" msgid="3101468054914424646">"向右滑动可打开拨号界面"</string>
     <string name="camera_hint" msgid="5241441720959174226">"向左滑动可打开相机"</string>
@@ -272,15 +278,26 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"优先"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"正在充电(还需<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>充满)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"添加新访客"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"退出访客模式"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <!-- no translation found for guest_exit_guest (7187359342030096885) -->
+    <skip />
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"要退出访客模式吗?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"退出访客模式将移除本地数据。"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"访客,欢迎回来!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"要发起新的会话吗?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"是"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"不"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1分钟"</item>
     <item quantity="other" msgid="6924190729213550991">"%d分钟"</item>
@@ -290,10 +307,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d小时"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"节电助手已开启"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"降低性能并限制后台流量"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"关闭节电助手"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"内容已隐藏"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>将开始截取您的屏幕上显示的所有内容。"</string>
@@ -301,26 +316,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"设备可能会受到监控"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"网络可能会受到监控"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"设备监测"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"网络监控"</string>
+    <string name="open_app" msgid="4011771120339160755">"打开应用"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"断开VPN连接"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"此设备由以下单位管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n您的管理员可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n若要了解详情,请与您的管理员联系。"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"您已授权“<xliff:g id="APPLICATION">%1$s</xliff:g>”设置VPN连接。\n\n此应用可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览安全网站。"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"您已连接到VPN(“<xliff:g id="APPLICATION">%1$s</xliff:g>”)。\n\n您的VPN服务提供商可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览安全网站。"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"此设备由以下单位管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n您的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。若要了解详情,请与您的管理员联系。\n\n此外,您已授权“<xliff:g id="APPLICATION">%2$s</xliff:g>”设置VPN连接。此应用也可以监控网络活动。"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"此设备由以下单位管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n您的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。若要了解详情,请与您的管理员联系。\n\n此外,您已连接到VPN(“<xliff:g id="APPLICATION">%2$s</xliff:g>”)。您的VPN服务提供商也可以监控您的网络活动。"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 21ee7fb..26b6aa0 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"沒有最近的應用程式"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"關閉最近使用的應用程式"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 個最近使用的應用程式"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"返回"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"首頁"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"選單"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"最近使用的應用程式"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"通知已關閉。"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知欄。"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快速設定。"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"最近使用的應用程式"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"用戶:<xliff:g id="USER">%s</xliff:g>。"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>、<xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"流動數據連線:<xliff:g id="SIGNAL">%1$s</xliff:g>、<xliff:g id="TYPE">%2$s</xliff:g>、<xliff:g id="NETWORK">%3$s</xliff:g>。"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"關閉面板"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"更多時間"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"較少時間"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G 數據連線已關閉"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G 數據連線已關閉"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"流動數據連線已關閉"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"應用程式資訊"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"設定"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 警告"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"沒有最近使用的應用程式"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"應用程式資料"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"應用程式鎖定"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"搜尋"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"還有 <xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g> 則通知"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"不太緊急的通知會在下方顯示"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"再次輕按即可開啟"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"向上快速滑動即可解鎖"</string>
     <string name="phone_hint" msgid="3101468054914424646">"向右快速滑動即可使用手機功能"</string>
     <string name="camera_hint" msgid="5241441720959174226">"向左快速滑動即可使用相機功能"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"優先順序"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後完成充電)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"新增訪客"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"結束訪客模式"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"移除訪客"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"要結束訪客工作階段嗎?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"結束訪客工作階段後,本機資料將被移除。"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"訪客您好,歡迎回來!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"您要開始新的工作階段嗎?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"是"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"不用了,謝謝"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 分鐘"</item>
     <item quantity="other" msgid="6924190729213550991">"%d 分鐘"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d 小時"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"省電模式已開啟"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"降低效能並限制背景數據傳輸"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"關閉節約電池用量模式"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"內容已隱藏"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> 將開始擷取您的螢幕上顯示的內容。"</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"裝置可能會受到監控"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"網絡可能會受到監控"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"裝置監控"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"網絡監控"</string>
+    <string name="open_app" msgid="4011771120339160755">"開啟應用程式"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"中斷 VPN 連線"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"這部裝置由下列機構管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n。您的管理員可以監控您的裝置和網絡活動,包括收發電郵、使用應用程式和瀏覽安全網站。\n\n如需更多資料,請與您的管理員聯絡。"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"您已授權「<xliff:g id="APPLICATION">%1$s</xliff:g>」設定 VPN 連線。\n\n這個應用程式可以監控您的裝置和網絡活動,包括收發電郵、使用應用程式和瀏覽安全網站。"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"您已連線至 VPN (「<xliff:g id="APPLICATION">%1$s</xliff:g>」)。\n\n您的 VPN 服務供應商可以監控您的裝置和網絡活動,包括收發電郵、使用應用程式和瀏覽安全網站。"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"這部裝置由下列網域管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網絡活動,包括收發電郵、使用應用程式和瀏覽安全網站。如需更多資料,請與您的管理員聯絡。\n\n同時,由於您已授權「<xliff:g id="APPLICATION">%2$s</xliff:g>」設定 VPN 連線,因此這個應用程式也能監控您的網絡活動。"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"這部裝置由下列網域管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網絡活動,包括收發電郵、使用應用程式和瀏覽安全網站。如需更多資料,請與您的管理員聯絡。\n\n同時,您的裝置已連線至 VPN (「<xliff:g id="APPLICATION">%2$s</xliff:g>」),因此您的 VPN 服務供應商也能監控您的網絡活動。"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index 9a29ed8..4a82dc7 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -23,7 +23,8 @@
     <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="6576392951053994640">"沒有最近使用的應用程式"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"關閉最近使用的應用程式"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"1 個最近使用的應用程式"</item>
@@ -39,12 +40,9 @@
     <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>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <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_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"飛行模式"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"返回"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"主螢幕"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"選單"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"最近使用的應用程式"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string>
@@ -160,7 +159,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"已關閉通知。"</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知欄。"</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快速設定。"</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"最近使用的應用程式。"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"使用者:<xliff:g id="USER">%s</xliff:g>。"</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>,<xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"行動數據連線:<xliff:g id="SIGNAL">%1$s</xliff:g>,<xliff:g id="TYPE">%2$s</xliff:g>,<xliff:g id="NETWORK">%3$s</xliff:g>。"</string>
@@ -172,6 +173,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"關閉面板"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"更多時間"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"更少時間"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"2G-3G 數據連線已關閉"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"4G 數據連線已關閉"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"行動數據連線已關閉"</string>
@@ -184,7 +187,7 @@
     <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="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"應用程式資訊"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"設定"</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>
@@ -243,7 +246,8 @@
     <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>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> 警告"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"沒有最近使用的應用程式"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"應用程式資訊"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"應用程式鎖定"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"搜尋"</string>
@@ -263,7 +267,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"還有 <xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g> 則通知"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"較不緊急的通知會顯示在下方"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"再次輕按即可開啟"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑動即可解鎖"</string>
     <string name="phone_hint" msgid="3101468054914424646">"向左滑動可使用手機功能"</string>
     <string name="camera_hint" msgid="5241441720959174226">"向左滑動可使用相機功能"</string>
@@ -272,15 +277,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"優先"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後充飽)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <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="4259024453643879653">"新增訪客"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"結束訪客模式"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"移除訪客"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"結束訪客工作階段?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"訪客工作階段結束後,本機資料將遭到刪除。"</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"訪客您好,歡迎回來!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"您要啟動新的工作階段嗎?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"是"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"不用了,謝謝"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"1 分鐘"</item>
     <item quantity="other" msgid="6924190729213550991">"%d 分鐘"</item>
@@ -290,10 +305,8 @@
     <item quantity="other" msgid="5408537517529822157">"%d 小時"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"節約耗電量模式已啟用"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"降低效能並限制背景數據傳輸"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"關閉節約耗電量模式"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"內容已隱藏"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> 將開始擷取您的螢幕上顯示的內容。"</string>
@@ -301,26 +314,17 @@
     <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>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"裝置可能會受到監控"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"網路可能會受到監控"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"裝置監控"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"網路監控"</string>
+    <string name="open_app" msgid="4011771120339160755">"開啟應用程式"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"中斷 VPN 連線"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"這個裝置由下列機構管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\n您的管理員可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。\n\n如需詳細資訊,請與您的管理員聯絡。"</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"您已授權「<xliff:g id="APPLICATION">%1$s</xliff:g>」設定 VPN 連線。\n\n這個應用程式可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。"</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"您已連線至 VPN (「<xliff:g id="APPLICATION">%1$s</xliff:g>」)。\n\n您的 VPN 服務供應商可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。"</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"這個裝置由下列網域管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。如需詳細資訊,請與您的管理員聯絡。\n\n同時,由於您已授權「<xliff:g id="APPLICATION">%2$s</xliff:g>」設定 VPN 連線,因此這個應用程式也能監控您的網路活動。"</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"這個裝置由下列網域管理:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。如需詳細資訊,請與您的管理員聯絡。\n\n同時,由於您的裝置已連線至 VPN (「<xliff:g id="APPLICATION">%2$s</xliff:g>」),因此您的 VPN 服務供應商也能監控您的網路活動。"</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 2397502..935ff63 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -23,7 +23,8 @@
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Sula"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Susa ohlwini"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Ulwazi lwensiza"</string>
-    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Azikho izinhlelo zokusebenza zakamuva"</string>
+    <!-- no translation found for status_bar_no_recent_apps (7374907845131203189) -->
+    <skip />
     <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Susa izinhlelo zokusebenza zakamumva"</string>
   <plurals name="status_bar_accessibility_recent_apps">
     <item quantity="one" msgid="5854176083865845541">"Insiza eyi-1 yakamumva"</item>
@@ -39,12 +40,9 @@
     <string name="invalid_charger_title" msgid="3515740382572798460">"Ukushaja kwe-USB akusekelwe."</string>
     <string name="invalid_charger_text" msgid="5474997287953892710">"Sebenzisa kuphela ishaja enikeziwe."</string>
     <string name="battery_low_why" msgid="4553600287639198111">"Izilungiselelo"</string>
-    <!-- no translation found for battery_saver_confirmation_title (5299585433050361634) -->
-    <skip />
-    <!-- no translation found for battery_saver_confirmation_ok (7507968430447930257) -->
-    <skip />
-    <!-- no translation found for battery_saver_start_action (5576697451677486320) -->
-    <skip />
+    <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Vula isilondolozi sebhethri?"</string>
+    <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Vula"</string>
+    <string name="battery_saver_start_action" msgid="5576697451677486320">"Vula isilondolozi sebhethri"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Izilungiselelo"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"I-Wi-Fi"</string>
     <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Imodi yendiza"</string>
@@ -83,7 +81,8 @@
     <string name="accessibility_back" msgid="567011538994429120">"Emuva"</string>
     <string name="accessibility_home" msgid="8217216074895377641">"Ekhaya"</string>
     <string name="accessibility_menu" msgid="316839303324695949">"Imenyu"</string>
-    <string name="accessibility_recent" msgid="8571350598987952883">"Izinhlelo zokusebenza zakamuva"</string>
+    <!-- no translation found for accessibility_recent (1606470783629913980) -->
+    <skip />
     <string name="accessibility_search_light" msgid="1103867596330271848">"Sesha"</string>
     <string name="accessibility_camera_button" msgid="8064671582820358152">"Ikhamela"</string>
     <string name="accessibility_phone_button" msgid="6738112589538563574">"Ifoni"</string>
@@ -158,7 +157,9 @@
     <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Isaziso sichithiwe."</string>
     <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Umthunzi wesaziso."</string>
     <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Izilingiselelo ezisheshayo."</string>
-    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Izinhlelo zokusebenza zakamuva"</string>
+    <string name="accessibility_desc_settings" msgid="3417884241751434521">"Izilungiselelo"</string>
+    <!-- no translation found for accessibility_desc_recent_apps (8376953390514779637) -->
+    <skip />
     <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Umsebenzisi <xliff:g id="USER">%s</xliff:g>."</string>
     <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
     <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Iselula <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
@@ -170,6 +171,8 @@
     <string name="accessibility_quick_settings_close" msgid="2571790856136835943">"Vala iphaneli"</string>
     <string name="accessibility_quick_settings_more_time" msgid="5778794273488176726">"Isikhathi esiningi"</string>
     <string name="accessibility_quick_settings_less_time" msgid="101026945195230084">"Isikhathi esingaphansi"</string>
+    <!-- no translation found for accessibility_brightness (8003681285547803095) -->
+    <skip />
     <string name="data_usage_disabled_dialog_3g_title" msgid="2626865386971800302">"Idatha ye-2G-3G ivaliwe"</string>
     <string name="data_usage_disabled_dialog_4g_title" msgid="4629078114195977196">"Idatha ye-4G ivaliwe"</string>
     <string name="data_usage_disabled_dialog_mobile_title" msgid="5793456071535876132">"Idatha yeselula ivaliwe"</string>
@@ -182,7 +185,7 @@
     <string name="gps_notification_found_text" msgid="4619274244146446464">"Indawo ihlelwe i-GPS"</string>
     <string name="accessibility_location_active" msgid="2427290146138169014">"Izicelo zendawo ziyasebenza"</string>
     <string name="accessibility_clear_all" msgid="5235938559247164925">"Susa zonke izaziso."</string>
-    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Ulwazi lohlelo lokusebenza"</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="5386295743469882227">"Izilungiselelo"</string>
     <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Isikrini sizophenduka ngokuzenzakalela."</string>
     <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Isikrini sikhiyelwe ngomumo we-landscape."</string>
     <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Isikrini sikhiyelwe ngomumo we-portrait."</string>
@@ -241,7 +244,8 @@
     <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> isetshenzisiwe"</string>
     <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> umkhawulo"</string>
     <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> isexwayiso"</string>
-    <string name="recents_empty_message" msgid="7883614615463619450">"Azikho izinhlelo zokusebenza zakamuva"</string>
+    <!-- no translation found for recents_empty_message (8682129509540827999) -->
+    <skip />
     <string name="recents_app_info_button_label" msgid="2890317189376000030">"Ulwazi lohlelo lokusebenza"</string>
     <string name="recents_lock_to_app_button_label" msgid="4793991421811647489">"ukukhiya kuhlelo lokusebenza"</string>
     <string name="recents_search_bar_label" msgid="8074997400187836677">"sesha"</string>
@@ -261,7 +265,8 @@
     <string name="zen_alarm_warning" msgid="6873910860111498041">"Ngeke uzwe i-alamu yakho ngo-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string>
     <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string>
     <string name="speed_bump_explanation" msgid="1288875699658819755">"Izaziso ezingasheshi kakhulu ezingezansi"</string>
-    <string name="notification_tap_again" msgid="7590196980943943842">"Thepha futhi ukuze uvule"</string>
+    <!-- no translation found for notification_tap_again (8524949573675922138) -->
+    <skip />
     <string name="keyguard_unlock" msgid="8043466894212841998">"Swayiphela phezulu ukuze uvule"</string>
     <string name="phone_hint" msgid="3101468054914424646">"Swayiphela ngakwesokudla ukuze uthole ifoni"</string>
     <string name="camera_hint" msgid="5241441720959174226">"Swayiphela ngakwesokunxele ukuze uthole ikhamela"</string>
@@ -270,15 +275,25 @@
     <string name="interruption_level_priority" msgid="6517366750688942030">"Okubalulekile"</string>
     <string name="interruption_level_all" msgid="1330581184930945764">"Konke"</string>
     <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Iyashaja (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ize igcwale)"</string>
+    <!-- no translation found for accessibility_multi_user_switch_switcher (7305948938141024937) -->
+    <skip />
+    <!-- no translation found for accessibility_multi_user_switch_quick_contact (3020367729287990475) -->
+    <skip />
+    <string name="user_add_user" msgid="5110251524486079492">"Engeza umsebenzisi"</string>
+    <string name="user_new_user_name" msgid="426540612051178753">"Umsebenzisi omusha"</string>
     <string name="guest_nickname" msgid="8059989128963789678">"Isihambeli"</string>
-    <string name="guest_new_guest" msgid="4259024453643879653">"+ Isihambeli"</string>
-    <string name="guest_exit_guest" msgid="1619100760451149682">"Phuma kusivakashi"</string>
+    <!-- no translation found for guest_new_guest (600537543078847803) -->
+    <skip />
+    <string name="guest_exit_guest" msgid="7187359342030096885">"Susa isivakashi"</string>
     <string name="guest_exit_guest_dialog_title" msgid="7587460301980067285">"Phuma kusikhathi sesivakashi?"</string>
     <string name="guest_exit_guest_dialog_message" msgid="10255285459589280">"Ukuphuma kusikhathi sesivakashi kuzosusa idatha yendawo."</string>
     <string name="guest_wipe_session_title" msgid="6419439912885956132">"Siyakwamukela futhi, sivakashi!"</string>
-    <string name="guest_wipe_session_message" msgid="5369763062345463297">"Ingabe ufuna ukuqala isikhathi esisha?"</string>
-    <string name="guest_wipe_session_wipe" msgid="9154291314115781448">"Yebo"</string>
-    <string name="guest_wipe_session_dontwipe" msgid="850084868661344050">"Cha, ngiyabonga"</string>
+    <!-- no translation found for guest_wipe_session_message (8476238178270112811) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_wipe (5065558566939858884) -->
+    <skip />
+    <!-- no translation found for guest_wipe_session_dontwipe (1401113462524894716) -->
+    <skip />
   <plurals name="zen_mode_duration_minutes">
     <item quantity="one" msgid="9040808414992812341">"Iminithi elilodwa"</item>
     <item quantity="other" msgid="6924190729213550991">"Amaminithi angu-%d"</item>
@@ -288,10 +303,8 @@
     <item quantity="other" msgid="5408537517529822157">"Amahora angu-%d"</item>
   </plurals>
     <string name="battery_saver_notification_title" msgid="237918726750955859">"Isilondolozi sebhethri sivuliwe"</string>
-    <!-- no translation found for battery_saver_notification_text (820318788126672692) -->
-    <skip />
-    <!-- no translation found for battery_saver_notification_action_text (109158658238110382) -->
-    <skip />
+    <string name="battery_saver_notification_text" msgid="820318788126672692">"Sehlisa ukusebenza nedatha yasemuva"</string>
+    <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Vala isilondolozi sebhethri"</string>
     <string name="battery_level_template" msgid="1609636980292580020">"<xliff:g id="LEVEL">%d</xliff:g>%%"</string>
     <string name="notification_hidden_text" msgid="1135169301897151909">"Okuqukethwe kufihliwe"</string>
     <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> izoqala ukuthwebula yonke into eboniswa kusikrini sakho."</string>
@@ -299,26 +312,17 @@
     <string name="clear_all_notifications_text" msgid="814192889771462828">"Sula konke"</string>
     <string name="media_projection_action_text" msgid="8470872969457985954">"Qala manje"</string>
     <string name="empty_shade_text" msgid="708135716272867002">"Azikho izaziso"</string>
-    <!-- no translation found for device_owned_footer (3802752663326030053) -->
-    <skip />
-    <!-- no translation found for vpn_footer (2388611096129106812) -->
-    <skip />
-    <!-- no translation found for monitoring_title_device_owned (7121079311903859610) -->
-    <skip />
-    <!-- no translation found for monitoring_title (169206259253048106) -->
-    <skip />
-    <!-- no translation found for open_app (4011771120339160755) -->
-    <skip />
-    <!-- no translation found for disconnect_vpn (1324915059568548655) -->
-    <skip />
-    <!-- no translation found for monitoring_description_device_owned (7801926679066533391) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn (93140751707065515) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn (5397847778080663075) -->
-    <skip />
-    <!-- no translation found for monitoring_description_vpn_device_owned (696121105616356493) -->
-    <skip />
-    <!-- no translation found for monitoring_description_legacy_vpn_device_owned (649791650224064248) -->
+    <string name="device_owned_footer" msgid="3802752663326030053">"Idivayisi inganganyelwa"</string>
+    <string name="vpn_footer" msgid="2388611096129106812">"Inethiwekhi kungenzeka iqashiwe"</string>
+    <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Ukwengamela idivayisi"</string>
+    <string name="monitoring_title" msgid="169206259253048106">"Ukuqashwa kwenethiwekhi"</string>
+    <string name="open_app" msgid="4011771120339160755">"Vula uhlelo lokusebenza"</string>
+    <string name="disconnect_vpn" msgid="1324915059568548655">"Nqamula i-VPN"</string>
+    <string name="monitoring_description_device_owned" msgid="7512371572956715493">"Le divayisi iphethwe i-:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUmqondisi wakho angangamela idivayisi yakho nomsebenzi wenethiwekhi, kufaka phakathi ama-imeyili, izinhlelo zokusebenza, nnamawebhusayithi aphephile.\n\nNgolwazi olubanzi, xhumana nomqondisi wakho."</string>
+    <string name="monitoring_description_vpn" msgid="7288268682714305659">"Unike i-\"<xliff:g id="APPLICATION">%1$s</xliff:g>\" imvume yokusetha uxhumo le-VPN.\n\nLolu hlelo lokusebenza lungangamela idivayisi yakho nomsebenzi wenethiwekhi, kufaka phakathi ama-imeyili, izinhlelo zokusebenza, namawebhusayithi aphephile."</string>
+    <string name="monitoring_description_legacy_vpn" msgid="4740349017929725435">"Uxhumekile ku-VPN (\"<xliff:g id="APPLICATION">%1$s</xliff:g>\").\n\nUmhlinzeki wakho wesevisi ye-VPN angangamela idivayisi yakho nomsebenzi wenethiwekhi kufaka phakathi ama-imeyili, izinhlelo zokusebenza, namawebhusayithi aphephile."</string>
+    <string name="monitoring_description_vpn_device_owned" msgid="696121105616356493">"Le divayisi iphethwe i-:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUmqondisi wakho uyakwazi ukwengamela umsebenzi wakho wenethiwekhi kufaka phakathi ama-imeyili, izinhlelo zokusebenza, namawebhusayithi aphephile. Ngolwazi olubanzi, xhumana nomqondisi wakho.\n\nFuthi, unike i-\"<xliff:g id="APPLICATION">%2$s</xliff:g>\" imvume yokusetha uxhumo le-VPN. Lolu hlelo lokusebenza lungangamela futhi umsebenzi wenethiwekhi."</string>
+    <string name="monitoring_description_legacy_vpn_device_owned" msgid="649791650224064248">"Le divayisi iphathwe i-:\n<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nUmqondisi wakho uyakwazi ukwengamela umsebenzi wenethiwekhi yakho kufaka phakathi ama-imeyili, izinhlelo zokusebenza, namawebhusayithi aphephile. Ngolwazi olubanzi, xhumana nomqondisi wakho.\n\nFuthi, uxhumekile ku-VPN (\"<xliff:g id="APPLICATION">%2$s</xliff:g>\"). Umhlinzeki wakho wesevisi ye-VPN angangamela futhi umsebenzi wenethiwekhi."</string>
+    <!-- no translation found for keyguard_indication_trust_disabled (7412534203633528135) -->
     <skip />
 </resources>
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 26e5ce3..f628039 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -147,6 +147,8 @@
     <integer name="recents_max_task_stack_view_dim">96</integer>
     <!-- The number of tasks that RecentsTaskLoader should load. -->
     <integer name="recents_max_num_tasks_to_load">50</integer>
+    <!-- The delay to enforce between each alt-tab key press. -->
+    <integer name="recents_alt_tab_key_delay">200</integer>
     <!-- Transposes the recents layout in landscape. -->
     <bool name="recents_transpose_layout_with_orientation">true</bool>
 
@@ -155,7 +157,7 @@
 
     <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
      card. -->
-    <integer name="keyguard_max_notification_count">4</integer>
+    <integer name="keyguard_max_notification_count">3</integer>
 
     <!-- Defines the implementation of the velocity tracker to be used for the panel expansion. Can
          be 'platform' or 'noisy' (i.e. for noisy touch screens). -->
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 4a4fa41..5415d19 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -175,6 +175,7 @@
     <dimen name="qs_panel_padding_bottom">8dp</dimen>
     <dimen name="qs_detail_item_height">48dp</dimen>
     <dimen name="qs_detail_item_height_twoline">72dp</dimen>
+    <dimen name="qs_brightness_padding_top">6dp</dimen>
 
 
     <dimen name="segmented_button_spacing">4dp</dimen>
@@ -221,6 +222,9 @@
     <!-- The amount to offset when animating into an affiliate group. -->
     <dimen name="recents_task_view_affiliate_group_enter_offset">64dp</dimen>
 
+    <!-- The alpha to apply to a task thumbnail. -->
+    <item name="recents_task_view_thumbnail_alpha" format="float" type="dimen">0.9</item>
+
     <!-- The height of a task view bar. -->
     <dimen name="recents_task_bar_height">56dp</dimen>
 
@@ -319,7 +323,7 @@
     <dimen name="volume_panel_z">3dp</dimen>
 
     <!-- Distance between notifications and header when they are considered to be colliding. -->
-    <dimen name="header_notifications_collide_distance">24dp</dimen>
+    <dimen name="header_notifications_collide_distance">48dp</dimen>
 
     <!-- Distance the user needs to drag vertically such that a swipe is accepted to unlock the
          device. -->
@@ -421,4 +425,9 @@
     <!-- The width/height of the phone/camera/unlock icon on keyguard. -->
     <dimen name="keyguard_affordance_height">56dp</dimen>
     <dimen name="keyguard_affordance_width">56dp</dimen>
+
+    <dimen name="keyguard_indication_margin_bottom">65dp</dimen>
+
+    <!-- The text size for battery level -->
+    <dimen name="battery_level_text_size">12sp</dimen>
 </resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 93ed231..d145172 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -390,6 +390,8 @@
     <string name="accessibility_desc_notification_shade">Notification shade.</string>
     <!-- Content description for the quick settings panel (not shown on the screen). [CHAR LIMIT=NONE] -->
     <string name="accessibility_desc_quick_settings">Quick settings.</string>
+    <!-- Content description for the settings button in the status bar header. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_desc_settings">Settings</string>
     <!-- Content description for the recent apps panel (not shown on the screen). [CHAR LIMIT=NONE] -->
     <string name="accessibility_desc_recent_apps">Recent screens.</string>
 
@@ -416,6 +418,9 @@
     <!-- Content description of zen mode time condition minus button (not shown on the screen). [CHAR LIMIT=NONE] -->
     <string name="accessibility_quick_settings_less_time">Less time</string>
 
+    <!-- Content description of the display brightness slider (not shown on the screen). [CHAR LIMIT=NONE] -->
+    <string name="accessibility_brightness">Display brightness</string>
+
     <!-- Title of dialog shown when 2G-3G data usage has exceeded limit and has been disabled. [CHAR LIMIT=48] -->
     <string name="data_usage_disabled_dialog_3g_title">2G-3G data is off</string>
     <!-- Title of dialog shown when 4G data usage has exceeded limit and has been disabled. [CHAR LIMIT=48] -->
@@ -643,7 +648,7 @@
     <string name="speed_bump_explanation">Less urgent notifications below</string>
 
     <!-- Shows to explain the double tap interaction with notifications: After tapping a notification on Keyguard, this will explain users to tap again to launch a notification. [CHAR LIMIT=60] -->
-    <string name="notification_tap_again">Tap again to open</string>
+    <string name="notification_tap_again">Touch again to open</string>
 
     <!-- Shows when people have pressed the unlock icon to explain how to unlock. [CHAR LIMIT=60] -->
     <string name="keyguard_unlock">Swipe up to unlock</string>
@@ -673,6 +678,12 @@
 
     <!-- Related to user switcher --><skip/>
 
+    <!-- Accessibility label for the button that opens the user switcher. -->
+    <string name="accessibility_multi_user_switch_switcher">Switch user</string>
+
+    <!-- Accessibility label for the button that opens the quick contact of the user. -->
+    <string name="accessibility_multi_user_switch_quick_contact">Show profile</string>
+
     <!-- Label for the adding a new user in the user switcher [CHAR LIMIT=35] -->
     <string name="user_add_user">Add user</string>
 
@@ -685,8 +696,8 @@
     <!-- Label for adding a new guest in the user switcher [CHAR LIMIT=35] -->
     <string name="guest_new_guest">Add guest</string>
 
-    <!-- Label for exiting guest session in the user switcher [CHAR LIMIT=35] -->
-    <string name="guest_exit_guest">Exit guest</string>
+    <!-- Label for exiting and removing the  guest session in the user switcher [CHAR LIMIT=35] -->
+    <string name="guest_exit_guest">Remove guest</string>
 
     <!-- Title of the confirmation dialog when exiting guest session [CHAR LIMIT=NONE] -->
     <string name="guest_exit_guest_dialog_title">Exiting guest session?</string>
@@ -698,13 +709,13 @@
     <string name="guest_wipe_session_title">Welcome back, guest!</string>
 
     <!-- Message of the notification when resuming an existing guest session [CHAR LIMIT=NONE] -->
-    <string name="guest_wipe_session_message">Do you want to start a new session?</string>
+    <string name="guest_wipe_session_message">Do you want to continue your session?</string>
 
     <!-- Notification when resuming an existing guest session: Action that starts a new session [CHAR LIMIT=35] -->
-    <string name="guest_wipe_session_wipe">Yes</string>
+    <string name="guest_wipe_session_wipe">Start over</string>
 
     <!-- Notification when resuming an existing guest session: Action that continues with the current session [CHAR LIMIT=35] -->
-    <string name="guest_wipe_session_dontwipe">No, thanks</string>
+    <string name="guest_wipe_session_dontwipe">Yes, continue</string>
 
 
     <!-- Zen mode condition: time duration in minutes. [CHAR LIMIT=NONE] -->
@@ -782,4 +793,7 @@
     <!-- Monitoring dialog legacy VPN with device owner text [CHAR LIMIT=300] -->
     <string name="monitoring_description_legacy_vpn_device_owned">This device is managed by:\n<xliff:g id="organization">%1$s</xliff:g>\n\nYour administrator is capable of monitoring your network activity including emails, apps, and secure websites. For more information, contact your administrator.\n\nAlso, you\'re connected to a VPN (\"<xliff:g id="application">%2$s</xliff:g>\"). Your VPN service provider can monitor network activity too.</string>
 
+    <!-- Indication on the keyguard that appears when the user disables trust agents until the next time they unlock manually. [CHAR LIMIT=NONE] -->
+    <string name="keyguard_indication_trust_disabled">Device will stay locked until you manually unlock</string>
+
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index baaa379..27e58a4 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -108,49 +108,6 @@
     <style name="TextAppearance.StatusBar.Expanded.UserSwitcher.UserName" />
 
     <style name="TextAppearance" />
-    <style name="TextAppearance.QuickSettings" />
-
-    <style name="TextAppearance.QuickSettings.TileView">
-        <item name="android:textSize">12dp</item>
-        <item name="android:textStyle">normal</item>
-        <item name="android:textColor">#CCCCCC</item>
-        <item name="android:textAllCaps">true</item>
-        <item name="android:paddingStart">6dp</item>
-        <item name="android:paddingEnd">6dp</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.TileView.AllInOne" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:lines">2</item>
-        <item name="android:gravity">top</item>
-        <item name="android:paddingBottom">2dp</item>
-        <item name="android:paddingTop">16dp</item>
-        <item name="android:drawablePadding">8dp</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.Clock" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:textSize">20dp</item>
-        <item name="android:textColor">@android:color/holo_blue_light</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.Date" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:textSize">14dp</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.Alarm" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:textSize">14dp</item>
-        <item name="android:textColor">#ff3a3b39</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.CaCertWarning" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:textAllCaps">false</item>
-    </style>
-
-    <style name="TextAppearance.QuickSettings.TileView.User" parent="@style/TextAppearance.QuickSettings.TileView">
-        <item name="android:background">#CC000000</item>
-        <item name="android:padding">4dp</item>
-        <item name="android:singleLine">true</item>
-        <item name="android:fadingEdge">horizontal</item>
-    </style>
 
     <style name="TextAppearance.QS">
         <item name="android:textStyle">normal</item>
@@ -211,8 +168,6 @@
     <style name="BaseBrightnessDialogContainer">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:padding">16dp</item>
-        <item name="android:layout_alignParentBottom">true</item>
     </style>
 
     <style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer" />
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
index b280ab7..ee699d2 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
@@ -208,6 +208,12 @@
             checkPermission();
             mKeyguardViewMediator.startKeyguardExitAnimation(startTime, fadeoutDuration);
         }
+
+        @Override
+        public void onActivityDrawn() {
+            checkPermission();
+            mKeyguardViewMediator.onActivityDrawn();
+        }
     };
 }
 
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 6c00f4c..be11220 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -133,6 +133,7 @@
     private static final int KEYGUARD_TIMEOUT = 13;
     private static final int DISMISS = 17;
     private static final int START_KEYGUARD_EXIT_ANIM = 18;
+    private static final int ON_ACTIVITY_DRAWN = 19;
 
     /**
      * The default amount of time we stay awake (used for all key input)
@@ -256,6 +257,7 @@
     private boolean mWaitingUntilKeyguardVisible = false;
     private LockPatternUtils mLockPatternUtils;
     private boolean mKeyguardDonePending = false;
+    private boolean mHideAnimationRun = false;
 
     private SoundPool mLockSounds;
     private int mLockSoundId;
@@ -287,6 +289,7 @@
             // ActivityManagerService) will not reconstruct the keyguard if it is already showing.
             synchronized (KeyguardViewMediator.this) {
                 mSwitchingUser = true;
+                mKeyguardDonePending = false;
                 resetStateLocked();
                 adjustStatusBarLocked();
                 // When we switch users we want to bring the new user to the biometric unlock even
@@ -431,12 +434,23 @@
         @Override
         public void keyguardDonePending() {
             mKeyguardDonePending = true;
+            mHideAnimationRun = true;
+            mStatusBarKeyguardViewManager.startPreHideAnimation(null /* finishRunnable */);
         }
 
         @Override
         public void keyguardGone() {
             mKeyguardDisplayManager.hide();
         }
+
+        @Override
+        public void readyForKeyguardDone() {
+            if (mKeyguardDonePending) {
+                // Somebody has called keyguardDonePending before, which means that we are
+                // authenticated
+                KeyguardViewMediator.this.keyguardDone(true /* authenticated */, true /* wakeUp */);
+            }
+        }
     };
 
     public void userActivity() {
@@ -545,6 +559,7 @@
             if (DEBUG) Log.d(TAG, "onScreenTurnedOff(" + why + ")");
 
             mKeyguardDonePending = false;
+            mHideAnimationRun = false;
 
             // Lock immediately based on setting if secure (user has a pin/pattern/password).
             // This also "locks" the device when not secure to provide easy access to the
@@ -1067,6 +1082,9 @@
                     StartKeyguardExitAnimParams params = (StartKeyguardExitAnimParams) msg.obj;
                     handleStartKeyguardExitAnimation(params.startTime, params.fadeoutDuration);
                     break;
+                case ON_ACTIVITY_DRAWN:
+                    handleOnActivityDrawn();
+                    break;
             }
         }
     };
@@ -1181,6 +1199,7 @@
             mHiding = false;
             mShowing = true;
             mKeyguardDonePending = false;
+            mHideAnimationRun = false;
             updateActivityLockScreenState();
             adjustStatusBarLocked();
             userActivity();
@@ -1193,6 +1212,22 @@
         mKeyguardDisplayManager.show();
     }
 
+    private final Runnable mKeyguardGoingAwayRunnable = new Runnable() {
+        @Override
+        public void run() {
+            try {
+                // Don't actually hide the Keyguard at the moment, wait for window
+                // manager until it tells us it's safe to do so with
+                // startKeyguardExitAnimation.
+                mWM.keyguardGoingAway(
+                        mStatusBarKeyguardViewManager.shouldDisableWindowAnimationsForUnlock(),
+                        mStatusBarKeyguardViewManager.isGoingToNotificationShade());
+            } catch (RemoteException e) {
+                Log.e(TAG, "Error while calling WindowManager", e);
+            }
+        }
+    };
+
     /**
      * Handle message sent by {@link #hideLocked()}
      * @see #HIDE
@@ -1200,27 +1235,31 @@
     private void handleHide() {
         synchronized (KeyguardViewMediator.this) {
             if (DEBUG) Log.d(TAG, "handleHide");
-            try {
-                mHiding = true;
-                if (mShowing && !mOccluded) {
 
-                    // Don't actually hide the Keyguard at the moment, wait for window manager until
-                    // it tells us it's safe to do so with startKeyguardExitAnimation.
-                    mWM.keyguardGoingAway();
+            mHiding = true;
+            if (mShowing && !mOccluded) {
+                if (!mHideAnimationRun) {
+                    mStatusBarKeyguardViewManager.startPreHideAnimation(mKeyguardGoingAwayRunnable);
                 } else {
-
-                    // Don't try to rely on WindowManager - if Keyguard wasn't showing, window
-                    // manager won't start the exit animation.
-                    handleStartKeyguardExitAnimation(
-                            SystemClock.uptimeMillis() + mHideAnimation.getStartOffset(),
-                            mHideAnimation.getDuration());
+                    mKeyguardGoingAwayRunnable.run();
                 }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Error while calling WindowManager", e);
+            } else {
+
+                // Don't try to rely on WindowManager - if Keyguard wasn't showing, window
+                // manager won't start the exit animation.
+                handleStartKeyguardExitAnimation(
+                        SystemClock.uptimeMillis() + mHideAnimation.getStartOffset(),
+                        mHideAnimation.getDuration());
             }
         }
     }
 
+    private void handleOnActivityDrawn() {
+        if (mKeyguardDonePending) {
+            mStatusBarKeyguardViewManager.onActivityDrawn();
+        }
+    }
+
     private void handleStartKeyguardExitAnimation(long startTime, long fadeoutDuration) {
         synchronized (KeyguardViewMediator.this) {
 
@@ -1238,6 +1277,7 @@
             mStatusBarKeyguardViewManager.hide(startTime, fadeoutDuration);
             mShowing = false;
             mKeyguardDonePending = false;
+            mHideAnimationRun = false;
             updateActivityLockScreenState();
             adjustStatusBarLocked();
         }
@@ -1351,6 +1391,9 @@
         mHandler.sendMessage(msg);
     }
 
+    public void onActivityDrawn() {
+        mHandler.sendEmptyMessage(ON_ACTIVITY_DRAWN);
+    }
     public ViewMediatorCallback getViewMediatorCallback() {
         return mViewMediatorCallback;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java b/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java
index f8b347c..803a014 100644
--- a/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java
+++ b/packages/SystemUI/src/com/android/systemui/media/NotificationPlayer.java
@@ -17,6 +17,7 @@
 package com.android.systemui.media;
 
 import android.content.Context;
+import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
@@ -45,11 +46,11 @@
         Context context;
         Uri uri;
         boolean looping;
-        int stream;
+        AudioAttributes attributes;
         long requestTime;
 
         public String toString() {
-            return "{ code=" + code + " looping=" + looping + " stream=" + stream
+            return "{ code=" + code + " looping=" + looping + " attributes=" + attributes
                     + " uri=" + uri + " }";
         }
     }
@@ -79,7 +80,7 @@
                     (AudioManager) mCmd.context.getSystemService(Context.AUDIO_SERVICE);
                 try {
                     MediaPlayer player = new MediaPlayer();
-                    player.setAudioStreamType(mCmd.stream);
+                    player.setAudioAttributes(mCmd.attributes);
                     player.setDataSource(mCmd.context, mCmd.uri);
                     player.setLooping(mCmd.looping);
                     player.prepare();
@@ -90,10 +91,12 @@
                                 if (mAudioManagerWithAudioFocus == null) {
                                     if (mDebug) Log.d(mTag, "requesting AudioFocus");
                                     if (mCmd.looping) {
-                                        audioManager.requestAudioFocus(null, mCmd.stream,
+                                        audioManager.requestAudioFocus(null,
+                                                AudioAttributes.toLegacyStreamType(mCmd.attributes),
                                                 AudioManager.AUDIOFOCUS_GAIN);
                                     } else {
-                                        audioManager.requestAudioFocus(null, mCmd.stream,
+                                        audioManager.requestAudioFocus(null,
+                                                AudioAttributes.toLegacyStreamType(mCmd.attributes),
                                                 AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
                                     }
                                     mAudioManagerWithAudioFocus = audioManager;
@@ -280,7 +283,9 @@
      *          (see {@link MediaPlayer#setLooping(boolean)})
      * @param stream the AudioStream to use.
      *          (see {@link MediaPlayer#setAudioStreamType(int)})
+     * @deprecated use {@link #play(Context, Uri, boolean, AudioAttributes)} instead.
      */
+    @Deprecated
     public void play(Context context, Uri uri, boolean looping, int stream) {
         Command cmd = new Command();
         cmd.requestTime = SystemClock.uptimeMillis();
@@ -288,7 +293,34 @@
         cmd.context = context;
         cmd.uri = uri;
         cmd.looping = looping;
-        cmd.stream = stream;
+        cmd.attributes = new AudioAttributes.Builder().setInternalLegacyStreamType(stream).build();
+        synchronized (mCmdQueue) {
+            enqueueLocked(cmd);
+            mState = PLAY;
+        }
+    }
+
+    /**
+     * Start playing the sound.  It will actually start playing at some
+     * point in the future.  There are no guarantees about latency here.
+     * Calling this before another audio file is done playing will stop
+     * that one and start the new one.
+     *
+     * @param context Your application's context.
+     * @param uri The URI to play.  (see {@link MediaPlayer#setDataSource(Context, Uri)})
+     * @param looping Whether the audio should loop forever.
+     *          (see {@link MediaPlayer#setLooping(boolean)})
+     * @param attributes the AudioAttributes to use.
+     *          (see {@link MediaPlayer#setAudioAttributes(AudioAttributes)})
+     */
+    public void play(Context context, Uri uri, boolean looping, AudioAttributes attributes) {
+        Command cmd = new Command();
+        cmd.requestTime = SystemClock.uptimeMillis();
+        cmd.code = PLAY;
+        cmd.context = context;
+        cmd.uri = uri;
+        cmd.looping = looping;
+        cmd.attributes = attributes;
         synchronized (mCmdQueue) {
             enqueueLocked(cmd);
             mState = PLAY;
diff --git a/packages/SystemUI/src/com/android/systemui/media/RingtonePlayer.java b/packages/SystemUI/src/com/android/systemui/media/RingtonePlayer.java
index 5b4bb2c..7eed7f2 100644
--- a/packages/SystemUI/src/com/android/systemui/media/RingtonePlayer.java
+++ b/packages/SystemUI/src/com/android/systemui/media/RingtonePlayer.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.media.AudioAttributes;
 import android.media.IAudioService;
 import android.media.IRingtonePlayer;
 import android.media.Ringtone;
@@ -71,11 +72,11 @@
         private final IBinder mToken;
         private final Ringtone mRingtone;
 
-        public Client(IBinder token, Uri uri, UserHandle user, int streamType) {
+        public Client(IBinder token, Uri uri, UserHandle user, AudioAttributes aa) {
             mToken = token;
 
             mRingtone = new Ringtone(getContextForUser(user), false);
-            mRingtone.setStreamType(streamType);
+            mRingtone.setAudioAttributes(aa);
             mRingtone.setUri(uri);
         }
 
@@ -91,7 +92,7 @@
 
     private IRingtonePlayer mCallback = new IRingtonePlayer.Stub() {
         @Override
-        public void play(IBinder token, Uri uri, int streamType) throws RemoteException {
+        public void play(IBinder token, Uri uri, AudioAttributes aa) throws RemoteException {
             if (LOGD) {
                 Log.d(TAG, "play(token=" + token + ", uri=" + uri + ", uid="
                         + Binder.getCallingUid() + ")");
@@ -101,7 +102,7 @@
                 client = mClients.get(token);
                 if (client == null) {
                     final UserHandle user = Binder.getCallingUserHandle();
-                    client = new Client(token, uri, user, streamType);
+                    client = new Client(token, uri, user, aa);
                     token.linkToDeath(client, 0);
                     mClients.put(token, client);
                 }
@@ -137,13 +138,13 @@
         }
 
         @Override
-        public void playAsync(Uri uri, UserHandle user, boolean looping, int streamType) {
+        public void playAsync(Uri uri, UserHandle user, boolean looping, AudioAttributes aa) {
             if (LOGD) Log.d(TAG, "playAsync(uri=" + uri + ", user=" + user + ")");
             if (Binder.getCallingUid() != Process.SYSTEM_UID) {
                 throw new SecurityException("Async playback only available from system UID.");
             }
 
-            mAsyncPlayer.play(getContextForUser(user), uri, looping, streamType);
+            mAsyncPlayer.play(getContextForUser(user), uri, looping, aa);
         }
 
         @Override
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerDialogWarnings.java b/packages/SystemUI/src/com/android/systemui/power/PowerDialogWarnings.java
index 79fadbd..8420dc0 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerDialogWarnings.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerDialogWarnings.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.power;
 
-import android.app.ActivityManagerNative;
 import android.app.AlertDialog;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -26,15 +25,14 @@
 import android.media.Ringtone;
 import android.media.RingtoneManager;
 import android.net.Uri;
-import android.os.RemoteException;
 import android.os.SystemClock;
-import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.Slog;
 import android.view.ContextThemeWrapper;
 import android.view.WindowManager;
 
 import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
 
 import java.io.PrintWriter;
 
@@ -43,6 +41,7 @@
     private static final boolean DEBUG = PowerUI.DEBUG;
 
     private final Context mContext;
+    private final PhoneStatusBar mPhoneStatusBar;
 
     private int mBatteryLevel;
     private int mBucket;
@@ -52,8 +51,9 @@
     private AlertDialog mInvalidChargerDialog;
     private AlertDialog mLowBatteryDialog;
 
-    public PowerDialogWarnings(Context context) {
+    public PowerDialogWarnings(Context context, PhoneStatusBar phoneStatusBar) {
         mContext = new ContextThemeWrapper(context, android.R.style.Theme_DeviceDefault_Light);
+        mPhoneStatusBar = phoneStatusBar;
     }
 
     @Override
@@ -121,12 +121,7 @@
                         new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        try {
-                            ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
-                        } catch (RemoteException e) {
-                            // we tried
-                        }
-                        mContext.startActivityAsUser(intent, UserHandle.CURRENT);
+                        mPhoneStatusBar.startActivity(intent, true /* dismissShade */);
                         dismissLowBatteryWarning();
                     }
                 });
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
index dd923e3..d455cec 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerNotificationWarnings.java
@@ -38,6 +38,7 @@
 import android.view.View;
 
 import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
 import com.android.systemui.statusbar.phone.SystemUIDialog;
 
 import java.io.PrintWriter;
@@ -93,10 +94,10 @@
     private boolean mInvalidCharger;
     private SystemUIDialog mSaverConfirmation;
 
-    public PowerNotificationWarnings(Context context) {
+    public PowerNotificationWarnings(Context context, PhoneStatusBar phoneStatusBar) {
         mContext = context;
         mNoMan = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-        mFallbackDialogs = new PowerDialogWarnings(context);
+        mFallbackDialogs = new PowerDialogWarnings(context, phoneStatusBar);
         mReceiver.init();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
index ccef8eb..d3c7dee 100644
--- a/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
+++ b/packages/SystemUI/src/com/android/systemui/power/PowerUI.java
@@ -32,6 +32,7 @@
 import android.util.Slog;
 
 import com.android.systemui.SystemUI;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -59,7 +60,7 @@
     public void start() {
         mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
         mScreenOffTime = mPowerManager.isScreenOn() ? -1 : SystemClock.elapsedRealtime();
-        mWarnings = new PowerNotificationWarnings(mContext);
+        mWarnings = new PowerNotificationWarnings(mContext, getComponent(PhoneStatusBar.class));
 
         ContentObserver obs = new ContentObserver(mHandler) {
             @Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index cbf6e29..c3144c1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -35,6 +35,7 @@
 import com.android.systemui.settings.BrightnessController;
 import com.android.systemui.settings.ToggleSlider;
 import com.android.systemui.statusbar.phone.QSTileHost;
+import com.android.systemui.statusbar.policy.BrightnessMirrorController;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -60,6 +61,7 @@
     private int mLargeCellHeight;
     private int mPanelPaddingBottom;
     private int mDualTileUnderlap;
+    private int mBrightnessPaddingTop;
     private boolean mExpanded;
     private boolean mListening;
 
@@ -105,6 +107,14 @@
         });
     }
 
+    public void setBrightnessMirror(BrightnessMirrorController c) {
+        super.onFinishInflate();
+        ToggleSlider brightnessSlider = (ToggleSlider) findViewById(R.id.brightness_slider);
+        ToggleSlider mirror = (ToggleSlider) c.getMirror().findViewById(R.id.brightness_slider);
+        brightnessSlider.setMirror(mirror);
+        brightnessSlider.setMirrorController(c);
+    }
+
     public void setCallback(Callback callback) {
         mCallback = callback;
     }
@@ -127,6 +137,7 @@
         mLargeCellWidth = (int)(mLargeCellHeight * TILE_ASPECT);
         mPanelPaddingBottom = res.getDimensionPixelSize(R.dimen.qs_panel_padding_bottom);
         mDualTileUnderlap = res.getDimensionPixelSize(R.dimen.qs_dual_tile_padding_vertical);
+        mBrightnessPaddingTop = res.getDimensionPixelSize(R.dimen.qs_brightness_padding_top);
         if (mColumns != columns) {
             mColumns = columns;
             postInvalidate();
@@ -311,6 +322,7 @@
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         final int width = MeasureSpec.getSize(widthMeasureSpec);
         mBrightnessView.measure(exactly(width), MeasureSpec.UNSPECIFIED);
+        final int brightnessHeight = mBrightnessView.getMeasuredHeight() + mBrightnessPaddingTop;
         mFooter.getView().measure(exactly(width), MeasureSpec.UNSPECIFIED);
         int r = -1;
         int c = -1;
@@ -339,9 +351,9 @@
             final int ch = record.row == 0 ? mLargeCellHeight : mCellHeight;
             record.tileView.measure(exactly(cw), exactly(ch));
         }
-        int h = rows == 0 ? mBrightnessView.getHeight() : (getRowTop(rows) + mPanelPaddingBottom);
+        int h = rows == 0 ? brightnessHeight : (getRowTop(rows) + mPanelPaddingBottom);
         if (mFooter.hasFooter()) {
-            h += mFooter.getView().getHeight();
+            h += mFooter.getView().getMeasuredHeight();
         }
         mDetail.measure(exactly(width), MeasureSpec.UNSPECIFIED);
         if (mDetail.getMeasuredHeight() < h) {
@@ -357,8 +369,9 @@
     @Override
     protected void onLayout(boolean changed, int l, int t, int r, int b) {
         final int w = getWidth();
-        mBrightnessView.layout(0, 0,
-                mBrightnessView.getMeasuredWidth(), mBrightnessView.getMeasuredHeight());
+        mBrightnessView.layout(0, mBrightnessPaddingTop,
+                mBrightnessView.getMeasuredWidth(),
+                mBrightnessPaddingTop + mBrightnessView.getMeasuredHeight());
         for (TileRecord record : mRecords) {
             if (record.tileView.getVisibility() == GONE) continue;
             final int cols = getColumnCount(record.row);
@@ -380,8 +393,8 @@
     }
 
     private int getRowTop(int row) {
-        if (row <= 0) return mBrightnessView.getHeight();
-        return mBrightnessView.getHeight()
+        if (row <= 0) return mBrightnessView.getMeasuredHeight() + mBrightnessPaddingTop;
+        return mBrightnessView.getMeasuredHeight() + mBrightnessPaddingTop
                 + mLargeCellHeight - mDualTileUnderlap + (row - 1) * mCellHeight;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java b/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java
index 1a555f1..1df3d20 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/SignalTileView.java
@@ -89,11 +89,9 @@
     protected void handleStateChanged(QSTile.State state) {
         super.handleStateChanged(state);
         final SignalState s = (SignalState) state;
-        mSignal.setImageDrawable(null);  // force refresh
         mSignal.setImageResource(s.iconId);
         if (s.overlayIconId > 0) {
             mOverlay.setVisibility(VISIBLE);
-            mOverlay.setImageDrawable(null);  // force refresh
             mOverlay.setImageResource(s.overlayIconId);
         } else {
             mOverlay.setVisibility(GONE);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
index efb7a2c..354eb55 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/AlternateRecentsComponent.java
@@ -345,8 +345,8 @@
      * Creates the activity options for an app->recents transition.  If this method sets the static
      * screenshot, then we will use that for the transition.
      */
-    ActivityOptions getThumbnailTransitionActivityOptions(ActivityManager.RunningTaskInfo topTask) {
-
+    ActivityOptions getThumbnailTransitionActivityOptions(ActivityManager.RunningTaskInfo topTask,
+            boolean isTopTaskHome) {
         if (Constants.DebugFlags.App.EnableScreenshotAppTransition) {
             // Recycle the last screenshot
             consumeLastScreenshot();
@@ -365,7 +365,7 @@
         Bitmap firstThumbnail = mSystemServicesProxy.getTaskThumbnail(topTask.id);
         if (firstThumbnail != null) {
             // Update the destination rect
-            Rect toTaskRect = getThumbnailTransitionRect(topTask.id);
+            Rect toTaskRect = getThumbnailTransitionRect(topTask.id, isTopTaskHome);
             if (toTaskRect.width() > 0 && toTaskRect.height() > 0) {
                 // Create the new thumbnail for the animation down
                 // XXX: We should find a way to optimize this so we don't need to create a new bitmap
@@ -389,7 +389,7 @@
     }
 
     /** Returns the transition rect for the given task id. */
-    Rect getThumbnailTransitionRect(int runningTaskId) {
+    Rect getThumbnailTransitionRect(int runningTaskId, boolean isTopTaskHome) {
         // Get the stack of tasks that we are animating into
         TaskStack stack = RecentsTaskLoader.getShallowTaskStack(mSystemServicesProxy, -1);
         if (stack.getTaskCount() == 0) {
@@ -401,7 +401,8 @@
         TaskStackViewLayoutAlgorithm algo = tsv.getStackAlgorithm();
         Rect taskStackBounds = new Rect(mTaskStackBounds);
         taskStackBounds.bottom -= mSystemInsets.bottom;
-        tsv.computeRects(mWindowRect.width(), mWindowRect.height(), taskStackBounds, mTriggeredFromAltTab);
+        tsv.computeRects(mWindowRect.width(), mWindowRect.height(), taskStackBounds,
+                mTriggeredFromAltTab, isTopTaskHome);
         tsv.getScroller().setStackScrollToInitialState();
 
         // Find the running task in the TaskStack
@@ -442,7 +443,7 @@
 
         if (useThumbnailTransition) {
             // Try starting with a thumbnail transition
-            ActivityOptions opts = getThumbnailTransitionActivityOptions(topTask);
+            ActivityOptions opts = getThumbnailTransitionActivityOptions(topTask, isTopTaskHome);
             if (opts != null) {
                 if (sLastScreenshot != null) {
                     startAlternateRecentsActivity(topTask, opts, EXTRA_FROM_APP_FULL_SCREENSHOT);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
index 3d4d6c4..3709c43 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java
@@ -39,6 +39,8 @@
             public static final boolean EnableSearchLayout = true;
             // Enables the dynamic shadows behind each task
             public static final boolean EnableShadows = true;
+            // Enables the thumbnail alpha on the front-most task
+            public static final boolean EnableThumbnailAlphaOnFrontmost = false;
             // This disables the bitmap and icon caches
             public static final boolean DisableBackgroundCache = false;
             // Enables the simulated task affiliations
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
index 417049c..7fafe7a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java
@@ -61,6 +61,7 @@
 
     RecentsConfiguration mConfig;
     boolean mVisible;
+    long mLastTabKeyEventTime;
 
     // Top level views
     RecentsView mRecentsView;
@@ -384,7 +385,7 @@
         // Private API calls to make the shadows look better
         try {
             Utilities.setShadowProperty("ambientShadowStrength", String.valueOf(35f));
-            Utilities.setShadowProperty("ambientRatio", String.valueOf(0.5f));
+            Utilities.setShadowProperty("ambientRatio", String.valueOf(1.5f));
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         } catch (InvocationTargetException e) {
@@ -512,17 +513,33 @@
 
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
-        if (keyCode == KeyEvent.KEYCODE_TAB) {
-            // Focus the next task in the stack
-            final boolean backward = event.isShiftPressed();
-            mRecentsView.focusNextTask(!backward);
-            return true;
-        } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
-            mRecentsView.focusNextTask(true);
-            return true;
-        } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
-            mRecentsView.focusNextTask(false);
-            return true;
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_TAB: {
+                boolean hasRepKeyTimeElapsed = (System.currentTimeMillis() -
+                        mLastTabKeyEventTime) > mConfig.altTabKeyDelay;
+                if (event.getRepeatCount() <= 0 || hasRepKeyTimeElapsed) {
+                    // Focus the next task in the stack
+                    final boolean backward = event.isShiftPressed();
+                    mRecentsView.focusNextTask(!backward);
+                    mLastTabKeyEventTime = System.currentTimeMillis();
+                }
+                return true;
+            }
+            case KeyEvent.KEYCODE_DPAD_UP: {
+                mRecentsView.focusNextTask(true);
+                return true;
+            }
+            case KeyEvent.KEYCODE_DPAD_DOWN: {
+                mRecentsView.focusNextTask(false);
+                return true;
+            }
+            case KeyEvent.KEYCODE_DEL:
+            case KeyEvent.KEYCODE_FORWARD_DEL: {
+                mRecentsView.dismissFocusedTask();
+                return true;
+            }
+            default:
+                break;
         }
         // Pass through the debug trigger
         mDebugTrigger.onKeyEvent(keyCode);
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
index 65e7076..b7f6451 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsConfiguration.java
@@ -81,6 +81,7 @@
     public int taskViewRoundedCornerRadiusPx;
     public int taskViewHighlightPx;
     public int taskViewAffiliateGroupEnterOffsetPx;
+    public float taskViewThumbnailAlpha;
 
     /** Task bar colors */
     public int taskBarViewDefaultBackgroundColor;
@@ -112,6 +113,9 @@
     public boolean launchedFromHome;
     public int launchedToTaskId;
 
+    /** Misc **/
+    public int altTabKeyDelay;
+
     /** Dev options and global settings */
     public boolean lockToAppEnabled;
     public boolean developerOptionsEnabled;
@@ -214,6 +218,9 @@
         taskViewTranslationZMaxPx = res.getDimensionPixelSize(R.dimen.recents_task_view_z_max);
         taskViewAffiliateGroupEnterOffsetPx =
                 res.getDimensionPixelSize(R.dimen.recents_task_view_affiliate_group_enter_offset);
+        TypedValue thumbnailAlphaValue = new TypedValue();
+        res.getValue(R.dimen.recents_task_view_thumbnail_alpha, thumbnailAlphaValue, true);
+        taskViewThumbnailAlpha = thumbnailAlphaValue.getFloat();
 
         // Task bar colors
         taskBarViewDefaultBackgroundColor =
@@ -250,6 +257,9 @@
         // Nav bar scrim
         navBarScrimEnterDuration =
                 res.getInteger(R.integer.recents_nav_bar_scrim_enter_duration);
+
+        // Misc
+        altTabKeyDelay = res.getInteger(R.integer.recents_alt_tab_key_delay);
     }
 
     /** Updates the system insets */
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/ReferenceCountedTrigger.java b/packages/SystemUI/src/com/android/systemui/recents/misc/ReferenceCountedTrigger.java
index 4c0ff48..c87a901 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/ReferenceCountedTrigger.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/ReferenceCountedTrigger.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.recents.misc;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
 import android.content.Context;
 
 import java.util.ArrayList;
@@ -98,10 +100,19 @@
         }
     }
 
-    /** Convenience method to decrement this trigger as a runnable */
+    /** Convenience method to decrement this trigger as a runnable. */
     public Runnable decrementAsRunnable() {
         return mDecrementRunnable;
     }
+    /** Convenience method to decrement this trigger as a animator listener. */
+    public Animator.AnimatorListener decrementOnAnimationEnd() {
+        return new AnimatorListenerAdapter() {
+            @Override
+            public void onAnimationEnd(Animator animation) {
+                decrement();
+            }
+        };
+    }
 
     /** Returns the current ref count */
     public int getCount() {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/Utilities.java b/packages/SystemUI/src/com/android/systemui/recents/misc/Utilities.java
index bd5df28..4c6b389 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/Utilities.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/Utilities.java
@@ -89,6 +89,17 @@
         return Math.abs((fgL + 0.05f) / (bgL + 0.05f));
     }
 
+    /** Returns the base color overlaid with another overlay color with a specified alpha. */
+    public static int getColorWithOverlay(int baseColor, int overlayColor, float overlayAlpha) {
+        return Color.rgb(
+            (int) (overlayAlpha * Color.red(baseColor) +
+                    (1f - overlayAlpha) * Color.red(overlayColor)),
+            (int) (overlayAlpha * Color.green(baseColor) +
+                    (1f - overlayAlpha) * Color.green(overlayColor)),
+            (int) (overlayAlpha * Color.blue(baseColor) +
+                    (1f - overlayAlpha) * Color.blue(overlayColor)));
+    }
+
     /** Sets some private shadow properties. */
     public static void setShadowProperty(String property, String value)
             throws IllegalAccessException, InvocationTargetException {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
index 0269141..98bf151 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java
@@ -20,6 +20,7 @@
 import com.android.systemui.recents.Constants;
 import com.android.systemui.recents.RecentsConfiguration;
 import com.android.systemui.recents.misc.NamedCounter;
+import com.android.systemui.recents.misc.Utilities;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -433,10 +434,8 @@
                 float alpha = 1f;
                 for (int j = 0; j < taskCount; j++) {
                     Task t = tasksMap.get(group.mTaskKeys.get(j));
-                    t.colorPrimary = Color.rgb(
-                            (int) (alpha * Color.red(affiliationColor) + (1f - alpha) * 0xFF),
-                            (int) (alpha * Color.green(affiliationColor) + (1f - alpha) * 0xFF),
-                            (int) (alpha * Color.blue(affiliationColor) + (1f - alpha) * 0xFF));
+                    t.colorPrimary = Utilities.getColorWithOverlay(affiliationColor, Color.WHITE,
+                            alpha);
                     alpha -= alphaStep;
                 }
             }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index 34e8860..07a7e74 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -316,12 +316,11 @@
     /** Notifies each task view of the user interaction. */
     public void onUserInteraction() {
         // Get the first stack view
-        TaskStackView stackView = null;
         int childCount = getChildCount();
         for (int i = 0; i < childCount; i++) {
             View child = getChildAt(i);
             if (child != mSearchBar) {
-                stackView = (TaskStackView) child;
+                TaskStackView stackView = (TaskStackView) child;
                 stackView.onUserInteraction();
             }
         }
@@ -330,18 +329,28 @@
     /** Focuses the next task in the first stack view */
     public void focusNextTask(boolean forward) {
         // Get the first stack view
-        TaskStackView stackView = null;
         int childCount = getChildCount();
         for (int i = 0; i < childCount; i++) {
             View child = getChildAt(i);
             if (child != mSearchBar) {
-                stackView = (TaskStackView) child;
+                TaskStackView stackView = (TaskStackView) child;
+                stackView.focusNextTask(forward);
                 break;
             }
         }
+    }
 
-        if (stackView != null) {
-            stackView.focusNextTask(forward);
+    /** Dismisses the focused task. */
+    public void dismissFocusedTask() {
+        // Get the first stack view
+        int childCount = getChildCount();
+        for (int i = 0; i < childCount; i++) {
+            View child = getChildAt(i);
+            if (child != mSearchBar) {
+                TaskStackView stackView = (TaskStackView) child;
+                stackView.dismissFocusedTask();
+                break;
+            }
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
index 46996bb..aee558f 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -73,6 +73,7 @@
     boolean mStackViewsDirty = true;
     boolean mAwaitingFirstLayout = true;
     boolean mStartEnterAnimationRequestedAfterLayout;
+    boolean mStartEnterAnimationCompleted;
     ViewAnimation.TaskViewEnterContext mStartEnterAnimationContext;
     int[] mTmpVisibleRange = new int[2];
     TaskViewTransform mTmpTransform = new TaskViewTransform();
@@ -349,9 +350,10 @@
     }
 
     /** Updates the min and max virtual scroll bounds */
-    void updateMinMaxScroll(boolean boundScrollToNewMinMax, boolean launchedWithAltTab) {
+    void updateMinMaxScroll(boolean boundScrollToNewMinMax, boolean launchedWithAltTab,
+            boolean launchedFromHome) {
         // Compute the min and max scroll values
-        mLayoutAlgorithm.computeMinMaxScroll(mStack.getTasks(), launchedWithAltTab);
+        mLayoutAlgorithm.computeMinMaxScroll(mStack.getTasks(), launchedWithAltTab, launchedFromHome);
 
         // Debug logging
         if (boundScrollToNewMinMax) {
@@ -366,6 +368,9 @@
 
     /** Focuses the task at the specified index in the stack */
     void focusTask(int taskIndex, boolean scrollToNewPosition) {
+        // Return early if the task is already focused
+        if (taskIndex == mFocusedTaskIndex) return;
+
         if (0 <= taskIndex && taskIndex < mStack.getTaskCount()) {
             mFocusedTaskIndex = taskIndex;
 
@@ -390,7 +395,7 @@
 
             // Scroll the view into position (just center it in the curve)
             if (scrollToNewPosition) {
-                float newScroll = mLayoutAlgorithm.getStackScrollForTaskIndex(t) - 0.5f;
+                float newScroll = mLayoutAlgorithm.getStackScrollForTask(t) - 0.5f;
                 newScroll = mStackScroller.getBoundedStackScroll(newScroll);
                 mStackScroller.animateScroll(mStackScroller.getStackScroll(), newScroll, postScrollRunnable);
             } else {
@@ -406,14 +411,24 @@
     void focusNextTask(boolean forward) {
         // Find the next index to focus
         int numTasks = mStack.getTaskCount();
-        if (mFocusedTaskIndex < 0) {
-            mFocusedTaskIndex = numTasks - 1;
-        }
+        if (numTasks == 0) return;
+
+        int nextFocusIndex = numTasks - 1;
         if (0 <= mFocusedTaskIndex && mFocusedTaskIndex < numTasks) {
-            mFocusedTaskIndex = Math.max(0, Math.min(numTasks - 1,
+            nextFocusIndex = Math.max(0, Math.min(numTasks - 1,
                     mFocusedTaskIndex + (forward ? -1 : 1)));
         }
-        focusTask(mFocusedTaskIndex, true);
+        focusTask(nextFocusIndex, true);
+    }
+
+    /** Dismisses the focused task. */
+    public void dismissFocusedTask() {
+        // Return early if there is no focused task index
+        if (mFocusedTaskIndex < 0) return;
+
+        Task t = mStack.getTasks().get(mFocusedTaskIndex);
+        TaskView tv = getChildViewForTask(t);
+        tv.dismissTask();
     }
 
     @Override
@@ -436,12 +451,12 @@
 
     /** Computes the stack and task rects */
     public void computeRects(int windowWidth, int windowHeight, Rect taskStackBounds,
-                             boolean launchedWithAltTab) {
+            boolean launchedWithAltTab, boolean launchedFromHome) {
         // Compute the rects in the stack algorithm
         mLayoutAlgorithm.computeRects(windowWidth, windowHeight, taskStackBounds);
 
         // Update the scroll bounds
-        updateMinMaxScroll(false, launchedWithAltTab);
+        updateMinMaxScroll(false, launchedWithAltTab, launchedFromHome);
     }
 
     /**
@@ -456,7 +471,8 @@
         // Compute our stack/task rects
         Rect taskStackBounds = new Rect(mTaskStackBounds);
         taskStackBounds.bottom -= mConfig.systemInsets.bottom;
-        computeRects(width, height, taskStackBounds, mConfig.launchedWithAltTab);
+        computeRects(width, height, taskStackBounds, mConfig.launchedWithAltTab,
+                mConfig.launchedFromHome);
 
         // If this is the first layout, then scroll to the front of the stack and synchronize the
         // stack views immediately to load all the views
@@ -546,7 +562,11 @@
 
         // When Alt-Tabbing, we scroll to and focus the previous task
         if (mConfig.launchedWithAltTab) {
-            focusTask(Math.max(0, mStack.getTaskCount() - 2), false);
+            if (mConfig.launchedFromHome) {
+                focusTask(Math.max(0, mStack.getTaskCount() - 1), false);
+            } else {
+                focusTask(Math.max(0, mStack.getTaskCount() - 2), false);
+            }
         }
     }
 
@@ -590,6 +610,7 @@
             ctx.postAnimationTrigger.addLastDecrementRunnable(new Runnable() {
                 @Override
                 public void run() {
+                    mStartEnterAnimationCompleted = true;
                     // Start dozing
                     mUIDozeTrigger.startDozing();
                 }
@@ -660,8 +681,28 @@
         // Notify the callback that we've removed the task and it can clean up after it
         mCb.onTaskViewDismissed(removedTask);
 
+        // Get the stack scroll of the task to anchor to (since we are removing something, the front
+        // most task will be our anchor task)
+        Task anchorTask = null;
+        float prevAnchorTaskScroll = 0;
+        boolean pullStackForward = stack.getTaskCount() > 0;
+        if (pullStackForward) {
+            anchorTask = mStack.getFrontMostTask();
+            prevAnchorTaskScroll = mLayoutAlgorithm.getStackScrollForTask(anchorTask);
+        }
+
         // Update the min/max scroll and animate other task views into their new positions
-        updateMinMaxScroll(true, mConfig.launchedWithAltTab);
+        updateMinMaxScroll(true, mConfig.launchedWithAltTab, mConfig.launchedFromHome);
+
+        // Offset the stack by as much as the anchor task would otherwise move back
+        if (pullStackForward) {
+            float anchorTaskScroll = mLayoutAlgorithm.getStackScrollForTask(anchorTask);
+            mStackScroller.setStackScroll(mStackScroller.getStackScroll() + (anchorTaskScroll
+                    - prevAnchorTaskScroll));
+            mStackScroller.boundScroll();
+        }
+
+        // Animate all the tasks into place
         requestSynchronizeStackViewsWithModel(200);
 
         // Update the new front most task
@@ -795,6 +836,11 @@
             tv.setNoUserInteractionState();
         }
 
+        // If we've finished the start animation, then ensure we always enable the focus animations
+        if (mStartEnterAnimationCompleted) {
+            tv.enableFocusAnimations();
+        }
+
         // Find the index where this task should be placed in the stack
         int insertIndex = -1;
         int taskIndex = mStack.indexOfTask(task);
@@ -859,11 +905,23 @@
     @Override
     public void onTaskViewDismissed(TaskView tv) {
         Task task = tv.getTask();
+        int taskIndex = mStack.indexOfTask(task);
+        boolean taskWasFocused = tv.isFocusedTask();
         // Announce for accessibility
         tv.announceForAccessibility(getContext().getString(R.string.accessibility_recents_item_dismissed,
                 tv.getTask().activityLabel));
         // Remove the task from the view
         mStack.removeTask(task);
+        // If the dismissed task was focused, then we should focus the next task in front
+        if (taskWasFocused) {
+            ArrayList<Task> tasks = mStack.getTasks();
+            int nextTaskIndex = Math.min(tasks.size() - 1, taskIndex);
+            if (nextTaskIndex >= 0) {
+                Task nextTask = tasks.get(nextTaskIndex);
+                TaskView nextTv = getChildViewForTask(nextTask);
+                nextTv.setFocusedTask();
+            }
+        }
     }
 
     @Override
@@ -876,6 +934,13 @@
         requestSynchronizeStackViewsWithModel();
     }
 
+    @Override
+    public void onTaskViewFocusChanged(TaskView tv, boolean focused) {
+        if (focused) {
+            mFocusedTaskIndex = mStack.indexOfTask(tv.getTask());
+        }
+    }
+
     /**** TaskStackViewScroller.TaskStackViewScrollerCallbacks ****/
 
     @Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewLayoutAlgorithm.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewLayoutAlgorithm.java
index 6c8de72..667faa7 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewLayoutAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewLayoutAlgorithm.java
@@ -91,7 +91,8 @@
 
     /** Computes the minimum and maximum scroll progress values.  This method may be called before
      * the RecentsConfiguration is set, so we need to pass in the alt-tab state. */
-    void computeMinMaxScroll(ArrayList<Task> tasks, boolean launchedWithAltTab) {
+    void computeMinMaxScroll(ArrayList<Task> tasks, boolean launchedWithAltTab,
+            boolean launchedFromHome) {
         // Clear the progress map
         mTaskProgressMap.clear();
 
@@ -101,10 +102,16 @@
             return;
         }
 
+        // Note that we should account for the scale difference of the offsets at the screen bottom
         int taskHeight = mTaskRect.height();
         float pAtBottomOfStackRect = screenYToCurveProgress(mStackVisibleRect.bottom);
-        float pWithinAffiliateOffset = pAtBottomOfStackRect -
-                screenYToCurveProgress(mStackVisibleRect.bottom - mWithinAffiliationOffset);
+        float pWithinAffiliateTop = screenYToCurveProgress(mStackVisibleRect.bottom -
+                mWithinAffiliationOffset);
+        float scale = curveProgressToScale(pWithinAffiliateTop);
+        int scaleYOffset = (int) (((1f - scale) * taskHeight) / 2);
+        pWithinAffiliateTop = screenYToCurveProgress(mStackVisibleRect.bottom -
+                mWithinAffiliationOffset + scaleYOffset);
+        float pWithinAffiliateOffset = pAtBottomOfStackRect - pWithinAffiliateTop;
         float pBetweenAffiliateOffset = pAtBottomOfStackRect -
                 screenYToCurveProgress(mStackVisibleRect.bottom - mBetweenAffiliationOffset);
         float pTaskHeightOffset = pAtBottomOfStackRect -
@@ -133,8 +140,13 @@
         mMaxScrollP = pAtFrontMostCardTop - ((1f - pTaskHeightOffset - pNavBarOffset));
         mMinScrollP = tasks.size() == 1 ? Math.max(mMaxScrollP, 0f) : 0f;
         if (launchedWithAltTab) {
-            // Center the second most task, since that will be focused first
-            mInitialScrollP = pAtSecondFrontMostCardTop - 0.5f;
+            if (launchedFromHome) {
+                // Center the top most task, since that will be focused first
+                mInitialScrollP = pAtSecondFrontMostCardTop - 0.5f;
+            } else {
+                // Center the second top most task, since that will be focused first
+                mInitialScrollP = pAtSecondFrontMostCardTop - 0.5f;
+            }
         } else {
             mInitialScrollP = pAtFrontMostCardTop - 0.825f;
         }
@@ -190,7 +202,7 @@
     /**
      * Returns the scroll to such task top = 1f;
      */
-    float getStackScrollForTaskIndex(Task t) {
+    float getStackScrollForTask(Task t) {
         return mTaskProgressMap.get(t.key);
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewScroller.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewScroller.java
index 0a12dab..2c0dc44 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewScroller.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewScroller.java
@@ -133,7 +133,7 @@
         stopBoundScrollAnimation();
 
         mScrollAnimator = ObjectAnimator.ofFloat(this, "stackScroll", curScroll, newScroll);
-        mScrollAnimator.setDuration(250);
+        mScrollAnimator.setDuration(200);
         // We would have to project the difference into the screen coords, and then use that as the
         // duration
 //        mScrollAnimator.setDuration(Utilities.calculateTranslationAnimationDuration(newScroll -
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
index 3b9bcc4..5914b39 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java
@@ -17,7 +17,6 @@
 package com.android.systemui.recents.views;
 
 import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
 import android.animation.ObjectAnimator;
 import android.animation.ValueAnimator;
 import android.content.Context;
@@ -48,12 +47,14 @@
         public void onTaskViewDismissed(TaskView tv);
         public void onTaskViewClipStateChanged(TaskView tv);
         public void onTaskViewFullScreenTransitionCompleted();
+        public void onTaskViewFocusChanged(TaskView tv, boolean focused);
     }
 
     RecentsConfiguration mConfig;
 
     float mTaskProgress;
     ObjectAnimator mTaskProgressAnimator;
+    ObjectAnimator mDimAnimator;
     float mMaxDimScale;
     int mDim;
     AccelerateInterpolator mDimInterpolator = new AccelerateInterpolator(1.25f);
@@ -62,13 +63,14 @@
     Task mTask;
     boolean mTaskDataLoaded;
     boolean mIsFocused;
+    boolean mFocusAnimationsEnabled;
     boolean mIsFullScreenView;
     boolean mClipViewInStack;
     AnimateableViewBounds mViewBounds;
     Paint mLayerPaint = new Paint();
 
     TaskViewThumbnail mThumbnailView;
-    TaskViewHeader mBarView;
+    TaskViewHeader mHeaderView;
     TaskViewFooter mFooterView;
     View mActionButtonView;
     TaskViewCallbacks mCb;
@@ -124,7 +126,7 @@
     @Override
     protected void onFinishInflate() {
         // Bind the views
-        mBarView = (TaskViewHeader) findViewById(R.id.task_view_bar);
+        mHeaderView = (TaskViewHeader) findViewById(R.id.task_view_bar);
         mThumbnailView = (TaskViewThumbnail) findViewById(R.id.task_view_thumbnail);
         mActionButtonView = findViewById(R.id.lock_to_app_fab);
         if (mFooterView != null) {
@@ -138,7 +140,7 @@
         int height = MeasureSpec.getSize(heightMeasureSpec);
 
         // Measure the bar view, thumbnail, and footer
-        mBarView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
+        mHeaderView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
                 MeasureSpec.makeMeasureSpec(mConfig.taskBarHeight, MeasureSpec.EXACTLY));
         if (mFooterView != null) {
             mFooterView.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
@@ -218,11 +220,12 @@
 
     /** Prepares this task view for the enter-recents animations.  This is called earlier in the
      * first layout because the actual animation into recents may take a long time. */
-    public void prepareEnterRecentsAnimation(boolean isTaskViewLaunchTargetTask,
+    void prepareEnterRecentsAnimation(boolean isTaskViewLaunchTargetTask,
                                              boolean occludesLaunchTarget, int offscreenY) {
+        int initialDim = getDim();
         if (mConfig.launchedFromAppWithScreenshot) {
             if (isTaskViewLaunchTargetTask) {
-                mBarView.prepareEnterRecentsAnimation();
+                mHeaderView.prepareEnterRecentsAnimation();
                 // Hide the footer during the transition in, and animate it out afterwards?
                 if (mFooterView != null) {
                     mFooterView.animateFooterVisibility(false, 0);
@@ -234,11 +237,11 @@
         } else if (mConfig.launchedFromAppWithThumbnail) {
             if (isTaskViewLaunchTargetTask) {
                 // Hide the front most task bar view so we can animate it in
-                mBarView.prepareEnterRecentsAnimation();
+                mHeaderView.prepareEnterRecentsAnimation();
                 // Hide the action button if it exists
                 mActionButtonView.setAlpha(0f);
                 // Set the dim to 0 so we can animate it in
-                setDim(0);
+                initialDim = 0;
             } else if (occludesLaunchTarget) {
                 // Move the task view off screen (below) so we can animate it in
                 setTranslationY(offscreenY);
@@ -253,11 +256,16 @@
             setScaleX(1f);
             setScaleY(1f);
         }
+        // Apply the current dim
+        setDim(initialDim);
+        // Prepare the thumbnail view alpha
+        mThumbnailView.prepareEnterRecentsAnimation(isTaskViewLaunchTargetTask);
     }
 
     /** Animates this task view as it enters recents */
-    public void startEnterRecentsAnimation(final ViewAnimation.TaskViewEnterContext ctx) {
+    void startEnterRecentsAnimation(final ViewAnimation.TaskViewEnterContext ctx) {
         final TaskViewTransform transform = ctx.currentTaskTransform;
+        int startDelay = 0;
 
         if (mConfig.launchedFromAppWithScreenshot) {
             if (mTask.isLaunchTarget) {
@@ -269,6 +277,7 @@
                 float scaledWindowInsetTop = (int) (taskScale * windowInsetTop);
                 float scaledTranslationY = taskRect.top + transform.translationY -
                         (scaledWindowInsetTop + scaledYOffset);
+                startDelay = mConfig.taskViewEnterFromHomeDelay;
 
                 // Animate the top clip
                 mViewBounds.animateClipTop(windowInsetTop, duration,
@@ -276,7 +285,7 @@
                     @Override
                     public void onAnimationUpdate(ValueAnimator animation) {
                         int y = (Integer) animation.getAnimatedValue();
-                        mBarView.setTranslationY(y);
+                        mHeaderView.setTranslationY(y);
                     }
                 });
                 // Animate the bottom or right clip
@@ -287,7 +296,7 @@
                     mViewBounds.animateClipBottom(getMeasuredHeight() - (windowInsetTop + size), duration);
                 }
                 // Animate the task bar of the first task view
-                mBarView.startEnterRecentsAnimation(0, null);
+                mHeaderView.startEnterRecentsAnimation(0, null);
                 animate()
                         .scaleX(taskScale)
                         .scaleY(taskScale)
@@ -304,9 +313,9 @@
                                 mViewBounds.setClipBottom(0);
                                 mViewBounds.setClipRight(0);
                                 // Reset the bar translation
-                                mBarView.setTranslationY(0);
+                                mHeaderView.setTranslationY(0);
                                 // Enable the thumbnail clip
-                                mThumbnailView.enableTaskBarClip(mBarView);
+                                mThumbnailView.enableTaskBarClip(mHeaderView);
                                 // Animate the footer into view (if it is the front most task)
                                 animateFooterVisibility(true, mConfig.taskBarEnterAnimDuration);
 
@@ -324,7 +333,7 @@
                         .start();
             } else {
                 // Otherwise, just enable the thumbnail clip
-                mThumbnailView.enableTaskBarClip(mBarView);
+                mThumbnailView.enableTaskBarClip(mHeaderView);
 
                 // Animate the footer into view
                 animateFooterVisibility(true, 0);
@@ -334,22 +343,26 @@
         } else if (mConfig.launchedFromAppWithThumbnail) {
             if (mTask.isLaunchTarget) {
                 // Animate the task bar of the first task view
-                mBarView.startEnterRecentsAnimation(mConfig.taskBarEnterAnimDelay,
-                        mThumbnailView.enableTaskBarClipAsRunnable(mBarView));
-
-                // Animate the dim into view as well
-                ObjectAnimator anim = ObjectAnimator.ofInt(this, "dim", getDimFromTaskProgress());
-                anim.setStartDelay(mConfig.taskBarEnterAnimDelay);
-                anim.setDuration(mConfig.taskBarEnterAnimDuration);
-                anim.setInterpolator(mConfig.fastOutLinearInInterpolator);
-                anim.addListener(new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationEnd(Animator animation) {
-                        // Decrement the post animation trigger
-                        ctx.postAnimationTrigger.decrement();
-                    }
-                });
-                anim.start();
+                mHeaderView.startEnterRecentsAnimation(mConfig.taskBarEnterAnimDelay,
+                        mThumbnailView.enableTaskBarClipAsRunnable(mHeaderView));
+                // Animate the dim/overlay
+                if (Constants.DebugFlags.App.EnableThumbnailAlphaOnFrontmost) {
+                    // Animate the thumbnail alpha before the dim animation (to prevent updating the
+                    // hardware layer)
+                    mThumbnailView.startEnterRecentsAnimation(mConfig.taskBarEnterAnimDelay,
+                            new Runnable() {
+                                @Override
+                                public void run() {
+                                    animateDimToProgress(0, mConfig.taskBarEnterAnimDuration,
+                                            ctx.postAnimationTrigger.decrementOnAnimationEnd());
+                                }
+                            });
+                } else {
+                    // Immediately start the dim animation
+                    animateDimToProgress(mConfig.taskBarEnterAnimDelay,
+                            mConfig.taskBarEnterAnimDuration,
+                            ctx.postAnimationTrigger.decrementOnAnimationEnd());
+                }
                 ctx.postAnimationTrigger.increment();
 
                 // Animate the footer into view
@@ -364,7 +377,7 @@
                         .start();
             } else {
                 // Enable the task bar clip
-                mThumbnailView.enableTaskBarClip(mBarView);
+                mThumbnailView.enableTaskBarClip(mHeaderView);
                 // Animate the task up if it was occluding the launch target
                 if (ctx.currentTaskOccludesLaunchTarget) {
                     setTranslationY(transform.translationY + mConfig.taskViewAffiliateGroupEnterOffsetPx);
@@ -378,7 +391,7 @@
                             .withEndAction(new Runnable() {
                                 @Override
                                 public void run() {
-                                    mThumbnailView.enableTaskBarClip(mBarView);
+                                    mThumbnailView.enableTaskBarClip(mHeaderView);
                                     // Decrement the post animation trigger
                                     ctx.postAnimationTrigger.decrement();
                                 }
@@ -387,6 +400,7 @@
                     ctx.postAnimationTrigger.increment();
                 }
             }
+            startDelay = mConfig.taskBarEnterAnimDelay;
 
         } else if (mConfig.launchedFromHome) {
             // Animate the tasks up
@@ -407,7 +421,7 @@
                     .withEndAction(new Runnable() {
                         @Override
                         public void run() {
-                            mThumbnailView.enableTaskBarClip(mBarView);
+                            mThumbnailView.enableTaskBarClip(mHeaderView);
                             // Decrement the post animation trigger
                             ctx.postAnimationTrigger.decrement();
                         }
@@ -417,18 +431,28 @@
 
             // Animate the footer into view
             animateFooterVisibility(true, mConfig.taskViewEnterFromHomeDuration);
+            startDelay = delay;
 
         } else {
             // Otherwise, just enable the thumbnail clip
-            mThumbnailView.enableTaskBarClip(mBarView);
+            mThumbnailView.enableTaskBarClip(mHeaderView);
 
             // Animate the footer into view
             animateFooterVisibility(true, 0);
         }
+
+        // Enable the focus animations from this point onwards so that they aren't affected by the
+        // window transitions
+        postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                enableFocusAnimations();
+            }
+        }, (startDelay / 2));
     }
 
     /** Animates this task view as it leaves recents by pressing home. */
-    public void startExitToHomeAnimation(ViewAnimation.TaskViewExitContext ctx) {
+    void startExitToHomeAnimation(ViewAnimation.TaskViewExitContext ctx) {
         animate()
                 .translationY(ctx.offscreenTranslationY)
                 .setStartDelay(0)
@@ -441,11 +465,13 @@
     }
 
     /** Animates this task view as it exits recents */
-    public void startLaunchTaskAnimation(final Runnable r, boolean isLaunchingTask,
-                                         boolean occludesLaunchTarget) {
+    void startLaunchTaskAnimation(final Runnable r, boolean isLaunchingTask,
+            boolean occludesLaunchTarget) {
         if (isLaunchingTask) {
-            // Disable the thumbnail clip and animate the bar out
-            mBarView.startLaunchTaskAnimation(mThumbnailView.disableTaskBarClipAsRunnable(), r);
+            // Disable the thumbnail clip and animate the bar out for the window animation out
+            mHeaderView.startLaunchTaskAnimation(mThumbnailView.disableTaskBarClipAsRunnable(), r);
+            // Animate the thumbnail alpha back into full opacity for the window animation out
+            mThumbnailView.startLaunchTaskAnimation();
 
             // Animate the dim
             if (mDim > 0) {
@@ -464,7 +490,7 @@
                     .start();
         } else {
             // Hide the dismiss button
-            mBarView.startLaunchTaskDismissAnimation();
+            mHeaderView.startLaunchTaskDismissAnimation();
             // If this is another view in the task grouping and is in front of the launch task,
             // animate it away first
             if (occludesLaunchTarget) {
@@ -480,7 +506,7 @@
     }
 
     /** Animates the deletion of this task view */
-    public void startDeleteTaskAnimation(final Runnable r) {
+    void startDeleteTaskAnimation(final Runnable r) {
         // Disabling clipping with the stack while the view is animating away
         setClipViewInStack(false);
 
@@ -508,19 +534,33 @@
     }
 
     /** Animates this task view if the user does not interact with the stack after a certain time. */
-    public void startNoUserInteractionAnimation() {
-        mBarView.startNoUserInteractionAnimation();
+    void startNoUserInteractionAnimation() {
+        mHeaderView.startNoUserInteractionAnimation();
     }
 
     /** Mark this task view that the user does has not interacted with the stack after a certain time. */
-    public void setNoUserInteractionState() {
-        mBarView.setNoUserInteractionState();
+    void setNoUserInteractionState() {
+        mHeaderView.setNoUserInteractionState();
+    }
+
+    /** Dismisses this task. */
+    void dismissTask() {
+        // Animate out the view and call the callback
+        final TaskView tv = this;
+        startDeleteTaskAnimation(new Runnable() {
+            @Override
+            public void run() {
+                mCb.onTaskViewDismissed(tv);
+            }
+        });
+        // Hide the footer
+        animateFooterVisibility(false, mConfig.taskViewRemoveAnimDuration);
     }
 
     /** Sets whether this task view is full screen or not. */
     void setIsFullScreen(boolean isFullscreen) {
         mIsFullScreenView = isFullscreen;
-        mBarView.setIsFullscreen(isFullscreen);
+        mHeaderView.setIsFullscreen(isFullscreen);
         if (isFullscreen) {
             // If we are full screen, then disable the bottom outline clip for the footer
             mViewBounds.setOutlineClipBottom(0);
@@ -583,10 +623,18 @@
     /** Returns the current dim. */
     public void setDim(int dim) {
         mDim = dim;
-        int inverse = 255 - mDim;
-        mDimColorFilter.setColor(Color.argb(0xFF, inverse, inverse, inverse));
-        mLayerPaint.setColorFilter(mDimColorFilter);
-        setLayerType(LAYER_TYPE_HARDWARE, mLayerPaint);
+        // Defer setting hardware layers if we have not yet measured, or there is no dim to draw
+        if (getMeasuredWidth() > 0 && getMeasuredHeight() > 0 && dim > 0) {
+            if (mDimAnimator != null) {
+                mDimAnimator.removeAllListeners();
+                mDimAnimator.cancel();
+            }
+
+            int inverse = 255 - mDim;
+            mDimColorFilter.setColor(Color.argb(0xFF, inverse, inverse, inverse));
+            mLayerPaint.setColorFilter(mDimColorFilter);
+            setLayerType(LAYER_TYPE_HARDWARE, mLayerPaint);
+        }
     }
 
     /** Returns the current dim. */
@@ -594,6 +642,21 @@
         return mDim;
     }
 
+    /** Animates the dim to the task progress. */
+    void animateDimToProgress(int delay, int duration, Animator.AnimatorListener postAnimRunnable) {
+        // Animate the dim into view as well
+        int toDim = getDimFromTaskProgress();
+        if (toDim != getDim()) {
+            ObjectAnimator anim = ObjectAnimator.ofInt(TaskView.this, "dim", toDim);
+            anim.setStartDelay(delay);
+            anim.setDuration(duration);
+            if (postAnimRunnable != null) {
+                anim.addListener(postAnimRunnable);
+            }
+            anim.start();
+        }
+    }
+
     /** Compute the dim as a function of the scale of this view. */
     int getDimFromTaskProgress() {
         float dim = mMaxDimScale * mDimInterpolator.getInterpolation(1f - mTaskProgress);
@@ -614,6 +677,14 @@
      */
     public void setFocusedTask() {
         mIsFocused = true;
+        if (mFocusAnimationsEnabled) {
+            // Focus the header bar
+            mHeaderView.onTaskViewFocusChanged(true);
+        }
+        // Update the thumbnail alpha with the focus
+        mThumbnailView.onFocusChanged(true);
+        // Call the callback
+        mCb.onTaskViewFocusChanged(this, true);
         // Workaround, we don't always want it focusable in touch mode, but we want the first task
         // to be focused after the enter-recents animation, which can be triggered from either touch
         // or keyboard
@@ -631,6 +702,14 @@
         super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
         if (!gainFocus) {
             mIsFocused = false;
+            if (mFocusAnimationsEnabled) {
+                // Un-focus the header bar
+                mHeaderView.onTaskViewFocusChanged(false);
+            }
+            // Update the thumbnail alpha with the focus
+            mThumbnailView.onFocusChanged(false);
+            // Call the callback
+            mCb.onTaskViewFocusChanged(this, false);
             invalidate();
         }
     }
@@ -642,6 +721,16 @@
         return mIsFocused || isFocused();
     }
 
+    /** Enables all focus animations. */
+    void enableFocusAnimations() {
+        boolean wasFocusAnimationsEnabled = mFocusAnimationsEnabled;
+        mFocusAnimationsEnabled = true;
+        if (mIsFocused && !wasFocusAnimationsEnabled) {
+            // Re-notify the header if we were focused and animations were not previously enabled
+            mHeaderView.onTaskViewFocusChanged(true);
+        }
+    }
+
     /**** TaskCallbacks Implementation ****/
 
     /** Binds this task view to the task */
@@ -662,24 +751,24 @@
 
     @Override
     public void onTaskDataLoaded() {
-        if (mThumbnailView != null && mBarView != null) {
+        if (mThumbnailView != null && mHeaderView != null) {
             // Bind each of the views to the new task data
             if (mIsFullScreenView) {
                 mThumbnailView.bindToScreenshot(AlternateRecentsComponent.getLastScreenshot());
             } else {
                 mThumbnailView.rebindToTask(mTask);
             }
-            mBarView.rebindToTask(mTask);
+            mHeaderView.rebindToTask(mTask);
             // Rebind any listeners
-            mBarView.mApplicationIcon.setOnClickListener(this);
-            mBarView.mDismissButton.setOnClickListener(this);
+            mHeaderView.mApplicationIcon.setOnClickListener(this);
+            mHeaderView.mDismissButton.setOnClickListener(this);
             if (mFooterView != null) {
                 mFooterView.setOnClickListener(this);
             }
             mActionButtonView.setOnClickListener(this);
             if (Constants.DebugFlags.App.EnableDevAppInfoOnLongPress) {
                 if (mConfig.developerOptionsEnabled) {
-                    mBarView.mApplicationIcon.setOnLongClickListener(this);
+                    mHeaderView.mApplicationIcon.setOnLongClickListener(this);
                 }
             }
         }
@@ -688,20 +777,20 @@
 
     @Override
     public void onTaskDataUnloaded() {
-        if (mThumbnailView != null && mBarView != null) {
+        if (mThumbnailView != null && mHeaderView != null) {
             // Unbind each of the views from the task data and remove the task callback
             mTask.setCallbacks(null);
             mThumbnailView.unbindFromTask();
-            mBarView.unbindFromTask();
+            mHeaderView.unbindFromTask();
             // Unbind any listeners
-            mBarView.mApplicationIcon.setOnClickListener(null);
-            mBarView.mDismissButton.setOnClickListener(null);
+            mHeaderView.mApplicationIcon.setOnClickListener(null);
+            mHeaderView.mDismissButton.setOnClickListener(null);
             if (mFooterView != null) {
                 mFooterView.setOnClickListener(null);
             }
             mActionButtonView.setOnClickListener(null);
             if (Constants.DebugFlags.App.EnableDevAppInfoOnLongPress) {
-                mBarView.mApplicationIcon.setOnLongClickListener(null);
+                mHeaderView.mApplicationIcon.setOnLongClickListener(null);
             }
         }
         mTaskDataLoaded = false;
@@ -734,18 +823,10 @@
         postDelayed(new Runnable() {
             @Override
             public void run() {
-                if (Constants.DebugFlags.App.EnableTaskFiltering && v == mBarView.mApplicationIcon) {
+                if (Constants.DebugFlags.App.EnableTaskFiltering && v == mHeaderView.mApplicationIcon) {
                     mCb.onTaskViewAppIconClicked(tv);
-                } else if (v == mBarView.mDismissButton) {
-                    // Animate out the view and call the callback
-                    startDeleteTaskAnimation(new Runnable() {
-                        @Override
-                        public void run() {
-                            mCb.onTaskViewDismissed(tv);
-                        }
-                    });
-                    // Hide the footer
-                    tv.animateFooterVisibility(false, mConfig.taskViewRemoveAnimDuration);
+                } else if (v == mHeaderView.mDismissButton) {
+                    dismissTask();
                 } else {
                     mCb.onTaskViewClicked(tv, tv.getTask(),
                             (v == mFooterView || v == mActionButtonView));
@@ -758,7 +839,7 @@
 
     @Override
     public boolean onLongClick(View v) {
-        if (v == mBarView.mApplicationIcon) {
+        if (v == mHeaderView.mApplicationIcon) {
             mCb.onTaskViewAppInfoClicked(this);
             return true;
         }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
index 03fc16e..4b09549 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewHeader.java
@@ -16,9 +16,16 @@
 
 package com.android.systemui.recents.views;
 
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ArgbEvaluator;
+import android.animation.ValueAnimator;
 import android.content.Context;
+import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Outline;
 import android.graphics.Paint;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffXfermode;
@@ -28,12 +35,14 @@
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.ViewOutlineProvider;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.TextView;
 import com.android.systemui.R;
 import com.android.systemui.recents.Constants;
 import com.android.systemui.recents.RecentsConfiguration;
+import com.android.systemui.recents.misc.Utilities;
 import com.android.systemui.recents.model.Task;
 
 
@@ -46,10 +55,15 @@
     ImageView mApplicationIcon;
     TextView mActivityDescription;
 
+    RippleDrawable mBackground;
+    ColorDrawable mBackgroundColor;
     Drawable mLightDismissDrawable;
     Drawable mDarkDismissDrawable;
+    ValueAnimator mBackgroundColorAnimator;
 
     boolean mIsFullscreen;
+    boolean mCurrentPrimaryColorIsDark;
+    int mCurrentPrimaryColor;
 
     static Paint sHighlightPaint;
 
@@ -69,6 +83,13 @@
         super(context, attrs, defStyleAttr, defStyleRes);
         mConfig = RecentsConfiguration.getInstance();
         setWillNotDraw(false);
+        setClipToOutline(true);
+        setOutlineProvider(new ViewOutlineProvider() {
+            @Override
+            public void getOutline(View view, Outline outline) {
+                outline.setRect(0, 0, getMeasuredWidth(), getMeasuredHeight());
+            }
+        });
 
         // Load the dismiss resources
         Resources res = context.getResources();
@@ -107,6 +128,15 @@
                 mApplicationIcon.setBackground(null);
             }
         }
+
+        mBackgroundColor = new ColorDrawable(0);
+        // Copy the ripple drawable since we are going to be manipulating it
+        mBackground = (RippleDrawable)
+                getResources().getDrawable(R.drawable.recents_task_view_header_bg);
+        mBackground = (RippleDrawable) mBackground.mutate().getConstantState().newDrawable();
+        mBackground.setColor(ColorStateList.valueOf(0));
+        mBackground.setDrawableByLayerId(mBackground.getId(0), mBackgroundColor);
+        setBackground(mBackground);
     }
 
     @Override
@@ -130,6 +160,12 @@
         return false;
     }
 
+    /** Returns the secondary color for a primary color. */
+    int getSecondaryColor(int primaryColor, boolean useLightOverlayColor) {
+        int overlayColor = useLightOverlayColor ? Color.WHITE : Color.BLACK;
+        return Utilities.getColorWithOverlay(primaryColor, overlayColor, 0.8f);
+    }
+
     /** Binds the bar view to the task */
     void rebindToTask(Task t) {
         // If an activity icon is defined, then we use that as the primary icon to show in the bar,
@@ -147,8 +183,10 @@
         int existingBgColor = (getBackground() instanceof ColorDrawable) ?
                 ((ColorDrawable) getBackground()).getColor() : 0;
         if (existingBgColor != t.colorPrimary) {
-            setBackgroundColor(t.colorPrimary);
+            mBackgroundColor.setColor(t.colorPrimary);
         }
+        mCurrentPrimaryColor = t.colorPrimary;
+        mCurrentPrimaryColorIsDark = t.useLightOnPrimaryColor;
         mActivityDescription.setTextColor(t.useLightOnPrimaryColor ?
                 mConfig.taskBarViewLightTextColor : mConfig.taskBarViewDarkTextColor);
         mDismissButton.setImageDrawable(t.useLightOnPrimaryColor ?
@@ -165,12 +203,12 @@
 
     /** Prepares this task view for the enter-recents animations.  This is called earlier in the
      * first layout because the actual animation into recents may take a long time. */
-    public void prepareEnterRecentsAnimation() {
+    void prepareEnterRecentsAnimation() {
         setVisibility(View.INVISIBLE);
     }
 
     /** Animates this task bar as it enters recents */
-    public void startEnterRecentsAnimation(int delay, Runnable postAnimRunnable) {
+    void startEnterRecentsAnimation(int delay, Runnable postAnimRunnable) {
         // Animate the task bar of the first task view
         setVisibility(View.VISIBLE);
         setTranslationY(-getMeasuredHeight());
@@ -184,7 +222,7 @@
     }
 
     /** Animates this task bar as it exits recents */
-    public void startLaunchTaskAnimation(Runnable preAnimRunnable, final Runnable postAnimRunnable) {
+    void startLaunchTaskAnimation(Runnable preAnimRunnable, final Runnable postAnimRunnable) {
         // Animate the task bar out of the first task view
         animate()
                 .translationY(-getMeasuredHeight())
@@ -202,7 +240,7 @@
     }
 
     /** Animates this task bar dismiss button when launching a task. */
-    public void startLaunchTaskDismissAnimation() {
+    void startLaunchTaskDismissAnimation() {
         if (mDismissButton.getVisibility() == View.VISIBLE) {
             mDismissButton.animate().cancel();
             mDismissButton.animate()
@@ -216,7 +254,7 @@
     }
 
     /** Animates this task bar if the user does not interact with the stack after a certain time. */
-    public void startNoUserInteractionAnimation() {
+    void startNoUserInteractionAnimation() {
         mDismissButton.setVisibility(View.VISIBLE);
         mDismissButton.setAlpha(0f);
         mDismissButton.animate()
@@ -229,11 +267,78 @@
     }
 
     /** Mark this task view that the user does has not interacted with the stack after a certain time. */
-    public void setNoUserInteractionState() {
+    void setNoUserInteractionState() {
         if (mDismissButton.getVisibility() != View.VISIBLE) {
             mDismissButton.animate().cancel();
             mDismissButton.setVisibility(View.VISIBLE);
             mDismissButton.setAlpha(1f);
         }
     }
+
+    /** Notifies the associated TaskView has been focused. */
+    void onTaskViewFocusChanged(boolean focused) {
+        boolean isRunning = false;
+        if (mBackgroundColorAnimator != null) {
+            isRunning = mBackgroundColorAnimator.isRunning();
+            mBackgroundColorAnimator.removeAllUpdateListeners();
+            mBackgroundColorAnimator.cancel();
+        }
+        if (focused) {
+            int secondaryColor = getSecondaryColor(mCurrentPrimaryColor, mCurrentPrimaryColorIsDark);
+            int[][] states = new int[][] {
+                    new int[] { android.R.attr.state_enabled },
+                    new int[] { android.R.attr.state_pressed }
+            };
+            int[] newStates = new int[]{
+                    android.R.attr.state_enabled,
+                    android.R.attr.state_pressed
+            };
+            int[] colors = new int[] {
+                    secondaryColor,
+                    secondaryColor
+            };
+            mBackground.setColor(new ColorStateList(states, colors));
+            mBackground.setState(newStates);
+            // Pulse the background color
+            int currentColor = mBackgroundColor.getColor();
+            int lightPrimaryColor = getSecondaryColor(mCurrentPrimaryColor, mCurrentPrimaryColorIsDark);
+            mBackgroundColorAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), lightPrimaryColor,
+                    currentColor);
+            mBackgroundColorAnimator.addListener(new AnimatorListenerAdapter() {
+                @Override
+                public void onAnimationStart(Animator animation) {
+                    mBackground.setState(new int[] {});
+                }
+            });
+            mBackgroundColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+                @Override
+                public void onAnimationUpdate(ValueAnimator animation) {
+                    mBackgroundColor.setColor((Integer) animation.getAnimatedValue());
+                }
+            });
+            mBackgroundColorAnimator.setRepeatCount(ValueAnimator.INFINITE);
+            mBackgroundColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
+            mBackgroundColorAnimator.setStartDelay(750);
+            mBackgroundColorAnimator.setDuration(750);
+            mBackgroundColorAnimator.start();
+        } else {
+            if (isRunning) {
+                // Restore the background color
+                int currentColor = mBackgroundColor.getColor();
+                mBackgroundColorAnimator = ValueAnimator.ofObject(new ArgbEvaluator(), currentColor,
+                        mCurrentPrimaryColor);
+                mBackgroundColorAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+                    @Override
+                    public void onAnimationUpdate(ValueAnimator animation) {
+                        mBackgroundColor.setColor((Integer) animation.getAnimatedValue());
+                    }
+                });
+                mBackgroundColorAnimator.setRepeatCount(0);
+                mBackgroundColorAnimator.setDuration(150);
+                mBackgroundColorAnimator.start();
+            } else {
+                mBackground.setState(new int[] {});
+            }
+        }
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
index f836aa3..f223bf3 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java
@@ -21,12 +21,15 @@
 import android.graphics.Rect;
 import android.util.AttributeSet;
 import android.view.View;
+import com.android.systemui.recents.RecentsConfiguration;
 import com.android.systemui.recents.model.Task;
 
 
 /** The task thumbnail view */
 public class TaskViewThumbnail extends FixedSizeImageView {
 
+    RecentsConfiguration mConfig;
+
     // Task bar clipping
     Rect mClipRect = new Rect();
 
@@ -44,9 +47,15 @@
 
     public TaskViewThumbnail(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
+        mConfig = RecentsConfiguration.getInstance();
         setScaleType(ScaleType.FIT_XY);
     }
 
+    @Override
+    protected void onFinishInflate() {
+        setAlpha(0.9f);
+    }
+
     /** Updates the clip rect based on the given task bar. */
     void enableTaskBarClip(View taskBar) {
         int top = (int) Math.max(0, taskBar.getTranslationY() +
@@ -101,4 +110,51 @@
     void unbindFromTask() {
         setImageDrawable(null);
     }
+
+    /** Handles focus changes. */
+    void onFocusChanged(boolean focused) {
+        if (focused) {
+            if (Float.compare(getAlpha(), 1f) != 0) {
+                startFadeAnimation(1f, 0, 150, null);
+            }
+        } else {
+            if (Float.compare(getAlpha(), mConfig.taskViewThumbnailAlpha) != 0) {
+                startFadeAnimation(mConfig.taskViewThumbnailAlpha, 0, 150, null);
+            }
+        }
+    }
+
+    /** Prepares for the enter recents animation. */
+    void prepareEnterRecentsAnimation(boolean isTaskViewLaunchTargetTask) {
+        if (isTaskViewLaunchTargetTask) {
+            setAlpha(1f);
+        } else {
+            setAlpha(mConfig.taskViewThumbnailAlpha);
+        }
+    }
+
+    /** Animates this task thumbnail as it enters recents */
+    void startEnterRecentsAnimation(int delay, Runnable postAnimRunnable) {
+        startFadeAnimation(mConfig.taskViewThumbnailAlpha, delay,
+                mConfig.taskBarEnterAnimDuration, postAnimRunnable);
+    }
+
+    /** Animates this task thumbnail as it exits recents */
+    void startLaunchTaskAnimation() {
+        startFadeAnimation(1f, 0, mConfig.taskBarExitAnimDuration, null);
+    }
+
+    /** Animates the thumbnail alpha. */
+    void startFadeAnimation(float finalAlpha, int delay, int duration, Runnable postAnimRunnable) {
+        if (postAnimRunnable != null) {
+            animate().withEndAction(postAnimRunnable);
+        }
+        animate()
+                .alpha(finalAlpha)
+                .setStartDelay(delay)
+                .setInterpolator(mConfig.fastOutSlowInInterpolator)
+                .setDuration(duration)
+                .withLayer()
+                .start();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
index 108c8df..9fbcd7f 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
@@ -59,6 +59,7 @@
 
     private boolean mAutomatic;
     private boolean mListening;
+    private boolean mExternalChange;
 
     public interface BrightnessStateChangeCallback {
         public void onBrightnessLevelChanged();
@@ -86,19 +87,24 @@
         @Override
         public void onChange(boolean selfChange, Uri uri) {
             if (selfChange) return;
-            if (BRIGHTNESS_MODE_URI.equals(uri)) {
-                updateMode();
-                updateSlider();
-            } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
-                updateSlider();
-            } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
-                updateSlider();
-            } else {
-                updateMode();
-                updateSlider();
-            }
-            for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
-                cb.onBrightnessLevelChanged();
+            try {
+                mExternalChange = true;
+                if (BRIGHTNESS_MODE_URI.equals(uri)) {
+                    updateMode();
+                    updateSlider();
+                } else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
+                    updateSlider();
+                } else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
+                    updateSlider();
+                } else {
+                    updateMode();
+                    updateSlider();
+                }
+                for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
+                    cb.onBrightnessLevelChanged();
+                }
+            } finally {
+                mExternalChange = false;
             }
         }
 
@@ -188,8 +194,11 @@
         mListening = false;
     }
 
+    @Override
     public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) {
         updateIcon(mAutomatic);
+        if (mExternalChange) return;
+
         if (!mAutomatic) {
             final int val = value + mMinimumBacklight;
             setBrightness(val);
diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java
index d113139..a1704ff 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java
@@ -40,35 +40,27 @@
         super.onCreate(savedInstanceState);
 
         final Window window = getWindow();
-        final WindowManager.LayoutParams lp = window.getAttributes();
 
-        // Offset from the top
-        lp.y = getResources().getDimensionPixelOffset(R.dimen.volume_panel_top);
-        lp.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
-        lp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
-
-        window.setAttributes(lp);
         window.setGravity(Gravity.TOP);
         window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
         window.requestFeature(Window.FEATURE_NO_TITLE);
 
         setContentView(R.layout.quick_settings_brightness_dialog);
+
+        final ImageView icon = (ImageView) findViewById(R.id.brightness_icon);
+        final ToggleSlider slider = (ToggleSlider) findViewById(R.id.brightness_slider);
+        mBrightnessController = new BrightnessController(this, icon, slider);
     }
 
     @Override
     protected void onStart() {
         super.onStart();
-
-        final ImageView icon = (ImageView) findViewById(R.id.brightness_icon);
-        final ToggleSlider slider = (ToggleSlider) findViewById(R.id.brightness_slider);
-        mBrightnessController = new BrightnessController(this, icon, slider);
         mBrightnessController.registerCallbacks();
     }
 
     @Override
     protected void onStop() {
         super.onStop();
-
         mBrightnessController.unregisterCallbacks();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java b/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
index 4b78072..35b574b 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/ToggleSlider.java
@@ -29,6 +29,7 @@
 import android.widget.TextView;
 
 import com.android.systemui.R;
+import com.android.systemui.statusbar.policy.BrightnessMirrorController;
 
 public class ToggleSlider extends RelativeLayout {
     public interface Listener {
@@ -43,6 +44,9 @@
     private SeekBar mSlider;
     private TextView mLabel;
 
+    private ToggleSlider mMirror;
+    private BrightnessMirrorController mMirrorController;
+
     public ToggleSlider(Context context) {
         this(context, null);
     }
@@ -72,6 +76,19 @@
         a.recycle();
     }
 
+    public void setMirror(ToggleSlider toggleSlider) {
+        mMirror = toggleSlider;
+        if (mMirror != null) {
+            mMirror.setChecked(mToggle.isChecked());
+            mMirror.setMax(mSlider.getMax());
+            mMirror.setValue(mSlider.getProgress());
+        }
+    }
+
+    public void setMirrorController(BrightnessMirrorController c) {
+        mMirrorController = c;
+    }
+
     @Override
     protected void onAttachedToWindow() {
         super.onAttachedToWindow();
@@ -94,10 +111,16 @@
 
     public void setMax(int max) {
         mSlider.setMax(max);
+        if (mMirror != null) {
+            mMirror.setMax(max);
+        }
     }
 
     public void setValue(int value) {
         mSlider.setProgress(value);
+        if (mMirror != null) {
+            mMirror.setValue(value);
+        }
     }
 
     private final OnCheckedChangeListener mCheckListener = new OnCheckedChangeListener() {
@@ -109,6 +132,10 @@
                 mListener.onChanged(
                         ToggleSlider.this, mTracking, checked, mSlider.getProgress());
             }
+
+            if (mMirror != null) {
+                mMirror.mToggle.setChecked(checked);
+            }
         }
     };
 
@@ -119,6 +146,10 @@
                 mListener.onChanged(
                         ToggleSlider.this, mTracking, mToggle.isChecked(), progress);
             }
+
+            if (mMirror != null) {
+                mMirror.setValue(progress);
+            }
         }
 
         @Override
@@ -131,6 +162,15 @@
             }
 
             mToggle.setChecked(false);
+
+            if (mMirror != null) {
+                mMirror.mSlider.setPressed(true);
+            }
+
+            if (mMirrorController != null) {
+                mMirrorController.showMirror();
+                mMirrorController.setLocation((View) getParent());
+            }
         }
 
         @Override
@@ -141,6 +181,14 @@
                 mListener.onChanged(
                         ToggleSlider.this, mTracking, mToggle.isChecked(), mSlider.getProgress());
             }
+
+            if (mMirror != null) {
+                mMirror.mSlider.setPressed(false);
+            }
+
+            if (mMirrorController != null) {
+                mMirrorController.hideMirror();
+            }
         }
     };
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
index 6ac0bef..ca290e4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
@@ -263,7 +263,9 @@
             animator.addListener(new AnimatorListenerAdapter() {
                 @Override
                 public void onAnimationEnd(Animator animation) {
-                    mBackgroundNormal.setVisibility(View.INVISIBLE);
+                    if (mDimmed) {
+                        mBackgroundNormal.setVisibility(View.INVISIBLE);
+                    }
                 }
             });
             animator.reverse();
@@ -660,7 +662,6 @@
     }
 
     public void reset() {
-        super.reset();
         setTintColor(0);
         setShowingLegacyBackground(false);
         setBelowSpeedBump(false);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 2df173e..53bdcbf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -25,6 +25,7 @@
 import android.app.Notification;
 import android.app.PendingIntent;
 import android.app.TaskStackBuilder;
+import android.app.admin.DevicePolicyManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -41,6 +42,7 @@
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Build;
 import android.os.Handler;
 import android.os.IBinder;
@@ -88,6 +90,7 @@
 import com.android.systemui.SystemUI;
 import com.android.systemui.statusbar.NotificationData.Entry;
 import com.android.systemui.statusbar.phone.KeyguardTouchDelegate;
+import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
 import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
 import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
 
@@ -129,9 +132,6 @@
     public static final int EXPANDED_LEAVE_ALONE = -10000;
     public static final int EXPANDED_FULL_OPEN = -10001;
 
-    /** If true, delays dismissing the Keyguard until the ActivityManager calls back. */
-    protected static final boolean DELAY_DISMISS_TO_ACTIVITY_LAUNCH = false;
-
     protected CommandQueue mCommandQueue;
     protected IStatusBarService mBarService;
     protected H mHandler = createHandler();
@@ -155,12 +155,16 @@
 
     protected int mLayoutDirection = -1; // invalid
     private Locale mLocale;
+    private float mFontScale;
+
     protected boolean mUseHeadsUp = false;
     protected boolean mHeadsUpTicker = false;
     protected boolean mDisableNotificationAlerts = false;
 
+    protected DevicePolicyManager mDevicePolicyManager;
     protected IDreamManager mDreamManager;
     PowerManager mPowerManager;
+    protected StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     protected int mRowMinHeight;
     protected int mRowMaxHeight;
 
@@ -250,27 +254,33 @@
             }
             final boolean isActivity = pendingIntent.isActivity();
             if (isActivity) {
+                final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
                 dismissKeyguardThenExecute(new OnDismissAction() {
                     @Override
                     public boolean onDismiss() {
-                        try {
-                            // The intent we are sending is for the application, which
-                            // won't have permission to immediately start an activity after
-                            // the user switches to home.  We know it is safe to do at this
-                            // point, so make sure new activity switches are now allowed.
-                            ActivityManagerNative.getDefault().resumeAppSwitches();
-                        } catch (RemoteException e) {
+                        if (keyguardShowing) {
+                            try {
+                                ActivityManagerNative.getDefault()
+                                        .keyguardWaitingForActivityDrawn();
+                                // The intent we are sending is for the application, which
+                                // won't have permission to immediately start an activity after
+                                // the user switches to home.  We know it is safe to do at this
+                                // point, so make sure new activity switches are now allowed.
+                                ActivityManagerNative.getDefault().resumeAppSwitches();
+                            } catch (RemoteException e) {
+                            }
                         }
 
                         boolean handled = superOnClickHandler(view, pendingIntent, fillInIntent);
+                        overrideActivityPendingAppTransition(keyguardShowing);
 
                         // close the shade if it was open
                         if (handled) {
-                            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
+                            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
                             visibilityChanged(false);
                         }
                         // Wait for activity start.
-                        return handled && DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
+                        return handled;
                     }
                 });
                 return true;
@@ -299,6 +309,11 @@
                 userSwitched(mCurrentUserId);
             } else if (Intent.ACTION_USER_ADDED.equals(action)) {
                 updateCurrentProfilesCache();
+            } else if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(
+                    action)) {
+                mUsersAllowingPrivateNotifications.clear();
+                updateLockscreenNotificationSetting();
+                updateNotifications();
             }
         }
     };
@@ -379,6 +394,8 @@
         mWindowManager = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
         mWindowManagerService = WindowManagerGlobal.getWindowManagerService();
         mDisplay = mWindowManager.getDefaultDisplay();
+        mDevicePolicyManager = (DevicePolicyManager)mContext.getSystemService(
+                Context.DEVICE_POLICY_SERVICE);
 
         mNotificationData = new NotificationData(this);
 
@@ -410,8 +427,10 @@
         mRecents = getComponent(RecentsComponent.class);
         mRecents.setCallback(this);
 
-        mLocale = mContext.getResources().getConfiguration().locale;
+        final Configuration currentConfig = mContext.getResources().getConfiguration();
+        mLocale = currentConfig.locale;
         mLayoutDirection = TextUtils.getLayoutDirectionFromLocale(mLocale);
+        mFontScale = currentConfig.fontScale;
 
         mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
 
@@ -438,8 +457,7 @@
         setSystemUiVisibility(switches[1], 0xffffffff);
         topAppWindowChanged(switches[2] != 0);
         // StatusBarManagerService has a back up of IME token and it's restored here.
-        setImeWindowStatus(binders.get(0), switches[3], switches[4], switches[7] != 0);
-        setHardKeyboardStatus(switches[5] != 0, switches[6] != 0);
+        setImeWindowStatus(binders.get(0), switches[3], switches[4], switches[5] != 0);
 
         // Set up the initial icon state
         int N = iconList.size();
@@ -478,6 +496,7 @@
         IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_USER_SWITCHED);
         filter.addAction(Intent.ACTION_USER_ADDED);
+        filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
         mContext.registerReceiver(mBroadcastReceiver, filter);
 
         updateCurrentProfilesCache();
@@ -517,7 +536,9 @@
     protected void onConfigurationChanged(Configuration newConfig) {
         final Locale locale = mContext.getResources().getConfiguration().locale;
         final int ld = TextUtils.getLayoutDirectionFromLocale(locale);
-        if (! locale.equals(mLocale) || ld != mLayoutDirection) {
+        final float fontScale = newConfig.fontScale;
+
+        if (! locale.equals(mLocale) || ld != mLayoutDirection || fontScale != mFontScale) {
             if (DEBUG) {
                 Log.v(TAG, String.format(
                         "config changed locale/LD: %s (%d) -> %s (%d)", mLocale, mLayoutDirection,
@@ -865,7 +886,11 @@
             final boolean allowed = 0 != Settings.Secure.getIntForUser(
                     mContext.getContentResolver(),
                     Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0, userHandle);
-            mUsersAllowingPrivateNotifications.append(userHandle, allowed);
+            final int dpmFlags = mDevicePolicyManager.getKeyguardDisabledFeatures(null /* admin */,
+                    userHandle);
+            final boolean allowedByDpm = (dpmFlags
+                    & DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS) == 0;
+            mUsersAllowingPrivateNotifications.append(userHandle, allowed && allowedByDpm);
             return allowed;
         }
 
@@ -1050,7 +1075,7 @@
                             startAppNotificationSettingsActivity(pkg, appUidF);
                             animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
                             visibilityChanged(false);
-                            return DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
+                            return true;
                         }
                     });
                 }
@@ -1194,8 +1219,6 @@
 
         row.setClearable(sbn.isClearable());
 
-        row.setDrawingCacheEnabled(true);
-
         if (MULTIUSER_DEBUG) {
             TextView debug = (TextView) row.findViewById(R.id.debug_info);
             if (debug != null) {
@@ -1240,54 +1263,74 @@
         }
 
         public void onClick(final View v) {
+            final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
             dismissKeyguardThenExecute(new OnDismissAction() {
                 public boolean onDismiss() {
-                    try {
-                        // The intent we are sending is for the application, which
-                        // won't have permission to immediately start an activity after
-                        // the user switches to home.  We know it is safe to do at this
-                        // point, so make sure new activity switches are now allowed.
-                        ActivityManagerNative.getDefault().resumeAppSwitches();
-                    } catch (RemoteException e) {
+                    if (mIsHeadsUp) {
+                        mHeadsUpNotificationView.clear();
                     }
+                    AsyncTask.execute(new Runnable() {
+                        @Override
+                        public void run() {
+                            if (keyguardShowing) {
+                                try {
+                                    ActivityManagerNative.getDefault()
+                                            .keyguardWaitingForActivityDrawn();
+                                    // The intent we are sending is for the application, which
+                                    // won't have permission to immediately start an activity after
+                                    // the user switches to home.  We know it is safe to do at this
+                                    // point, so make sure new activity switches are now allowed.
+                                    ActivityManagerNative.getDefault().resumeAppSwitches();
+                                } catch (RemoteException e) {
+                                }
+                            }
 
-                    boolean sent = false;
-                    if (mIntent != null) {
-                        int[] pos = new int[2];
-                        v.getLocationOnScreen(pos);
-                        Intent overlay = new Intent();
-                        overlay.setSourceBounds(new Rect(pos[0], pos[1],
-                                pos[0] + v.getWidth(), pos[1] + v.getHeight()));
-                        try {
-                            mIntent.send(mContext, 0, overlay);
-                            sent = true;
-                        } catch (PendingIntent.CanceledException e) {
-                            // the stack trace isn't very helpful here.
-                            // Just log the exception message.
-                            Log.w(TAG, "Sending contentIntent failed: " + e);
-                        }
-                    }
+                            if (mIntent != null) {
+                                try {
+                                    mIntent.send();
+                                } catch (PendingIntent.CanceledException e) {
+                                    // the stack trace isn't very helpful here.
+                                    // Just log the exception message.
+                                    Log.w(TAG, "Sending contentIntent failed: " + e);
 
-                    try {
-                        if (mIsHeadsUp) {
-                            mHeadsUpNotificationView.clear();
+                                    // TODO: Dismiss Keyguard.
+                                }
+                                if (mIntent.isActivity()) {
+                                    overrideActivityPendingAppTransition(keyguardShowing);
+                                }
+                            }
+
+                            try {
+                                mBarService.onNotificationClick(mNotificationKey);
+                            } catch (RemoteException ex) {
+                                // system process is dead if we're here.
+                            }
                         }
-                        mBarService.onNotificationClick(mNotificationKey);
-                    } catch (RemoteException ex) {
-                        // system process is dead if we're here.
-                    }
+                    });
 
                     // close the shade if it was open
-                    animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
+                    animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
                     visibilityChanged(false);
 
-                    boolean waitForActivityLaunch = sent && mIntent.isActivity();
-                    return waitForActivityLaunch && DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
+                    return mIntent != null && mIntent.isActivity();
                 }
             });
         }
     }
 
+    public void animateCollapsePanels(int flags, boolean force) {
+    }
+
+    public void overrideActivityPendingAppTransition(boolean keyguardShowing) {
+        if (keyguardShowing) {
+            try {
+                mWindowManagerService.overridePendingAppTransition(null, 0, 0, null);
+            } catch (RemoteException e) {
+                Log.w(TAG, "Error overriding app transition: " + e);
+            }
+        }
+    }
+
     /**
      * The LEDs are turned o)ff when the notification panel is shown, even just a little bit.
      * This was added last-minute and is inconsistent with the way the rest of the notifications
@@ -1431,8 +1474,8 @@
 
         mStackScroller.changeViewPosition(mKeyguardIconOverflowContainer,
                 mStackScroller.getChildCount() - 3);
-        mStackScroller.changeViewPosition(mDismissView, mStackScroller.getChildCount() - 2);
-        mStackScroller.changeViewPosition(mEmptyShadeView, mStackScroller.getChildCount() - 1);
+        mStackScroller.changeViewPosition(mEmptyShadeView, mStackScroller.getChildCount() - 2);
+        mStackScroller.changeViewPosition(mDismissView, mStackScroller.getChildCount() - 1);
     }
 
     private boolean shouldShowOnKeyguard(StatusBarNotification sbn) {
@@ -1455,7 +1498,11 @@
                 Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS,
                 1,
                 mCurrentUserId) != 0;
-        setShowLockscreenNotifications(show);
+        final int dpmFlags = mDevicePolicyManager.getKeyguardDisabledFeatures(
+                null /* admin */, mCurrentUserId);
+        final boolean allowedByDpm = (dpmFlags
+                & DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS) == 0;
+        setShowLockscreenNotifications(show && allowedByDpm);
     }
 
     protected abstract void haltTicker();
@@ -1687,6 +1734,9 @@
                 : null;
 
         // Reapply the RemoteViews
+        if (entry.row != null) {
+            entry.row.resetHeight();
+        }
         contentView.reapply(mContext, entry.expanded, mOnClickHandler);
         if (bigContentView != null && entry.getBigContentView() != null) {
             bigContentView.reapply(mContext, entry.getBigContentView(),
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 63dd1e3..9db875f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -47,16 +47,15 @@
     private static final int MSG_SET_SYSTEMUI_VISIBILITY    = 6 << MSG_SHIFT;
     private static final int MSG_TOP_APP_WINDOW_CHANGED     = 7 << MSG_SHIFT;
     private static final int MSG_SHOW_IME_BUTTON            = 8 << MSG_SHIFT;
-    private static final int MSG_SET_HARD_KEYBOARD_STATUS   = 9 << MSG_SHIFT;
-    private static final int MSG_TOGGLE_RECENT_APPS         = 10 << MSG_SHIFT;
-    private static final int MSG_PRELOAD_RECENT_APPS        = 11 << MSG_SHIFT;
-    private static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 12 << MSG_SHIFT;
-    private static final int MSG_SET_WINDOW_STATE           = 13 << MSG_SHIFT;
-    private static final int MSG_SHOW_RECENT_APPS           = 14 << MSG_SHIFT;
-    private static final int MSG_HIDE_RECENT_APPS           = 15 << MSG_SHIFT;
-    private static final int MSG_BUZZ_BEEP_BLINKED          = 16 << MSG_SHIFT;
-    private static final int MSG_NOTIFICATION_LIGHT_OFF     = 17 << MSG_SHIFT;
-    private static final int MSG_NOTIFICATION_LIGHT_PULSE   = 18 << MSG_SHIFT;
+    private static final int MSG_TOGGLE_RECENT_APPS         = 9 << MSG_SHIFT;
+    private static final int MSG_PRELOAD_RECENT_APPS        = 10 << MSG_SHIFT;
+    private static final int MSG_CANCEL_PRELOAD_RECENT_APPS = 11 << MSG_SHIFT;
+    private static final int MSG_SET_WINDOW_STATE           = 12 << MSG_SHIFT;
+    private static final int MSG_SHOW_RECENT_APPS           = 13 << MSG_SHIFT;
+    private static final int MSG_HIDE_RECENT_APPS           = 14 << MSG_SHIFT;
+    private static final int MSG_BUZZ_BEEP_BLINKED          = 15 << MSG_SHIFT;
+    private static final int MSG_NOTIFICATION_LIGHT_OFF     = 16 << MSG_SHIFT;
+    private static final int MSG_NOTIFICATION_LIGHT_PULSE   = 17 << MSG_SHIFT;
 
     public static final int FLAG_EXCLUDE_NONE = 0;
     public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -87,7 +86,6 @@
         public void topAppWindowChanged(boolean visible);
         public void setImeWindowStatus(IBinder token, int vis, int backDisposition,
                 boolean showImeSwitcher);
-        public void setHardKeyboardStatus(boolean available, boolean enabled);
         public void showRecentApps(boolean triggeredFromAltTab);
         public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
         public void toggleRecentApps();
@@ -175,14 +173,6 @@
         }
     }
 
-    public void setHardKeyboardStatus(boolean available, boolean enabled) {
-        synchronized (mList) {
-            mHandler.removeMessages(MSG_SET_HARD_KEYBOARD_STATUS);
-            mHandler.obtainMessage(MSG_SET_HARD_KEYBOARD_STATUS,
-                    available ? 1 : 0, enabled ? 1 : 0).sendToTarget();
-        }
-    }
-
     public void showRecentApps(boolean triggeredFromAltTab) {
         synchronized (mList) {
             mHandler.removeMessages(MSG_SHOW_RECENT_APPS);
@@ -300,9 +290,6 @@
                     mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2,
                             msg.getData().getBoolean(SHOW_IME_SWITCHER_KEY, false));
                     break;
-                case MSG_SET_HARD_KEYBOARD_STATUS:
-                    mCallbacks.setHardKeyboardStatus(msg.arg1 != 0, msg.arg2 != 0);
-                    break;
                 case MSG_SHOW_RECENT_APPS:
                     mCallbacks.showRecentApps(msg.arg1 != 0);
                     break;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index a275572..9ac20a6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -88,9 +88,14 @@
         mExpansionDisabled = false;
         mPublicLayout.reset();
         mPrivateLayout.reset();
+        resetHeight();
+        logExpansionEvent(false, wasExpanded);
+    }
+
+    public void resetHeight() {
         mMaxExpandHeight = 0;
         mWasReset = true;
-        logExpansionEvent(false, wasExpanded);
+        onHeightReset();
     }
 
     @Override
@@ -152,6 +157,11 @@
         logExpansionEvent(true, wasExpanded);
     }
 
+    public void resetUserExpansion() {
+        mHasUserChangedExpansion = false;
+        mUserExpanded = false;
+    }
+
     public boolean isUserLocked() {
         return mUserLocked;
     }
@@ -173,20 +183,26 @@
      * @param expand whether the system wants this notification to be expanded.
      */
     public void setSystemExpanded(boolean expand) {
-        final boolean wasExpanded = isExpanded();
-        mIsSystemExpanded = expand;
-        notifyHeightChanged();
-        logExpansionEvent(false, wasExpanded);
+        if (expand != mIsSystemExpanded) {
+            final boolean wasExpanded = isExpanded();
+            mIsSystemExpanded = expand;
+            notifyHeightChanged();
+            logExpansionEvent(false, wasExpanded);
+        }
     }
 
     /**
      * @param expansionDisabled whether to prevent notification expansion
      */
     public void setExpansionDisabled(boolean expansionDisabled) {
-        final boolean wasExpanded = isExpanded();
-        mExpansionDisabled = expansionDisabled;
-        logExpansionEvent(false, wasExpanded);
-        notifyHeightChanged();
+        if (expansionDisabled != mExpansionDisabled) {
+            final boolean wasExpanded = isExpanded();
+            mExpansionDisabled = expansionDisabled;
+            logExpansionEvent(false, wasExpanded);
+            if (wasExpanded != isExpanded()) {
+                notifyHeightChanged();
+            }
+        }
     }
 
     /**
@@ -363,9 +379,8 @@
         mPrivateLayout.notifyContentUpdated();
     }
 
-    public boolean isShowingLayoutLayouted() {
-        NotificationContentView showingLayout = getShowingLayout();
-        return showingLayout.getWidth() != 0;
+    public boolean isMaxExpandHeightInitialized() {
+        return mMaxExpandHeight != 0;
     }
 
     private NotificationContentView getShowingLayout() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
index df64edf..127ff6c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java
@@ -255,8 +255,10 @@
     public void setBelowSpeedBump(boolean below) {
     }
 
-    public void reset() {
-        mOnHeightChangedListener.onReset(this);
+    public void onHeightReset() {
+        if (mOnHeightChangedListener != null) {
+            mOnHeightChangedListener.onReset(this);
+        }
     }
 
     /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
index 6779e4e..4a6bfa10 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java
@@ -401,7 +401,9 @@
             Interpolator interpolator, Runnable runnable) {
         cancelAnimator(mAlphaAnimator);
         int endAlpha = (int) (alpha * 255);
+        final Drawable background = getBackground();
         if (!animate) {
+            if (background != null) background.mutate().setAlpha(endAlpha);
             setImageAlpha(endAlpha);
         } else {
             int currentAlpha = getImageAlpha();
@@ -410,7 +412,9 @@
             animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                 @Override
                 public void onAnimationUpdate(ValueAnimator animation) {
-                    setImageAlpha((int) animation.getAnimatedValue());
+                    int alpha = (int) animation.getAnimatedValue();
+                    if (background != null) background.mutate().setAlpha(alpha);
+                    setImageAlpha(alpha);
                 }
             });
             animator.addListener(mAlphaEndListener);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarter.java
index 5bc7e5a..23810f9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarter.java
@@ -24,5 +24,5 @@
  * Keyguard.
  */
 public interface ActivityStarter {
-    public void startActivity(Intent intent);
+    public void startActivity(Intent intent, boolean dismissShade);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
index 79f9da4..3e2a398 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java
@@ -24,20 +24,27 @@
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.res.Configuration;
+import android.os.AsyncTask;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.phone.PhoneManager;
 import android.provider.MediaStore;
+import android.telecomm.TelecommManager;
 import android.util.AttributeSet;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
 import android.widget.FrameLayout;
+import android.widget.TextView;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.keyguard.KeyguardUpdateMonitor;
 import com.android.keyguard.KeyguardUpdateMonitorCallback;
 import com.android.systemui.R;
+import com.android.systemui.statusbar.KeyguardIndicationController;
 import com.android.systemui.statusbar.policy.FlashlightController;
 import com.android.systemui.statusbar.KeyguardAffordanceView;
 import com.android.systemui.statusbar.policy.PreviewInflater;
@@ -61,7 +68,7 @@
     private KeyguardAffordanceView mCameraImageView;
     private KeyguardAffordanceView mPhoneImageView;
     private KeyguardAffordanceView mLockIcon;
-    private View mIndicationText;
+    private TextView mIndicationText;
     private ViewGroup mPreviewContainer;
 
     private View mPhonePreview;
@@ -72,6 +79,7 @@
     private LockPatternUtils mLockPatternUtils;
     private FlashlightController mFlashlightController;
     private PreviewInflater mPreviewInflater;
+    private KeyguardIndicationController mIndicationController;
     private boolean mFaceUnlockRunning;
 
     public KeyguardBottomAreaView(Context context) {
@@ -99,7 +107,7 @@
         mCameraImageView = (KeyguardAffordanceView) findViewById(R.id.camera_button);
         mPhoneImageView = (KeyguardAffordanceView) findViewById(R.id.phone_button);
         mLockIcon = (KeyguardAffordanceView) findViewById(R.id.lock_icon);
-        mIndicationText = findViewById(R.id.keyguard_indication_text);
+        mIndicationText = (TextView) findViewById(R.id.keyguard_indication_text);
         watchForCameraPolicyChanges();
         watchForAccessibilityChanges();
         updateCameraVisibility();
@@ -111,6 +119,24 @@
         setClipToPadding(false);
         mPreviewInflater = new PreviewInflater(mContext, new LockPatternUtils(mContext));
         inflatePreviews();
+        mLockIcon.setOnClickListener(this);
+    }
+
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+        int indicationBottomMargin = getResources().getDimensionPixelSize(
+                R.dimen.keyguard_indication_margin_bottom);
+        MarginLayoutParams mlp = (MarginLayoutParams) mIndicationText.getLayoutParams();
+        if (mlp.bottomMargin != indicationBottomMargin) {
+            mlp.bottomMargin = indicationBottomMargin;
+            mIndicationText.setLayoutParams(mlp);
+        }
+
+        // Respect font size setting.
+        mIndicationText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(
+                        com.android.internal.R.dimen.text_size_small_material));
     }
 
     public void setActivityStarter(ActivityStarter activityStarter) {
@@ -204,6 +230,10 @@
             launchCamera();
         } else if (v == mPhoneImageView) {
             launchPhone();
+        } if (v == mLockIcon) {
+            mIndicationController.showTransientIndication(
+                    R.string.keyguard_indication_trust_disabled);
+            mLockPatternUtils.requireCredentialEntry(mLockPatternUtils.getCurrentUser());
         }
     }
 
@@ -214,12 +244,23 @@
                 !mPreviewInflater.wouldLaunchResolverActivity(intent)) {
             mContext.startActivityAsUser(intent, UserHandle.CURRENT);
         } else {
-            mActivityStarter.startActivity(intent);
+            mActivityStarter.startActivity(intent, false /* dismissShade */);
         }
     }
 
     public void launchPhone() {
-        mActivityStarter.startActivity(PHONE_INTENT);
+        TelecommManager tm = TelecommManager.from(mContext);
+        if (tm.isInAPhoneCall()) {
+            final PhoneManager pm = (PhoneManager) mContext.getSystemService(Context.PHONE_SERVICE);
+            AsyncTask.execute(new Runnable() {
+                @Override
+                public void run() {
+                    pm.showCallScreen(false /* showDialpad */);
+                }
+            });
+        } else {
+            mActivityStarter.startActivity(PHONE_INTENT, false /* dismissShade */);
+        }
     }
 
 
@@ -244,6 +285,7 @@
         boolean trustManaged = mUnlockMethodCache.isTrustManaged();
         mLockIcon.setBackgroundResource(trustManaged && !mFaceUnlockRunning
                 ? R.drawable.trust_circle : 0);
+        mLockIcon.setClickable(trustManaged);
     }
 
     public KeyguardAffordanceView getPhoneView() {
@@ -318,4 +360,9 @@
             updateLockIcon();
         }
     };
+
+    public void setKeyguardIndicationController(
+            KeyguardIndicationController keyguardIndicationController) {
+        mIndicationController = keyguardIndicationController;
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index 3b14082..fc737be 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -92,27 +92,14 @@
         }
     }
 
-    public void animateHide(long delay, long duration) {
-        if (isShowing()) {
-            mFadingOut = true;
-            mKeyguardView.animate()
-                    .alpha(0)
-                    .withLayer()
-
-                    // Make it disappear faster, as the focus should be on the activity behind.
-                    .setDuration(duration / 2)
-                    .setInterpolator(PhoneStatusBar.ALPHA_OUT)
-                    .setStartDelay(delay)
-                    .withEndAction(new Runnable() {
-                        @Override
-                        public void run() {
-                            mFadingOut = false;
-                            hide(true /* destroyView */);
-                        }
-                    })
-                    .start();
-        } else {
-            hide(true /* destroyView */);
+    /**
+     * See {@link StatusBarKeyguardViewManager#startPreHideAnimation}.
+     */
+    public void startPreHideAnimation(Runnable runnable) {
+        if (mKeyguardView != null) {
+            mKeyguardView.startDisappearAnimation(runnable);
+        } else if (runnable != null) {
+            runnable.run();
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
index b66c310..5e5c3aa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -18,8 +18,10 @@
 
 import android.animation.LayoutTransition;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewTreeObserver;
 import android.view.animation.AnimationUtils;
@@ -43,6 +45,7 @@
     private boolean mKeyguardUserSwitcherShowing;
     private boolean mBatteryListening;
 
+    private TextView mCarrierLabel;
     private View mSystemIconsSuperContainer;
     private MultiUserSwitch mMultiUserSwitch;
     private ImageView mMultiUserAvatar;
@@ -65,12 +68,25 @@
         mMultiUserSwitch = (MultiUserSwitch) findViewById(R.id.multi_user_switch);
         mMultiUserAvatar = (ImageView) findViewById(R.id.multi_user_avatar);
         mBatteryLevel = (TextView) findViewById(R.id.battery_level);
+        mCarrierLabel = (TextView) findViewById(R.id.keyguard_carrier_text);
         loadDimens();
         mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(getContext(),
                 android.R.interpolator.fast_out_slow_in);
         updateUserSwitcher();
     }
 
+    @Override
+    protected void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+
+        // Respect font size setting.
+        mCarrierLabel.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(
+                        com.android.internal.R.dimen.text_size_small_material));
+        mBatteryLevel.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                getResources().getDimensionPixelSize(R.dimen.battery_level_text_size));
+    }
+
     private void loadDimens() {
         mSystemIconsSwitcherHiddenExpandedMargin = getResources().getDimensionPixelSize(
                 R.dimen.system_icons_switcher_hidden_expanded_margin);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java
index 47325c8..d7144da 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/MultiUserSwitch.java
@@ -21,10 +21,13 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.ContactsContract;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.FrameLayout;
 
+import com.android.systemui.R;
 import com.android.systemui.qs.QSPanel;
 import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
 
@@ -36,9 +39,11 @@
     private QSPanel mQsPanel;
     private KeyguardUserSwitcher mKeyguardUserSwitcher;
     private boolean mKeyguardMode;
+    final UserManager mUserManager;
 
     public MultiUserSwitch(Context context, AttributeSet attrs) {
         super(context, attrs);
+        mUserManager = UserManager.get(getContext());
     }
 
     @Override
@@ -80,6 +85,22 @@
     }
 
     @Override
+    public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
+        super.onPopulateAccessibilityEvent(event);
+
+        if (isClickable()) {
+            final UserManager um = UserManager.get(getContext());
+            String text = mContext.getString(um.isUserSwitcherEnabled()
+                    ? R.string.accessibility_multi_user_switch_switcher
+                    : R.string.accessibility_multi_user_switch_quick_contact);
+            if (!TextUtils.isEmpty(text)) {
+                event.getText().add(text);
+            }
+        }
+
+    }
+
+    @Override
     public boolean hasOverlappingRendering() {
         return false;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index acdc6bc..42ae0c9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -24,6 +24,7 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.util.AttributeSet;
+import android.util.MathUtils;
 import android.view.MotionEvent;
 import android.view.VelocityTracker;
 import android.view.View;
@@ -104,7 +105,6 @@
     private boolean mQsFullyExpanded;
     private boolean mKeyguardShowing;
     private boolean mDozing;
-    private boolean mKeyguardStatusBarTransparent;
     private int mStatusBarState;
     private float mInitialHeightOnTouch;
     private float mInitialTouchX;
@@ -117,6 +117,7 @@
     private int mQsPeekHeight;
     private boolean mStackScrollerOverscrolling;
     private boolean mQsExpansionFromOverscroll;
+    private float mLastOverscroll;
     private boolean mQsExpansionEnabled = true;
     private ValueAnimator mQsExpansionAnimator;
     private FlingAnimationUtils mFlingAnimationUtils;
@@ -273,11 +274,10 @@
                 requestScrollerTopPaddingUpdate(false /* animate */);
             }
         } else {
-            if (!mStackScrollerOverscrolling) {
-                setQsExpansion(mQsMinExpansionHeight);
-            }
+            setQsExpansion(mQsMinExpansionHeight + mLastOverscroll);
             positionClockAndNotifications();
             mNotificationStackScroller.setStackHeight(getExpandedHeight());
+            updateHeader();
         }
         mNotificationStackScroller.updateIsSmallScreen(
                 mHeader.getCollapsedHeight() + mQsPeekHeight);
@@ -414,12 +414,12 @@
     }
 
     @Override
-    public void fling(float vel, boolean always) {
+    public void fling(float vel, boolean expand) {
         GestureRecorder gr = ((PhoneStatusBarView) mBar).mBar.getGestureRecorder();
         if (gr != null) {
             gr.tag("fling " + ((vel > 0) ? "open" : "closed"), "notifications,v=" + vel);
         }
-        super.fling(vel, always);
+        super.fling(vel, expand);
     }
 
     @Override
@@ -552,8 +552,8 @@
     }
 
     private float getQsExpansionFraction() {
-        return (mQsExpansionHeight - mQsMinExpansionHeight)
-                / (getTempQsMaxExpansion() - mQsMinExpansionHeight);
+        return Math.min(1f, (mQsExpansionHeight - mQsMinExpansionHeight)
+                / (getTempQsMaxExpansion() - mQsMinExpansionHeight));
     }
 
     @Override
@@ -602,6 +602,10 @@
                 && event.getY(event.getActionIndex()) < mStatusBarMinHeight) {
             mTwoFingerQsExpand = true;
             requestPanelHeightUpdate();
+
+            // Normally, we start listening when the panel is expanded, but here we need to start
+            // earlier so the state is already up to date when dragging down.
+            setListening(true);
         }
         super.onTouchEvent(event);
         return true;
@@ -621,6 +625,11 @@
             mInitialHeightOnTouch = mQsExpansionHeight;
             mInitialTouchY = event.getX();
             mInitialTouchX = event.getY();
+
+            // If we interrupt an expansion gesture here, make sure to update the state correctly.
+            if (mIsExpanding) {
+                onExpandingFinished();
+            }
         }
     }
 
@@ -718,6 +727,7 @@
         float rounded = amount >= 1f ? amount : 0f;
         mStackScrollerOverscrolling = rounded != 0f && isRubberbanded;
         mQsExpansionFromOverscroll = rounded != 0f;
+        mLastOverscroll = rounded;
         updateQsState();
         setQsExpansion(mQsMinExpansionHeight + rounded);
     }
@@ -984,15 +994,7 @@
         requestScrollerTopPaddingUpdate(false /* animate */);
         updateNotificationScrim(height);
         if (mKeyguardShowing) {
-            float alpha = getQsExpansionFraction();
-            alpha *= 2;
-            alpha = Math.min(1, alpha);
-            alpha = 1 - alpha;
-            mKeyguardStatusBarTransparent = alpha == 0f;
-            updateKeyguardStatusBarVisibility();
-            if (!mKeyguardStatusBarTransparent) {
-                mKeyguardStatusBar.setAlpha(alpha);
-            }
+            updateHeaderKeyguard();
         }
         if (mStatusBarState == StatusBarState.SHADE && mQsExpanded
                 && !mStackScrollerOverscrolling && mQsScrimEnabled) {
@@ -1025,7 +1027,9 @@
     }
 
     private float calculateQsTopPadding() {
-        if (mKeyguardShowing) {
+        // We can only do the smoother transition on Keyguard when we also are not collapsing from a
+        // scrolled quick settings.
+        if (mKeyguardShowing && mScrollYOverride == -1) {
             return interpolate(getQsExpansionFraction(),
                     mNotificationStackScroller.getIntrinsicPadding() - mNotificationTopPadding,
                     mQsMaxExpansionHeight);
@@ -1081,6 +1085,7 @@
             }
             return;
         }
+        mScrollView.setBlockFlinging(true);
         ValueAnimator animator = ValueAnimator.ofFloat(mQsExpansionHeight, target);
         mFlingAnimationUtils.apply(animator, mQsExpansionHeight, target, vel);
         animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@@ -1092,6 +1097,7 @@
         animator.addListener(new AnimatorListenerAdapter() {
             @Override
             public void onAnimationEnd(Animator animation) {
+                mScrollView.setBlockFlinging(false);
                 mScrollYOverride = -1;
                 mQsExpansionAnimator = null;
                 if (onFinishRunnable != null) {
@@ -1339,27 +1345,25 @@
     }
 
     private void updateHeaderKeyguard() {
-        float alpha;
+        float alphaNotifications;
         if (mStatusBar.getBarState() == StatusBarState.KEYGUARD) {
 
             // When on Keyguard, we hide the header as soon as the top card of the notification
             // stack scroller is close enough (collision distance) to the bottom of the header.
-            alpha = getNotificationsTopY()
+            alphaNotifications = getNotificationsTopY()
                     /
-                    (mQsMinExpansionHeight + mNotificationsHeaderCollideDistance);
-
+                    (mKeyguardStatusBar.getHeight() + mNotificationsHeaderCollideDistance);
         } else {
 
             // In SHADE_LOCKED, the top card is already really close to the header. Hide it as
             // soon as we start translating the stack.
-            alpha = getNotificationsTopY() / mQsMinExpansionHeight;
+            alphaNotifications = getNotificationsTopY() / mKeyguardStatusBar.getHeight();
         }
-        alpha = Math.max(0, Math.min(alpha, 1));
-        alpha = (float) Math.pow(alpha, 0.75);
-        if (!mQsExpanded) {
-            mKeyguardStatusBar.setAlpha(alpha);
-        }
-        mKeyguardBottomArea.setAlpha(alpha);
+        alphaNotifications = MathUtils.constrain(alphaNotifications, 0, 1);
+        alphaNotifications = (float) Math.pow(alphaNotifications, 0.75);
+        float alphaQsExpansion = 1 - Math.min(1, getQsExpansionFraction() * 2);
+        mKeyguardStatusBar.setAlpha(Math.min(alphaNotifications, alphaQsExpansion));
+        mKeyguardBottomArea.setAlpha(Math.min(1 - getQsExpansionFraction(), alphaNotifications));
         setQsTranslation(mQsExpansionHeight);
     }
 
@@ -1703,8 +1707,7 @@
     }
 
     private void updateKeyguardStatusBarVisibility() {
-        mKeyguardStatusBar.setVisibility(mKeyguardShowing && !mKeyguardStatusBarTransparent
-                && !mDozing ? VISIBLE : INVISIBLE);
+        mKeyguardStatusBar.setVisibility(mKeyguardShowing && !mDozing ? VISIBLE : INVISIBLE);
     }
 
     public void setDozing(boolean dozing) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java
index ee6b1a9..53361dc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ObservableScrollView.java
@@ -33,6 +33,7 @@
     private boolean mHandlingTouchEvent;
     private float mLastX;
     private float mLastY;
+    private boolean mBlockFlinging;
 
     public ObservableScrollView(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -109,6 +110,17 @@
                         maxOverScrollX, maxOverScrollY, isTouchEvent);
     }
 
+    public void setBlockFlinging(boolean blockFlinging) {
+        mBlockFlinging = blockFlinging;
+    }
+
+    @Override
+    public void fling(int velocityY) {
+        if (!mBlockFlinging) {
+            super.fling(velocityY);
+        }
+    }
+
     @Override
     protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
         super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index 59f94f2..f74d2f4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -140,7 +140,7 @@
         mPanelHolder.setSelectedPanel(mTouchingPanel);
         for (PanelView pv : mPanels) {
             if (pv != panel) {
-                pv.collapse();
+                pv.collapse(false /* delayed */);
             }
         }
     }
@@ -191,7 +191,7 @@
         boolean waiting = false;
         for (PanelView pv : mPanels) {
             if (animate && !pv.isFullyCollapsed()) {
-                pv.collapse();
+                pv.collapse(true /* delayed */);
                 waiting = true;
             } else {
                 pv.resetViews();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 469a831..decaeb6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -54,6 +54,11 @@
     private float mInitialOffsetOnTouch;
     private float mExpandedFraction = 0;
     protected float mExpandedHeight = 0;
+    private boolean mPanelClosedOnDown;
+    private boolean mHasLayoutedSinceDown;
+    private float mUpdateFlingVelocity;
+    private boolean mUpdateFlingOnLayout;
+    private boolean mTouching;
     private boolean mJustPeeked;
     private boolean mClosing;
     protected boolean mTracking;
@@ -76,7 +81,6 @@
 
     PanelBar mBar;
 
-    protected int mMaxPanelHeight = -1;
     private String mViewName;
     private float mInitialTouchY;
     private float mInitialTouchX;
@@ -99,6 +103,7 @@
     };
 
     protected void onExpandingFinished() {
+        mClosing = false;
         mBar.onExpandingFinished();
     }
 
@@ -150,7 +155,7 @@
                     postOnAnimation(new Runnable() {
                         @Override
                         public void run() {
-                            collapse();
+                            collapse(false /* delayed */);
                         }
                     });
                 }
@@ -225,6 +230,10 @@
                 mInitialOffsetOnTouch = mExpandedHeight;
                 mTouchSlopExceeded = false;
                 mJustPeeked = false;
+                mPanelClosedOnDown = mExpandedHeight == 0.0f;
+                mHasLayoutedSinceDown = false;
+                mUpdateFlingOnLayout = false;
+                mTouching = true;
                 if (mVelocityTracker == null) {
                     initVelocityTracker();
                 }
@@ -315,6 +324,10 @@
                     boolean expand = flingExpands(vel, vectorVel);
                     onTrackingStopped(expand);
                     fling(vel, expand);
+                    mUpdateFlingOnLayout = expand && mPanelClosedOnDown && !mHasLayoutedSinceDown;
+                    if (mUpdateFlingOnLayout) {
+                        mUpdateFlingVelocity = vel;
+                    }
                 } else {
                     boolean expands = onEmptySpaceClick(mInitialTouchX);
                     onTrackingStopped(expands);
@@ -324,6 +337,7 @@
                     mVelocityTracker.recycle();
                     mVelocityTracker = null;
                 }
+                mTouching = false;
                 break;
         }
         return !waitForTouchSlop || mTracking;
@@ -382,6 +396,10 @@
                 mInitialTouchX = x;
                 mTouchSlopExceeded = false;
                 mJustPeeked = false;
+                mPanelClosedOnDown = mExpandedHeight == 0.0f;
+                mHasLayoutedSinceDown = false;
+                mUpdateFlingOnLayout = false;
+                mTouching = true;
                 initVelocityTracker();
                 trackMovement(event);
                 break;
@@ -414,6 +432,10 @@
                     }
                 }
                 break;
+            case MotionEvent.ACTION_CANCEL:
+            case MotionEvent.ACTION_UP:
+                mTouching = false;
+                break;
         }
         return false;
     }
@@ -443,7 +465,6 @@
     protected void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
         loadDimens();
-        mMaxPanelHeight = -1;
     }
 
     /**
@@ -523,27 +544,6 @@
         return mViewName;
     }
 
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
-        if (DEBUG) logf("onMeasure(%d, %d) -> (%d, %d)",
-                widthMeasureSpec, heightMeasureSpec, getMeasuredWidth(), getMeasuredHeight());
-
-        // Did one of our children change size?
-        int newHeight = getMeasuredHeight();
-        if (newHeight > mMaxPanelHeight) {
-            // we only adapt the max height if it's bigger
-            mMaxPanelHeight = newHeight;
-            // If the user isn't actively poking us, let's rubberband to the content
-            if (!mTracking && mHeightAnimator == null
-                    && mExpandedHeight > 0 && mExpandedHeight != mMaxPanelHeight
-                    && mMaxPanelHeight > 0 && mPeekAnimator == null) {
-                mExpandedHeight = mMaxPanelHeight;
-            }
-        }
-    }
-
     public void setExpandedHeight(float height) {
         if (DEBUG) logf("setExpandedHeight(%.1f)", height);
         setExpandedHeightInternal(height + getOverExpansionPixels());
@@ -551,10 +551,14 @@
 
     @Override
     protected void onLayout (boolean changed, int left, int top, int right, int bottom) {
-        if (DEBUG) logf("onLayout: changed=%s, bottom=%d eh=%d fh=%d", changed?"T":"f", bottom,
-                (int)mExpandedHeight, mMaxPanelHeight);
         super.onLayout(changed, left, top, right, bottom);
         requestPanelHeightUpdate();
+        mHasLayoutedSinceDown = true;
+        if (mUpdateFlingOnLayout) {
+            abortAnimations();
+            fling(mUpdateFlingVelocity, true);
+            mUpdateFlingOnLayout = false;
+        }
     }
 
     protected void requestPanelHeightUpdate() {
@@ -566,7 +570,8 @@
                 && mExpandedHeight > 0
                 && currentMaxPanelHeight != mExpandedHeight
                 && !mPeekPending
-                && mPeekAnimator == null) {
+                && mPeekAnimator == null
+                && !mTouching) {
             setExpandedHeight(currentMaxPanelHeight);
         }
     }
@@ -614,10 +619,7 @@
      *
      * @return the default implementation simply returns the maximum height.
      */
-    protected int getMaxPanelHeight() {
-        mMaxPanelHeight = Math.max(mMaxPanelHeight, getHeight());
-        return mMaxPanelHeight;
-    }
+    protected abstract int getMaxPanelHeight();
 
     public void setExpandedFraction(float frac) {
         setExpandedHeight(getMaxPanelHeight() * frac);
@@ -651,7 +653,7 @@
         mBar = panelBar;
     }
 
-    public void collapse() {
+    public void collapse(boolean delayed) {
         if (DEBUG) logf("collapse: " + this);
         if (mPeekPending || mPeekAnimator != null) {
             mCollapseAfterPeek = true;
@@ -668,7 +670,16 @@
             }
             mClosing = true;
             notifyExpandingStarted();
-            fling(0, false /* expand */);
+            if (delayed) {
+                postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        fling(0, false /* expand */);
+                    }
+                }, 120);
+            } else {
+                fling(0, false /* expand */);
+            }
         }
     }
 
@@ -856,7 +867,7 @@
     private final Runnable mPostCollapseRunnable = new Runnable() {
         @Override
         public void run() {
-            collapse();
+            collapse(false /* delayed */);
         }
     };
     private boolean onMiddleClicked() {
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 6fff6c3..23b55ee 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -91,6 +91,8 @@
 import android.view.ViewStub;
 import android.view.ViewTreeObserver;
 import android.view.WindowManager;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
 import android.view.animation.AccelerateDecelerateInterpolator;
 import android.view.animation.AccelerateInterpolator;
 import android.view.animation.Animation;
@@ -113,7 +115,6 @@
 import com.android.systemui.doze.DozeService;
 import com.android.systemui.keyguard.KeyguardViewMediator;
 import com.android.systemui.qs.QSPanel;
-import com.android.systemui.qs.QSTile;
 import com.android.systemui.statusbar.ActivatableNotificationView;
 import com.android.systemui.statusbar.BaseStatusBar;
 import com.android.systemui.statusbar.CommandQueue;
@@ -133,10 +134,12 @@
 import com.android.systemui.statusbar.policy.BatteryController;
 import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
 import com.android.systemui.statusbar.policy.BluetoothControllerImpl;
+import com.android.systemui.statusbar.policy.BrightnessMirrorController;
 import com.android.systemui.statusbar.policy.CastControllerImpl;
 import com.android.systemui.statusbar.policy.FlashlightController;
 import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
 import com.android.systemui.statusbar.policy.HotspotControllerImpl;
+import com.android.systemui.statusbar.policy.KeyButtonView;
 import com.android.systemui.statusbar.policy.KeyguardMonitor;
 import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
 import com.android.systemui.statusbar.policy.LocationControllerImpl;
@@ -210,6 +213,9 @@
     public static final int FADE_KEYGUARD_START_DELAY = 100;
     public static final int FADE_KEYGUARD_DURATION = 300;
 
+    /** Allow some time inbetween the long press for back and recents. */
+    private static final int LOCK_TO_APP_GESTURE_TOLERENCE = 200;
+
     PhoneStatusBarPolicy mIconPolicy;
 
     // These are no longer handled by the policy, because we need custom strategies for them
@@ -229,6 +235,7 @@
     UserSwitcherController mUserSwitcherController;
     NextAlarmController mNextAlarmController;
     KeyguardMonitor mKeyguardMonitor;
+    BrightnessMirrorController mBrightnessMirrorController;
 
     int mNaturalBarHeight = -1;
     int mIconSize = -1;
@@ -321,7 +328,7 @@
     VelocityTracker mVelocityTracker;
 
     int[] mAbsPos = new int[2];
-    Runnable mPostCollapseCleanup = null;
+    ArrayList<Runnable> mPostCollapseRunnables = new ArrayList<>();
 
     // for disabling the status bar
     int mDisabled = 0;
@@ -393,7 +400,6 @@
     private int mNavigationBarMode;
     private Boolean mScreenOn;
 
-    private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
     private ViewMediatorCallback mKeyguardViewMediatorCallback;
     private ScrimController mScrimController;
 
@@ -573,6 +579,7 @@
 
         mDozeServiceHost = new DozeServiceHost();
         putComponent(DozeService.Host.class, mDozeServiceHost);
+        putComponent(PhoneStatusBar.class, this);
 
         setControllerUsers();
     }
@@ -690,6 +697,9 @@
         SpeedBumpView speedBump = (SpeedBumpView) LayoutInflater.from(mContext).inflate(
                         R.layout.status_bar_notification_speed_bump, mStackScroller, false);
         mStackScroller.setSpeedBumpView(speedBump);
+        mEmptyShadeView = (EmptyShadeView) LayoutInflater.from(mContext).inflate(
+                R.layout.status_bar_no_notifications, mStackScroller, false);
+        mStackScroller.setEmptyShadeView(mEmptyShadeView);
         mDismissView = (DismissView) LayoutInflater.from(mContext).inflate(
                 R.layout.status_bar_notification_dismiss_all, mStackScroller, false);
         mDismissView.setOnButtonClickListener(new View.OnClickListener() {
@@ -699,9 +709,6 @@
             }
         });
         mStackScroller.setDismissView(mDismissView);
-        mEmptyShadeView = (EmptyShadeView) LayoutInflater.from(mContext).inflate(
-                R.layout.status_bar_no_notifications, mStackScroller, false);
-        mStackScroller.setEmptyShadeView(mEmptyShadeView);
         mExpandedContents = mStackScroller;
 
         mScrimController = new ScrimController(mStatusBarWindow.findViewById(R.id.scrim_behind),
@@ -719,6 +726,7 @@
         mKeyguardIndicationController = new KeyguardIndicationController(mContext,
                 (KeyguardIndicationTextView) mStatusBarWindow.findViewById(
                         R.id.keyguard_indication_text));
+        mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController);
 
         mTickerEnabled = res.getBoolean(R.bool.enable_ticker);
         if (mTickerEnabled) {
@@ -819,6 +827,8 @@
                     mSecurityController);
             mQSPanel.setHost(qsh);
             mQSPanel.setTiles(qsh.getTiles());
+            mBrightnessMirrorController = new BrightnessMirrorController(mStatusBarWindow);
+            mQSPanel.setBrightnessMirror(mBrightnessMirrorController);
             mHeader.setQSPanel(mQSPanel);
             qsh.setCallback(new QSTileHost.Callback() {
                 @Override
@@ -882,14 +892,14 @@
             return;
         }
 
-        mPostCollapseCleanup = new Runnable() {
+        addPostCollapseAction(new Runnable() {
             @Override
             public void run() {
                 try {
                     mBarService.onClearAllNotifications(mCurrentUserId);
                 } catch (Exception ex) { }
             }
-        };
+        });
 
         performDismissAllAnimations(viewsToHide);
 
@@ -1050,10 +1060,13 @@
         }
     };
 
-    private View.OnLongClickListener mLockToAppClickListener = new View.OnLongClickListener() {
+    private long mLastLockToAppLongPress;
+    private AccessibilityManager mAccessibilityManager;
+    private View.OnLongClickListener mLongPressBackRecentsListener =
+            new View.OnLongClickListener() {
         @Override
         public boolean onLongClick(View v) {
-            toggleLockedApp();
+            handleLongPressBackRecents(v);
             return true;
         }
     };
@@ -1102,7 +1115,9 @@
         mNavigationBarView.getRecentsButton().setOnClickListener(mRecentsClickListener);
         mNavigationBarView.getRecentsButton().setOnTouchListener(mRecentsPreloadOnTouchListener);
         mNavigationBarView.getRecentsButton().setLongClickable(true);
-        mNavigationBarView.getRecentsButton().setOnLongClickListener(mLockToAppClickListener);
+        mNavigationBarView.getRecentsButton().setOnLongClickListener(mLongPressBackRecentsListener);
+        mNavigationBarView.getBackButton().setLongClickable(true);
+        mNavigationBarView.getBackButton().setOnLongClickListener(mLongPressBackRecentsListener);
         mNavigationBarView.getHomeButton().setOnTouchListener(mHomeActionListener);
         updateSearchPanel();
     }
@@ -1361,6 +1376,17 @@
     private void updateNotificationShade() {
         if (mStackScroller == null) return;
 
+        // Do not modify the notifications during collapse.
+        if (isCollapsing()) {
+            addPostCollapseAction(new Runnable() {
+                @Override
+                public void run() {
+                    updateNotificationShade();
+                }
+            });
+            return;
+        }
+
         ArrayList<Entry> activeNotifications = mNotificationData.getActiveNotifications();
         ArrayList<ExpandableNotificationRow> toShow = new ArrayList<>(activeNotifications.size());
         final int N = activeNotifications.size();
@@ -1999,8 +2025,8 @@
     }
 
     @Override
-    public void startActivity(Intent intent) {
-        startActivityDismissingKeyguard(intent, false);
+    public void startActivity(Intent intent, boolean dismissShade) {
+        startActivityDismissingKeyguard(intent, false, dismissShade);
     }
 
     public ScrimController getScrimController() {
@@ -2011,6 +2037,14 @@
         mStatusBarWindowManager.setQsExpanded(expanded);
     }
 
+    public boolean isGoingToNotificationShade() {
+        return mLeaveOpenOnKeyguardHide;
+    }
+
+    public boolean isQsExpanded() {
+        return mNotificationPanel.isQsExpanded();
+    }
+
     /**
      * All changes to the status bar and notifications funnel through here and are batched.
      */
@@ -2121,10 +2155,7 @@
     public void animateCollapsePanels(int flags, boolean force) {
         if (!force &&
                 (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) {
-            if (mPostCollapseCleanup != null) {
-                mPostCollapseCleanup.run();
-                mPostCollapseCleanup = null;
-            }
+            runPostCollapseRunnables();
             return;
         }
         if (SPEW) {
@@ -2154,6 +2185,14 @@
         }
     }
 
+    private void runPostCollapseRunnables() {
+        int size = mPostCollapseRunnables.size();
+        for (int i = 0; i < size; i++) {
+            mPostCollapseRunnables.get(i).run();
+        }
+        mPostCollapseRunnables.clear();
+    }
+
     public ViewPropertyAnimator setVisibilityWhenDone(
             final ViewPropertyAnimator a, final View v, final int vis) {
         a.setListener(new AnimatorListenerAdapter() {
@@ -2265,11 +2304,7 @@
         // Close any "App info" popups that might have snuck on-screen
         dismissPopups();
 
-        if (mPostCollapseCleanup != null) {
-            mPostCollapseCleanup.run();
-            mPostCollapseCleanup = null;
-        }
-
+        runPostCollapseRunnables();
         setInteracting(StatusBarManager.WINDOW_STATUS_BAR, false);
         showBouncer();
         disable(mDisabledUnmodified, true /* animate */);
@@ -2601,9 +2636,6 @@
     }
 
     @Override
-    public void setHardKeyboardStatus(boolean available, boolean enabled) {}
-
-    @Override
     protected void tick(StatusBarNotification n, boolean firstTime) {
         if (!mTickerEnabled) return;
 
@@ -2869,7 +2901,8 @@
         }
     }
 
-    public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned) {
+    public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned,
+            final boolean dismissShade) {
         if (onlyProvisioned && !isDeviceProvisioned()) return;
 
         final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
@@ -2879,32 +2912,27 @@
                 AsyncTask.execute(new Runnable() {
                     public void run() {
                         try {
+                            if (keyguardShowing) {
+                                ActivityManagerNative.getDefault()
+                                        .keyguardWaitingForActivityDrawn();
+                            }
                             intent.setFlags(
                                     Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                             mContext.startActivityAsUser(
                                     intent, new UserHandle(UserHandle.USER_CURRENT));
-                            if (keyguardShowing) {
-                                mWindowManagerService.overridePendingAppTransition(
-                                        null, 0, 0, null);
-                            }
+                            overrideActivityPendingAppTransition(keyguardShowing);
                         } catch (RemoteException e) {
                         }
                     }
                 });
-                animateCollapsePanels();
-
-                return DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
+                if (dismissShade) {
+                    animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, true /* force */);
+                }
+                return true;
             }
         });
     }
 
-    private View.OnClickListener mClockClickListener = new View.OnClickListener() {
-        public void onClick(View v) {
-            startActivityDismissingKeyguard(
-                    new Intent(Intent.ACTION_QUICK_CLOCK), true); // have fun, everyone
-        }
-    };
-
     private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
         public void onReceive(Context context, Intent intent) {
             if (DEBUG) Log.v(TAG, "onReceive: " + intent);
@@ -2923,6 +2951,7 @@
                 notifyHeadsUpScreenOn(false);
                 finishBarAnimations();
                 stopNotificationLogging();
+                resetUserExpandedStates();
             }
             else if (Intent.ACTION_SCREEN_ON.equals(action)) {
                 mScreenOn = true;
@@ -2951,6 +2980,17 @@
         }
     };
 
+    private void resetUserExpandedStates() {
+        ArrayList<Entry> activeNotifications = mNotificationData.getActiveNotifications();
+        final int notificationCount = activeNotifications.size();
+        for (int i = 0; i < notificationCount; i++) {
+            NotificationData.Entry entry = activeNotifications.get(i);
+            if (entry.row != null) {
+                entry.row.resetUserExpansion();
+            }
+        }
+    }
+
     @Override
     protected void dismissKeyguardThenExecute(final OnDismissAction action) {
         if (mStatusBarKeyguardViewManager.isShowing()) {
@@ -3048,6 +3088,9 @@
         if (mHeadsUpNotificationView != null) {
             mHeadsUpNotificationView.updateResources();
         }
+        if (mBrightnessMirrorController != null) {
+            mBrightnessMirrorController.updateResources();
+        }
     }
 
     protected void loadDimens() {
@@ -3200,19 +3243,7 @@
     }
 
     private void handleStartSettingsActivity(Intent intent, boolean onlyProvisioned) {
-        if (onlyProvisioned && !isDeviceProvisioned()) return;
-        try {
-            // Dismiss the lock screen when Settings starts.
-            ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
-        } catch (RemoteException e) {
-        }
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
-        animateCollapsePanels();
-    }
-
-    public void startSettingsActivity(String action) {
-        postStartSettingsActivity(new Intent(action), 0);
+        startActivityDismissingKeyguard(intent, onlyProvisioned, true /* dismissShade */);
     }
 
     private static class FastColorDrawable extends Drawable {
@@ -3355,6 +3386,14 @@
         }
     }
 
+    public boolean isCollapsing() {
+        return mNotificationPanel.isCollapsing();
+    }
+
+    public void addPostCollapseAction(Runnable r) {
+        mPostCollapseRunnables.add(r);
+    }
+
     public boolean isInLaunchTransition() {
         return mNotificationPanel.isLaunchTransitionRunning()
                 || mNotificationPanel.isLaunchTransitionFinished();
@@ -3595,10 +3634,7 @@
     }
 
     public void onTrackingStarted() {
-        if (mPostCollapseCleanup != null) {
-            mPostCollapseCleanup.run();
-            mPostCollapseCleanup = null;
-        }
+        runPostCollapseRunnables();
     }
 
     public void onUnlockHintStarted() {
@@ -3745,15 +3781,58 @@
         mStackScroller.setAnimationsEnabled(true);
     }
 
-    public void toggleLockedApp() {
-        Log.d(TAG, "Trying to toggle lock-to-app");
+    /**
+     * This handles long-press of both back and recents.  They are
+     * handled together to capture them both being long-pressed
+     * at the same time to exit screen pinning (lock task).
+     *
+     * When accessibility mode is on, only a long-press from recents
+     * is required to exit.
+     *
+     * In all other circumstances we try to pass through long-press events
+     * for Back, so that apps can still use it.  Which can be from two things.
+     * 1) Not currently in screen pinning (lock task).
+     * 2) Back is long-pressed without recents.
+     */
+    private void handleLongPressBackRecents(View v) {
         try {
+            boolean sendBackLongPress = false;
             IActivityManager activityManager = ActivityManagerNative.getDefault();
-            if (activityManager.isInLockTaskMode()) {
-                activityManager.stopLockTaskModeOnCurrent();
+            if (mAccessibilityManager == null) {
+                mAccessibilityManager = (AccessibilityManager)
+                        mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
+            }
+            boolean isAccessiblityEnabled = mAccessibilityManager.isEnabled();
+            if (activityManager.isInLockTaskMode() && !isAccessiblityEnabled) {
+                long time = System.currentTimeMillis();
+                // If we recently long-pressed the other button then they were
+                // long-pressed 'together'
+                if ((time - mLastLockToAppLongPress) < LOCK_TO_APP_GESTURE_TOLERENCE) {
+                    activityManager.stopLockTaskModeOnCurrent();
+                } else if ((v.getId() == R.id.back)
+                        && !mNavigationBarView.getRecentsButton().isPressed()) {
+                    // If we aren't pressing recents right now then they presses
+                    // won't be together, so send the standard long-press action.
+                    sendBackLongPress = true;
+                }
+                mLastLockToAppLongPress = time;
+            } else {
+                // If this is back still need to handle sending the long-press event.
+                if (v.getId() == R.id.back) {
+                    sendBackLongPress = true;
+                } else if (isAccessiblityEnabled && activityManager.isInLockTaskMode()) {
+                    // When in accessibility mode a long press that is recents (not back)
+                    // should stop lock task.
+                    activityManager.stopLockTaskModeOnCurrent();
+                }
+            }
+            if (sendBackLongPress) {
+                KeyButtonView keyButtonView = (KeyButtonView) v;
+                keyButtonView.sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.FLAG_LONG_PRESS);
+                keyButtonView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
             }
         } catch (RemoteException e) {
-            Log.d(TAG, "Unable to toggle Lock-to-app", e);
+            Log.d(TAG, "Unable to reach activity manager", e);
         }
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index a9fc3d8..455c336 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -24,6 +24,7 @@
 import android.util.Log;
 import android.view.View;
 import android.view.ViewTreeObserver;
+import android.view.animation.AnimationUtils;
 import android.view.animation.DecelerateInterpolator;
 import android.view.animation.Interpolator;
 
@@ -38,7 +39,8 @@
     private static final boolean DEBUG = false;
 
     private static final float SCRIM_BEHIND_ALPHA = 0.62f;
-    private static final float SCRIM_BEHIND_ALPHA_KEYGUARD = 0.5f;
+    private static final float SCRIM_BEHIND_ALPHA_KEYGUARD = 0.55f;
+    private static final float SCRIM_BEHIND_ALPHA_UNLOCKING = 0.2f;
     private static final float SCRIM_IN_FRONT_ALPHA = 0.75f;
     private static final long ANIMATION_DURATION = 220;
     private static final int TAG_KEY_ANIM = R.id.scrim;
@@ -71,11 +73,14 @@
     private boolean mDozing;
     private int mPulsesRemaining;
     private final Interpolator mInterpolator = new DecelerateInterpolator();
+    private final Interpolator mLinearOutSlowInInterpolator;
 
     public ScrimController(View scrimBehind, View scrimInFront) {
         mScrimBehind = scrimBehind;
         mScrimInFront = scrimInFront;
         mUnlockMethodCache = UnlockMethodCache.getInstance(scrimBehind.getContext());
+        mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(scrimBehind.getContext(),
+                android.R.interpolator.linear_out_slow_in);
     }
 
     public void setKeyguardShowing(boolean showing) {
@@ -171,6 +176,8 @@
         if (mExpanding && mDarkenWhileDragging) {
             float behindFraction = Math.max(0, Math.min(mFraction, 1));
             float fraction = 1 - behindFraction;
+            fraction = (float) Math.pow(fraction, 0.8f);
+            behindFraction = (float) Math.pow(behindFraction, 0.8f);
             setScrimInFrontColor(fraction * SCRIM_IN_FRONT_ALPHA);
             setScrimBehindColor(behindFraction * SCRIM_BEHIND_ALPHA_KEYGUARD);
         } else if (mBouncerShowing) {
@@ -179,8 +186,11 @@
         } else if (mDozing) {
             setScrimInFrontColor(1);
         } else {
+            float fraction = Math.max(0, Math.min(mFraction, 1));
             setScrimInFrontColor(0f);
-            setScrimBehindColor(SCRIM_BEHIND_ALPHA_KEYGUARD);
+            setScrimBehindColor(fraction
+                    * (SCRIM_BEHIND_ALPHA_KEYGUARD - SCRIM_BEHIND_ALPHA_UNLOCKING)
+                    + SCRIM_BEHIND_ALPHA_UNLOCKING);
         }
     }
 
@@ -239,7 +249,9 @@
                 scrim.setBackgroundColor(Color.argb(value, 0, 0, 0));
             }
         });
-        anim.setInterpolator(mInterpolator);
+        anim.setInterpolator(mAnimateKeyguardFadingOut
+                ? mLinearOutSlowInInterpolator
+                : mInterpolator);
         anim.setStartDelay(mAnimationDelay);
         anim.setDuration(mDurationOverride != -1 ? mDurationOverride : ANIMATION_DURATION);
         anim.addListener(new AnimatorListenerAdapter() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java
index 0c62fd3..39b2022 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.statusbar.phone;
 
-import android.app.AlarmClockInfo;
+import android.app.AlarmManager;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
@@ -24,6 +24,7 @@
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.util.AttributeSet;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewOutlineProvider;
@@ -54,7 +55,7 @@
     private View mSystemIconsSuperContainer;
     private View mDateGroup;
     private View mClock;
-    private View mTime;
+    private TextView mTime;
     private View mAmPm;
     private MultiUserSwitch mMultiUserSwitch;
     private ImageView mMultiUserAvatar;
@@ -73,7 +74,7 @@
 
     private boolean mShowEmergencyCallsOnly;
     private boolean mAlarmShowing;
-    private AlarmClockInfo mNextAlarm;
+    private AlarmManager.AlarmClockInfo mNextAlarm;
 
     private int mCollapsedHeight;
     private int mExpandedHeight;
@@ -86,6 +87,9 @@
     private int mMultiUserSwitchWidthCollapsed;
     private int mMultiUserSwitchWidthExpanded;
 
+    private int mClockCollapsedSize;
+    private int mClockExpandedSize;
+
     /**
      * In collapsed QS, the clock and avatar are scaled down a bit post-layout to allow for a nice
      * transition. These values determine that factor.
@@ -121,7 +125,7 @@
         mSystemIconsSuperContainer.setOnClickListener(this);
         mDateGroup = findViewById(R.id.date_group);
         mClock = findViewById(R.id.clock);
-        mTime = findViewById(R.id.time_view);
+        mTime = (TextView) findViewById(R.id.time_view);
         mAmPm = findViewById(R.id.am_pm_view);
         mMultiUserSwitch = (MultiUserSwitch) findViewById(R.id.multi_user_switch);
         mMultiUserAvatar = (ImageView) findViewById(R.id.multi_user_avatar);
@@ -152,8 +156,6 @@
                 boolean rtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
                 mTime.setPivotX(rtl ? mTime.getWidth() : 0);
                 mTime.setPivotY(mTime.getBaseline());
-                mAmPm.setPivotX(rtl ? mAmPm.getWidth() : 0);
-                mAmPm.setPivotY(mAmPm.getBaseline());
                 updateAmPmTranslation();
             }
         });
@@ -206,9 +208,10 @@
         mAvatarCollapsedScaleFactor =
                 getResources().getDimensionPixelSize(R.dimen.multi_user_avatar_collapsed_size)
                 / (float) mMultiUserAvatar.getLayoutParams().width;
-        mClockCollapsedScaleFactor =
-                (float) getResources().getDimensionPixelSize(R.dimen.qs_time_collapsed_size)
-                / (float) getResources().getDimensionPixelSize(R.dimen.qs_time_expanded_size);
+        mClockCollapsedSize = getResources().getDimensionPixelSize(R.dimen.qs_time_collapsed_size);
+        mClockExpandedSize = getResources().getDimensionPixelSize(R.dimen.qs_time_expanded_size);
+        mClockCollapsedScaleFactor = (float) mClockCollapsedSize / (float) mClockExpandedSize;
+
     }
 
     public void setActivityStarter(ActivityStarter activityStarter) {
@@ -333,17 +336,14 @@
     }
 
     private void updateClockScale() {
-        mAmPm.setScaleX(mClockCollapsedScaleFactor);
-        mAmPm.setScaleY(mClockCollapsedScaleFactor);
-        mTime.setScaleX(getTimeScale());
-        mTime.setScaleY(getTimeScale());
+        mTime.setTextSize(TypedValue.COMPLEX_UNIT_PX, mExpanded
+                ? mClockExpandedSize
+                : mClockCollapsedSize);
+        mTime.setScaleX(1f);
+        mTime.setScaleY(1f);
         updateAmPmTranslation();
     }
 
-    private float getTimeScale() {
-        return !mExpanded ? mClockCollapsedScaleFactor : 1f;
-    }
-
     private void updateAmPmTranslation() {
         boolean rtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
         mAmPm.setTranslationX((rtl ? 1 : -1) * mTime.getWidth() * (1 - mTime.getScaleX()));
@@ -360,13 +360,13 @@
     }
 
     @Override
-    public void onNextAlarmChanged(AlarmClockInfo nextAlarm) {
+    public void onNextAlarmChanged(AlarmManager.AlarmClockInfo nextAlarm) {
         mNextAlarm = nextAlarm;
         if (nextAlarm != null) {
             mAlarmStatus.setText(KeyguardStatusView.formatNextAlarm(getContext(), nextAlarm));
         }
         mAlarmShowing = nextAlarm != null;
-        updateVisibilities();
+        updateEverything();
         requestCaptureValues();
     }
 
@@ -483,17 +483,19 @@
         } else if (v == mAlarmStatus && mNextAlarm != null) {
             PendingIntent showIntent = mNextAlarm.getShowIntent();
             if (showIntent != null && showIntent.isActivity()) {
-                mActivityStarter.startActivity(showIntent.getIntent());
+                mActivityStarter.startActivity(showIntent.getIntent(), true /* dismissShade */);
             }
         }
     }
 
     private void startSettingsActivity() {
-        mActivityStarter.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
+        mActivityStarter.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS),
+                true /* dismissShade */);
     }
 
     private void startBatteryActivity() {
-        mActivityStarter.startActivity(new Intent(Intent.ACTION_POWER_USAGE_SUMMARY));
+        mActivityStarter.startActivity(new Intent(Intent.ACTION_POWER_USAGE_SUMMARY),
+                true /* dismissShade */);
     }
 
     public void setQSPanel(QSPanel qsp) {
@@ -510,10 +512,13 @@
     }
 
     public void setShowEmergencyCallsOnly(boolean show) {
-        mShowEmergencyCallsOnly = show;
-        if (mExpanded) {
-            updateVisibilities();
-            requestCaptureValues();
+        boolean changed = show != mShowEmergencyCallsOnly;
+        if (changed) {
+            mShowEmergencyCallsOnly = show;
+            if (mExpanded) {
+                updateEverything();
+                requestCaptureValues();
+            }
         }
     }
 
@@ -524,8 +529,8 @@
     }
 
     private void captureLayoutValues(LayoutValues target) {
-        target.timeScale = mTime.getScaleX();
-        target.clockY = mClock.getTop();
+        target.timeScale = mExpanded ? 1f : mClockCollapsedScaleFactor;
+        target.clockY = mClock.getBottom();
         target.dateY = mDateGroup.getTop();
         target.emergencyCallsOnlyAlpha = getAlphaForVisibility(mEmergencyCallsOnly);
         target.alarmStatusAlpha = getAlphaForVisibility(mAlarmStatus);
@@ -550,7 +555,7 @@
     }
 
     private void applyAlpha(View v, float alpha) {
-        if (v == null) {
+        if (v == null || v.getVisibility() == View.GONE) {
             return;
         }
         if (alpha == 0f) {
@@ -564,7 +569,7 @@
     private void applyLayoutValues(LayoutValues values) {
         mTime.setScaleX(values.timeScale);
         mTime.setScaleY(values.timeScale);
-        mClock.setY(values.clockY);
+        mClock.setY(values.clockY - mClock.getHeight());
         mDateGroup.setY(values.dateY);
         mAlarmStatus.setY(values.dateY - mAlarmStatus.getPaddingTop());
         mMultiUserAvatar.setScaleX(values.avatarScale);
@@ -593,6 +598,10 @@
         applyAlpha(mBatteryLevel, values.batteryLevelAlpha);
         applyAlpha(mSettingsButton, values.settingsAlpha);
         applyAlpha(mSignalCluster, values.signalClusterAlpha);
+        if (!mExpanded) {
+            mTime.setScaleX(1f);
+            mTime.setScaleY(1f);
+        }
         updateAmPmTranslation();
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
index 6831933..f427ec4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
@@ -39,6 +39,10 @@
  * {@link com.android.keyguard.KeyguardViewBase}.
  */
 public class StatusBarKeyguardViewManager {
+
+    // When hiding the Keyguard with timing supplied from WindowManager, better be early than late.
+    private static final long HIDE_TIMING_CORRECTION_MS = -3 * 16;
+
     private static String TAG = "StatusBarKeyguardViewManager";
 
     private final Context mContext;
@@ -184,6 +188,7 @@
                             @Override
                             public void run() {
                                 mStatusBarWindowManager.setKeyguardOccluded(true);
+                                reset();
                             }
                         });
                 return;
@@ -199,13 +204,28 @@
     }
 
     /**
+     * Starts the animation before we dismiss Keyguard, i.e. an disappearing animation on the
+     * security view of the bouncer.
+     *
+     * @param finishRunnable the runnable to be run after the animation finished, or {@code null} if
+     *                       no action should be run
+     */
+    public void startPreHideAnimation(Runnable finishRunnable) {
+        if (mBouncer.isShowing()) {
+            mBouncer.startPreHideAnimation(finishRunnable);
+        } else if (finishRunnable != null) {
+            finishRunnable.run();
+        }
+    }
+
+    /**
      * Hides the keyguard view
      */
     public void hide(long startTime, final long fadeoutDuration) {
         mShowing = false;
 
         long uptimeMillis = SystemClock.uptimeMillis();
-        long delay = Math.max(0, startTime - uptimeMillis);
+        long delay = Math.max(0, startTime + HIDE_TIMING_CORRECTION_MS - uptimeMillis);
 
         if (mPhoneStatusBar.isInLaunchTransition() ) {
             mPhoneStatusBar.fadeKeyguardAfterLaunchTransition(new Runnable() {
@@ -213,8 +233,7 @@
                 public void run() {
                     mStatusBarWindowManager.setKeyguardShowing(false);
                     mStatusBarWindowManager.setKeyguardFadingAway(true);
-                    mBouncer.animateHide(PhoneStatusBar.FADE_KEYGUARD_START_DELAY,
-                            PhoneStatusBar.FADE_KEYGUARD_DURATION);
+                    mBouncer.hide(true /* destroyView */);
                     updateStates();
                     mScrimController.animateKeyguardFadingOut(
                             PhoneStatusBar.FADE_KEYGUARD_START_DELAY,
@@ -245,7 +264,7 @@
                 mPhoneStatusBar.finishKeyguardFadingAway();
             }
             mStatusBarWindowManager.setKeyguardShowing(false);
-            mBouncer.animateHide(delay, fadeoutDuration);
+            mBouncer.hide(true /* destroyView */);
             mViewMediatorCallback.keyguardGone();
             updateStates();
         }
@@ -345,4 +364,25 @@
     public boolean interceptMediaKey(KeyEvent event) {
         return mBouncer.interceptMediaKey(event);
     }
+
+    public void onActivityDrawn() {
+        if (mPhoneStatusBar.isCollapsing()) {
+            mPhoneStatusBar.addPostCollapseAction(new Runnable() {
+                @Override
+                public void run() {
+                    mViewMediatorCallback.readyForKeyguardDone();
+                }
+            });
+        } else {
+            mViewMediatorCallback.readyForKeyguardDone();
+        }
+    }
+
+    public boolean shouldDisableWindowAnimationsForUnlock() {
+        return mPhoneStatusBar.isInLaunchTransition();
+    }
+
+    public boolean isGoingToNotificationShade() {
+        return mPhoneStatusBar.isGoingToNotificationShade();
+    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 2c5bcb7..e1fd779 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -28,7 +28,6 @@
 import android.view.ViewRootImpl;
 import android.widget.FrameLayout;
 
-import com.android.systemui.ExpandHelper;
 import com.android.systemui.R;
 import com.android.systemui.statusbar.BaseStatusBar;
 import com.android.systemui.statusbar.DragDownHelper;
@@ -122,6 +121,7 @@
             MotionEvent cancellation = MotionEvent.obtain(ev);
             cancellation.setAction(MotionEvent.ACTION_CANCEL);
             mStackScrollLayout.onInterceptTouchEvent(cancellation);
+            mNotificationPanel.onInterceptTouchEvent(cancellation);
             cancellation.recycle();
         }
         return intercept;
@@ -130,7 +130,7 @@
     @Override
     public boolean onTouchEvent(MotionEvent ev) {
         boolean handled = false;
-        if (mService.getBarState() == StatusBarState.KEYGUARD) {
+        if (mService.getBarState() == StatusBarState.KEYGUARD && !mService.isQsExpanded()) {
             handled = mDragDownHelper.onTouchEvent(ev);
         }
         if (!handled) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
new file mode 100644
index 0000000..7bd2e5c
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar.policy;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
+import com.android.systemui.statusbar.phone.StatusBarWindowView;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewPropertyAnimator;
+import android.widget.FrameLayout;
+
+/**
+ * Controls showing and hiding of the brightness mirror.
+ */
+public class BrightnessMirrorController {
+
+    public long TRANSITION_DURATION_OUT = 150;
+    public long TRANSITION_DURATION_IN = 200;
+
+    private final View mScrimBehind;
+    private final View mBrightnessMirror;
+    private final View mPanelHolder;
+    private final int[] mInt2Cache = new int[2];
+
+    public BrightnessMirrorController(StatusBarWindowView statusBarWindow) {
+        mScrimBehind = statusBarWindow.findViewById(R.id.scrim_behind);
+        mBrightnessMirror = statusBarWindow.findViewById(R.id.brightness_mirror);
+        mPanelHolder = statusBarWindow.findViewById(R.id.panel_holder);
+    }
+
+    public void showMirror() {
+        mBrightnessMirror.setVisibility(View.VISIBLE);
+        outAnimation(mScrimBehind.animate());
+        outAnimation(mPanelHolder.animate())
+                .withLayer();
+    }
+
+    public void hideMirror() {
+        inAnimation(mScrimBehind.animate());
+        inAnimation(mPanelHolder.animate())
+                .withLayer()
+                .withEndAction(new Runnable() {
+            @Override
+            public void run() {
+                mBrightnessMirror.setVisibility(View.GONE);
+            }
+        });
+    }
+
+    private ViewPropertyAnimator outAnimation(ViewPropertyAnimator a) {
+        return a.alpha(0.0f)
+                .setDuration(TRANSITION_DURATION_OUT)
+                .setInterpolator(PhoneStatusBar.ALPHA_OUT);
+    }
+    private ViewPropertyAnimator inAnimation(ViewPropertyAnimator a) {
+        return a.alpha(1.0f)
+                .setDuration(TRANSITION_DURATION_IN)
+                .setInterpolator(PhoneStatusBar.ALPHA_IN);
+    }
+
+
+    public void setLocation(View original) {
+        original.getLocationInWindow(mInt2Cache);
+        int originalY = mInt2Cache[1];
+        mBrightnessMirror.getLocationInWindow(mInt2Cache);
+        int mirrorY = mInt2Cache[1];
+
+        mBrightnessMirror.setTranslationY(mBrightnessMirror.getTranslationY()
+                + originalY - mirrorY);
+    }
+
+    public View getMirror() {
+        return mBrightnessMirror;
+    }
+
+    public void updateResources() {
+        FrameLayout.LayoutParams lp =
+                (FrameLayout.LayoutParams) mBrightnessMirror.getLayoutParams();
+        lp.width = mBrightnessMirror.getResources().getDimensionPixelSize(
+                R.dimen.notification_panel_width);
+        lp.gravity = mBrightnessMirror.getResources().getInteger(
+                R.integer.notification_panel_layout_gravity);
+        mBrightnessMirror.setLayoutParams(lp);
+
+        int padding = mBrightnessMirror.getResources().getDimensionPixelSize(
+                R.dimen.notification_side_padding);
+        mBrightnessMirror.setPadding(padding, mBrightnessMirror.getPaddingTop(),
+                padding, mBrightnessMirror.getPaddingBottom());
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
index 330b599..e9581fc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java
@@ -56,12 +56,12 @@
         public void run() {
             if (isPressed()) {
                 // Log.d("KeyButtonView", "longpressed: " + this);
-                if (mCode != 0) {
-                    sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.FLAG_LONG_PRESS);
-                    sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
-                } else {
+                if (isLongClickable()) {
                     // Just an old-fashioned ImageView
                     performLongClick();
+                } else {
+                    sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.FLAG_LONG_PRESS);
+                    sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED);
                 }
             }
         }
@@ -216,7 +216,7 @@
         return true;
     }
 
-    void sendEvent(int action, int flags) {
+    public void sendEvent(int action, int flags) {
         sendEvent(action, flags, SystemClock.uptimeMillis());
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NextAlarmController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NextAlarmController.java
index ca71521..8f1f7c7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NextAlarmController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NextAlarmController.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.statusbar.policy;
 
-import android.app.AlarmClockInfo;
 import android.app.AlarmManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -33,7 +32,7 @@
     private final ArrayList<NextAlarmChangeCallback> mChangeCallbacks = new ArrayList<>();
 
     private AlarmManager mAlarmManager;
-    private AlarmClockInfo mNextAlarm;
+    private AlarmManager.AlarmClockInfo mNextAlarm;
 
     public NextAlarmController(Context context) {
         mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
@@ -79,6 +78,6 @@
     }
 
     public interface NextAlarmChangeCallback {
-        void onNextAlarmChanged(AlarmClockInfo nextAlarm);
+        void onNextAlarmChanged(AlarmManager.AlarmClockInfo nextAlarm);
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
index a1993f7..47e3e73 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java
@@ -113,6 +113,7 @@
      *
      * @param forcePictureLoadForId forces the picture of the given user to be reloaded.
      */
+    @SuppressWarnings("unchecked")
     private void refreshUsers(int forcePictureLoadForId) {
 
         SparseArray<Bitmap> bitmaps = new SparseArray<>(mUsers.size());
@@ -170,7 +171,7 @@
                 boolean canCreateGuest = (currentUserCanCreateUsers || anyoneCanCreateUsers)
                         && guestRecord == null;
                 boolean canCreateUser = (currentUserCanCreateUsers || anyoneCanCreateUsers)
-                        && records.size() < UserManager.getMaxSupportedUsers();
+                        && mUserManager.canAddMoreUsers();
                 boolean createIsRestricted = !addUsersWhenLocked;
 
                 if (!mSimpleUserSwitcher) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java
index 6c4fb7a..7d102ba 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeController.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.statusbar.policy;
 
-import android.net.Uri;
 import android.service.notification.Condition;
 
 public interface ZenModeController {
@@ -25,15 +24,15 @@
     void setZen(int zen);
     int getZen();
     void requestConditions(boolean request);
-    void setExitConditionId(Uri exitConditionId);
-    Uri getExitConditionId();
+    void setExitCondition(Condition exitCondition);
+    Condition getExitCondition();
     long getNextAlarm();
     void setUserId(int userId);
     boolean isZenAvailable();
 
     public static class Callback {
         public void onZenChanged(int zen) {}
-        public void onExitConditionChanged(Uri exitConditionId) {}
+        public void onExitConditionChanged(Condition exitCondition) {}
         public void onConditionsChanged(Condition[] conditions) {}
         public void onNextAlarmChanged() {}
         public void onZenAvailableChanged(boolean available) {}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java
index 9d3dec8..b0c8f26 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ZenModeControllerImpl.java
@@ -16,7 +16,6 @@
 
 package com.android.systemui.statusbar.policy;
 
-import android.app.AlarmClockInfo;
 import android.app.AlarmManager;
 import android.app.INotificationManager;
 import android.content.BroadcastReceiver;
@@ -123,20 +122,20 @@
     }
 
     @Override
-    public void setExitConditionId(Uri exitConditionId) {
+    public void setExitCondition(Condition exitCondition) {
         try {
-            mNoMan.setZenModeCondition(exitConditionId);
+            mNoMan.setZenModeCondition(exitCondition);
         } catch (RemoteException e) {
             // noop
         }
     }
 
     @Override
-    public Uri getExitConditionId() {
+    public Condition getExitCondition() {
         try {
             final ZenModeConfig config = mNoMan.getZenModeConfig();
             if (config != null) {
-                return config.exitConditionId;
+                return config.exitCondition;
             }
         } catch (RemoteException e) {
             // noop
@@ -146,7 +145,7 @@
 
     @Override
     public long getNextAlarm() {
-        final AlarmClockInfo info = mAlarmManager.getNextAlarmClock(mUserId);
+        final AlarmManager.AlarmClockInfo info = mAlarmManager.getNextAlarmClock(mUserId);
         return info != null ? info.getTriggerTime() : 0;
     }
 
@@ -187,10 +186,10 @@
     }
 
     private void fireExitConditionChanged() {
-        final Uri exitConditionId = getExitConditionId();
-        if (DEBUG) Slog.d(TAG, "exitConditionId changed: " + exitConditionId);
+        final Condition exitCondition = getExitCondition();
+        if (DEBUG) Slog.d(TAG, "exitCondition changed: " + exitCondition);
         for (Callback cb : mCallbacks) {
-            cb.onExitConditionChanged(exitConditionId);
+            cb.onExitConditionChanged(exitCondition);
         }
     }
 
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 d25dda1..1469d73 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -211,6 +211,15 @@
     public NotificationStackScrollLayout(Context context, AttributeSet attrs, int defStyleAttr,
             int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
+        int minHeight = getResources().getDimensionPixelSize(R.dimen.notification_min_height);
+        int maxHeight = getResources().getDimensionPixelSize(R.dimen.notification_max_height);
+        mExpandHelper = new ExpandHelper(getContext(), this,
+                minHeight, maxHeight);
+        mExpandHelper.setEventSource(this);
+        mExpandHelper.setScrollAdapter(this);
+
+        mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, getContext());
+        mSwipeHelper.setLongPressListener(mLongPressListener);
         initView(context);
         if (DEBUG) {
             setWillNotDraw(false);
@@ -248,10 +257,6 @@
         mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();
         mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();
         mOverflingDistance = configuration.getScaledOverflingDistance();
-        float densityScale = getResources().getDisplayMetrics().density;
-        float pagingTouchSlop = ViewConfiguration.get(getContext()).getScaledPagingTouchSlop();
-        mSwipeHelper = new SwipeHelper(SwipeHelper.X, this, getContext());
-        mSwipeHelper.setLongPressListener(mLongPressListener);
 
         mSidePaddings = context.getResources()
                 .getDimensionPixelSize(R.dimen.notification_side_padding);
@@ -266,12 +271,6 @@
         mPaddingBetweenElementsNormal = context.getResources()
                 .getDimensionPixelSize(R.dimen.notification_padding);
         updatePadding(mAmbientState.isDimmed());
-        int minHeight = getResources().getDimensionPixelSize(R.dimen.notification_min_height);
-        int maxHeight = getResources().getDimensionPixelSize(R.dimen.notification_max_height);
-        mExpandHelper = new ExpandHelper(getContext(), this,
-                minHeight, maxHeight);
-        mExpandHelper.setEventSource(this);
-        mExpandHelper.setScrollAdapter(this);
         mMinTopOverScrollToEscape = getResources().getDimensionPixelSize(
                 R.dimen.min_top_overscroll_to_qs);
         mNotificationTopPadding = getResources().getDimensionPixelSize(
@@ -281,7 +280,7 @@
     }
 
     private void updatePadding(boolean dimmed) {
-        mPaddingBetweenElements = dimmed
+        mPaddingBetweenElements = dimmed && mStackScrollAlgorithm.shouldScaleDimmed()
                 ? mPaddingBetweenElementsDimmed
                 : mPaddingBetweenElementsNormal;
         mBottomStackSlowDownHeight = mStackScrollAlgorithm.getBottomStackSlowDownLength();
@@ -1915,6 +1914,7 @@
     @Override
     public void onReset(ExpandableView view) {
         mRequestViewResizeAnimationOnLayout = true;
+        mStackScrollAlgorithm.onReset(view);
     }
 
     private void updateScrollPositionOnExpandInBottom(ExpandableView view) {
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 79a83db..fe855d9 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java
@@ -17,6 +17,7 @@
 package com.android.systemui.statusbar.stack;
 
 import android.content.Context;
+import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
@@ -73,6 +74,7 @@
     private int mCollapseSecondCardPadding;
     private boolean mIsSmallScreen;
     private int mMaxNotificationHeight;
+    private boolean mScaleDimmed;
 
     public StackScrollAlgorithm(Context context) {
         initConstants(context);
@@ -80,7 +82,7 @@
     }
 
     private void updatePadding(boolean dimmed) {
-        mPaddingBetweenElements = dimmed
+        mPaddingBetweenElements = dimmed && mScaleDimmed
                 ? mPaddingBetweenElementsDimmed
                 : mPaddingBetweenElementsNormal;
         mTopStackTotalSize = mTopStackSlowDownLength + mPaddingBetweenElements
@@ -125,8 +127,13 @@
                 R.dimen.notification_material_rounded_rect_radius);
         mCollapseSecondCardPadding = context.getResources().getDimensionPixelSize(
                 R.dimen.notification_collapse_second_card_padding);
+        mScaleDimmed = context.getResources().getDisplayMetrics().densityDpi
+                >= DisplayMetrics.DENSITY_XXHIGH;
     }
 
+    public boolean shouldScaleDimmed() {
+        return mScaleDimmed;
+    }
 
     public void getStackScrollState(AmbientState ambientState, StackScrollState resultState) {
         // The state of the local variables are saved in an algorithmState to easily subdivide it
@@ -271,7 +278,7 @@
             childViewState.dark = dark;
             childViewState.hideSensitive = hideSensitive;
             boolean isActivatedChild = activatedChild == child;
-            childViewState.scale = !dimmed || isActivatedChild
+            childViewState.scale = !mScaleDimmed || !dimmed || isActivatedChild
                     ? 1.0f
                     : DIMMED_SCALE;
             if (dimmed && activatedChild != null) {
@@ -385,11 +392,14 @@
 
                 // check if we are overlapping with the bottom stack
                 if (childViewState.yTranslation + childHeight + mPaddingBetweenElements
-                        >= bottomStackStart && !mIsExpansionChanging && i != 0) {
+                        >= bottomStackStart && !mIsExpansionChanging && i != 0 && mIsSmallScreen) {
                     // we just collapse this element slightly
                     int newSize = (int) Math.max(bottomStackStart - mPaddingBetweenElements -
                             childViewState.yTranslation, mCollapsedSize);
                     childViewState.height = newSize;
+                    updateStateForChildTransitioningInBottom(algorithmState, bottomStackStart,
+                            bottomPeekStart, childViewState.yTranslation, childViewState,
+                            childHeight);
                 }
                 clampPositionToBottomStackStart(childViewState, childViewState.height);
             } else if (nextYPosition >= bottomStackStart) {
@@ -748,39 +758,42 @@
                 // current height.
                 mFirstChildMaxHeight = mFirstChildWhileExpanding.getActualHeight();
             } else {
-
-                // We are expanding the shade, expand it to its full height.
-                if (!isMaxSizeInitialized(mFirstChildWhileExpanding)) {
-
-                    // This child was not layouted yet, wait for a layout pass
-                    mFirstChildWhileExpanding
-                            .addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
-                                @Override
-                                public void onLayoutChange(View v, int left, int top, int right,
-                                        int bottom, int oldLeft, int oldTop, int oldRight,
-                                        int oldBottom) {
-                                    if (mFirstChildWhileExpanding != null) {
-                                        mFirstChildMaxHeight = getMaxAllowedChildHeight(
-                                                mFirstChildWhileExpanding);
-                                    } else {
-                                        mFirstChildMaxHeight = 0;
-                                    }
-                                    v.removeOnLayoutChangeListener(this);
-                                }
-                            });
-                } else {
-                    mFirstChildMaxHeight = getMaxAllowedChildHeight(mFirstChildWhileExpanding);
-                }
+                updateFirstChildMaxSizeToMaxHeight();
             }
         } else {
             mFirstChildMaxHeight = 0;
         }
     }
 
+    private void updateFirstChildMaxSizeToMaxHeight() {
+        // We are expanding the shade, expand it to its full height.
+        if (!isMaxSizeInitialized(mFirstChildWhileExpanding)) {
+
+            // This child was not layouted yet, wait for a layout pass
+            mFirstChildWhileExpanding
+                    .addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+                        @Override
+                        public void onLayoutChange(View v, int left, int top, int right,
+                                int bottom, int oldLeft, int oldTop, int oldRight,
+                                int oldBottom) {
+                            if (mFirstChildWhileExpanding != null) {
+                                mFirstChildMaxHeight = getMaxAllowedChildHeight(
+                                        mFirstChildWhileExpanding);
+                            } else {
+                                mFirstChildMaxHeight = 0;
+                            }
+                            v.removeOnLayoutChangeListener(this);
+                        }
+                    });
+        } else {
+            mFirstChildMaxHeight = getMaxAllowedChildHeight(mFirstChildWhileExpanding);
+        }
+    }
+
     private boolean isMaxSizeInitialized(ExpandableView child) {
         if (child instanceof ExpandableNotificationRow) {
             ExpandableNotificationRow row = (ExpandableNotificationRow) child;
-            return row.isShowingLayoutLayouted();
+            return row.isMaxExpandHeightInitialized();
         }
         return child == null || child.getWidth() != 0;
     }
@@ -815,6 +828,12 @@
         updatePadding(dimmed);
     }
 
+    public void onReset(ExpandableView view) {
+        if (view.equals(mFirstChildWhileExpanding)) {
+            updateFirstChildMaxSizeToMaxHeight();
+        }
+    }
+
     class StackScrollAlgorithmState {
 
         /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
index 049add5..1b6a9e1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java
@@ -84,10 +84,6 @@
     }
 
     @Override
-    public void setHardKeyboardStatus(boolean available, boolean enabled) {
-    }
-
-    @Override
     public void toggleRecentApps() {
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
index 5233da2..b05c242 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
@@ -112,7 +112,8 @@
 
     // Pseudo stream type for master volume
     private static final int STREAM_MASTER = -100;
-    // Pseudo stream type for remote volume is defined in AudioService.STREAM_REMOTE_MUSIC
+    // Pseudo stream type for remote volume
+    private static final int STREAM_REMOTE_MUSIC = -200;
 
     private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
             .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
@@ -192,7 +193,7 @@
                 R.drawable.ic_audio_vol,
                 R.drawable.ic_audio_vol_mute,
                 false),
-        RemoteStream(AudioService.STREAM_REMOTE_MUSIC,
+        RemoteStream(STREAM_REMOTE_MUSIC,
                 R.string.volume_icon_description_media, //FIXME should have its own description
                 R.drawable.ic_media_route_on_holo_dark,
                 R.drawable.ic_media_route_disabled_holo_dark,
@@ -521,7 +522,7 @@
     private boolean isMuted(int streamType) {
         if (streamType == STREAM_MASTER) {
             return mAudioManager.isMasterMute();
-        } else if (streamType == AudioService.STREAM_REMOTE_MUSIC) {
+        } else if (streamType == STREAM_REMOTE_MUSIC) {
             // TODO do we need to support a distinct mute property for remote?
             return false;
         } else {
@@ -532,7 +533,7 @@
     private int getStreamMaxVolume(int streamType) {
         if (streamType == STREAM_MASTER) {
             return mAudioManager.getMasterMaxVolume();
-        } else if (streamType == AudioService.STREAM_REMOTE_MUSIC) {
+        } else if (streamType == STREAM_REMOTE_MUSIC) {
             if (mStreamControls != null) {
                 StreamControl sc = mStreamControls.get(streamType);
                 if (sc != null && sc.controller != null) {
@@ -549,7 +550,7 @@
     private int getStreamVolume(int streamType) {
         if (streamType == STREAM_MASTER) {
             return mAudioManager.getMasterVolume();
-        } else if (streamType == AudioService.STREAM_REMOTE_MUSIC) {
+        } else if (streamType == STREAM_REMOTE_MUSIC) {
             if (mStreamControls != null) {
                 StreamControl sc = mStreamControls.get(streamType);
                 if (sc != null && sc.controller != null) {
@@ -564,7 +565,7 @@
     }
 
     private void setStreamVolume(StreamControl sc, int index, int flags) {
-        if (sc.streamType == AudioService.STREAM_REMOTE_MUSIC) {
+        if (sc.streamType == STREAM_REMOTE_MUSIC) {
             if (sc.controller != null) {
                 sc.controller.setVolumeTo(index, flags);
             } else {
@@ -690,7 +691,7 @@
     private void updateSliderEnabled(final StreamControl sc, boolean muted, boolean fixedVolume) {
         final boolean wasEnabled = sc.seekbarView.isEnabled();
         final boolean isRinger = isNotificationOrRing(sc.streamType);
-        if (sc.streamType == AudioService.STREAM_REMOTE_MUSIC) {
+        if (sc.streamType == STREAM_REMOTE_MUSIC) {
             // never disable touch interactions for remote playback, the muting is not tied to
             // the state of the phone.
             sc.seekbarView.setEnabled(!fixedVolume);
@@ -805,7 +806,7 @@
 
     public void postRemoteSliderVisibility(boolean visible) {
         obtainMessage(MSG_SLIDER_VISIBILITY_CHANGED,
-                AudioService.STREAM_REMOTE_MUSIC, visible ? 1 : 0).sendToTarget();
+                STREAM_REMOTE_MUSIC, visible ? 1 : 0).sendToTarget();
     }
 
     /**
@@ -980,7 +981,7 @@
                 break;
             }
 
-            case AudioService.STREAM_REMOTE_MUSIC: {
+            case STREAM_REMOTE_MUSIC: {
                 if (controller == null && sc != null) {
                     // If we weren't passed one try using the last one set.
                     controller = sc.controller;
@@ -1003,7 +1004,7 @@
         }
 
         if (sc != null) {
-            if (streamType == AudioService.STREAM_REMOTE_MUSIC && controller != sc.controller) {
+            if (streamType == STREAM_REMOTE_MUSIC && controller != sc.controller) {
                 if (sc.controller != null) {
                     sc.controller.removeCallback(mMediaControllerCb);
                 }
@@ -1021,7 +1022,7 @@
         }
 
         if (!isShowing()) {
-            int stream = (streamType == AudioService.STREAM_REMOTE_MUSIC) ? -1 : streamType;
+            int stream = (streamType == STREAM_REMOTE_MUSIC) ? -1 : streamType;
             // when the stream is for remote playback, use -1 to reset the stream type evaluation
             mAudioManager.forceVolumeControlStream(stream);
             mDialog.show();
@@ -1031,7 +1032,7 @@
         }
 
         // Do a little vibrate if applicable (only when going into vibrate mode)
-        if ((streamType != AudioService.STREAM_REMOTE_MUSIC) &&
+        if ((streamType != STREAM_REMOTE_MUSIC) &&
                 ((flags & AudioManager.FLAG_VIBRATE) != 0) &&
                 mAudioManager.isStreamAffectedByRingerMode(streamType) &&
                 mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE) {
@@ -1094,10 +1095,10 @@
 
         if (((flags & AudioManager.FLAG_SHOW_UI) != 0) || isShowing()) {
             synchronized (this) {
-                if (mActiveStreamType != AudioService.STREAM_REMOTE_MUSIC) {
-                    reorderSliders(AudioService.STREAM_REMOTE_MUSIC);
+                if (mActiveStreamType != STREAM_REMOTE_MUSIC) {
+                    reorderSliders(STREAM_REMOTE_MUSIC);
                 }
-                onShowVolumeChanged(AudioService.STREAM_REMOTE_MUSIC, flags, controller);
+                onShowVolumeChanged(STREAM_REMOTE_MUSIC, flags, controller);
             }
         } else {
             if (LOGD) Log.d(mTag, "not calling onShowVolumeChanged(), no FLAG_SHOW_UI or no UI");
@@ -1111,9 +1112,9 @@
     protected void onRemoteVolumeUpdateIfShown() {
         if (LOGD) Log.d(mTag, "onRemoteVolumeUpdateIfShown()");
         if (isShowing()
-                && (mActiveStreamType == AudioService.STREAM_REMOTE_MUSIC)
+                && (mActiveStreamType == STREAM_REMOTE_MUSIC)
                 && (mStreamControls != null)) {
-            onShowVolumeChanged(AudioService.STREAM_REMOTE_MUSIC, 0, null);
+            onShowVolumeChanged(STREAM_REMOTE_MUSIC, 0, null);
         }
     }
 
@@ -1122,7 +1123,7 @@
      */
     private void clearRemoteStreamController() {
         if (mStreamControls != null) {
-            StreamControl sc = mStreamControls.get(AudioService.STREAM_REMOTE_MUSIC);
+            StreamControl sc = mStreamControls.get(STREAM_REMOTE_MUSIC);
             if (sc != null) {
                 if (sc.controller != null) {
                     sc.controller.removeCallback(mMediaControllerCb);
@@ -1133,10 +1134,10 @@
     }
 
     /**
-     * Handler for MSG_SLIDER_VISIBILITY_CHANGED
-     * Hide or show a slider
-     * @param streamType can be a valid stream type value, or VolumePanel.STREAM_MASTER,
-     *                   or AudioService.STREAM_REMOTE_MUSIC
+     * Handler for MSG_SLIDER_VISIBILITY_CHANGED Hide or show a slider
+     *
+     * @param streamType can be a valid stream type value, or
+     *            VolumePanel.STREAM_MASTER, or VolumePanel.STREAM_REMOTE_MUSIC
      * @param visible
      */
     synchronized protected void onSliderVisibilityChanged(int streamType, int visible) {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
index 04a3b88..0586a83 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
@@ -1,6 +1,5 @@
 package com.android.systemui.volume;
 
-import android.app.ActivityManagerNative;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -18,10 +17,12 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.Log;
+import android.view.WindowManagerGlobal;
 
 import com.android.systemui.R;
 import com.android.systemui.SystemUI;
 import com.android.systemui.keyguard.KeyguardViewMediator;
+import com.android.systemui.statusbar.phone.PhoneStatusBar;
 import com.android.systemui.statusbar.policy.ZenModeController;
 import com.android.systemui.statusbar.policy.ZenModeControllerImpl;
 
@@ -138,22 +139,8 @@
     private final Runnable mStartZenSettings = new Runnable() {
         @Override
         public void run() {
-            AsyncTask.execute(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        // Dismiss the lock screen when Settings starts.
-                        ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
-                    } catch (RemoteException e) {
-                    }
-                    final Intent intent = ZenModePanel.ZEN_SETTINGS;
-                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                    mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
-
-                    // dismiss shade if showing
-                    mContext.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
-                }
-            });
+            getComponent(PhoneStatusBar.class).startActivityDismissingKeyguard(
+                    ZenModePanel.ZEN_SETTINGS, true /* onlyProvisioned */, true /* dismissShade */);
             mPanel.postDismiss(mDismissDelay);
         }
     };
diff --git a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
index 0d837c7..c99e1fd 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/ZenModePanel.java
@@ -97,14 +97,16 @@
     private Callback mCallback;
     private ZenModeController mController;
     private boolean mRequestingConditions;
-    private Uri mExitConditionId;
+    private Condition mExitCondition;
+    private String mExitConditionText;
     private int mBucketIndex = -1;
     private boolean mExpanded;
     private boolean mHidden = false;
     private int mSessionZen;
-    private Uri mSessionExitConditionId;
-    private String mExitConditionText;
+    private Condition mSessionExitCondition;
     private long mNextAlarm;
+    private Condition[] mConditions;
+    private Condition mTimeCondition;
 
     public ZenModePanel(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -161,7 +163,7 @@
         super.onAttachedToWindow();
         if (DEBUG) Log.d(mTag, "onAttachedToWindow");
         mSessionZen = getSelectedZen(-1);
-        mSessionExitConditionId = mExitConditionId;
+        mSessionExitCondition = copy(mExitCondition);
         refreshExitConditionText();
         refreshNextAlarm();
         updateWidgets();
@@ -172,7 +174,7 @@
         super.onDetachedFromWindow();
         if (DEBUG) Log.d(mTag, "onDetachedFromWindow");
         mSessionZen = -1;
-        mSessionExitConditionId = null;
+        mSessionExitCondition = null;
         setExpanded(false);
     }
 
@@ -199,17 +201,16 @@
             mController.requestConditions(mRequestingConditions);
         }
         if (mRequestingConditions) {
-            Condition timeCondition = parseExistingTimeCondition(mExitConditionId);
-            if (timeCondition != null) {
+            mTimeCondition = parseExistingTimeCondition(mExitCondition);
+            if (mTimeCondition != null) {
                 mBucketIndex = -1;
             } else {
                 mBucketIndex = DEFAULT_BUCKET_INDEX;
-                timeCondition = newTimeCondition(MINUTE_BUCKETS[mBucketIndex]);
+                mTimeCondition = newTimeCondition(MINUTE_BUCKETS[mBucketIndex]);
             }
             if (DEBUG) Log.d(mTag, "Initial bucket index: " + mBucketIndex);
-            handleUpdateConditions(new Condition[0]);  // ensures forever exists
-            bind(timeCondition, mZenConditions.getChildAt(TIME_CONDITION_INDEX));
-            checkForDefault();
+            mConditions = null; // reset conditions
+            handleUpdateConditions();
         } else {
             mZenConditions.removeAllViews();
         }
@@ -217,31 +218,47 @@
 
     public void init(ZenModeController controller) {
         mController = controller;
-        setExitConditionId(mController.getExitConditionId());
+        setExitCondition(mController.getExitCondition());
         refreshExitConditionText();
         mSessionZen = getSelectedZen(-1);
         handleUpdateZen(mController.getZen());
-        if (DEBUG) Log.d(mTag, "init mExitConditionId=" + mExitConditionId);
+        if (DEBUG) Log.d(mTag, "init mExitCondition=" + mExitCondition);
         mZenConditions.removeAllViews();
         mController.addCallback(mZenCallback);
     }
 
-    private void setExitConditionId(Uri exitConditionId) {
-        if (Objects.equals(mExitConditionId, exitConditionId)) return;
-        mExitConditionId = exitConditionId;
+    private void setExitCondition(Condition exitCondition) {
+        if (sameConditionId(mExitCondition, exitCondition)) return;
+        mExitCondition = exitCondition;
         refreshExitConditionText();
         updateWidgets();
     }
 
+    private Uri getExitConditionId() {
+        return getConditionId(mExitCondition);
+    }
+
+    private static Uri getConditionId(Condition condition) {
+        return condition != null ? condition.id : null;
+    }
+
+    private static boolean sameConditionId(Condition lhs, Condition rhs) {
+        return lhs == null ? rhs == null : rhs != null && lhs.id.equals(rhs.id);
+    }
+
+    private static Condition copy(Condition condition) {
+        return condition == null ? null : condition.copy();
+    }
+
     private void refreshExitConditionText() {
         final String forever = mContext.getString(R.string.zen_mode_forever);
-        if (mExitConditionId == null) {
+        if (mExitCondition == null) {
             mExitConditionText = forever;
-        } else if (ZenModeConfig.isValidCountdownConditionId(mExitConditionId)) {
-            final Condition condition = parseExistingTimeCondition(mExitConditionId);
+        } else if (ZenModeConfig.isValidCountdownConditionId(mExitCondition.id)) {
+            final Condition condition = parseExistingTimeCondition(mExitCondition);
             mExitConditionText = condition != null ? condition.summary : forever;
         } else {
-            mExitConditionText = "(until condition ends)";  // TODO persist current description
+            mExitConditionText = mExitCondition.summary;
         }
     }
 
@@ -296,7 +313,7 @@
         mZenConditions.setVisibility(!zenOff && expanded ? VISIBLE : GONE);
         mAlarmWarning.setVisibility(zenNone && expanded && hasNextAlarm ? VISIBLE : GONE);
         if (showAlarmWarning) {
-            final long exitTime = ZenModeConfig.tryParseCountdownConditionId(mExitConditionId);
+            final long exitTime = ZenModeConfig.tryParseCountdownConditionId(getExitConditionId());
             final long now = System.currentTimeMillis();
             final boolean alarmToday = time(mNextAlarm).yearDay == time(now).yearDay;
             final String skeleton = (alarmToday ? "" : "E")
@@ -330,8 +347,9 @@
         return t;
     }
 
-    private Condition parseExistingTimeCondition(Uri conditionId) {
-        final long time = ZenModeConfig.tryParseCountdownConditionId(conditionId);
+    private Condition parseExistingTimeCondition(Condition condition) {
+        if (condition == null) return null;
+        final long time = ZenModeConfig.tryParseCountdownConditionId(condition.id);
         if (time == 0) return null;
         final long span = time - System.currentTimeMillis();
         if (span <= 0 || span > MAX_BUCKET_MINUTES * MINUTES_MS) return null;
@@ -365,15 +383,36 @@
     }
 
     private void handleUpdateConditions(Condition[] conditions) {
-        final int newCount = conditions == null ? 0 : conditions.length;
-        if (DEBUG) Log.d(mTag, "handleUpdateConditions newCount=" + newCount);
-        for (int i = mZenConditions.getChildCount(); i >= newCount + FIRST_CONDITION_INDEX; i--) {
+        mConditions = conditions;
+        handleUpdateConditions();
+    }
+
+    private void handleUpdateConditions() {
+        final int conditionCount = mConditions == null ? 0 : mConditions.length;
+        if (DEBUG) Log.d(mTag, "handleUpdateConditions conditionCount=" + conditionCount);
+        for (int i = mZenConditions.getChildCount() - 1; i >= FIRST_CONDITION_INDEX; i--) {
             mZenConditions.removeViewAt(i);
         }
+        // forever
         bind(null, mZenConditions.getChildAt(FOREVER_CONDITION_INDEX));
-        for (int i = 0; i < newCount; i++) {
-            bind(conditions[i], mZenConditions.getChildAt(FIRST_CONDITION_INDEX + i));
+        // countdown
+        bind(mTimeCondition, mZenConditions.getChildAt(TIME_CONDITION_INDEX));
+        // provider conditions
+        boolean foundDowntime = false;
+        for (int i = 0; i < conditionCount; i++) {
+            bind(mConditions[i], mZenConditions.getChildAt(FIRST_CONDITION_INDEX + i));
+            foundDowntime |= isDowntime(mConditions[i]);
         }
+        // ensure downtime exists, if active
+        if (isDowntime(mSessionExitCondition) && !foundDowntime) {
+            bind(mSessionExitCondition, null);
+        }
+        // ensure something is selected
+        checkForDefault();
+    }
+
+    private static boolean isDowntime(Condition c) {
+        return ZenModeConfig.isValidDowntimeConditionId(getConditionId(c));
     }
 
     private ConditionTag getConditionTagAt(int index) {
@@ -385,7 +424,7 @@
         for (int i = 0; i < mZenConditions.getChildCount(); i++) {
             if (getConditionTagAt(i).rb.isChecked()) {
                 if (DEBUG) Log.d(mTag, "Not selecting a default, checked="
-                        + getConditionTagAt(i).conditionId);
+                        + getConditionTagAt(i).condition);
                 return;
             }
         }
@@ -394,20 +433,20 @@
         if (favoriteIndex == -1) {
             getConditionTagAt(FOREVER_CONDITION_INDEX).rb.setChecked(true);
         } else {
-            final Condition c = newTimeCondition(MINUTE_BUCKETS[favoriteIndex]);
+            mTimeCondition = newTimeCondition(MINUTE_BUCKETS[favoriteIndex]);
             mBucketIndex = favoriteIndex;
-            bind(c, mZenConditions.getChildAt(TIME_CONDITION_INDEX));
+            bind(mTimeCondition, mZenConditions.getChildAt(TIME_CONDITION_INDEX));
             getConditionTagAt(TIME_CONDITION_INDEX).rb.setChecked(true);
         }
     }
 
-    private void handleExitConditionChanged(Uri exitCondition) {
-        setExitConditionId(exitCondition);
-        if (DEBUG) Log.d(mTag, "handleExitConditionChanged " + mExitConditionId);
+    private void handleExitConditionChanged(Condition exitCondition) {
+        setExitCondition(exitCondition);
+        if (DEBUG) Log.d(mTag, "handleExitConditionChanged " + mExitCondition);
         final int N = mZenConditions.getChildCount();
         for (int i = 0; i < N; i++) {
             final ConditionTag tag = getConditionTagAt(i);
-            tag.rb.setChecked(Objects.equals(tag.conditionId, exitCondition));
+            tag.rb.setChecked(sameConditionId(tag.condition, mExitCondition));
         }
     }
 
@@ -427,23 +466,23 @@
         if (tag.rb == null) {
             tag.rb = (RadioButton) row.findViewById(android.R.id.checkbox);
         }
-        tag.conditionId = condition != null ? condition.id : null;
+        tag.condition = condition;
         tag.rb.setEnabled(enabled);
-        if (mSessionExitConditionId != null && mSessionExitConditionId.equals(tag.conditionId)) {
+        if (sameConditionId(mSessionExitCondition, tag.condition)) {
             tag.rb.setChecked(true);
         }
         tag.rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                 if (mExpanded && isChecked) {
-                    if (DEBUG) Log.d(mTag, "onCheckedChanged " + tag.conditionId);
+                    if (DEBUG) Log.d(mTag, "onCheckedChanged " + tag.condition);
                     final int N = mZenConditions.getChildCount();
                     for (int i = 0; i < N; i++) {
                         ConditionTag childTag = getConditionTagAt(i);
                         if (childTag == tag) continue;
                         childTag.rb.setChecked(false);
                     }
-                    select(tag.conditionId);
+                    select(tag.condition);
                     fireInteraction();
                 }
             }
@@ -479,7 +518,7 @@
             }
         });
 
-        final long time = ZenModeConfig.tryParseCountdownConditionId(tag.conditionId);
+        final long time = ZenModeConfig.tryParseCountdownConditionId(getConditionId(tag.condition));
         if (time > 0) {
             if (mBucketIndex > -1) {
                 button1.setEnabled(mBucketIndex > 0);
@@ -504,7 +543,8 @@
         final int N = MINUTE_BUCKETS.length;
         if (mBucketIndex == -1) {
             // not on a known index, search for the next or prev bucket by time
-            final long time = ZenModeConfig.tryParseCountdownConditionId(tag.conditionId);
+            final Uri conditionId = getConditionId(tag.condition);
+            final long time = ZenModeConfig.tryParseCountdownConditionId(conditionId);
             final long now = System.currentTimeMillis();
             for (int i = 0; i < N; i++) {
                 int j = up ? i : N - 1 - i;
@@ -525,24 +565,25 @@
             mBucketIndex = Math.max(0, Math.min(N - 1, mBucketIndex + (up ? 1 : -1)));
             newCondition = newTimeCondition(MINUTE_BUCKETS[mBucketIndex]);
         }
-        bind(newCondition, row);
+        mTimeCondition = newCondition;
+        bind(mTimeCondition, row);
         tag.rb.setChecked(true);
-        select(newCondition.id);
+        select(mTimeCondition);
         fireInteraction();
     }
 
-    private void select(Uri conditionId) {
-        if (DEBUG) Log.d(mTag, "select " + conditionId);
+    private void select(Condition condition) {
+        if (DEBUG) Log.d(mTag, "select " + condition);
         if (mController != null) {
-            mController.setExitConditionId(conditionId);
+            mController.setExitCondition(condition);
         }
-        setExitConditionId(conditionId);
-        if (conditionId == null) {
+        setExitCondition(condition);
+        if (condition == null) {
             mFavorites.setMinuteIndex(-1);
-        } else if (ZenModeConfig.isValidCountdownConditionId(conditionId) && mBucketIndex != -1) {
+        } else if (ZenModeConfig.isValidCountdownConditionId(condition.id) && mBucketIndex != -1) {
             mFavorites.setMinuteIndex(mBucketIndex);
         }
-        mSessionExitConditionId = conditionId;
+        mSessionExitCondition = copy(condition);
     }
 
     private void fireMoreSettings() {
@@ -574,8 +615,8 @@
         }
 
         @Override
-        public void onExitConditionChanged(Uri exitConditionId) {
-            mHandler.obtainMessage(H.EXIT_CONDITION_CHANGED, exitConditionId).sendToTarget();
+        public void onExitConditionChanged(Condition exitCondition) {
+            mHandler.obtainMessage(H.EXIT_CONDITION_CHANGED, exitCondition).sendToTarget();
         }
 
         @Override
@@ -598,9 +639,8 @@
         public void handleMessage(Message msg) {
             if (msg.what == UPDATE_CONDITIONS) {
                 handleUpdateConditions((Condition[]) msg.obj);
-                checkForDefault();
             } else if (msg.what == EXIT_CONDITION_CHANGED) {
-                handleExitConditionChanged((Uri) msg.obj);
+                handleExitConditionChanged((Condition) msg.obj);
             } else if (msg.what == UPDATE_ZEN) {
                 handleUpdateZen(msg.arg1);
             } else if (msg.what == NEXT_ALARM_CHANGED) {
@@ -618,7 +658,7 @@
     // used as the view tag on condition rows
     private static class ConditionTag {
         RadioButton rb;
-        Uri conditionId;
+        Condition condition;
     }
 
     private final class Favorites implements OnSharedPreferenceChangeListener {
diff --git a/packages/VpnDialogs/res/values-in/strings.xml b/packages/VpnDialogs/res/values-in/strings.xml
index 2848f83..1b5d03a 100644
--- a/packages/VpnDialogs/res/values-in/strings.xml
+++ b/packages/VpnDialogs/res/values-in/strings.xml
@@ -26,5 +26,5 @@
     <string name="duration" msgid="3584782459928719435">"Durasi:"</string>
     <string name="data_transmitted" msgid="7988167672982199061">"Terkirim:"</string>
     <string name="data_received" msgid="4062776929376067820">"Diterima:"</string>
-    <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> byte / <xliff:g id="NUMBER_1">%2$s</xliff:g> paket"</string>
+    <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> bita / <xliff:g id="NUMBER_1">%2$s</xliff:g> paket"</string>
 </resources>
diff --git a/packages/VpnDialogs/res/values-my-rMM/strings.xml b/packages/VpnDialogs/res/values-my-rMM/strings.xml
index b5c0e16..c2aec1d 100644
--- a/packages/VpnDialogs/res/values-my-rMM/strings.xml
+++ b/packages/VpnDialogs/res/values-my-rMM/strings.xml
@@ -17,12 +17,12 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="prompt" msgid="8359175999006833462">"<xliff:g id="APP">%s</xliff:g> သည်VPNဆက်သွယ်မှုရရှိရန်ကြိုးစားနေသည်"</string>
-    <string name="warning" msgid="5470743576660160079">"ရှေ့ဆက်လုပ်ဆောင်ခြင်းအားဖြင့် အပ်ပလီကေးရှင်းအား ကွန်ယက်အသွားအလာအားကြားဖြတ်စေရန် ခွင့်ပြုခြင်းဖြစ်သည်။"<b>"အပ်ပလီကေးရှင်းအား မယုံကြည်သရွေ့ လက်မခံပါနှင့်"</b>" သို့မဟုတ်လျှင် မလိုလားအပ်သောဆော့ဖ်ဝဲမှ သင့်ဒေတာများအားအပေးအယူလုပ်နိုင်စေရန် ဘေးအန္တရာယ်ရှိပါသည်"</string>
+    <string name="warning" msgid="5470743576660160079">"ရှေ့ဆက်လုပ်ဆောင်ခြင်းအားဖြင့် အပ်ပလီကေးရှင်းအား ကွန်ယက်အသွားအလာအားကြားဖြတ်စေရန် ခွင့်ပြုခြင်းဖြစ်သည်။"<b>"အပ်ပလီကေးရှင်းအား မယုံကြည်သရွေ့ လက်မခံပါနှင့်"</b>" သို့မဟုတ်လျှင် မလိုလားအပ်သောဆော့ဖ်ဝဲမှ သင့်ဒေတာများအားအပေးအယူလုပ်နိုင်စေရန် ဘေးအန္တရာယ်ရှိပါသည်"</string>
     <string name="accept" msgid="2889226408765810173">"ဤအပ်ပလီကေးရှင်းအားယုံကြည်ပါသည်"</string>
-    <string name="legacy_title" msgid="192936250066580964">"VPNနှင့်ချိတ်ဆက်ထားသည်"</string>
+    <string name="legacy_title" msgid="192936250066580964">"VPNနှင့်ချိတ်ဆက်ထားသည်"</string>
     <string name="configure" msgid="4905518375574791375">"ပုံပေါ်စေသည်"</string>
     <string name="disconnect" msgid="971412338304200056">"ချိတ်ဆက်ခြင်းရပ်ရန်"</string>
-    <string name="session" msgid="6470628549473641030">"သတ်မှတ်ပေးထားသည့်အချိန်:"</string>
+    <string name="session" msgid="6470628549473641030">"သတ်မှတ်ပေးထားသည့်အချိန်:"</string>
     <string name="duration" msgid="3584782459928719435">"အချိန်ကာလ-"</string>
     <string name="data_transmitted" msgid="7988167672982199061">"ပို့သည်-"</string>
     <string name="data_received" msgid="4062776929376067820">"လက်ခံရရှိသည်"</string>
diff --git a/packages/VpnDialogs/res/values-zh-rCN/strings.xml b/packages/VpnDialogs/res/values-zh-rCN/strings.xml
index ed844ad..b175d0c 100644
--- a/packages/VpnDialogs/res/values-zh-rCN/strings.xml
+++ b/packages/VpnDialogs/res/values-zh-rCN/strings.xml
@@ -16,10 +16,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="prompt" msgid="8359175999006833462">"“<xliff:g id="APP">%s</xliff:g>”尝试创建 VPN 连接。"</string>
+    <string name="prompt" msgid="8359175999006833462">"<xliff:g id="APP">%s</xliff:g>尝试创建VPN连接。"</string>
     <string name="warning" msgid="5470743576660160079">"继续操作即表示您授予此应用拦截所有网络流量的权限。"<b>"除非您信任此应用,否则请勿接受此请求。"</b>"如果您在不信任该应用的情况下接受了此请求,则可能会面临数据遭到恶意软件盗用的风险。"</string>
     <string name="accept" msgid="2889226408765810173">"我信任此应用。"</string>
-    <string name="legacy_title" msgid="192936250066580964">"已连接 VPN"</string>
+    <string name="legacy_title" msgid="192936250066580964">"已连接VPN"</string>
     <string name="configure" msgid="4905518375574791375">"配置"</string>
     <string name="disconnect" msgid="971412338304200056">"断开连接"</string>
     <string name="session" msgid="6470628549473641030">"会话:"</string>
diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java
index 56a8f7c..da8ec2a 100644
--- a/policy/src/com/android/internal/policy/impl/GlobalActions.java
+++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java
@@ -283,7 +283,7 @@
                 addUsersToMenu(mItems);
             } else if (GLOBAL_ACTION_KEY_SETTINGS.equals(actionKey)) {
                 mItems.add(getSettingsAction());
-            } else if (GLOBAL_ACTION_KEY_LOCKDOWN.equals(actionKey) && hasTrustAgents()) {
+            } else if (GLOBAL_ACTION_KEY_LOCKDOWN.equals(actionKey)) {
                 mItems.add(getLockdownAction());
             } else {
                 Log.e(TAG, "Invalid global action key " + actionKey);
@@ -323,11 +323,6 @@
         return dialog;
     }
 
-    private boolean hasTrustAgents() {
-        // TODO: Add implementation.
-        return true;
-    }
-
     private final class PowerAction extends SinglePressAction implements LongPressAction {
         private PowerAction() {
             super(com.android.internal.R.drawable.ic_lock_power_off,
diff --git a/policy/src/com/android/internal/policy/impl/LogDecelerateInterpolator.java b/policy/src/com/android/internal/policy/impl/LogDecelerateInterpolator.java
new file mode 100644
index 0000000..1f3e1de
--- /dev/null
+++ b/policy/src/com/android/internal/policy/impl/LogDecelerateInterpolator.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.internal.policy.impl;
+
+import android.view.animation.Interpolator;
+
+public class LogDecelerateInterpolator implements Interpolator {
+
+    private int mBase;
+    private int mDrift;
+    private final float mLogScale;
+
+    public LogDecelerateInterpolator(int base, int drift) {
+        mBase = base;
+        mDrift = drift;
+
+        mLogScale = 1f / computeLog(1, mBase, mDrift);
+    }
+
+    private static float computeLog(float t, int base, int drift) {
+        return (float) -Math.pow(base, -t) + 1 + (drift * t);
+    }
+
+    @Override
+    public float getInterpolation(float t) {
+        return computeLog(t, mBase, mDrift) * mLogScale;
+    }
+}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 14f6c5a..3f7c72e 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -99,7 +99,9 @@
 import android.view.WindowManagerPolicy;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
+import android.view.animation.AlphaAnimation;
 import android.view.animation.Animation;
+import android.view.animation.AnimationSet;
 import android.view.animation.AnimationUtils;
 
 import com.android.internal.R;
@@ -528,6 +530,9 @@
     private final SparseArray<KeyCharacterMap.FallbackAction> mFallbackActions =
             new SparseArray<KeyCharacterMap.FallbackAction>();
 
+    private final LogDecelerateInterpolator mLogDecelerateInterpolator
+            = new LogDecelerateInterpolator(100, 0);
+
     private static final int MSG_ENABLE_POINTER_LOCATION = 1;
     private static final int MSG_DISABLE_POINTER_LOCATION = 2;
     private static final int MSG_DISPATCH_MEDIA_KEY_WITH_WAKE_LOCK = 3;
@@ -840,16 +845,16 @@
                 break;
             case SHORT_PRESS_POWER_GO_TO_SLEEP:
                 mPowerManager.goToSleep(eventTime,
-                        PowerManager.GO_TO_SLEEP_REASON_USER, 0);
+                        PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
                 break;
             case SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP:
                 mPowerManager.goToSleep(eventTime,
-                        PowerManager.GO_TO_SLEEP_REASON_USER,
+                        PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON,
                         PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
                 break;
             case SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP_AND_GO_HOME:
                 mPowerManager.goToSleep(eventTime,
-                        PowerManager.GO_TO_SLEEP_REASON_USER,
+                        PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON,
                         PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
                 launchHomeFromHotKey();
                 break;
@@ -2059,9 +2064,38 @@
     }
 
     @Override
-    public Animation createForceHideEnterAnimation(boolean onWallpaper) {
-        return AnimationUtils.loadAnimation(mContext,
-                com.android.internal.R.anim.lock_screen_behind_enter);
+    public Animation createForceHideEnterAnimation(boolean onWallpaper,
+            boolean goingToNotificationShade) {
+        if (goingToNotificationShade) {
+            return AnimationUtils.loadAnimation(mContext, R.anim.lock_screen_behind_enter_fade_in);
+        } else if (onWallpaper) {
+            Animation a = AnimationUtils.loadAnimation(mContext,
+                    R.anim.lock_screen_behind_enter_wallpaper);
+            AnimationSet set = (AnimationSet) a;
+
+            // TODO: Use XML interpolators when we have log interpolators available in XML.
+            set.getAnimations().get(0).setInterpolator(mLogDecelerateInterpolator);
+            set.getAnimations().get(1).setInterpolator(mLogDecelerateInterpolator);
+            return set;
+        } else {
+            Animation a = AnimationUtils.loadAnimation(mContext,
+                    R.anim.lock_screen_behind_enter);
+            AnimationSet set = (AnimationSet) a;
+
+            // TODO: Use XML interpolators when we have log interpolators available in XML.
+            set.getAnimations().get(0).setInterpolator(mLogDecelerateInterpolator);
+            return set;
+        }
+    }
+
+
+    @Override
+    public Animation createForceHideWallpaperExitAnimation(boolean goingToNotificationShade) {
+        if (goingToNotificationShade) {
+            return null;
+        } else {
+            return AnimationUtils.loadAnimation(mContext, R.anim.lock_screen_wallpaper_exit);
+        }
     }
 
     private static void awakenDreams() {
@@ -4262,7 +4296,8 @@
                         }
                         if ((mEndcallBehavior
                                 & Settings.System.END_BUTTON_BEHAVIOR_SLEEP) != 0) {
-                            mPowerManager.goToSleep(event.getEventTime());
+                            mPowerManager.goToSleep(event.getEventTime(),
+                                    PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
                             isWakeKey = false;
                         }
                     }
@@ -4319,7 +4354,8 @@
                 if (!mPowerManager.isInteractive()) {
                     useHapticFeedback = false; // suppress feedback if already non-interactive
                 }
-                mPowerManager.goToSleep(event.getEventTime());
+                mPowerManager.goToSleep(event.getEventTime(),
+                        PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON, 0);
                 isWakeKey = false;
                 break;
             }
@@ -4738,13 +4774,19 @@
             mHandler.post(new Runnable() {
                 @Override
                 public void run() {
-                    if (mKeyguardDelegate.isDismissable()) {
-                        // Can we just finish the keyguard straight away?
-                        mKeyguardDelegate.keyguardDone(false, true);
-                    } else {
-                        // ask the keyguard to prompt the user to authenticate if necessary
-                        mKeyguardDelegate.dismiss();
-                    }
+                    // ask the keyguard to prompt the user to authenticate if necessary
+                    mKeyguardDelegate.dismiss();
+                }
+            });
+        }
+    }
+
+    public void notifyActivityDrawnForKeyguardLw() {
+        if (mKeyguardDelegate != null) {
+            mHandler.post(new Runnable() {
+                @Override
+                public void run() {
+                    mKeyguardDelegate.onActivityDrawn();
                 }
             });
         }
@@ -5218,7 +5260,7 @@
     private void applyLidSwitchState() {
         if (mLidState == LID_CLOSED && mLidControlsSleep) {
             mPowerManager.goToSleep(SystemClock.uptimeMillis(),
-                    PowerManager.GO_TO_SLEEP_REASON_USER,
+                    PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH,
                     PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE);
         }
 
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
index 63a5850..aac02ad 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
@@ -334,4 +334,9 @@
         mKeyguardState.bootCompleted = true;
     }
 
+    public void onActivityDrawn() {
+        if (mKeyguardService != null) {
+            mKeyguardService.onActivityDrawn();
+        }
+    }
 }
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
index 5096bd3..2778b15 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceWrapper.java
@@ -198,6 +198,14 @@
         }
     }
 
+    public void onActivityDrawn() {
+        try {
+            mService.onActivityDrawn();
+        } catch (RemoteException e) {
+            Slog.w(TAG , "Remote Exception", e);
+        }
+    }
+
     public void showAssistant() {
         // Not used by PhoneWindowManager
     }
diff --git a/rs/java/android/renderscript/Allocation.java b/rs/java/android/renderscript/Allocation.java
index ac76ddf..7db85f2 100644
--- a/rs/java/android/renderscript/Allocation.java
+++ b/rs/java/android/renderscript/Allocation.java
@@ -1341,9 +1341,13 @@
      * @param dimX The new size of the allocation.
      *
      * @deprecated RenderScript objects should be immutable once created.  The
-     * replacement is to create a new allocation and copy the contents.
+     * replacement is to create a new allocation and copy the contents. This
+     * function will throw an exception if API 21 or higher is used.
      */
     public synchronized void resize(int dimX) {
+        if (mRS.getApplicationContext().getApplicationInfo().targetSdkVersion >= 21) {
+            throw new RSRuntimeException("Resize is not allowed in API 21+.");
+        }
         if ((mType.getY() > 0)|| (mType.getZ() > 0) || mType.hasFaces() || mType.hasMipmaps()) {
             throw new RSInvalidStateException("Resize only support for 1D allocations at this time.");
         }
diff --git a/services/appwidget/Android.mk b/services/appwidget/Android.mk
index ca38f2f..e9bab4a 100644
--- a/services/appwidget/Android.mk
+++ b/services/appwidget/Android.mk
@@ -7,4 +7,6 @@
 LOCAL_SRC_FILES += \
       $(call all-java-files-under,java)
 
+LOCAL_JAVA_LIBRARIES := services.core
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
index b2d1b71..c44474d 100644
--- a/services/backup/java/com/android/server/backup/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -8599,7 +8599,15 @@
             skip = true;
         }
 
-        if (!skip && mAutoRestore && mProvisioned) {
+        if (!mAutoRestore || !mProvisioned) {
+            if (DEBUG) {
+                Slog.w(TAG, "Non-restorable state: auto=" + mAutoRestore
+                        + " prov=" + mProvisioned);
+            }
+            skip = true;
+        }
+
+        if (!skip) {
             try {
                 // okay, we're going to attempt a restore of this package from this restore set.
                 // The eventual message back into the Package Manager to run the post-install
@@ -8632,7 +8640,7 @@
         if (skip) {
             // Auto-restore disabled or no way to attempt a restore; just tell the Package
             // Manager to proceed with the post-install handling for this package.
-            if (DEBUG) Slog.v(TAG, "Skipping");
+            if (DEBUG) Slog.v(TAG, "Finishing install immediately");
             try {
                 mPackageManagerBinder.finishPackageInstall(token);
             } catch (RemoteException e) { /* can't happen */ }
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index 21e56702..e9419ad 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -19,7 +19,6 @@
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
-import android.app.AlarmClockInfo;
 import android.app.AlarmManager;
 import android.app.IAlarmManager;
 import android.app.PendingIntent;
@@ -129,14 +128,17 @@
     long mStartCurrentDelayTime;
     long mNextNonWakeupDeliveryTime;
 
-    private final SparseArray<AlarmClockInfo> mNextAlarmClockForUser = new SparseArray<>();
-    private final SparseArray<AlarmClockInfo> mTmpSparseAlarmClockArray = new SparseArray<>();
+    private final SparseArray<AlarmManager.AlarmClockInfo> mNextAlarmClockForUser =
+            new SparseArray<>();
+    private final SparseArray<AlarmManager.AlarmClockInfo> mTmpSparseAlarmClockArray =
+            new SparseArray<>();
     private final SparseBooleanArray mPendingSendNextAlarmClockChangedForUser =
             new SparseBooleanArray();
     private boolean mNextAlarmClockMayChange;
 
     // May only use on mHandler's thread, locking not required.
-    private final SparseArray<AlarmClockInfo> mHandlerSparseAlarmClockArray = new SparseArray<>();
+    private final SparseArray<AlarmManager.AlarmClockInfo> mHandlerSparseAlarmClockArray =
+            new SparseArray<>();
 
     class WakeupEvent {
         public long when;
@@ -619,7 +621,7 @@
 
     void setImpl(int type, long triggerAtTime, long windowLength, long interval,
             PendingIntent operation, boolean isStandalone, WorkSource workSource,
-            AlarmClockInfo alarmClock) {
+            AlarmManager.AlarmClockInfo alarmClock) {
         if (operation == null) {
             Slog.w(TAG, "set/setRepeating ignored because there is no intent");
             return;
@@ -672,7 +674,8 @@
 
     private void setImplLocked(int type, long when, long whenElapsed, long windowLength,
             long maxWhen, long interval, PendingIntent operation, boolean isStandalone,
-            boolean doValidate, WorkSource workSource, AlarmClockInfo alarmClock, int userId) {
+            boolean doValidate, WorkSource workSource, AlarmManager.AlarmClockInfo alarmClock,
+            int userId) {
         Alarm a = new Alarm(type, when, whenElapsed, windowLength, maxWhen, interval,
                 operation, workSource, alarmClock, userId);
         removeLocked(operation);
@@ -714,7 +717,8 @@
     private final IBinder mService = new IAlarmManager.Stub() {
         @Override
         public void set(int type, long triggerAtTime, long windowLength, long interval,
-                PendingIntent operation, WorkSource workSource, AlarmClockInfo alarmClock) {
+                PendingIntent operation, WorkSource workSource,
+                AlarmManager.AlarmClockInfo alarmClock) {
             if (workSource != null) {
                 getContext().enforceCallingPermission(
                         android.Manifest.permission.UPDATE_DEVICE_STATS,
@@ -762,7 +766,7 @@
         }
 
         @Override
-        public AlarmClockInfo getNextAlarmClock(int userId) {
+        public AlarmManager.AlarmClockInfo getNextAlarmClock(int userId) {
             userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
                     Binder.getCallingUid(), userId, false /* allowAll */, false /* requireFull */,
                     "getNextAlarmClock", null);
@@ -1009,7 +1013,7 @@
         return null;
     }
 
-    private AlarmClockInfo getNextAlarmClockImpl(int userId) {
+    private AlarmManager.AlarmClockInfo getNextAlarmClockImpl(int userId) {
         synchronized (mLock) {
             return mNextAlarmClockForUser.get(userId);
         }
@@ -1024,7 +1028,7 @@
         }
         mNextAlarmClockMayChange = false;
 
-        SparseArray<AlarmClockInfo> nextForUser = mTmpSparseAlarmClockArray;
+        SparseArray<AlarmManager.AlarmClockInfo> nextForUser = mTmpSparseAlarmClockArray;
         nextForUser.clear();
 
         final int N = mAlarmBatches.size();
@@ -1054,9 +1058,9 @@
         // Update mNextAlarmForUser with new values.
         final int NN = nextForUser.size();
         for (int i = 0; i < NN; i++) {
-            AlarmClockInfo newAlarm = nextForUser.valueAt(i);
+            AlarmManager.AlarmClockInfo newAlarm = nextForUser.valueAt(i);
             int userId = nextForUser.keyAt(i);
-            AlarmClockInfo currentAlarm = mNextAlarmClockForUser.get(userId);
+            AlarmManager.AlarmClockInfo currentAlarm = mNextAlarmClockForUser.get(userId);
             if (!newAlarm.equals(currentAlarm)) {
                 updateNextAlarmInfoForUserLocked(userId, newAlarm);
             }
@@ -1072,7 +1076,8 @@
         }
     }
 
-    private void updateNextAlarmInfoForUserLocked(int userId, AlarmClockInfo alarmClock) {
+    private void updateNextAlarmInfoForUserLocked(int userId,
+            AlarmManager.AlarmClockInfo alarmClock) {
         if (alarmClock != null) {
             if (DEBUG_ALARM_CLOCK) {
                 Log.v(TAG, "Next AlarmClockInfoForUser(" + userId + "): " +
@@ -1100,7 +1105,7 @@
      * @see AlarmHandler#SEND_NEXT_ALARM_CLOCK_CHANGED
      */
     private void sendNextAlarmClockChanged() {
-        SparseArray<AlarmClockInfo> pendingUsers = mHandlerSparseAlarmClockArray;
+        SparseArray<AlarmManager.AlarmClockInfo> pendingUsers = mHandlerSparseAlarmClockArray;
         pendingUsers.clear();
 
         synchronized (mLock) {
@@ -1115,7 +1120,7 @@
         final int N = pendingUsers.size();
         for (int i = 0; i < N; i++) {
             int userId = pendingUsers.keyAt(i);
-            AlarmClockInfo alarmClock = pendingUsers.valueAt(i);
+            AlarmManager.AlarmClockInfo alarmClock = pendingUsers.valueAt(i);
             Settings.System.putStringForUser(getContext().getContentResolver(),
                     Settings.System.NEXT_ALARM_FORMATTED,
                     formatNextAlarm(getContext(), alarmClock),
@@ -1129,7 +1134,7 @@
     /**
      * Formats an alarm like platform/packages/apps/DeskClock used to.
      */
-    private static String formatNextAlarm(final Context context, AlarmClockInfo info) {
+    private static String formatNextAlarm(final Context context, AlarmManager.AlarmClockInfo info) {
         String skeleton = DateFormat.is24HourFormat(context) ? "EHm" : "Ehma";
         String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), skeleton);
         return (info == null) ? "" :
@@ -1414,12 +1419,12 @@
         public long whenElapsed;    // 'when' in the elapsed time base
         public long maxWhen;        // also in the elapsed time base
         public long repeatInterval;
-        public final AlarmClockInfo alarmClock;
+        public final AlarmManager.AlarmClockInfo alarmClock;
         public final int userId;
 
         public Alarm(int _type, long _when, long _whenElapsed, long _windowLength, long _maxWhen,
-                long _interval, PendingIntent _op, WorkSource _ws, AlarmClockInfo _info,
-                int _userId) {
+                long _interval, PendingIntent _op, WorkSource _ws,
+                AlarmManager.AlarmClockInfo _info, int _userId) {
             type = _type;
             wakeup = _type == AlarmManager.ELAPSED_REALTIME_WAKEUP
                     || _type == AlarmManager.RTC_WAKEUP;
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index 08cb791..5bef4bf 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -264,6 +264,8 @@
     private INetworkManagementService mNetd;
     private INetworkPolicyManager mPolicyManager;
 
+    private String mCurrentTcpBufferSizes;
+
     private static final int ENABLED  = 1;
     private static final int DISABLED = 0;
 
@@ -372,6 +374,11 @@
      */
     private static final int EVENT_EXPIRE_NET_TRANSITION_WAKELOCK = 24;
 
+    /**
+     * Used internally to indicate the system is ready.
+     */
+    private static final int EVENT_SYSTEM_READY = 25;
+
 
     /** Handler used for internal events. */
     final private InternalHandler mHandler;
@@ -1437,6 +1444,8 @@
             final IntentFilter filter = new IntentFilter(Intent.ACTION_USER_PRESENT);
             mContext.registerReceiver(mUserPresentReceiver, filter);
         }
+
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
     }
 
     private BroadcastReceiver mUserPresentReceiver = new BroadcastReceiver() {
@@ -1527,11 +1536,17 @@
             return;
         }
 
-        if (mtu < 68 || mtu > 10000) {
+        if (LinkProperties.isValidMtu(mtu, newLp.hasGlobalIPv6Address()) == false) {
             loge("Unexpected mtu value: " + mtu + ", " + iface);
             return;
         }
 
+        // Cannot set MTU without interface name
+        if (TextUtils.isEmpty(iface)) {
+            loge("Setting MTU size with null iface.");
+            return;
+        }
+
         try {
             if (VDBG) log("Setting MTU size: " + iface + ", " + mtu);
             mNetd.setMtu(iface, mtu);
@@ -1540,30 +1555,40 @@
         }
     }
 
-    /**
-     * Reads the network specific TCP buffer sizes from SystemProperties
-     * net.tcp.buffersize.[default|wifi|umts|edge|gprs] and set them for system
-     * wide use
-     */
-    private void updateNetworkSettings(NetworkStateTracker nt) {
-        String key = nt.getTcpBufferSizesPropName();
-        String bufferSizes = key == null ? null : SystemProperties.get(key);
+    private static final String DEFAULT_TCP_BUFFER_SIZES = "4096,87380,110208,4096,16384,110208";
 
-        if (TextUtils.isEmpty(bufferSizes)) {
-            if (VDBG) log(key + " not found in system properties. Using defaults");
-
-            // Setting to default values so we won't be stuck to previous values
-            key = "net.tcp.buffersize.default";
-            bufferSizes = SystemProperties.get(key);
+    private void updateTcpBufferSizes(NetworkAgentInfo nai) {
+        if (isDefaultNetwork(nai) == false) {
+            return;
         }
 
-        // Set values in kernel
-        if (bufferSizes.length() != 0) {
-            if (VDBG) {
-                log("Setting TCP values: [" + bufferSizes
-                        + "] which comes from [" + key + "]");
-            }
-            setBufferSize(bufferSizes);
+        String tcpBufferSizes = nai.linkProperties.getTcpBufferSizes();
+        String[] values = null;
+        if (tcpBufferSizes != null) {
+            values = tcpBufferSizes.split(",");
+        }
+
+        if (values == null || values.length != 6) {
+            if (VDBG) log("Invalid tcpBufferSizes string: " + tcpBufferSizes +", using defaults");
+            tcpBufferSizes = DEFAULT_TCP_BUFFER_SIZES;
+            values = tcpBufferSizes.split(",");
+        }
+
+        if (tcpBufferSizes.equals(mCurrentTcpBufferSizes)) return;
+
+        try {
+            if (VDBG) Slog.d(TAG, "Setting tx/rx TCP buffers to " + tcpBufferSizes);
+
+            final String prefix = "/sys/kernel/ipv4/tcp_";
+            FileUtils.stringToFile(prefix + "rmem_min", values[0]);
+            FileUtils.stringToFile(prefix + "rmem_def", values[1]);
+            FileUtils.stringToFile(prefix + "rmem_max", values[2]);
+            FileUtils.stringToFile(prefix + "wmem_min", values[3]);
+            FileUtils.stringToFile(prefix + "wmem_def", values[4]);
+            FileUtils.stringToFile(prefix + "wmem_max", values[5]);
+            mCurrentTcpBufferSizes = tcpBufferSizes;
+        } catch (IOException e) {
+            loge("Can't set TCP buffer sizes:" + e);
         }
 
         final String defaultRwndKey = "net.tcp.default_init_rwnd";
@@ -1576,33 +1601,6 @@
         }
     }
 
-    /**
-     * Writes TCP buffer sizes to /sys/kernel/ipv4/tcp_[r/w]mem_[min/def/max]
-     * which maps to /proc/sys/net/ipv4/tcp_rmem and tcpwmem
-     *
-     * @param bufferSizes in the format of "readMin, readInitial, readMax,
-     *        writeMin, writeInitial, writeMax"
-     */
-    private void setBufferSize(String bufferSizes) {
-        try {
-            String[] values = bufferSizes.split(",");
-
-            if (values.length == 6) {
-              final String prefix = "/sys/kernel/ipv4/tcp_";
-                FileUtils.stringToFile(prefix + "rmem_min", values[0]);
-                FileUtils.stringToFile(prefix + "rmem_def", values[1]);
-                FileUtils.stringToFile(prefix + "rmem_max", values[2]);
-                FileUtils.stringToFile(prefix + "wmem_min", values[3]);
-                FileUtils.stringToFile(prefix + "wmem_def", values[4]);
-                FileUtils.stringToFile(prefix + "wmem_max", values[5]);
-            } else {
-                loge("Invalid buffersize string: " + bufferSizes);
-            }
-        } catch (IOException e) {
-            loge("Can't set tcp buffer sizes:" + e);
-        }
-    }
-
     private void flushVmDnsCache() {
         /*
          * Tell the VMs to toss their DNS caches
@@ -1965,12 +1963,6 @@
                     */
                     break;
                 }
-                case NetworkStateTracker.EVENT_NETWORK_SUBTYPE_CHANGED: {
-                    info = (NetworkInfo) msg.obj;
-                    int type = info.getType();
-                    if (mNetConfigs[type].isDefault()) updateNetworkSettings(mNetTrackers[type]);
-                    break;
-                }
             }
         }
     }
@@ -2270,6 +2262,12 @@
                     handleReleaseNetworkRequest((NetworkRequest) msg.obj, msg.arg1);
                     break;
                 }
+                case EVENT_SYSTEM_READY: {
+                    for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
+                        nai.networkMonitor.systemReady = true;
+                    }
+                    break;
+                }
             }
         }
     }
@@ -4108,6 +4106,9 @@
             new NetworkInfo(networkInfo), new LinkProperties(linkProperties),
             new NetworkCapabilities(networkCapabilities), currentScore, mContext, mTrackerHandler,
             networkMisc);
+        synchronized (this) {
+            nai.networkMonitor.systemReady = mSystemReady;
+        }
         if (VDBG) log("registerNetworkAgent " + nai);
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_NETWORK_AGENT, nai));
     }
@@ -4130,6 +4131,7 @@
 
         updateInterfaces(newLp, oldLp, netId);
         updateMtu(newLp, oldLp);
+        updateTcpBufferSizes(networkAgent);
         // TODO - figure out what to do for clat
 //        for (LinkProperties lp : newLp.getStackedLinks()) {
 //            updateMtu(lp, null);
@@ -4355,6 +4357,7 @@
             loge("Exception setting default network :" + e);
         }
         handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
+        updateTcpBufferSizes(newNetwork);
     }
 
     private void handleConnectionValidated(NetworkAgentInfo newNetwork) {
@@ -4412,6 +4415,7 @@
                         isNewDefault = true;
                         updateActiveDefaultNetwork(newNetwork);
                         if (newNetwork.linkProperties != null) {
+                            updateTcpBufferSizes(newNetwork);
                             setDefaultDnsSystemProperties(
                                     newNetwork.linkProperties.getDnsServers());
                         } else {
@@ -4470,13 +4474,6 @@
                                 1000);
                     }
                 }
-
-                // this will cause us to come up initially as unconnected and switching
-                // to connected after our normal pause unless somebody reports us as
-                // really disconnected
-                mDefaultInetConditionPublished = 0;
-                // TODO - read the tcp buffer size config string from somewhere
-                // updateNetworkSettings();
             }
 
             // Notify battery stats service about this network, both the normal
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index 4687e3f..e0f9b9c 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -603,10 +603,11 @@
                     MSG_HARD_KEYBOARD_SWITCH_CHANGED, available ? 1 : 0, enabled ? 1 : 0));
         }
 
-        public void handleHardKeyboardStatusChange(boolean available, boolean enabled) {
+        public void handleHardKeyboardStatusChange(boolean available,
+                boolean showImeWithHardKeyboard) {
             if (DEBUG) {
-                Slog.w(TAG, "HardKeyboardStatusChanged: available = " + available + ", enabled = "
-                        + enabled);
+                Slog.w(TAG, "HardKeyboardStatusChanged: available = " + available
+                        + ", showImeWithHardKeyboard= " + showImeWithHardKeyboard);
             }
             synchronized(mMethodMap) {
                 if (mSwitchingDialog != null && mSwitchingDialogTitleView != null
@@ -2810,11 +2811,11 @@
                             ? View.VISIBLE : View.GONE);
             final Switch hardKeySwitch = (Switch)mSwitchingDialogTitleView.findViewById(
                     com.android.internal.R.id.hard_keyboard_switch);
-            hardKeySwitch.setChecked(mWindowManagerService.isHardKeyboardEnabled());
+            hardKeySwitch.setChecked(mWindowManagerService.isShowImeWithHardKeyboardEnabled());
             hardKeySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                 @Override
                 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-                    mWindowManagerService.setHardKeyboardEnabled(isChecked);
+                    mWindowManagerService.setShowImeWithHardKeyboard(isChecked);
                     // Ensure that the input method dialog is dismissed when changing
                     // the hardware keyboard state.
                     hideInputMethodMenu();
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index ab4d4dc..395e365 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -17,9 +17,9 @@
 package com.android.server;
 
 import android.Manifest.permission;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.net.INetworkScoreCache;
 import android.net.INetworkScoreService;
@@ -30,6 +30,7 @@
 import android.os.Binder;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -51,9 +52,6 @@
 public class NetworkScoreService extends INetworkScoreService.Stub {
     private static final String TAG = "NetworkScoreService";
 
-    /** SharedPreference bit set to true after the service is first initialized. */
-    private static final String PREF_SCORING_PROVISIONED = "is_provisioned";
-
     private final Context mContext;
 
     private final Map<Integer, INetworkScoreCache> mScoreCaches;
@@ -65,8 +63,8 @@
 
     /** Called when the system is ready to run third-party code but before it actually does so. */
     void systemReady() {
-        SharedPreferences prefs = mContext.getSharedPreferences(TAG, Context.MODE_PRIVATE);
-        if (!prefs.getBoolean(PREF_SCORING_PROVISIONED, false)) {
+        ContentResolver cr = mContext.getContentResolver();
+        if (Settings.Global.getInt(cr, Settings.Global.NETWORK_SCORING_PROVISIONED, 0) == 0) {
             // On first run, we try to initialize the scorer to the one configured at build time.
             // This will be a no-op if the scorer isn't actually valid.
             String defaultPackage = mContext.getResources().getString(
@@ -74,7 +72,7 @@
             if (!TextUtils.isEmpty(defaultPackage)) {
                 NetworkScorerAppManager.setActiveScorer(mContext, defaultPackage);
             }
-            prefs.edit().putBoolean(PREF_SCORING_PROVISIONED, true).apply();
+            Settings.Global.putInt(cr, Settings.Global.NETWORK_SCORING_PROVISIONED, 1);
         }
     }
 
diff --git a/core/java/com/android/server/SystemService.java b/services/core/java/com/android/server/SystemService.java
similarity index 100%
rename from core/java/com/android/server/SystemService.java
rename to services/core/java/com/android/server/SystemService.java
diff --git a/core/java/com/android/server/SystemServiceManager.java b/services/core/java/com/android/server/SystemServiceManager.java
similarity index 100%
rename from core/java/com/android/server/SystemServiceManager.java
rename to services/core/java/com/android/server/SystemServiceManager.java
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 4c6b772..6ab52c6 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -479,7 +479,7 @@
         // keep screen on when charging and in car mode
         boolean keepScreenOn = mCharging &&
                 ((mCarModeEnabled && mCarModeKeepsScreenOn &&
-                  (mCarModeEnableFlags & UiModeManager.ENABLE_CAR_MODE_NO_WAKE_LOCK) == 0) ||
+                  (mCarModeEnableFlags & UiModeManager.ENABLE_CAR_MODE_ALLOW_SLEEP) == 0) ||
                  (mCurUiMode == Configuration.UI_MODE_TYPE_DESK && mDeskModeKeepsScreenOn));
         if (keepScreenOn != mWakeLock.isHeld()) {
             if (keepScreenOn) {
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
index d6e51f3..0bdb964 100755
--- a/services/core/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -24,6 +24,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import android.os.DeadObjectException;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.SystemProperties;
@@ -1424,6 +1425,9 @@
                     app.repProcState);
             r.postNotification();
             created = true;
+        } catch (DeadObjectException e) {
+            Slog.w(TAG, "Application dead when creating service " + r);
+            mAm.appDiedLocked(app);
         } finally {
             if (!created) {
                 app.services.remove(r);
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 298d6d3..ecd8f11 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -2031,7 +2031,7 @@
 
             ApplicationInfo info = mContext.getPackageManager().getApplicationInfo(
                     "android", STOCK_PM_FLAGS);
-            mSystemThread.installSystemApplicationInfo(info);
+            mSystemThread.installSystemApplicationInfo(info, getClass().getClassLoader());
 
             synchronized (this) {
                 ProcessRecord app = newProcessRecordLocked(info, info.processName, false, 0);
@@ -4201,6 +4201,10 @@
         }
     }
 
+    final void appDiedLocked(ProcessRecord app) {
+       appDiedLocked(app, app.pid, app.thread);
+    }
+
     final void appDiedLocked(ProcessRecord app, int pid,
             IApplicationThread thread) {
 
@@ -4665,14 +4669,26 @@
                             + android.Manifest.permission.CLEAR_APP_USER_DATA + " to clear data"
                                     + " of package " + packageName);
                 }
+
+                // Remove all tasks match the cleared application package and user
+                for (int i = mRecentTasks.size() - 1; i >= 0; i--) {
+                    final TaskRecord tr = mRecentTasks.get(i);
+                    final String taskPackageName =
+                            tr.getBaseIntent().getComponent().getPackageName();
+                    if (tr.userId != userId) continue;
+                    if (!taskPackageName.equals(packageName)) continue;
+                    removeTaskByIdLocked(tr.taskId, 0);
+                }
             }
 
             try {
                 // Clear application user data
                 pm.clearApplicationUserData(packageName, observer, userId);
 
-                // Remove all permissions granted from/to this package
-                removeUriPermissionsForPackageLocked(packageName, userId, true);
+                synchronized(this) {
+                    // Remove all permissions granted from/to this package
+                    removeUriPermissionsForPackageLocked(packageName, userId, true);
+                }
 
                 Intent intent = new Intent(Intent.ACTION_PACKAGE_DATA_CLEARED,
                         Uri.fromParts("package", packageName, null));
@@ -5627,17 +5643,13 @@
     }
 
     @Override
-    public void dismissKeyguardOnNextActivity() {
-        enforceNotIsolatedCaller("dismissKeyguardOnNextActivity");
+    public void keyguardWaitingForActivityDrawn() {
+        enforceNotIsolatedCaller("keyguardWaitingForActivityDrawn");
         final long token = Binder.clearCallingIdentity();
         try {
             synchronized (this) {
                 if (DEBUG_LOCKSCREEN) logLockScreen("");
-                if (mLockScreenShown) {
-                    mLockScreenShown = false;
-                    comeOutOfSleepIfNeededLocked();
-                }
-                mStackSupervisor.setDismissKeyguard(true);
+                mWindowManager.keyguardWaitingForActivityDrawn();
             }
         } finally {
             Binder.restoreCallingIdentity(token);
@@ -5782,13 +5794,13 @@
     }
 
     @Override
-    public final void mediaResourcesReleased(IBinder token) {
+    public final void backgroundResourcesReleased(IBinder token) {
         final long origId = Binder.clearCallingIdentity();
         try {
             synchronized (this) {
                 ActivityStack stack = ActivityRecord.getStackLocked(token);
                 if (stack != null) {
-                    stack.mediaResourcesReleased(token);
+                    stack.backgroundResourcesReleased(token);
                 }
             }
         } finally {
@@ -7410,7 +7422,7 @@
                 final int N = mRecentTasks.size();
                 for (int i = 0; i < N; i++) {
                     TaskRecord tr = mRecentTasks.get(i);
-                    // Skip tasks that are not created by the caller
+                    // Skip tasks that do not match the package name
                     if (packages.contains(tr.getBaseIntent().getComponent().getPackageName())) {
                         ActivityManager.RecentTaskInfo taskInfo =
                                 createRecentTaskInfoFromTaskRecord(tr);
@@ -8466,7 +8478,7 @@
                                 "Existing provider " + cpr.name.flattenToShortString()
                                 + " is crashing; detaching " + r);
                         boolean lastRef = decProviderCountLocked(conn, cpr, token, stable);
-                        appDiedLocked(cpr.proc, cpr.proc.pid, cpr.proc.thread);
+                        appDiedLocked(cpr.proc);
                         if (!lastRef) {
                             // This wasn't the last ref our process had on
                             // the provider...  we have now been killed, bail.
@@ -8916,7 +8928,7 @@
                     + ") early provider death");
             final long ident = Binder.clearCallingIdentity();
             try {
-                appDiedLocked(proc, proc.pid, proc.thread);
+                appDiedLocked(proc);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -9251,8 +9263,7 @@
     void logLockScreen(String msg) {
         if (DEBUG_LOCKSCREEN) Slog.d(TAG, Debug.getCallers(2) + ":" + msg +
                 " mLockScreenShown=" + mLockScreenShown + " mWentToSleep=" +
-                mWentToSleep + " mSleeping=" + mSleeping + " mDismissKeyguardOnNextActivity=" +
-                mStackSupervisor.mDismissKeyguardOnNextActivity);
+                mWentToSleep + " mSleeping=" + mSleeping);
     }
 
     private void comeOutOfSleepIfNeededLocked() {
@@ -9651,7 +9662,7 @@
                 }
                 if (r.changeWindowTranslucency(true)) {
                     mWindowManager.setAppFullscreen(token, true);
-                    r.task.stack.releaseMediaResources();
+                    r.task.stack.releaseBackgroundResources();
                     mStackSupervisor.ensureActivitiesVisibleLocked(null, 0);
                     return true;
                 }
@@ -9692,13 +9703,13 @@
     }
 
     @Override
-    public boolean setMediaPlaying(IBinder token, boolean playing) {
+    public boolean requestVisibleBehind(IBinder token, boolean visible) {
         final long origId = Binder.clearCallingIdentity();
         try {
             synchronized (this) {
                 final ActivityRecord r = ActivityRecord.isInStackLocked(token);
                 if (r != null) {
-                    return mStackSupervisor.setMediaPlayingLocked(r, playing);
+                    return mStackSupervisor.requestVisibleBehindLocked(r, visible);
                 }
             }
             return false;
@@ -9708,15 +9719,15 @@
     }
 
     @Override
-    public boolean isBackgroundMediaPlaying(IBinder token) {
+    public boolean isBackgroundVisibleBehind(IBinder token) {
         final long origId = Binder.clearCallingIdentity();
         try {
             synchronized (this) {
                 final ActivityStack stack = ActivityRecord.getStackLocked(token);
-                final boolean playing = stack == null ? false : stack.isMediaPlaying();
-                if (ActivityStackSupervisor.DEBUG_MEDIA_VISIBILITY) Slog.d(TAG,
-                        "isBackgroundMediaPlaying: stack=" + stack + " playing=" + playing);
-                return playing;
+                final boolean visible = stack == null ? false : stack.hasVisibleBehindActivity();
+                if (ActivityStackSupervisor.DEBUG_VISIBLE_BEHIND) Slog.d(TAG,
+                        "isBackgroundVisibleBehind: stack=" + stack + " visible=" + visible);
+                return visible;
             }
         } finally {
             Binder.restoreCallingIdentity(origId);
diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
index 4653742..e309a03 100755
--- a/services/core/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -46,7 +46,6 @@
 import com.android.server.Watchdog;
 import com.android.server.am.ActivityManagerService.ItemMatcher;
 import com.android.server.am.ActivityStackSupervisor.ActivityContainer;
-import com.android.server.am.ActivityStackSupervisor.ActivityDisplay;
 import com.android.server.wm.AppTransition;
 import com.android.server.wm.TaskGroup;
 import com.android.server.wm.WindowManagerService;
@@ -249,7 +248,7 @@
     static final int STOP_TIMEOUT_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 4;
     static final int DESTROY_ACTIVITIES_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 5;
     static final int TRANSLUCENT_TIMEOUT_MSG = ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 6;
-    static final int STOP_MEDIA_PLAYING_TIMEOUT_MSG =
+    static final int RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG =
             ActivityManagerService.FIRST_ACTIVITY_STACK_MSG + 7;
 
     static class ScheduleDestroyArgs {
@@ -325,10 +324,10 @@
                         notifyActivityDrawnLocked(null);
                     }
                 } break;
-                case STOP_MEDIA_PLAYING_TIMEOUT_MSG: {
+                case RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG: {
                     synchronized (mService) {
-                        final ActivityRecord r = getMediaPlayer();
-                        Slog.e(TAG, "Timeout waiting for stopMediaPlaying player=" + r);
+                        final ActivityRecord r = getVisibleBehindActivity();
+                        Slog.e(TAG, "Timeout waiting for cancelVisibleBehind player=" + r);
                         if (r != null) {
                             mService.killAppAtUsersRequest(r.app, null);
                         }
@@ -935,8 +934,8 @@
             mHandler.removeMessages(STOP_TIMEOUT_MSG, r);
             r.stopped = true;
             r.state = ActivityState.STOPPED;
-            if (mActivityContainer.mActivityDisplay.mMediaPlayingActivity == r) {
-                mStackSupervisor.setMediaPlayingLocked(r, false);
+            if (mActivityContainer.mActivityDisplay.mVisibleBehindActivity == r) {
+                mStackSupervisor.requestVisibleBehindLocked(r, false);
             }
             if (r.finishing) {
                 r.clearOptionsLocked();
@@ -975,8 +974,8 @@
                     // the current instance before starting the new one.
                     if (DEBUG_PAUSE) Slog.v(TAG, "Destroying after pause: " + prev);
                     destroyActivityLocked(prev, true, "pause-config");
-                } else if (!isMediaPlaying()) {
-                    // If we were playing then resumeTopActivities will release resources before
+                } else if (!hasVisibleBehindActivity()) {
+                    // If we were visible then resumeTopActivities will release resources before
                     // stopping.
                     mStackSupervisor.mStoppingActivities.add(prev);
                     if (mStackSupervisor.mStoppingActivities.size() > 3 ||
@@ -1059,7 +1058,7 @@
 
         if (next.nowVisible) {
             // We won't get a call to reportActivityVisibleLocked() so dismiss lockscreen now.
-            mStackSupervisor.dismissKeyguard();
+            mStackSupervisor.notifyActivityDrawnForKeyguard();
         }
 
         // schedule an idle timeout in case the app doesn't do it for us.
@@ -1333,8 +1332,8 @@
                                 case PAUSED:
                                     // This case created for transitioning activities from
                                     // translucent to opaque {@link Activity#convertToOpaque}.
-                                    if (getMediaPlayer() == r) {
-                                        releaseMediaResources();
+                                    if (getVisibleBehindActivity() == r) {
+                                        releaseBackgroundResources();
                                     } else {
                                         if (!mStackSupervisor.mStoppingActivities.contains(r)) {
                                             mStackSupervisor.mStoppingActivities.add(r);
@@ -2937,8 +2936,8 @@
 
         // Get rid of any pending idle timeouts.
         removeTimeoutsForActivityLocked(r);
-        if (getMediaPlayer() == r) {
-            mStackSupervisor.setMediaPlayingLocked(r, false);
+        if (getVisibleBehindActivity() == r) {
+            mStackSupervisor.requestVisibleBehindLocked(r, false);
         }
     }
 
@@ -3160,47 +3159,48 @@
         }
     }
 
-    void releaseMediaResources() {
-        if (isMediaPlaying() && !mHandler.hasMessages(STOP_MEDIA_PLAYING_TIMEOUT_MSG)) {
-            final ActivityRecord r = getMediaPlayer();
-            if (DEBUG_STATES) Slog.d(TAG, "releaseMediaResources activtyDisplay=" +
-                    mActivityContainer.mActivityDisplay + " mediaPlayer=" + r + " app=" + r.app +
+    void releaseBackgroundResources() {
+        if (hasVisibleBehindActivity() &&
+                !mHandler.hasMessages(RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG)) {
+            final ActivityRecord r = getVisibleBehindActivity();
+            if (DEBUG_STATES) Slog.d(TAG, "releaseBackgroundResources activtyDisplay=" +
+                    mActivityContainer.mActivityDisplay + " visibleBehind=" + r + " app=" + r.app +
                     " thread=" + r.app.thread);
             if (r != null && r.app != null && r.app.thread != null) {
                 try {
-                    r.app.thread.scheduleStopMediaPlaying(r.appToken);
+                    r.app.thread.scheduleCancelVisibleBehind(r.appToken);
                 } catch (RemoteException e) {
                 }
-                mHandler.sendEmptyMessageDelayed(STOP_MEDIA_PLAYING_TIMEOUT_MSG, 500);
+                mHandler.sendEmptyMessageDelayed(RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG, 500);
             } else {
-                Slog.e(TAG, "releaseMediaResources: activity " + r + " no longer running");
-                mediaResourcesReleased(r.appToken);
+                Slog.e(TAG, "releaseBackgroundResources: activity " + r + " no longer running");
+                backgroundResourcesReleased(r.appToken);
             }
         }
     }
 
-    final void mediaResourcesReleased(IBinder token) {
-        mHandler.removeMessages(STOP_MEDIA_PLAYING_TIMEOUT_MSG);
-        final ActivityRecord r = getMediaPlayer();
+    final void backgroundResourcesReleased(IBinder token) {
+        mHandler.removeMessages(RELEASE_BACKGROUND_RESOURCES_TIMEOUT_MSG);
+        final ActivityRecord r = getVisibleBehindActivity();
         if (r != null) {
             mStackSupervisor.mStoppingActivities.add(r);
-            setMediaPlayer(null);
+            setVisibleBehindActivity(null);
         }
         mStackSupervisor.resumeTopActivitiesLocked();
     }
 
-    boolean isMediaPlaying() {
-        return isAttached() && mActivityContainer.mActivityDisplay.isMediaPlaying();
+    boolean hasVisibleBehindActivity() {
+        return isAttached() && mActivityContainer.mActivityDisplay.hasVisibleBehindActivity();
     }
 
-    void setMediaPlayer(ActivityRecord r) {
+    void setVisibleBehindActivity(ActivityRecord r) {
         if (isAttached()) {
-            mActivityContainer.mActivityDisplay.setMediaPlaying(r);
+            mActivityContainer.mActivityDisplay.setVisibleBehindActivity(r);
         }
     }
 
-    ActivityRecord getMediaPlayer() {
-        return isAttached() ? mActivityContainer.mActivityDisplay.mMediaPlayingActivity : null;
+    ActivityRecord getVisibleBehindActivity() {
+        return isAttached() ? mActivityContainer.mActivityDisplay.mVisibleBehindActivity : null;
     }
 
     private void removeHistoryRecordsForAppLocked(ArrayList<ActivityRecord> list,
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 4a99ef3..1107139 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -115,7 +115,7 @@
     static final boolean DEBUG_APP = DEBUG || false;
     static final boolean DEBUG_CONTAINERS = DEBUG || false;
     static final boolean DEBUG_IDLE = DEBUG || false;
-    static final boolean DEBUG_MEDIA_VISIBILITY = DEBUG || false;
+    static final boolean DEBUG_VISIBLE_BEHIND = DEBUG || false;
     static final boolean DEBUG_SAVED_STATE = DEBUG || false;
     static final boolean DEBUG_SCREENSHOTS = DEBUG || false;
     static final boolean DEBUG_STATES = DEBUG || false;
@@ -167,9 +167,6 @@
     WindowManagerService mWindowManager;
     DisplayManager mDisplayManager;
 
-    /** Dismiss the keyguard after the next activity is displayed? */
-    boolean mDismissKeyguardOnNextActivity = false;
-
     /** Identifier counter for all ActivityStacks */
     private int mLastStackId = HOME_STACK_ID;
 
@@ -363,12 +360,9 @@
         }
     }
 
-    void dismissKeyguard() {
+    void notifyActivityDrawnForKeyguard() {
         if (ActivityManagerService.DEBUG_LOCKSCREEN) mService.logLockScreen("");
-        if (mDismissKeyguardOnNextActivity) {
-            mDismissKeyguardOnNextActivity = false;
-            mWindowManager.dismissKeyguard();
-        }
+        mWindowManager.notifyActivityDrawnForKeyguard();
     }
 
     ActivityStack getFocusedStack() {
@@ -439,9 +433,8 @@
         return mService.startHomeActivityLocked(mCurrentUser);
     }
 
-    void setDismissKeyguard(boolean dismiss) {
-        if (ActivityManagerService.DEBUG_LOCKSCREEN) mService.logLockScreen(" dismiss=" + dismiss);
-        mDismissKeyguardOnNextActivity = dismiss;
+    void keyguardWaitingForActivityDrawn() {
+        mWindowManager.keyguardWaitingForActivityDrawn();
     }
 
     TaskRecord anyTaskForIdLocked(int id) {
@@ -660,7 +653,7 @@
             w.thisTime = w.totalTime;
         }
         mService.notifyAll();
-        dismissKeyguard();
+        notifyActivityDrawnForKeyguard();
     }
 
     void reportActivityLaunchedLocked(boolean timeout, ActivityRecord r,
@@ -1165,7 +1158,7 @@
                 Slog.e(TAG, "Second failure launching "
                       + r.intent.getComponent().flattenToShortString()
                       + ", giving up", e);
-                mService.appDiedLocked(app, app.pid, app.thread);
+                mService.appDiedLocked(app);
                 stack.requestFinishActivityLocked(r.appToken, Activity.RESULT_CANCELED, null,
                         "2nd-crash", false);
                 return false;
@@ -1371,7 +1364,6 @@
                     resultRecord, resultWho, requestCode,
                     Activity.RESULT_CANCELED, null);
             }
-            setDismissKeyguard(false);
             ActivityOptions.abort(options);
             return err;
         }
@@ -1386,7 +1378,6 @@
                     resultRecord, resultWho, requestCode,
                     Activity.RESULT_CANCELED, null);
             }
-            setDismissKeyguard(false);
             String msg;
             if (!aInfo.exported) {
                 msg = "Permission Denial: starting " + intent.toString()
@@ -1425,7 +1416,6 @@
             }
             // We pretend to the caller that it was really started, but
             // they will just get a cancel result.
-            setDismissKeyguard(false);
             ActivityOptions.abort(options);
             return ActivityManager.START_SUCCESS;
         }
@@ -1444,7 +1434,6 @@
                 PendingActivityLaunch pal =
                         new PendingActivityLaunch(r, sourceRecord, startFlags, stack);
                 mPendingActivityLaunches.add(pal);
-                setDismissKeyguard(false);
                 ActivityOptions.abort(options);
                 return ActivityManager.START_SWITCHES_CANCELED;
             }
@@ -1466,12 +1455,12 @@
         err = startActivityUncheckedLocked(r, sourceRecord, voiceSession, voiceInteractor,
                 startFlags, true, options);
 
-        if (allPausedActivitiesComplete()) {
+        if (err < 0) {
             // If someone asked to have the keyguard dismissed on the next
             // activity start, but we are not actually doing an activity
             // switch...  just dismiss the keyguard now, because we
             // probably want to see whatever is behind it.
-            dismissKeyguard();
+            notifyActivityDrawnForKeyguard();
         }
         return err;
     }
@@ -1554,6 +1543,7 @@
         final Intent intent = r.intent;
         final int callingUid = r.launchedFromUid;
 
+        final boolean launchSingleTop = r.launchMode == ActivityInfo.LAUNCH_SINGLE_TOP;
         final boolean launchSingleInstance = r.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE;
         final boolean launchSingleTask = r.launchMode == ActivityInfo.LAUNCH_SINGLE_TASK;
 
@@ -1714,7 +1704,7 @@
                         // the activity based on affinity...  now that we
                         // are actually launching it, we can assign the
                         // base intent.
-                        intentActivity.task.setIntent(intent, r.info);
+                        intentActivity.task.setIntent(r);
                     }
                     // If the target task is not in the front, then we need
                     // to bring it to the front...  except...  well, with
@@ -1771,7 +1761,7 @@
                         // not be too hard...
                         reuseTask = intentActivity.task;
                         reuseTask.performClearTaskLocked();
-                        reuseTask.setIntent(r.intent, r.info);
+                        reuseTask.setIntent(r);
                     } else if ((launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0
                             || launchSingleInstance || launchSingleTask) {
                         // In this situation we want to remove all activities
@@ -1786,7 +1776,7 @@
                                 // intents for the top activity, so make sure
                                 // the task now has the identity of the new
                                 // intent.
-                                top.task.setIntent(r.intent, r.info);
+                                top.task.setIntent(r);
                             }
                             ActivityStack.logStartActivity(EventLogTags.AM_NEW_INTENT,
                                     r, top.task);
@@ -1809,13 +1799,12 @@
                         // If the top activity in the task is the root
                         // activity, deliver this new intent to it if it
                         // desires.
-                        if (((launchFlags&Intent.FLAG_ACTIVITY_SINGLE_TOP) != 0
-                                || r.launchMode == ActivityInfo.LAUNCH_SINGLE_TOP)
+                        if (((launchFlags&Intent.FLAG_ACTIVITY_SINGLE_TOP) != 0 || launchSingleTop)
                                 && intentActivity.realActivity.equals(r.realActivity)) {
                             ActivityStack.logStartActivity(EventLogTags.AM_NEW_INTENT, r,
                                     intentActivity.task);
                             if (intentActivity.frontOfTask) {
-                                intentActivity.task.setIntent(r.intent, r.info);
+                                intentActivity.task.setIntent(r);
                             }
                             intentActivity.deliverNewIntentLocked(callingUid, r.intent);
                         } else if (!r.intent.filterEquals(intentActivity.task.intent)) {
@@ -1841,7 +1830,7 @@
                         // at the bottom of its stack, but that's a little hard
                         // to do with the current organization of the code so
                         // for now we'll just drop it.
-                        intentActivity.task.setIntent(r.intent, r.info);
+                        intentActivity.task.setIntent(r);
                     }
                     if (!addingToTask && reuseTask == null) {
                         // We didn't do anything...  but it was needed (a.k.a., client
@@ -1874,7 +1863,7 @@
                 if (top.realActivity.equals(r.realActivity) && top.userId == r.userId) {
                     if (top.app != null && top.app.thread != null) {
                         if ((launchFlags & Intent.FLAG_ACTIVITY_SINGLE_TOP) != 0
-                            || launchSingleInstance || launchSingleTask) {
+                            || launchSingleTop || launchSingleTask) {
                             ActivityStack.logStartActivity(EventLogTags.AM_NEW_INTENT, top,
                                     top.task);
                             // For paranoia, make sure we have correctly
@@ -2651,21 +2640,21 @@
         }
     }
 
-    boolean setMediaPlayingLocked(ActivityRecord r, boolean playing) {
+    boolean requestVisibleBehindLocked(ActivityRecord r, boolean visible) {
         final ActivityStack stack = r.task.stack;
         if (stack == null) {
-            if (DEBUG_MEDIA_VISIBILITY) Slog.d(TAG, "setMediaPlaying: r=" + r + " playing=" +
-                    playing + " stack is null");
+            if (DEBUG_VISIBLE_BEHIND) Slog.d(TAG, "requestVisibleBehind: r=" + r + " visible=" +
+                    visible + " stack is null");
             return false;
         }
-        final boolean isPlaying = stack.isMediaPlaying();
-        if (DEBUG_MEDIA_VISIBILITY) Slog.d(TAG, "setMediaPlayer: r=" + r + " playing=" +
-                playing + " isPlaying=" + isPlaying);
+        final boolean isVisible = stack.hasVisibleBehindActivity();
+        if (DEBUG_VISIBLE_BEHIND) Slog.d(TAG, "requestVisibleBehind r=" + r + " visible=" +
+                visible + " isVisible=" + isVisible);
 
         final ActivityRecord top = topRunningActivityLocked();
-        if (top == null || top == r || (playing == isPlaying)) {
-            if (DEBUG_MEDIA_VISIBILITY) Slog.d(TAG, "setMediaPlaying: quick return");
-            stack.setMediaPlayer(playing ? r : null);
+        if (top == null || top == r || (visible == isVisible)) {
+            if (DEBUG_VISIBLE_BEHIND) Slog.d(TAG, "requestVisibleBehind: quick return");
+            stack.setVisibleBehindActivity(visible ? r : null);
             return true;
         }
 
@@ -2673,14 +2662,14 @@
         if (top.fullscreen || top.state != ActivityState.RESUMED || top.app == null ||
                 top.app.thread == null) {
             // Can't carry out this request.
-            if (DEBUG_MEDIA_VISIBILITY) Slog.d(TAG, "setMediaPlaying: returning top.fullscreen=" +
-                    top.fullscreen+ " top.state=" + top.state + " top.app=" + top.app +
+            if (DEBUG_VISIBLE_BEHIND) Slog.d(TAG, "requestVisibleBehind: returning top.fullscreen="
+                    + top.fullscreen+ " top.state=" + top.state + " top.app=" + top.app +
                     " top.app.thread=" + top.app.thread);
             return false;
         }
 
-        stack.setMediaPlayer(playing ? r : null);
-        if (!playing) {
+        stack.setVisibleBehindActivity(visible ? r : null);
+        if (!visible) {
             // Make the activity immediately above r opaque.
             final ActivityRecord next = stack.findNextTranslucentActivity(r);
             if (next != null) {
@@ -2688,7 +2677,7 @@
             }
         }
         try {
-            top.app.thread.scheduleBackgroundMediaPlayingChanged(top.appToken, playing);
+            top.app.thread.scheduleBackgroundVisibleBehindChanged(top.appToken, visible);
         } catch (RemoteException e) {
         }
         return true;
@@ -2852,8 +2841,6 @@
     }
 
     public void dump(PrintWriter pw, String prefix) {
-        pw.print(prefix); pw.print("mDismissKeyguardOnNextActivity=");
-                pw.println(mDismissKeyguardOnNextActivity);
         pw.print(prefix); pw.print("mFocusedStack=" + mFocusedStack);
                 pw.print(" mLastFocusedStack="); pw.println(mLastFocusedStack);
         pw.print(prefix); pw.println("mSleepTimeout=" + mSleepTimeout);
@@ -3715,7 +3702,7 @@
          * stacks, bottommost behind. Accessed directly by ActivityManager package classes */
         final ArrayList<ActivityStack> mStacks = new ArrayList<ActivityStack>();
 
-        ActivityRecord mMediaPlayingActivity;
+        ActivityRecord mVisibleBehindActivity;
 
         ActivityDisplay() {
         }
@@ -3748,12 +3735,12 @@
             bounds.y = mDisplayInfo.appHeight;
         }
 
-        void setMediaPlaying(ActivityRecord r) {
-            mMediaPlayingActivity = r;
+        void setVisibleBehindActivity(ActivityRecord r) {
+            mVisibleBehindActivity = r;
         }
 
-        boolean isMediaPlaying() {
-            return mMediaPlayingActivity != null;
+        boolean hasVisibleBehindActivity() {
+            return mVisibleBehindActivity != null;
         }
 
         @Override
diff --git a/services/core/java/com/android/server/am/LockTaskNotify.java b/services/core/java/com/android/server/am/LockTaskNotify.java
index 6f9b23d..cf65243 100644
--- a/services/core/java/com/android/server/am/LockTaskNotify.java
+++ b/services/core/java/com/android/server/am/LockTaskNotify.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.Message;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.Toast;
 
 import com.android.internal.R;
@@ -32,9 +33,12 @@
 
     private final Context mContext;
     private final H mHandler;
+    private AccessibilityManager mAccessibilityManager;
 
     public LockTaskNotify(Context context) {
         mContext = context;
+        mAccessibilityManager = (AccessibilityManager)
+                mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
         mHandler = new H();
     }
 
@@ -45,6 +49,9 @@
     public void handleShowToast(boolean isLocked) {
         String text = mContext.getString(isLocked
                 ? R.string.lock_to_app_toast_locked : R.string.lock_to_app_toast);
+        if (!isLocked && mAccessibilityManager.isEnabled()) {
+            text = mContext.getString(R.string.lock_to_app_toast_accessible);
+        }
         Toast.makeText(mContext, text, Toast.LENGTH_LONG).show();
     }
 
diff --git a/services/core/java/com/android/server/am/LockToAppRequestDialog.java b/services/core/java/com/android/server/am/LockToAppRequestDialog.java
index 0847b52..12dcf7e 100644
--- a/services/core/java/com/android/server/am/LockToAppRequestDialog.java
+++ b/services/core/java/com/android/server/am/LockToAppRequestDialog.java
@@ -13,6 +13,7 @@
 import android.provider.Settings.SettingNotFoundException;
 import android.util.Slog;
 import android.view.WindowManager;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.CheckBox;
 
 import com.android.internal.R;
@@ -33,8 +34,12 @@
 
     private ILockSettings mLockSettingsService;
 
+    private AccessibilityManager mAccessibilityService;
+
     public LockToAppRequestDialog(Context context, ActivityManagerService activityManagerService) {
         mContext = context;
+        mAccessibilityService = (AccessibilityManager)
+                mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
         mService = activityManagerService;
     }
 
@@ -78,7 +83,9 @@
         final int unlockStringId = getLockString(task.userId);
 
         final Resources r = Resources.getSystem();
-        final String description= r.getString(R.string.lock_to_app_description);
+        final String description= r.getString(mAccessibilityService.isEnabled()
+                ? R.string.lock_to_app_description_accessible
+                : R.string.lock_to_app_description);
         AlertDialog.Builder builder = new AlertDialog.Builder(mContext)
                         .setTitle(r.getString(R.string.lock_to_app_title))
                         .setMessage(description)
diff --git a/services/core/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
index d0ec106..ccca657 100644
--- a/services/core/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -220,7 +220,15 @@
         return System.currentTimeMillis() - lastActiveTime;
     }
 
-    void setIntent(Intent _intent, ActivityInfo info) {
+    /** Sets the original intent, and the calling uid and package. */
+    void setIntent(ActivityRecord r) {
+        setIntent(r.intent, r.info);
+        mCallingUid = r.launchedFromUid;
+        mCallingPackage = r.launchedFromPackage;
+    }
+
+    /** Sets the original intent, _without_ updating the calling uid or package. */
+    private void setIntent(Intent _intent, ActivityInfo info) {
         if (intent == null) {
             mNeverRelinquishIdentity =
                     (info.flags & ActivityInfo.FLAG_RELINQUISH_TASK_IDENTITY) == 0;
@@ -723,7 +731,7 @@
     void updateEffectiveIntent() {
         final int effectiveRootIndex = findEffectiveRootIndex();
         final ActivityRecord r = mActivities.get(effectiveRootIndex);
-        setIntent(r.intent, r.info);
+        setIntent(r);
     }
 
     void saveTaskDescription(ActivityManager.TaskDescription taskDescription,
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
index ae5eda3..5057994 100644
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -217,6 +217,8 @@
     private String mServer;
     private boolean mIsCaptivePortalCheckEnabled = false;
 
+    public boolean systemReady = false;
+
     private State mDefaultState = new DefaultState();
     private State mOfflineState = new OfflineState();
     private State mValidatedState = new ValidatedState();
@@ -709,6 +711,8 @@
             return;
         }
 
+        if (systemReady == false) return;
+
         Intent latencyBroadcast = new Intent(ACTION_NETWORK_CONDITIONS_MEASURED);
         switch (mNetworkAgentInfo.networkInfo.getType()) {
             case ConnectivityManager.TYPE_WIFI:
diff --git a/services/core/java/com/android/server/display/DisplayPowerController.java b/services/core/java/com/android/server/display/DisplayPowerController.java
index 9a67321..46cb6c3 100644
--- a/services/core/java/com/android/server/display/DisplayPowerController.java
+++ b/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -37,7 +37,7 @@
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.SystemClock;
-import android.text.format.DateUtils;
+import android.os.Trace;
 import android.util.MathUtils;
 import android.util.Slog;
 import android.util.Spline;
@@ -74,6 +74,8 @@
     private static boolean DEBUG = false;
     private static final boolean DEBUG_PRETEND_PROXIMITY_SENSOR_ABSENT = false;
 
+    private static final String SCREEN_ON_BLOCKED_TRACE_NAME = "Screen on blocked";
+
     // If true, uses the electron beam on animation.
     // We might want to turn this off if we cannot get a guarantee that the screen
     // actually turns on and starts showing new content after the call to set the
@@ -714,11 +716,10 @@
 
     private void blockScreenOn() {
         if (!mScreenOnWasBlocked) {
+            Trace.asyncTraceBegin(Trace.TRACE_TAG_POWER, SCREEN_ON_BLOCKED_TRACE_NAME, 0);
             mScreenOnWasBlocked = true;
             mScreenOnBlockStartRealTime = SystemClock.elapsedRealtime();
-            if (DEBUG) {
-                Slog.d(TAG, "Blocked screen on.");
-            }
+            Slog.i(TAG, "Blocking screen on until initial contents have been drawn.");
         }
     }
 
@@ -726,9 +727,8 @@
         if (mScreenOnWasBlocked) {
             mScreenOnWasBlocked = false;
             long delay = SystemClock.elapsedRealtime() - mScreenOnBlockStartRealTime;
-            if (delay > 1000 || DEBUG) {
-                Slog.d(TAG, "Unblocked screen on after " + delay + " ms");
-            }
+            Slog.i(TAG, "Unblocked screen on after " + delay + " ms");
+            Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, SCREEN_ON_BLOCKED_TRACE_NAME, 0);
         }
     }
 
diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java
index 6522b89..a7651e4 100644
--- a/services/core/java/com/android/server/display/DisplayPowerState.java
+++ b/services/core/java/com/android/server/display/DisplayPowerState.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.PowerManager;
+import android.os.Trace;
 import android.util.FloatProperty;
 import android.util.IntProperty;
 import android.util.Slog;
@@ -405,19 +406,38 @@
                     }
                     boolean suspending = Display.isSuspendedState(state);
                     if (stateChanged && !suspending) {
-                        mBlanker.requestDisplayState(state);
+                        requestDisplayState(state);
                     }
                     if (backlightChanged) {
-                        mBacklight.setBrightness(backlight);
+                        setBrightness(backlight);
                     }
                     if (stateChanged && suspending) {
-                        mBlanker.requestDisplayState(state);
+                        requestDisplayState(state);
                     }
                 }
 
                 // Let the outer class know that all changes have been applied.
                 postScreenUpdateThreadSafe();
             }
+
+            private void requestDisplayState(int state) {
+                Trace.traceBegin(Trace.TRACE_TAG_POWER, "requestDisplayState("
+                        + Display.stateToString(state) + ")");
+                try {
+                    mBlanker.requestDisplayState(state);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
+                }
+            }
+
+            private void setBrightness(int backlight) {
+                Trace.traceBegin(Trace.TRACE_TAG_POWER, "setBrightness(" + backlight + ")");
+                try {
+                    mBacklight.setBrightness(backlight);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
+                }
+            }
         };
     }
 }
diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
index 4fd006d..9c91ab5 100644
--- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
@@ -21,7 +21,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.SystemProperties;
-import android.util.Pair;
+import android.os.Trace;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.view.Display;
@@ -224,8 +224,14 @@
         @Override
         public void requestDisplayStateLocked(int state) {
             if (mState != state) {
-                SurfaceControl.setDisplayPowerMode(getDisplayTokenLocked(),
-                        getPowerModeForState(state));
+                final int mode = getPowerModeForState(state);
+                Trace.traceBegin(Trace.TRACE_TAG_POWER, "requestDisplayState("
+                        + Display.stateToString(state) + ", id=" + mBuiltInDisplayId + ")");
+                try {
+                    SurfaceControl.setDisplayPowerMode(getDisplayTokenLocked(), mode);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
+                }
                 mState = state;
                 updateDeviceInfoLocked();
             }
diff --git a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java
index 72ac29a..e39f0b1 100644
--- a/services/core/java/com/android/server/display/VirtualDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java
@@ -265,7 +265,7 @@
                     mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE
                             | DisplayDeviceInfo.FLAG_NEVER_BLANK;
                 }
-                if ((mInfo.flags & DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) {
+                if ((mFlags & DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) != 0) {
                     mInfo.flags &= ~DisplayDeviceInfo.FLAG_NEVER_BLANK;
                 } else {
                     mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY;
diff --git a/services/core/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java
index 334f0ac..768ccf2 100644
--- a/services/core/java/com/android/server/dreams/DreamController.java
+++ b/services/core/java/com/android/server/dreams/DreamController.java
@@ -25,6 +25,7 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.IBinder.DeathRecipient;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.service.dreams.DreamService;
 import android.service.dreams.IDreamService;
@@ -111,41 +112,46 @@
             boolean isTest, boolean canDoze, int userId) {
         stopDream(true /*immediate*/);
 
-        // Close the notification shade. Don't need to send to all, but better to be explicit.
-        mContext.sendBroadcastAsUser(mCloseNotificationShadeIntent, UserHandle.ALL);
-
-        Slog.i(TAG, "Starting dream: name=" + name
-                + ", isTest=" + isTest + ", canDoze=" + canDoze
-                + ", userId=" + userId);
-
-        mCurrentDream = new DreamRecord(token, name, isTest, canDoze, userId);
-
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "startDream");
         try {
-            mIWindowManager.addWindowToken(token, WindowManager.LayoutParams.TYPE_DREAM);
-        } catch (RemoteException ex) {
-            Slog.e(TAG, "Unable to add window token for dream.", ex);
-            stopDream(true /*immediate*/);
-            return;
-        }
+            // Close the notification shade. Don't need to send to all, but better to be explicit.
+            mContext.sendBroadcastAsUser(mCloseNotificationShadeIntent, UserHandle.ALL);
 
-        Intent intent = new Intent(DreamService.SERVICE_INTERFACE);
-        intent.setComponent(name);
-        intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
-        try {
-            if (!mContext.bindServiceAsUser(intent, mCurrentDream,
-                    Context.BIND_AUTO_CREATE, new UserHandle(userId))) {
-                Slog.e(TAG, "Unable to bind dream service: " + intent);
+            Slog.i(TAG, "Starting dream: name=" + name
+                    + ", isTest=" + isTest + ", canDoze=" + canDoze
+                    + ", userId=" + userId);
+
+            mCurrentDream = new DreamRecord(token, name, isTest, canDoze, userId);
+
+            try {
+                mIWindowManager.addWindowToken(token, WindowManager.LayoutParams.TYPE_DREAM);
+            } catch (RemoteException ex) {
+                Slog.e(TAG, "Unable to add window token for dream.", ex);
                 stopDream(true /*immediate*/);
                 return;
             }
-        } catch (SecurityException ex) {
-            Slog.e(TAG, "Unable to bind dream service: " + intent, ex);
-            stopDream(true /*immediate*/);
-            return;
-        }
 
-        mCurrentDream.mBound = true;
-        mHandler.postDelayed(mStopUnconnectedDreamRunnable, DREAM_CONNECTION_TIMEOUT);
+            Intent intent = new Intent(DreamService.SERVICE_INTERFACE);
+            intent.setComponent(name);
+            intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+            try {
+                if (!mContext.bindServiceAsUser(intent, mCurrentDream,
+                        Context.BIND_AUTO_CREATE, new UserHandle(userId))) {
+                    Slog.e(TAG, "Unable to bind dream service: " + intent);
+                    stopDream(true /*immediate*/);
+                    return;
+                }
+            } catch (SecurityException ex) {
+                Slog.e(TAG, "Unable to bind dream service: " + intent, ex);
+                stopDream(true /*immediate*/);
+                return;
+            }
+
+            mCurrentDream.mBound = true;
+            mHandler.postDelayed(mStopUnconnectedDreamRunnable, DREAM_CONNECTION_TIMEOUT);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
+        }
     }
 
     public void stopDream(boolean immediate) {
@@ -153,71 +159,76 @@
             return;
         }
 
-        if (!immediate) {
-            if (mCurrentDream.mWakingGently) {
-                return; // already waking gently
-            }
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "stopDream");
+        try {
+            if (!immediate) {
+                if (mCurrentDream.mWakingGently) {
+                    return; // already waking gently
+                }
 
-            if (mCurrentDream.mService != null) {
-                // Give the dream a moment to wake up and finish itself gently.
-                mCurrentDream.mWakingGently = true;
-                try {
-                    mCurrentDream.mService.wakeUp();
-                    mHandler.postDelayed(mStopStubbornDreamRunnable, DREAM_FINISH_TIMEOUT);
-                    return;
-                } catch (RemoteException ex) {
-                    // oh well, we tried, finish immediately instead
+                if (mCurrentDream.mService != null) {
+                    // Give the dream a moment to wake up and finish itself gently.
+                    mCurrentDream.mWakingGently = true;
+                    try {
+                        mCurrentDream.mService.wakeUp();
+                        mHandler.postDelayed(mStopStubbornDreamRunnable, DREAM_FINISH_TIMEOUT);
+                        return;
+                    } catch (RemoteException ex) {
+                        // oh well, we tried, finish immediately instead
+                    }
                 }
             }
-        }
 
-        final DreamRecord oldDream = mCurrentDream;
-        mCurrentDream = null;
-        Slog.i(TAG, "Stopping dream: name=" + oldDream.mName
-                + ", isTest=" + oldDream.mIsTest + ", canDoze=" + oldDream.mCanDoze
-                + ", userId=" + oldDream.mUserId);
+            final DreamRecord oldDream = mCurrentDream;
+            mCurrentDream = null;
+            Slog.i(TAG, "Stopping dream: name=" + oldDream.mName
+                    + ", isTest=" + oldDream.mIsTest + ", canDoze=" + oldDream.mCanDoze
+                    + ", userId=" + oldDream.mUserId);
 
-        mHandler.removeCallbacks(mStopUnconnectedDreamRunnable);
-        mHandler.removeCallbacks(mStopStubbornDreamRunnable);
+            mHandler.removeCallbacks(mStopUnconnectedDreamRunnable);
+            mHandler.removeCallbacks(mStopStubbornDreamRunnable);
 
-        if (oldDream.mSentStartBroadcast) {
-            mContext.sendBroadcastAsUser(mDreamingStoppedIntent, UserHandle.ALL);
-        }
+            if (oldDream.mSentStartBroadcast) {
+                mContext.sendBroadcastAsUser(mDreamingStoppedIntent, UserHandle.ALL);
+            }
 
-        if (oldDream.mService != null) {
-            // Tell the dream that it's being stopped so that
-            // it can shut down nicely before we yank its window token out from
-            // under it.
+            if (oldDream.mService != null) {
+                // Tell the dream that it's being stopped so that
+                // it can shut down nicely before we yank its window token out from
+                // under it.
+                try {
+                    oldDream.mService.detach();
+                } catch (RemoteException ex) {
+                    // we don't care; this thing is on the way out
+                }
+
+                try {
+                    oldDream.mService.asBinder().unlinkToDeath(oldDream, 0);
+                } catch (NoSuchElementException ex) {
+                    // don't care
+                }
+                oldDream.mService = null;
+            }
+
+            if (oldDream.mBound) {
+                mContext.unbindService(oldDream);
+            }
+
             try {
-                oldDream.mService.detach();
+                mIWindowManager.removeWindowToken(oldDream.mToken);
             } catch (RemoteException ex) {
-                // we don't care; this thing is on the way out
+                Slog.w(TAG, "Error removing window token for dream.", ex);
             }
 
-            try {
-                oldDream.mService.asBinder().unlinkToDeath(oldDream, 0);
-            } catch (NoSuchElementException ex) {
-                // don't care
-            }
-            oldDream.mService = null;
+            mHandler.post(new Runnable() {
+                @Override
+                public void run() {
+                    mListener.onDreamStopped(oldDream.mToken);
+                }
+            });
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
         }
-
-        if (oldDream.mBound) {
-            mContext.unbindService(oldDream);
-        }
-
-        try {
-            mIWindowManager.removeWindowToken(oldDream.mToken);
-        } catch (RemoteException ex) {
-            Slog.w(TAG, "Error removing window token for dream.", ex);
-        }
-
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-                mListener.onDreamStopped(oldDream.mToken);
-            }
-        });
     }
 
     private void attach(IDreamService service) {
diff --git a/services/core/java/com/android/server/hdmi/Constants.java b/services/core/java/com/android/server/hdmi/Constants.java
index 48a0b68..4b812cf 100644
--- a/services/core/java/com/android/server/hdmi/Constants.java
+++ b/services/core/java/com/android/server/hdmi/Constants.java
@@ -262,6 +262,12 @@
     static final int MHL_RAP_ACTION_CONTENT_ON = 0x10;
     static final int MHL_RAP_ACTION_CONTENT_OFF = 0x11;
 
+    // MHL RAPK messages.
+    static final int MHL_RAPK_NO_ERROR = 0x00;
+    static final int MHL_RAPK_UNRECOGNIZED_ACTION = 0x01;
+    static final int MHL_RAPK_UNSUPPORTED_ACTION = 0x02;
+    static final int MHL_RAPK_RESPONDER_BUSY = 0x03;
+
     static final int MHL_INVALID_ADOPTER_ID = -1;
     static final int MHL_INVALID_DEVICE_ID = -1;
 
@@ -269,5 +275,15 @@
     static final int MHL_CBUS_MODE_ECBUS_S = 2;
     static final int MHL_CBUS_MODE_ECBUS_D = 3;
 
+    // Property name for the local device configurations.
+    // TODO(OEM): OEM should provide this property, and the value is the comma separated integer
+    //     values which denotes the device type in HDMI Spec 1.4.
+    static final String PROPERTY_DEVICE_TYPE = "ro.hdmi.device_type";
+
+    // MHL RCPE messages
+    static final int MHL_RCPE_NO_ERROR = 0x00;
+    static final int MHL_RCPE_INEFFECTIVE_KEYCODE = 0x01;
+    static final int MHL_RCPE_RESPONDER_BUSY = 0x02;
+
     private Constants() { /* cannot be instantiated */ }
 }
diff --git a/services/core/java/com/android/server/hdmi/DeviceSelectAction.java b/services/core/java/com/android/server/hdmi/DeviceSelectAction.java
index ed37ead..d155e84 100644
--- a/services/core/java/com/android/server/hdmi/DeviceSelectAction.java
+++ b/services/core/java/com/android/server/hdmi/DeviceSelectAction.java
@@ -23,7 +23,6 @@
 import android.os.RemoteException;
 import android.util.Slog;
 
-import com.android.server.hdmi.HdmiCecLocalDevice.ActiveSource;
 import com.android.server.hdmi.HdmiControlService.SendMessageCallback;
 
 /**
@@ -42,9 +41,6 @@
     // Time in milliseconds we wait for the device power status to turn to 'On'.
     private static final int TIMEOUT_POWER_ON_MS = 5 * 1000;
 
-    // Time in milliseconds we wait for <Active Source>.
-    private static final int TIMEOUT_ACTIVE_SOURCE_MS = 20 * 1000;
-
     // The number of times we try to wake up the target device before we give up
     // and just send <Set Stream Path>.
     private static final int LOOP_COUNTER_MAX = 20;
@@ -62,11 +58,6 @@
     // maximum 100 seconds (20 * 5) before we give up and just send <Set Stream Path>.
     private static final int STATE_WAIT_FOR_DEVICE_POWER_ON = 3;
 
-    // State in which we wait for the <Active Source> in response to the command
-    // <Set Stream Path> we have sent. We wait as much as TIMEOUT_ACTIVE_SOURCE_MS
-    // before we give up and mark the action as failure.
-    private static final int STATE_WAIT_FOR_ACTIVE_SOURCE = 4;
-
     private final HdmiDeviceInfo mTarget;
     private final IHdmiControlCallback mCallback;
     private final HdmiCecMessage mGivePowerStatus;
@@ -129,16 +120,6 @@
                     return handleReportPowerStatus(params[0]);
                 }
                 return false;
-            case STATE_WAIT_FOR_ACTIVE_SOURCE:
-                if (opcode == Constants.MESSAGE_ACTIVE_SOURCE) {
-                    int physicalAddress = HdmiUtils.twoBytesToInt(params);
-                    ActiveSourceHandler
-                            .create((HdmiCecLocalDeviceTv) localDevice(), mCallback)
-                            .process(ActiveSource.of(cmd.getSource(), physicalAddress));
-                    finish();
-                    return true;
-                }
-                return false;
             default:
                 break;
         }
@@ -189,8 +170,8 @@
     private void sendSetStreamPath() {
         sendCommand(HdmiCecMessageBuilder.buildSetStreamPath(
                 getSourceAddress(), mTarget.getPhysicalAddress()));
-        mState = STATE_WAIT_FOR_ACTIVE_SOURCE;
-        addTimer(mState, TIMEOUT_ACTIVE_SOURCE_MS);
+        invokeCallback(HdmiControlManager.RESULT_SUCCESS);
+        finish();
     }
 
     @Override
@@ -213,10 +194,6 @@
                 mPowerStatusCounter++;
                 queryDevicePowerStatus();
                 break;
-            case STATE_WAIT_FOR_ACTIVE_SOURCE:
-                invokeCallback(HdmiControlManager.RESULT_TIMEOUT);
-                finish();
-                break;
         }
     }
 
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecKeycode.java b/services/core/java/com/android/server/hdmi/HdmiCecKeycode.java
index c0c8424..46b2b3e 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecKeycode.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecKeycode.java
@@ -21,7 +21,7 @@
 /**
  * Helper class to translate android keycode to hdmi cec keycode and vice versa.
  */
-public class HdmiCecKeycode {
+final class HdmiCecKeycode {
     public static final int UNSUPPORTED_KEYCODE = -1;
     public static final int NO_PARAM = -1;
 
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
index 2ff657f..809fef4 100644
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceTv.java
@@ -100,7 +100,7 @@
     private List<HdmiDeviceInfo> mSafeExternalInputs = Collections.emptyList();
 
     // Map-like container of all cec devices including local ones.
-    // A logical address of device is used as key of container.
+    // device id is used as key of container.
     // This is not thread-safe. For external purpose use mSafeDeviceInfos.
     private final SparseArray<HdmiDeviceInfo> mDeviceInfos = new SparseArray<>();
 
@@ -167,12 +167,19 @@
     /**
      * Performs the action 'device select', or 'one touch play' initiated by TV.
      *
-     * @param targetAddress logical address of the device to select
+     * @param id id of HDMI device to select
      * @param callback callback object to report the result with
      */
     @ServiceThreadOnly
-    void deviceSelect(int targetAddress, IHdmiControlCallback callback) {
+    void deviceSelect(int id, IHdmiControlCallback callback) {
         assertRunOnServiceThread();
+        HdmiDeviceInfo targetDevice = mDeviceInfos.get(id);
+        if (targetDevice == null) {
+            invokeCallback(callback, HdmiControlManager.RESULT_TARGET_NOT_AVAILABLE);
+            return;
+        }
+        // TODO: Handle MHL device
+        int targetAddress = targetDevice.getLogicalAddress();
         ActiveSource active = getActiveSource();
         if (active.isValid() && targetAddress == active.logicalAddress) {
             invokeCallback(callback, HdmiControlManager.RESULT_SUCCESS);
@@ -187,18 +194,10 @@
             return;
         }
         if (!mService.isControlEnabled()) {
-            HdmiDeviceInfo info = getDeviceInfo(targetAddress);
-            if (info != null) {
-                setActiveSource(info);
-            }
+            setActiveSource(targetDevice);
             invokeCallback(callback, HdmiControlManager.RESULT_INCORRECT_MODE);
             return;
         }
-        HdmiDeviceInfo targetDevice = getDeviceInfo(targetAddress);
-        if (targetDevice == null) {
-            invokeCallback(callback, HdmiControlManager.RESULT_TARGET_NOT_AVAILABLE);
-            return;
-        }
         removeAction(DeviceSelectAction.class);
         addAndStartAction(new DeviceSelectAction(this, targetDevice, callback));
     }
@@ -231,7 +230,7 @@
         }
         setActiveSource(newActive);
         int logicalAddress = newActive.logicalAddress;
-        if (getDeviceInfo(logicalAddress) != null && logicalAddress != mAddress) {
+        if (getCecDeviceInfo(logicalAddress) != null && logicalAddress != mAddress) {
             if (mService.pathToPortId(newActive.physicalAddress) == getActivePortId()) {
                 setPrevPortId(getActivePortId());
             }
@@ -279,7 +278,7 @@
         // Show OSD port change banner
         if (notifyInputChange) {
             ActiveSource activeSource = getActiveSource();
-            HdmiDeviceInfo info = getDeviceInfo(activeSource.logicalAddress);
+            HdmiDeviceInfo info = getCecDeviceInfo(activeSource.logicalAddress);
             if (info == null) {
                 info = new HdmiDeviceInfo(Constants.ADDR_INVALID, path, portId,
                         HdmiDeviceInfo.DEVICE_RESERVED, 0, null);
@@ -309,7 +308,8 @@
         // TODO: Return immediately if the operation is triggered by <Text/Image View On>
         // and this is the first notification about the active input after power-on
         // (switch to HDMI didn't happen so far but is expected to happen soon).
-        int oldPath = mService.portIdToPath(getActivePortId());
+        int oldPath = getActivePortId() != Constants.INVALID_PORT_ID
+                ? mService.portIdToPath(getActivePortId()) : getDeviceInfo().getPhysicalAddress();
         int newPath = mService.portIdToPath(portId);
         HdmiCecMessage routingChange =
                 HdmiCecMessageBuilder.buildRoutingChange(mAddress, oldPath, newPath);
@@ -336,11 +336,11 @@
         if (!action.isEmpty()) {
             action.get(0).processKeyEvent(keyCode, isPressed);
         } else {
-            if (isPressed) {
+            if (isPressed && getActiveSource().isValid()) {
                 int logicalAddress = getActiveSource().logicalAddress;
                 addAndStartAction(new SendKeyAction(this, logicalAddress, keyCode));
             } else {
-                Slog.w(TAG, "Discard key release event");
+                Slog.w(TAG, "Discard key event: " + keyCode + " pressed:" + isPressed);
             }
         }
     }
@@ -362,7 +362,7 @@
         assertRunOnServiceThread();
         int logicalAddress = message.getSource();
         int physicalAddress = HdmiUtils.twoBytesToInt(message.getParams());
-        if (getDeviceInfo(logicalAddress) == null) {
+        if (getCecDeviceInfo(logicalAddress) == null) {
             handleNewDeviceAtTheTailOfActivePath(physicalAddress);
         } else {
             ActiveSource activeSource = ActiveSource.of(logicalAddress, physicalAddress);
@@ -388,7 +388,7 @@
         if (portId != Constants.INVALID_PORT_ID) {
             // TODO: Do this only if TV is not showing multiview like PIP/PAP.
 
-            HdmiDeviceInfo inactiveSource = getDeviceInfo(message.getSource());
+            HdmiDeviceInfo inactiveSource = getCecDeviceInfo(message.getSource());
             if (inactiveSource == null) {
                 return true;
             }
@@ -576,7 +576,7 @@
     @ServiceThreadOnly
     protected boolean handleSetOsdName(HdmiCecMessage message) {
         int source = message.getSource();
-        HdmiDeviceInfo deviceInfo = getDeviceInfo(source);
+        HdmiDeviceInfo deviceInfo = getCecDeviceInfo(source);
         // If the device is not in device list, ignore it.
         if (deviceInfo == null) {
             Slog.e(TAG, "No source device info for <Set Osd Name>." + message);
@@ -951,11 +951,11 @@
     @ServiceThreadOnly
     private HdmiDeviceInfo addDeviceInfo(HdmiDeviceInfo deviceInfo) {
         assertRunOnServiceThread();
-        HdmiDeviceInfo oldDeviceInfo = getDeviceInfo(deviceInfo.getLogicalAddress());
+        HdmiDeviceInfo oldDeviceInfo = getCecDeviceInfo(deviceInfo.getLogicalAddress());
         if (oldDeviceInfo != null) {
-            removeDeviceInfo(deviceInfo.getLogicalAddress());
+            removeDeviceInfo(deviceInfo.getId());
         }
-        mDeviceInfos.append(deviceInfo.getLogicalAddress(), deviceInfo);
+        mDeviceInfos.append(deviceInfo.getId(), deviceInfo);
         updateSafeDeviceInfoList();
         return oldDeviceInfo;
     }
@@ -966,15 +966,15 @@
      *
      * <p>Declared as package-private. accessed by {@link HdmiControlService} only.
      *
-     * @param logicalAddress logical address of device to be removed
+     * @param id id of device to be removed
      * @return removed {@link HdmiDeviceInfo} it exists. Otherwise, returns {@code null}
      */
     @ServiceThreadOnly
-    private HdmiDeviceInfo removeDeviceInfo(int logicalAddress) {
+    private HdmiDeviceInfo removeDeviceInfo(int id) {
         assertRunOnServiceThread();
-        HdmiDeviceInfo deviceInfo = mDeviceInfos.get(logicalAddress);
+        HdmiDeviceInfo deviceInfo = mDeviceInfos.get(id);
         if (deviceInfo != null) {
-            mDeviceInfos.remove(logicalAddress);
+            mDeviceInfos.remove(id);
         }
         updateSafeDeviceInfoList();
         return deviceInfo;
@@ -1034,7 +1034,7 @@
         ArrayList<HdmiDeviceInfo> infoList = new ArrayList<>();
         for (int i = 0; i < mDeviceInfos.size(); ++i) {
             HdmiDeviceInfo info = mDeviceInfos.valueAt(i);
-            if (isLocalDeviceAddress(i)) {
+            if (isLocalDeviceAddress(info.getLogicalAddress())) {
                 continue;
             }
             if (info.isSourceType() && !hideDevicesBehindLegacySwitch(info)) {
@@ -1094,23 +1094,22 @@
     @ServiceThreadOnly
     HdmiDeviceInfo getAvrDeviceInfo() {
         assertRunOnServiceThread();
-        return getDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
+        return getCecDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
     }
 
     /**
      * Return a {@link HdmiDeviceInfo} corresponding to the given {@code logicalAddress}.
      *
-     * <p>Declared as package-private. accessed by {@link HdmiControlService} only.
-     * This is not thread-safe. For thread safety, call {@link #getSafeDeviceInfo(int)}.
+     * This is not thread-safe. For thread safety, call {@link #getSafeCecDeviceInfo(int)}.
      *
-     * @param logicalAddress logical address to be retrieved
+     * @param address logical address of the device to be retrieved
      * @return {@link HdmiDeviceInfo} matched with the given {@code logicalAddress}.
      *         Returns null if no logical address matched
      */
     @ServiceThreadOnly
-    HdmiDeviceInfo getDeviceInfo(int logicalAddress) {
+    HdmiDeviceInfo getCecDeviceInfo(int logicalAddress) {
         assertRunOnServiceThread();
-        return mDeviceInfos.get(logicalAddress);
+        return mDeviceInfos.get(HdmiDeviceInfo.idForCecDevice(logicalAddress));
     }
 
     boolean hasSystemAudioDevice() {
@@ -1118,19 +1117,24 @@
     }
 
     HdmiDeviceInfo getSafeAvrDeviceInfo() {
-        return getSafeDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
+        return getSafeCecDeviceInfo(Constants.ADDR_AUDIO_SYSTEM);
     }
 
     /**
-     * Thread safe version of {@link #getDeviceInfo(int)}.
+     * Thread safe version of {@link #getCecDeviceInfo(int)}.
      *
      * @param logicalAddress logical address to be retrieved
      * @return {@link HdmiDeviceInfo} matched with the given {@code logicalAddress}.
      *         Returns null if no logical address matched
      */
-    HdmiDeviceInfo getSafeDeviceInfo(int logicalAddress) {
+    HdmiDeviceInfo getSafeCecDeviceInfo(int logicalAddress) {
         synchronized (mLock) {
-            return mSafeAllDeviceInfos.get(logicalAddress);
+            for (HdmiDeviceInfo info : mSafeAllDeviceInfos) {
+                if (info.isCecDevice() && info.getLogicalAddress() == logicalAddress) {
+                    return info;
+                }
+            }
+            return null;
         }
     }
 
@@ -1159,7 +1163,7 @@
     @ServiceThreadOnly
     final void removeCecDevice(int address) {
         assertRunOnServiceThread();
-        HdmiDeviceInfo info = removeDeviceInfo(address);
+        HdmiDeviceInfo info = removeDeviceInfo(HdmiDeviceInfo.idForCecDevice(address));
 
         mCecMessageCache.flushMessagesFrom(address);
         invokeDeviceEventListener(info, HdmiControlManager.DEVICE_EVENT_REMOVE_DEVICE);
@@ -1239,7 +1243,7 @@
     @ServiceThreadOnly
     boolean isInDeviceList(int logicalAddress, int physicalAddress) {
         assertRunOnServiceThread();
-        HdmiDeviceInfo device = getDeviceInfo(logicalAddress);
+        HdmiDeviceInfo device = getCecDeviceInfo(logicalAddress);
         if (device == null) {
             return false;
         }
@@ -1426,7 +1430,7 @@
     }
 
     private boolean checkRecorder(int recorderAddress) {
-        HdmiDeviceInfo device = getDeviceInfo(recorderAddress);
+        HdmiDeviceInfo device = getCecDeviceInfo(recorderAddress);
         return (device != null)
                 && (HdmiUtils.getTypeFromAddress(recorderAddress)
                         == HdmiDeviceInfo.DEVICE_RECORDER);
@@ -1527,7 +1531,7 @@
     }
 
     void updateDevicePowerStatus(int logicalAddress, int newPowerStatus) {
-        HdmiDeviceInfo info = getDeviceInfo(logicalAddress);
+        HdmiDeviceInfo info = getCecDeviceInfo(logicalAddress);
         if (info == null) {
             Slog.w(TAG, "Can not update power status of non-existing device:" + logicalAddress);
             return;
diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java
index 6f33f75..14c066e 100644
--- a/services/core/java/com/android/server/hdmi/HdmiControlService.java
+++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java
@@ -18,7 +18,6 @@
 
 import static com.android.server.hdmi.Constants.DISABLED;
 import static com.android.server.hdmi.Constants.ENABLED;
-import static com.android.server.hdmi.Constants.OPTION_CEC_AUTO_DEVICE_OFF;
 import static com.android.server.hdmi.Constants.OPTION_CEC_AUTO_WAKEUP;
 import static com.android.server.hdmi.Constants.OPTION_CEC_ENABLE;
 import static com.android.server.hdmi.Constants.OPTION_CEC_SERVICE_CONTROL;
@@ -33,8 +32,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.database.ContentObserver;
-import android.hardware.hdmi.HdmiDeviceInfo;
 import android.hardware.hdmi.HdmiControlManager;
+import android.hardware.hdmi.HdmiDeviceInfo;
 import android.hardware.hdmi.HdmiHotplugEvent;
 import android.hardware.hdmi.HdmiPortInfo;
 import android.hardware.hdmi.IHdmiControlCallback;
@@ -55,8 +54,10 @@
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.SystemClock;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.provider.Settings.Global;
+import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Slog;
 import android.util.SparseArray;
@@ -197,6 +198,10 @@
     @GuardedBy("mLock")
     private boolean mProhibitMode;
 
+    // Set to true while the input change by MHL is allowed.
+    @GuardedBy("mLock")
+    private boolean mMhlInputChangeEnabled;
+
     // List of listeners registered by callers that want to get notified of
     // system audio mode changes.
     private final ArrayList<IHdmiSystemAudioModeChangeListener>
@@ -244,17 +249,31 @@
 
     public HdmiControlService(Context context) {
         super(context);
-        mLocalDevices = HdmiUtils.asImmutableList(getContext().getResources().getIntArray(
-                com.android.internal.R.array.config_hdmiCecLogicalDeviceType));
+        mLocalDevices = getIntList(SystemProperties.get(Constants.PROPERTY_DEVICE_TYPE));
         mSettingsObserver = new SettingsObserver(mHandler);
     }
 
+    private static List<Integer> getIntList(String string) {
+        ArrayList<Integer> list = new ArrayList<>();
+        TextUtils.SimpleStringSplitter splitter = new TextUtils.SimpleStringSplitter(',');
+        splitter.setString(string);
+        for (String item : splitter) {
+            try {
+                list.add(Integer.parseInt(item));
+            } catch (NumberFormatException e) {
+                Slog.w(TAG, "Can't parseInt: " + item);
+            }
+        }
+        return Collections.unmodifiableList(list);
+    }
+
     @Override
     public void onStart() {
         mIoThread.start();
         mPowerStatus = HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON;
         mProhibitMode = false;
         mHdmiControlEnabled = readBooleanSetting(Global.HDMI_CONTROL_ENABLED, true);
+        mMhlInputChangeEnabled = readBooleanSetting(Global.MHL_INPUT_SWITCHING_ENABLED, true);
 
         mCecController = HdmiCecController.create(this);
         if (mCecController != null) {
@@ -339,10 +358,12 @@
                     // No need to propagate to HAL.
                     break;
                 case Global.MHL_INPUT_SWITCHING_ENABLED:
-                    setOption(OPTION_MHL_INPUT_SWITCHING, toInt(enabled));
+                    setMhlInputChangeEnabled(enabled);
                     break;
                 case Global.MHL_POWER_CHARGE_ENABLED:
-                    setOption(OPTION_MHL_POWER_CHARGE, toInt(enabled));
+                    if (mMhlController != null) {
+                        mMhlController.setOption(OPTION_MHL_POWER_CHARGE, toInt(enabled));
+                    }
                     break;
             }
         }
@@ -547,7 +568,7 @@
         if (tv == null) {
             return null;
         }
-        return tv.getDeviceInfo(logicalAddress);
+        return tv.getCecDeviceInfo(logicalAddress);
     }
 
     /**
@@ -928,7 +949,7 @@
         }
 
         @Override
-        public void deviceSelect(final int logicalAddress, final IHdmiControlCallback callback) {
+        public void deviceSelect(final int deviceId, final IHdmiControlCallback callback) {
             enforceAccessPermission();
             runOnServiceThread(new Runnable() {
                 @Override
@@ -943,7 +964,7 @@
                         invokeCallback(callback, HdmiControlManager.RESULT_SOURCE_NOT_AVAILABLE);
                         return;
                     }
-                    tv.deviceSelect(logicalAddress, callback);
+                    tv.deviceSelect(deviceId, callback);
                 }
             });
         }
@@ -975,12 +996,21 @@
             runOnServiceThread(new Runnable() {
                 @Override
                 public void run() {
-                    HdmiCecLocalDevice localDevice = mCecController.getLocalDevice(deviceType);
-                    if (localDevice == null) {
-                        Slog.w(TAG, "Local device not available");
-                        return;
+                    if (mMhlController != null) {
+                        HdmiMhlLocalDevice device = mMhlController.getLocalDevice(mActivePortId);
+                        if (device != null) {
+                            device.sendKeyEvent(keyCode, isPressed);
+                            return;
+                        }
                     }
-                    localDevice.sendKeyEvent(keyCode, isPressed);
+                    if (mCecController != null) {
+                        HdmiCecLocalDevice localDevice = mCecController.getLocalDevice(deviceType);
+                        if (localDevice == null) {
+                            Slog.w(TAG, "Local device not available");
+                            return;
+                        }
+                        localDevice.sendKeyEvent(keyCode, isPressed);
+                    }
                 }
             });
         }
@@ -1564,7 +1594,7 @@
         assertRunOnServiceThread();
         mStandbyMessageReceived = true;
         PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
-        pm.goToSleep(SystemClock.uptimeMillis());
+        pm.goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_HDMI, 0);
         // PowerManger will send the broadcast Intent.ACTION_SCREEN_OFF and after this gets
         // the intent, the sequence will continue at onStandby().
     }
@@ -1727,4 +1757,20 @@
         assertRunOnServiceThread();
         mActivePortId = portId;
     }
+
+    void setMhlInputChangeEnabled(boolean enabled) {
+        if (mMhlController != null) {
+            mMhlController.setOption(OPTION_MHL_INPUT_SWITCHING, toInt(enabled));
+        }
+
+        synchronized (mLock) {
+            mMhlInputChangeEnabled = enabled;
+        }
+    }
+
+    boolean isMhlInputChangeEnabled() {
+        synchronized (mLock) {
+            return mMhlInputChangeEnabled;
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java b/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
index 51e68b6..722be71 100644
--- a/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
+++ b/services/core/java/com/android/server/hdmi/HotplugDetectionAction.java
@@ -207,7 +207,7 @@
     }
 
     private void mayChangeRoutingPath(int address) {
-        HdmiDeviceInfo info = tv().getDeviceInfo(address);
+        HdmiDeviceInfo info = tv().getCecDeviceInfo(address);
         if (info != null) {
             tv().handleRemoveActiveRoutingPath(info.getPhysicalAddress());
         }
diff --git a/services/core/java/com/android/server/lights/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
index 94cf668..9dcc529 100644
--- a/services/core/java/com/android/server/lights/LightsService.java
+++ b/services/core/java/com/android/server/lights/LightsService.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.IHardwareService;
 import android.os.Message;
+import android.os.Trace;
 import android.util.Slog;
 
 import java.io.FileInputStream;
@@ -105,7 +106,12 @@
                 mMode = mode;
                 mOnMS = onMS;
                 mOffMS = offMS;
-                setLight_native(mNativePointer, mId, color, mode, onMS, offMS, brightnessMode);
+                Trace.traceBegin(Trace.TRACE_TAG_POWER, "setLight(" + mId + ", " + color + ")");
+                try {
+                    setLight_native(mNativePointer, mId, color, mode, onMS, offMS, brightnessMode);
+                } finally {
+                    Trace.traceEnd(Trace.TRACE_TAG_POWER);
+                }
             }
         }
 
diff --git a/services/core/java/com/android/server/location/GpsLocationProvider.java b/services/core/java/com/android/server/location/GpsLocationProvider.java
index 058a23e..753ae39 100644
--- a/services/core/java/com/android/server/location/GpsLocationProvider.java
+++ b/services/core/java/com/android/server/location/GpsLocationProvider.java
@@ -221,6 +221,14 @@
     private static final int GPS_GEOFENCE_ERROR_INVALID_TRANSITION = -103;
     private static final int GPS_GEOFENCE_ERROR_GENERIC = -149;
 
+    // Value of batterySaverGpsMode such that GPS isn't affected by battery saver mode.
+    private static final int BATTERY_SAVER_MODE_NO_CHANGE = 0;
+    // Value of batterySaverGpsMode such that GPS is disabled when battery saver mode
+    // is enabled and the screen is off.
+    private static final int BATTERY_SAVER_MODE_DISABLED_WHEN_SCREEN_OFF = 1;
+    // Secure setting for GPS behavior when battery saver mode is on.
+    private static final String BATTERY_SAVER_GPS_MODE = "batterySaverGpsMode";
+
     /** simpler wrapper for ProviderRequest + Worksource */
     private static class GpsRequest {
         public ProviderRequest request;
@@ -308,6 +316,13 @@
 
     private int mPositionMode;
 
+    // Current request from underlying location clients.
+    private ProviderRequest mProviderRequest = null;
+    // Current list of underlying location clients.
+    private WorkSource mWorkSource = null;
+    // True if gps should be disabled (used to support battery saver mode in settings).
+    private boolean mDisableGps = false;
+
     // properties loaded from PROPERTIES_FILE
     private Properties mProperties;
     private String mSuplServerHost;
@@ -352,6 +367,7 @@
     // Alarms
     private final static String ALARM_WAKEUP = "com.android.internal.location.ALARM_WAKEUP";
     private final static String ALARM_TIMEOUT = "com.android.internal.location.ALARM_TIMEOUT";
+    private final PowerManager mPowerManager;
     private final AlarmManager mAlarmManager;
     private final PendingIntent mWakeupIntent;
     private final PendingIntent mTimeoutIntent;
@@ -441,23 +457,27 @@
                 checkSmsSuplInit(intent);
             } else if (action.equals(Intents.WAP_PUSH_RECEIVED_ACTION)) {
                 checkWapSuplInit(intent);
-             } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
-                 int networkState;
-                 if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
-                     networkState = LocationProvider.TEMPORARILY_UNAVAILABLE;
-                 } else {
-                     networkState = LocationProvider.AVAILABLE;
-                 }
+            } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
+                int networkState;
+                if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
+                    networkState = LocationProvider.TEMPORARILY_UNAVAILABLE;
+                } else {
+                    networkState = LocationProvider.AVAILABLE;
+                }
 
-                 // retrieve NetworkInfo result for this UID
-                 NetworkInfo info =
-                         intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
-                 ConnectivityManager connManager = (ConnectivityManager)
-                         mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
-                 info = connManager.getNetworkInfo(info.getType());
+                // retrieve NetworkInfo result for this UID
+                NetworkInfo info =
+                        intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
+                ConnectivityManager connManager = (ConnectivityManager)
+                        mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
+                info = connManager.getNetworkInfo(info.getType());
 
-                 updateNetworkState(networkState, info);
-             }
+                updateNetworkState(networkState, info);
+            } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(action)
+                    || Intent.ACTION_SCREEN_OFF.equals(action)
+                    || Intent.ACTION_SCREEN_ON.equals(action)) {
+                updateLowPowerMode();
+            }
         }
     };
 
@@ -474,6 +494,22 @@
         native_agps_ni_message(supl_init,supl_init.length);
     }
 
+    private void updateLowPowerMode() {
+        final boolean disableGps;
+        switch (Settings.Secure.getInt(mContext.getContentResolver(), BATTERY_SAVER_GPS_MODE,
+                BATTERY_SAVER_MODE_DISABLED_WHEN_SCREEN_OFF)) {
+            case BATTERY_SAVER_MODE_DISABLED_WHEN_SCREEN_OFF:
+                disableGps = mPowerManager.isPowerSaveMode() && !mPowerManager.isInteractive();
+                break;
+            default:
+                disableGps = false;
+        }
+        if (disableGps != mDisableGps) {
+            mDisableGps = disableGps;
+            updateRequirements();
+        }
+    }
+
     public static boolean isSupported() {
         return native_is_supported();
     }
@@ -526,8 +562,8 @@
         mLocation.setExtras(mLocationExtras);
 
         // Create a wake lock
-        PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
-        mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_KEY);
+        mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+        mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKELOCK_KEY);
         mWakeLock.setReferenceCounted(true);
 
         mAlarmManager = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
@@ -604,6 +640,9 @@
         intentFilter.addAction(ALARM_WAKEUP);
         intentFilter.addAction(ALARM_TIMEOUT);
         intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
+        intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
+        intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
+        intentFilter.addAction(Intent.ACTION_SCREEN_ON);
         mContext.registerReceiver(mBroadcastReciever, intentFilter, null, mHandler);
     }
 
@@ -888,31 +927,43 @@
     }
 
     private void handleSetRequest(ProviderRequest request, WorkSource source) {
+        mProviderRequest = request;
+        mWorkSource = source;
+        updateRequirements();
+    }
+
+    // Called when the requirements for GPS may have changed
+    private void updateRequirements() {
+        if (mProviderRequest == null || mWorkSource == null) {
+            return;
+        }
+
         boolean singleShot = false;
 
         // see if the request is for a single update
-        if (request.locationRequests != null && request.locationRequests.size() > 0) {
+        if (mProviderRequest.locationRequests != null
+                && mProviderRequest.locationRequests.size() > 0) {
             // if any request has zero or more than one updates
             // requested, then this is not single-shot mode
             singleShot = true;
 
-            for (LocationRequest lr : request.locationRequests) {
+            for (LocationRequest lr : mProviderRequest.locationRequests) {
                 if (lr.getNumUpdates() != 1) {
                     singleShot = false;
                 }
             }
         }
 
-        if (DEBUG) Log.d(TAG, "setRequest " + request);
-        if (request.reportLocation) {
+        if (DEBUG) Log.d(TAG, "setRequest " + mProviderRequest);
+        if (mProviderRequest.reportLocation && !mDisableGps) {
             // update client uids
-            updateClientUids(source);
+            updateClientUids(mWorkSource);
 
-            mFixInterval = (int) request.interval;
+            mFixInterval = (int) mProviderRequest.interval;
 
             // check for overflow
-            if (mFixInterval != request.interval) {
-                Log.w(TAG, "interval overflow: " + request.interval);
+            if (mFixInterval != mProviderRequest.interval) {
+                Log.w(TAG, "interval overflow: " + mProviderRequest.interval);
                 mFixInterval = Integer.MAX_VALUE;
             }
 
@@ -1321,6 +1372,7 @@
         switch (status) {
             case GPS_REQUEST_AGPS_DATA_CONN:
                 if (DEBUG) Log.d(TAG, "GPS_REQUEST_AGPS_DATA_CONN");
+                Log.v(TAG, "Received SUPL IP addr[]: " + ipaddr);
                 // Set mAGpsDataConnectionState before calling startUsingNetworkFeature
                 //  to avoid a race condition with handleUpdateNetworkState()
                 mAGpsDataConnectionState = AGPS_DATA_CONNECTION_OPENING;
@@ -1329,6 +1381,7 @@
                 if (ipaddr != null) {
                     try {
                         mAGpsDataConnectionIpAddr = InetAddress.getByAddress(ipaddr);
+                        Log.v(TAG, "IP address converted to: " + mAGpsDataConnectionIpAddr);
                     } catch (UnknownHostException e) {
                         Log.e(TAG, "Bad IP Address: " + ipaddr, e);
                         mAGpsDataConnectionIpAddr = null;
@@ -1375,6 +1428,8 @@
             case GPS_AGPS_DATA_CONN_FAILED:
                 if (DEBUG) Log.d(TAG, "GPS_AGPS_DATA_CONN_FAILED");
                 break;
+            default:
+                Log.d(TAG, "Received Unknown AGPS status: " + status);
         }
     }
 
@@ -1909,6 +1964,7 @@
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         StringBuilder s = new StringBuilder();
         s.append("  mFixInterval=").append(mFixInterval).append("\n");
+        s.append("  mDisableGps (battery saver mode)=").append(mDisableGps).append("\n");
         s.append("  mEngineCapabilities=0x").append(Integer.toHexString(mEngineCapabilities)).append(" (");
         if (hasCapability(GPS_CAPABILITY_SCHEDULING)) s.append("SCHED ");
         if (hasCapability(GPS_CAPABILITY_MSB)) s.append("MSB ");
@@ -2000,3 +2056,4 @@
     private native boolean native_start_navigation_message_collection();
     private native boolean native_stop_navigation_message_collection();
 }
+
diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java
index e549ead..f820a3c 100644
--- a/services/core/java/com/android/server/media/MediaSessionRecord.java
+++ b/services/core/java/com/android/server/media/MediaSessionRecord.java
@@ -22,6 +22,7 @@
 import android.content.Intent;
 import android.content.pm.ParceledListSlice;
 import android.media.AudioManager;
+import android.media.AudioManagerInternal;
 import android.media.MediaMetadata;
 import android.media.Rating;
 import android.media.VolumeProvider;
@@ -52,6 +53,8 @@
 import android.util.Slog;
 import android.view.KeyEvent;
 
+import com.android.server.LocalServices;
+
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.UUID;
@@ -111,6 +114,7 @@
     // Volume handling fields
     private AudioAttributes mAudioAttrs;
     private AudioManager mAudioManager;
+    private AudioManagerInternal mAudioManagerInternal;
     private int mVolumeType = MediaSession.PLAYBACK_TYPE_LOCAL;
     private int mVolumeControlType = VolumeProvider.VOLUME_CONTROL_ABSOLUTE;
     private int mMaxVolume = 0;
@@ -134,6 +138,7 @@
         mService = service;
         mHandler = new MessageHandler(handler.getLooper());
         mAudioManager = (AudioManager) service.getContext().getSystemService(Context.AUDIO_SERVICE);
+        mAudioManagerInternal = LocalServices.getService(AudioManagerInternal.class);
         mAudioAttrs = new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA).build();
     }
 
@@ -227,7 +232,7 @@
      *
      * @param direction The direction to adjust volume in.
      */
-    public void adjustVolume(int direction, int flags) {
+    public void adjustVolume(int direction, int flags, String packageName, int uid) {
         if (isPlaybackActive(false)) {
             flags &= ~AudioManager.FLAG_PLAY_SOUND;
         }
@@ -238,7 +243,8 @@
         }
         if (mVolumeType == MediaSession.PLAYBACK_TYPE_LOCAL) {
             int stream = AudioAttributes.toLegacyStreamType(mAudioAttrs);
-            mAudioManager.adjustStreamVolume(stream, direction, flags);
+            mAudioManagerInternal.adjustStreamVolumeForUid(stream, direction, flags, packageName,
+                    uid);
         } else {
             if (mVolumeControlType == VolumeProvider.VOLUME_CONTROL_FIXED) {
                 // Nothing to do, the volume cannot be changed
@@ -262,10 +268,10 @@
         }
     }
 
-    public void setVolumeTo(int value, int flags) {
+    public void setVolumeTo(int value, int flags, String packageName, int uid) {
         if (mVolumeType == MediaSession.PLAYBACK_TYPE_LOCAL) {
             int stream = AudioAttributes.toLegacyStreamType(mAudioAttrs);
-            mAudioManager.setStreamVolume(stream, value, flags);
+            mAudioManagerInternal.setStreamVolumeForUid(stream, value, flags, packageName, uid);
         } else {
             if (mVolumeControlType != VolumeProvider.VOLUME_CONTROL_ABSOLUTE) {
                 // Nothing to do. The volume can't be set directly.
@@ -397,6 +403,7 @@
                 return;
             }
             mDestroyed = true;
+            mHandler.post(MessageHandler.MSG_DESTROYED);
         }
     }
 
@@ -575,6 +582,29 @@
         }
     }
 
+    private void pushSessionDestroyed() {
+        synchronized (mLock) {
+            // This is the only method that may be (and can only be) called
+            // after the session is destroyed.
+            if (!mDestroyed) {
+                return;
+            }
+            for (int i = mControllerCallbacks.size() - 1; i >= 0; i--) {
+                ISessionControllerCallback cb = mControllerCallbacks.get(i);
+                try {
+                    cb.onSessionDestroyed();
+                } catch (DeadObjectException e) {
+                    Log.w(TAG, "Removing dead callback in pushEvent.", e);
+                    mControllerCallbacks.remove(i);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "unexpected exception in pushEvent.", e);
+                }
+            }
+            // After notifying clear all listeners
+            mControllerCallbacks.clear();
+        }
+    }
+
     private PlaybackState getStateWithUpdatedPosition() {
         PlaybackState state = mPlaybackState;
         long duration = -1;
@@ -919,6 +949,16 @@
         @Override
         public void registerCallbackListener(ISessionControllerCallback cb) {
             synchronized (mLock) {
+                // If this session is already destroyed tell the caller and
+                // don't add them.
+                if (mDestroyed) {
+                    try {
+                        cb.onSessionDestroyed();
+                    } catch (Exception e) {
+                        // ignored
+                    }
+                    return;
+                }
                 if (getControllerCbIndexForCb(cb) < 0) {
                     mControllerCallbacks.add(cb);
                     if (DEBUG) {
@@ -984,20 +1024,22 @@
         }
 
         @Override
-        public void adjustVolume(int direction, int flags) {
+        public void adjustVolume(int direction, int flags, String packageName) {
+            int uid = Binder.getCallingUid();
             final long token = Binder.clearCallingIdentity();
             try {
-                MediaSessionRecord.this.adjustVolume(direction, flags);
+                MediaSessionRecord.this.adjustVolume(direction, flags, packageName, uid);
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
         }
 
         @Override
-        public void setVolumeTo(int value, int flags) {
+        public void setVolumeTo(int value, int flags, String packageName) {
+            int uid = Binder.getCallingUid();
             final long token = Binder.clearCallingIdentity();
             try {
-                MediaSessionRecord.this.setVolumeTo(value, flags);
+                MediaSessionRecord.this.setVolumeTo(value, flags, packageName, uid);
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
@@ -1123,6 +1165,7 @@
         private static final int MSG_SEND_EVENT = 6;
         private static final int MSG_UPDATE_SESSION_STATE = 7;
         private static final int MSG_UPDATE_VOLUME = 8;
+        private static final int MSG_DESTROYED = 9;
 
         public MessageHandler(Looper looper) {
             super(looper);
@@ -1154,6 +1197,8 @@
                 case MSG_UPDATE_VOLUME:
                     pushVolumeUpdate();
                     break;
+                case MSG_DESTROYED:
+                    pushSessionDestroyed();
             }
         }
 
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 277344e..1221aa4 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -90,7 +90,6 @@
     private ContentResolver mContentResolver;
     private SettingsObserver mSettingsObserver;
 
-    private MediaSessionRecord mPrioritySession;
     private int mCurrentUserId = -1;
 
     // Used to notify system UI when remote volume was changed. TODO find a
@@ -130,18 +129,6 @@
                 return;
             }
             mPriorityStack.onSessionStateChange(record);
-            if (record.isSystemPriority()) {
-                if (record.isActive()) {
-                    if (mPrioritySession != null) {
-                        Log.w(TAG, "Replacing existing priority session with a new session");
-                    }
-                    mPrioritySession = record;
-                } else {
-                    if (mPrioritySession == record) {
-                        mPrioritySession = null;
-                    }
-                }
-            }
         }
         mHandler.post(MessageHandler.MSG_SESSIONS_CHANGED, record.getUserId(), 0);
     }
@@ -285,9 +272,6 @@
 
         mPriorityStack.removeSession(session);
         mAllSessions.remove(session);
-        if (session == mPrioritySession) {
-            mPrioritySession = null;
-        }
 
         try {
             session.getCallback().asBinder().unlinkToDeath(session, 0);
@@ -770,10 +754,6 @@
             pw.println();
 
             synchronized (mLock) {
-                pw.println("Session for calls:" + mPrioritySession);
-                if (mPrioritySession != null) {
-                    mPrioritySession.dump(pw, "");
-                }
                 int count = mAllSessions.size();
                 pw.println(count + " Sessions:");
                 for (int i = 0; i < count; i++) {
@@ -832,7 +812,8 @@
                     Log.e(TAG, "Error adjusting default volume.", e);
                 }
             } else {
-                session.adjustVolume(direction, flags);
+                session.adjustVolume(direction, flags, getContext().getPackageName(),
+                        UserHandle.myUserId());
                 if (session.getPlaybackType() == MediaSession.PLAYBACK_TYPE_REMOTE
                         && mRvc != null) {
                     try {
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 3d1ecb3..fec11fb 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -63,9 +63,6 @@
      */
     public void addSession(MediaSessionRecord record) {
         mSessions.add(record);
-        if ((record.getFlags() & MediaSession.FLAG_EXCLUSIVE_GLOBAL_PRIORITY) != 0) {
-            mGlobalPrioritySession = record;
-        }
         clearCache();
     }
 
@@ -110,6 +107,9 @@
      * @param record The record that changed.
      */
     public void onSessionStateChange(MediaSessionRecord record) {
+        if ((record.getFlags() & MediaSession.FLAG_EXCLUSIVE_GLOBAL_PRIORITY) != 0) {
+            mGlobalPrioritySession = record;
+        }
         // For now just clear the cache. Eventually we'll selectively clear
         // depending on what changed.
         clearCache();
@@ -220,6 +220,7 @@
         ArrayList<MediaSessionRecord> sortedSessions = getPriorityListLocked(false, 0,
                 UserHandle.USER_ALL);
         int count = sortedSessions.size();
+        pw.println(prefix + "Global priority session is " + mGlobalPrioritySession);
         pw.println(prefix + "Sessions Stack - have " + count + " sessions:");
         String indent = prefix + "  ";
         for (int i = 0; i < count; i++) {
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index ad2bb92..bb5243c 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1060,9 +1060,11 @@
                 final NetworkIdentity ident = NetworkIdentity.buildNetworkIdentity(mContext, state);
 
                 final String baseIface = state.linkProperties.getInterfaceName();
-                connIdents.add(Pair.create(baseIface, ident));
-                if (powerSave) {
-                    connIfaces.add(baseIface);
+                if (baseIface != null) {
+                    connIdents.add(Pair.create(baseIface, ident));
+                    if (powerSave) {
+                        connIfaces.add(baseIface);
+                    }
                 }
 
                 // Stacked interfaces are considered to have same identity as
@@ -1070,9 +1072,11 @@
                 final List<LinkProperties> stackedLinks = state.linkProperties.getStackedLinks();
                 for (LinkProperties stackedLink : stackedLinks) {
                     final String stackedIface = stackedLink.getInterfaceName();
-                    connIdents.add(Pair.create(stackedIface, ident));
-                    if (powerSave) {
-                        connIfaces.add(stackedIface);
+                    if (stackedIface != null) {
+                        connIdents.add(Pair.create(stackedIface, ident));
+                        if (powerSave) {
+                            connIfaces.add(stackedIface);
+                        }
                     }
                 }
             }
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index e35ca46..f995dee 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -896,10 +896,12 @@
                 // Traffic occurring on the base interface is always counted for
                 // both total usage and UID details.
                 final String baseIface = state.linkProperties.getInterfaceName();
-                findOrCreateNetworkIdentitySet(mActiveIfaces, baseIface).add(ident);
-                findOrCreateNetworkIdentitySet(mActiveUidIfaces, baseIface).add(ident);
-                if (isMobile) {
-                    mobileIfaces.add(baseIface);
+                if (baseIface != null) {
+                    findOrCreateNetworkIdentitySet(mActiveIfaces, baseIface).add(ident);
+                    findOrCreateNetworkIdentitySet(mActiveUidIfaces, baseIface).add(ident);
+                    if (isMobile) {
+                        mobileIfaces.add(baseIface);
+                    }
                 }
 
                 // Traffic occurring on stacked interfaces is usually clatd,
@@ -909,15 +911,16 @@
                 final List<LinkProperties> stackedLinks = state.linkProperties.getStackedLinks();
                 for (LinkProperties stackedLink : stackedLinks) {
                     final String stackedIface = stackedLink.getInterfaceName();
-                    findOrCreateNetworkIdentitySet(mActiveUidIfaces, stackedIface).add(ident);
-                    if (isMobile) {
-                        mobileIfaces.add(stackedIface);
+                    if (stackedIface != null) {
+                        findOrCreateNetworkIdentitySet(mActiveUidIfaces, stackedIface).add(ident);
+                        if (isMobile) {
+                            mobileIfaces.add(stackedIface);
+                        }
                     }
                 }
             }
         }
 
-        mobileIfaces.remove(null);
         mMobileIfaces = mobileIfaces.toArray(new String[mobileIfaces.size()]);
     }
 
diff --git a/services/core/java/com/android/server/notification/ConditionProviders.java b/services/core/java/com/android/server/notification/ConditionProviders.java
index a06daf6..189131c 100644
--- a/services/core/java/com/android/server/notification/ConditionProviders.java
+++ b/services/core/java/com/android/server/notification/ConditionProviders.java
@@ -51,8 +51,9 @@
             = new ArrayMap<IBinder, IConditionListener>();
     private final ArrayList<ConditionRecord> mRecords = new ArrayList<ConditionRecord>();
     private final CountdownConditionProvider mCountdown = new CountdownConditionProvider();
+    private final DowntimeConditionProvider mDowntime = new DowntimeConditionProvider();
 
-    private Uri mExitConditionId;
+    private Condition mExitCondition;
     private ComponentName mExitConditionComponent;
 
     public ConditionProviders(Context context, Handler handler,
@@ -97,6 +98,7 @@
             }
         }
         mCountdown.dump(pw, filter);
+        mDowntime.dump(pw, filter);
     }
 
     @Override
@@ -110,6 +112,10 @@
         mCountdown.attachBase(mContext);
         registerService(mCountdown.asInterface(), CountdownConditionProvider.COMPONENT,
                 UserHandle.USER_OWNER);
+        mDowntime.attachBase(mContext);
+        registerService(mDowntime.asInterface(), DowntimeConditionProvider.COMPONENT,
+                UserHandle.USER_OWNER);
+        mDowntime.setCallback(new DowntimeCallback());
     }
 
     @Override
@@ -125,7 +131,7 @@
             if (info.component.equals(mExitConditionComponent)) {
                 // ensure record exists, we'll wire it up and subscribe below
                 final ConditionRecord manualRecord =
-                        getRecordLocked(mExitConditionId, mExitConditionComponent);
+                        getRecordLocked(mExitCondition.id, mExitConditionComponent);
                 manualRecord.isManual = true;
             }
             final int N = mRecords.size();
@@ -149,11 +155,11 @@
             if (!r.component.equals(removed.component)) continue;
             if (r.isManual) {
                 // removing the current manual condition, exit zen
-                mZenModeHelper.setZenMode(Global.ZEN_MODE_OFF);
+                mZenModeHelper.setZenMode(Global.ZEN_MODE_OFF, "manualServiceRemoved");
             }
             if (r.isAutomatic) {
                 // removing an automatic condition, exit zen
-                mZenModeHelper.setZenMode(Global.ZEN_MODE_OFF);
+                mZenModeHelper.setZenMode(Global.ZEN_MODE_OFF, "automaticServiceRemoved");
             }
             mRecords.remove(i);
         }
@@ -249,7 +255,8 @@
                         } else if (DEBUG) {
                             Slog.d(TAG, "Exit zen: manual condition false: " + c);
                         }
-                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_OFF);
+                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_OFF,
+                                "manualConditionExit");
                         unsubscribeLocked(r);
                         r.isManual = false;
                     }
@@ -263,33 +270,46 @@
                         } else if (DEBUG) {
                             Slog.d(TAG, "Exit zen: automatic condition false: " + c);
                         }
-                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_OFF);
+                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_OFF,
+                                "automaticConditionExit");
                     } else if (c.state == Condition.STATE_TRUE) {
                         Slog.d(TAG, "Enter zen: automatic condition true: " + c);
-                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+                        mZenModeHelper.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
+                                "automaticConditionEnter");
                     }
                 }
             }
         }
     }
 
-    public void setZenModeCondition(Uri conditionId, String reason) {
-        if (DEBUG) Slog.d(TAG, "setZenModeCondition " + conditionId);
+    public void setZenModeCondition(Condition condition, String reason) {
+        if (DEBUG) Slog.d(TAG, "setZenModeCondition " + condition);
         synchronized(mMutex) {
             ComponentName conditionComponent = null;
-            if (ZenModeConfig.isValidCountdownConditionId(conditionId)) {
-                // constructed by the client, make sure the record exists...
-                final ConditionRecord r = getRecordLocked(conditionId,
-                        CountdownConditionProvider.COMPONENT);
-                if (r.info == null) {
-                    // ... and is associated with the in-process service
-                    r.info = checkServiceTokenLocked(mCountdown.asInterface());
+            if (condition != null) {
+                if (ZenModeConfig.isValidCountdownConditionId(condition.id)) {
+                    // constructed by the client, make sure the record exists...
+                    final ConditionRecord r = getRecordLocked(condition.id,
+                            CountdownConditionProvider.COMPONENT);
+                    if (r.info == null) {
+                        // ... and is associated with the in-process service
+                        r.info = checkServiceTokenLocked(mCountdown.asInterface());
+                    }
+                }
+                if (ZenModeConfig.isValidDowntimeConditionId(condition.id)) {
+                    // constructed by the client, make sure the record exists...
+                    final ConditionRecord r = getRecordLocked(condition.id,
+                            DowntimeConditionProvider.COMPONENT);
+                    if (r.info == null) {
+                        // ... and is associated with the in-process service
+                        r.info = checkServiceTokenLocked(mDowntime.asInterface());
+                    }
                 }
             }
             final int N = mRecords.size();
             for (int i = 0; i < N; i++) {
                 final ConditionRecord r = mRecords.get(i);
-                final boolean idEqual = r.id.equals(conditionId);
+                final boolean idEqual = condition != null && r.id.equals(condition.id);
                 if (r.isManual && !idEqual) {
                     // was previous manual condition, unsubscribe
                     unsubscribeLocked(r);
@@ -303,10 +323,10 @@
                     conditionComponent = r.component;
                 }
             }
-            if (!Objects.equals(mExitConditionId, conditionId)) {
-                mExitConditionId = conditionId;
+            if (!Objects.equals(mExitCondition, condition)) {
+                mExitCondition = condition;
                 mExitConditionComponent = conditionComponent;
-                ZenLog.traceExitCondition(mExitConditionId, mExitConditionComponent, reason);
+                ZenLog.traceExitCondition(mExitCondition, mExitConditionComponent, reason);
                 saveZenConfigLocked();
             }
         }
@@ -318,6 +338,7 @@
         RemoteException re = null;
         if (provider != null) {
             try {
+                Slog.d(TAG, "Subscribing to " + r.id + " with " + provider);
                 provider.onSubscribe(r.id);
             } catch (RemoteException e) {
                 Slog.w(TAG, "Error subscribing to " + r, e);
@@ -436,12 +457,13 @@
             return;
         }
         synchronized (mMutex) {
-            final boolean changingExit = !Objects.equals(mExitConditionId, config.exitConditionId);
-            mExitConditionId = config.exitConditionId;
+            final boolean changingExit = !Objects.equals(mExitCondition, config.exitCondition);
+            mExitCondition = config.exitCondition;
             mExitConditionComponent = config.exitConditionComponent;
             if (changingExit) {
-                ZenLog.traceExitCondition(mExitConditionId, mExitConditionComponent, "config");
+                ZenLog.traceExitCondition(mExitCondition, mExitConditionComponent, "config");
             }
+            mDowntime.setConfig(config);
             if (config.conditionComponents == null || config.conditionIds == null
                     || config.conditionComponents.length != config.conditionIds.length) {
                 if (DEBUG) Slog.d(TAG, "loadZenConfig: no conditions");
@@ -488,7 +510,7 @@
                 config.conditionIds[i] = r.id;
             }
         }
-        config.exitConditionId = mExitConditionId;
+        config.exitCondition = mExitCondition;
         config.exitConditionComponent = mExitConditionComponent;
         if (DEBUG) Slog.d(TAG, "Setting zen config to: " + config);
         mZenModeHelper.setConfig(config);
@@ -510,6 +532,26 @@
         }
     }
 
+    private class DowntimeCallback implements DowntimeConditionProvider.Callback {
+        @Override
+        public void onDowntimeChanged(boolean inDowntime) {
+            final int mode = mZenModeHelper.getZenMode();
+            final ZenModeConfig config = mZenModeHelper.getConfig();
+            // enter downtime
+            if (inDowntime && mode == Global.ZEN_MODE_OFF && config != null) {
+                final Condition condition = mDowntime.createCondition(config.toDowntimeInfo(),
+                        Condition.STATE_TRUE);
+                mZenModeHelper.setZenMode(Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, "downtimeEnter");
+                setZenModeCondition(condition, "downtime");
+            }
+            // exit downtime
+            if (!inDowntime && mode == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS
+                    && mDowntime.isDowntimeCondition(mExitCondition)) {
+                mZenModeHelper.setZenMode(Global.ZEN_MODE_OFF, "downtimeExit");
+            }
+        }
+    }
+
     private static class ConditionRecord {
         public final Uri id;
         public final ComponentName component;
diff --git a/services/core/java/com/android/server/notification/CountdownConditionProvider.java b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
index aaf7cfc..37aacaa 100644
--- a/services/core/java/com/android/server/notification/CountdownConditionProvider.java
+++ b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
@@ -29,6 +29,7 @@
 import android.service.notification.IConditionProvider;
 import android.service.notification.ZenModeConfig;
 import android.text.format.DateUtils;
+import android.util.Log;
 import android.util.Slog;
 
 import com.android.server.notification.NotificationManagerService.DumpFilter;
@@ -38,8 +39,8 @@
 
 /** Built-in zen condition provider for simple time-based conditions */
 public class CountdownConditionProvider extends ConditionProviderService {
-    private static final String TAG = "CountdownConditionProvider";
-    private static final boolean DEBUG = false;
+    private static final String TAG = "CountdownConditions";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     public static final ComponentName COMPONENT =
             new ComponentName("android", CountdownConditionProvider.class.getName());
diff --git a/services/core/java/com/android/server/notification/DowntimeConditionProvider.java b/services/core/java/com/android/server/notification/DowntimeConditionProvider.java
new file mode 100644
index 0000000..317ebef
--- /dev/null
+++ b/services/core/java/com/android/server/notification/DowntimeConditionProvider.java
@@ -0,0 +1,289 @@
+/**
+ * Copyright (c) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.notification;
+
+import android.app.AlarmManager;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.Uri;
+import android.service.notification.Condition;
+import android.service.notification.ConditionProviderService;
+import android.service.notification.IConditionProvider;
+import android.service.notification.ZenModeConfig;
+import android.service.notification.ZenModeConfig.DowntimeInfo;
+import android.text.format.DateFormat;
+import android.util.ArraySet;
+import android.util.Log;
+import android.util.Slog;
+
+import com.android.internal.R;
+import com.android.server.notification.NotificationManagerService.DumpFilter;
+
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Objects;
+
+/** Built-in zen condition provider for managing downtime */
+public class DowntimeConditionProvider extends ConditionProviderService {
+    private static final String TAG = "DowntimeConditions";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+
+    public static final ComponentName COMPONENT =
+            new ComponentName("android", DowntimeConditionProvider.class.getName());
+
+    private static final String ENTER_ACTION = TAG + ".enter";
+    private static final int ENTER_CODE = 100;
+    private static final String EXIT_ACTION = TAG + ".exit";
+    private static final int EXIT_CODE = 101;
+    private static final String EXTRA_TIME = "time";
+
+    private final Calendar mCalendar = Calendar.getInstance();
+    private final Context mContext = this;
+    private final ArraySet<Integer> mDays = new ArraySet<Integer>();
+
+    private boolean mConnected;
+    private boolean mInDowntime;
+    private ZenModeConfig mConfig;
+    private Callback mCallback;
+
+    public DowntimeConditionProvider() {
+        if (DEBUG) Slog.d(TAG, "new DowntimeConditionProvider()");
+    }
+
+    public void dump(PrintWriter pw, DumpFilter filter) {
+        pw.println("    DowntimeConditionProvider:");
+        pw.print("      mConnected="); pw.println(mConnected);
+        pw.print("      mInDowntime="); pw.println(mInDowntime);
+    }
+
+    public void attachBase(Context base) {
+        attachBaseContext(base);
+    }
+
+    public IConditionProvider asInterface() {
+        return (IConditionProvider) onBind(null);
+    }
+
+    public void setCallback(Callback callback) {
+        mCallback = callback;
+    }
+
+    @Override
+    public void onConnected() {
+        if (DEBUG) Slog.d(TAG, "onConnected");
+        mConnected = true;
+        final IntentFilter filter = new IntentFilter();
+        filter.addAction(ENTER_ACTION);
+        filter.addAction(EXIT_ACTION);
+        filter.addAction(Intent.ACTION_TIME_CHANGED);
+        filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+        mContext.registerReceiver(mReceiver, filter);
+        init();
+    }
+
+    @Override
+    public void onDestroy() {
+        if (DEBUG) Slog.d(TAG, "onDestroy");
+        mConnected = false;
+    }
+
+    @Override
+    public void onRequestConditions(int relevance) {
+        if (DEBUG) Slog.d(TAG, "onRequestConditions relevance=" + relevance);
+        if ((relevance & Condition.FLAG_RELEVANT_NOW) != 0) {
+            if (mInDowntime && mConfig != null) {
+                notifyCondition(createCondition(mConfig.toDowntimeInfo(), Condition.STATE_TRUE));
+            }
+        }
+    }
+
+    @Override
+    public void onSubscribe(Uri conditionId) {
+        if (DEBUG) Slog.d(TAG, "onSubscribe conditionId=" + conditionId);
+        final DowntimeInfo downtime = ZenModeConfig.tryParseDowntimeConditionId(conditionId);
+        if (downtime != null && mConfig != null) {
+            final int state = mConfig.toDowntimeInfo().equals(downtime) && mInDowntime
+                    ? Condition.STATE_TRUE : Condition.STATE_FALSE;
+            if (DEBUG) Slog.d(TAG, "notify condition state: " + Condition.stateToString(state));
+            notifyCondition(createCondition(downtime, state));
+        }
+    }
+
+    @Override
+    public void onUnsubscribe(Uri conditionId) {
+        if (DEBUG) Slog.d(TAG, "onUnsubscribe conditionId=" + conditionId);
+    }
+
+    public void setConfig(ZenModeConfig config) {
+        if (Objects.equals(mConfig, config)) return;
+        if (DEBUG) Slog.d(TAG, "setConfig");
+        mConfig = config;
+        if (mConnected) {
+            init();
+        }
+    }
+
+    public boolean isInDowntime() {
+        return mInDowntime;
+    }
+
+    public Condition createCondition(DowntimeInfo downtime, int state) {
+        if (downtime == null) return null;
+        final Uri id = ZenModeConfig.toDowntimeConditionId(downtime);
+        final String skeleton = DateFormat.is24HourFormat(mContext) ? "Hm" : "hma";
+        final Locale locale = Locale.getDefault();
+        final String pattern = DateFormat.getBestDateTimePattern(locale, skeleton);
+        final long time = getTime(System.currentTimeMillis(), downtime.endHour, downtime.endMinute);
+        final String formatted = new SimpleDateFormat(pattern, locale).format(new Date(time));
+        final String summary = mContext.getString(R.string.downtime_condition_summary, formatted);
+        return new Condition(id, summary, "", "", 0, state, Condition.FLAG_RELEVANT_NOW);
+    }
+
+    public boolean isDowntimeCondition(Condition condition) {
+        return condition != null && ZenModeConfig.isValidDowntimeConditionId(condition.id);
+    }
+
+    private void init() {
+        updateDays();
+        reevaluateDowntime();
+        updateAlarms();
+    }
+
+    private void updateDays() {
+        mDays.clear();
+        if (mConfig != null) {
+            final int[] days = ZenModeConfig.tryParseDays(mConfig.sleepMode);
+            for (int i = 0; days != null && i < days.length; i++) {
+                mDays.add(days[i]);
+            }
+        }
+    }
+
+    private boolean isInDowntime(long time) {
+        if (mConfig == null || mDays.size() == 0) return false;
+        final long start = getTime(time, mConfig.sleepStartHour, mConfig.sleepStartMinute);
+        long end = getTime(time, mConfig.sleepEndHour, mConfig.sleepEndMinute);
+        if (start == end) return false;
+        if (end < start) {
+            end = addDays(end, 1);
+        }
+        return isInDowntime(-1, time, start, end) || isInDowntime(0, time, start, end);
+    }
+
+    private boolean isInDowntime(int daysOffset, long time, long start, long end) {
+        final int day = ((getDayOfWeek(time) + daysOffset - 1) % Calendar.SATURDAY) + 1;
+        start = addDays(start, daysOffset);
+        end = addDays(end, daysOffset);
+        return mDays.contains(day) && time >= start && time < end;
+    }
+
+    private void reevaluateDowntime() {
+        final boolean inDowntime = isInDowntime(System.currentTimeMillis());
+        if (DEBUG) Slog.d(TAG, "inDowntime=" + inDowntime);
+        if (inDowntime == mInDowntime) return;
+        Slog.i(TAG, (inDowntime ? "Entering" : "Exiting" ) + " downtime");
+        mInDowntime = inDowntime;
+        ZenLog.traceDowntime(mInDowntime, getDayOfWeek(System.currentTimeMillis()), mDays);
+        fireDowntimeChanged();
+    }
+
+    private void fireDowntimeChanged() {
+        if (mCallback != null) {
+            mCallback.onDowntimeChanged(mInDowntime);
+        }
+    }
+
+    private void updateAlarms() {
+        if (mConfig == null) return;
+        updateAlarm(ENTER_ACTION, ENTER_CODE, mConfig.sleepStartHour, mConfig.sleepStartMinute);
+        updateAlarm(EXIT_ACTION, EXIT_CODE, mConfig.sleepEndHour, mConfig.sleepEndMinute);
+    }
+
+    private int getDayOfWeek(long time) {
+        mCalendar.setTimeInMillis(time);
+        return mCalendar.get(Calendar.DAY_OF_WEEK);
+    }
+
+    private long getTime(long millis, int hour, int min) {
+        mCalendar.setTimeInMillis(millis);
+        mCalendar.set(Calendar.HOUR_OF_DAY, hour);
+        mCalendar.set(Calendar.MINUTE, min);
+        mCalendar.set(Calendar.SECOND, 0);
+        mCalendar.set(Calendar.MILLISECOND, 0);
+        return mCalendar.getTimeInMillis();
+    }
+
+    private long addDays(long time, int days) {
+        mCalendar.setTimeInMillis(time);
+        mCalendar.add(Calendar.DATE, days);
+        return mCalendar.getTimeInMillis();
+    }
+
+    private void updateAlarm(String action, int requestCode, int hr, int min) {
+        final AlarmManager alarms = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+        final long now = System.currentTimeMillis();
+        mCalendar.setTimeInMillis(now);
+        mCalendar.set(Calendar.HOUR_OF_DAY, hr);
+        mCalendar.set(Calendar.MINUTE, min);
+        mCalendar.set(Calendar.SECOND, 0);
+        mCalendar.set(Calendar.MILLISECOND, 0);
+        long time = mCalendar.getTimeInMillis();
+        if (time <= now) {
+            time = addDays(time, 1);
+        }
+        final PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, requestCode,
+                new Intent(action).putExtra(EXTRA_TIME, time), PendingIntent.FLAG_UPDATE_CURRENT);
+        alarms.cancel(pendingIntent);
+        if (mConfig.sleepMode != null) {
+            if (DEBUG) Slog.d(TAG, String.format("Scheduling %s for %s, %s in the future, now=%s",
+                    action, ts(time), time - now, ts(now)));
+            alarms.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent);
+        }
+    }
+
+    private static String ts(long time) {
+        return new Date(time) + " (" + time + ")";
+    }
+
+    private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            final String action = intent.getAction();
+            final long now = System.currentTimeMillis();
+            if (ENTER_ACTION.equals(action) || EXIT_ACTION.equals(action)) {
+                final long schTime = intent.getLongExtra(EXTRA_TIME, 0);
+                if (DEBUG) Slog.d(TAG, String.format("%s scheduled for %s, fired at %s, delta=%s",
+                        action, ts(schTime), ts(now), now - schTime));
+            } else {
+                if (DEBUG) Slog.d(TAG, action + " fired at " + now);
+            }
+            reevaluateDowntime();
+            updateAlarms();
+        }
+    };
+
+    public interface Callback {
+        void onDowntimeChanged(boolean inDowntime);
+    }
+}
diff --git a/services/core/java/com/android/server/notification/ManagedServices.java b/services/core/java/com/android/server/notification/ManagedServices.java
index 36be21f..f647037 100644
--- a/services/core/java/com/android/server/notification/ManagedServices.java
+++ b/services/core/java/com/android/server/notification/ManagedServices.java
@@ -41,6 +41,7 @@
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.ArraySet;
+import android.util.Log;
 import android.util.Slog;
 import android.util.SparseArray;
 
@@ -64,7 +65,7 @@
  */
 abstract public class ManagedServices {
     protected final String TAG = getClass().getSimpleName();
-    protected static final boolean DEBUG = true;
+    protected final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     private static final String ENABLED_SERVICES_SEPARATOR = ":";
 
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 3eb2b7e..f2ac963 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -1351,11 +1351,11 @@
         }
 
         @Override
-        public void setZenModeCondition(Uri conditionId) {
+        public void setZenModeCondition(Condition condition) {
             enforceSystemOrSystemUI("INotificationManager.setZenModeCondition");
             final long identity = Binder.clearCallingIdentity();
             try {
-                mConditionProviders.setZenModeCondition(conditionId, "binderCall");
+                mConditionProviders.setZenModeCondition(condition, "binderCall");
             } finally {
                 Binder.restoreCallingIdentity(identity);
             }
@@ -1761,26 +1761,27 @@
             if (hasValidSound) {
                 boolean looping =
                         (notification.flags & Notification.FLAG_INSISTENT) != 0;
-                int audioStreamType;
-                if (notification.audioStreamType >= 0) {
-                    audioStreamType = notification.audioStreamType;
+                AudioAttributes audioAttributes;
+                if (notification.audioAttributes != null) {
+                    audioAttributes = notification.audioAttributes;
                 } else {
-                    audioStreamType = DEFAULT_STREAM_TYPE;
+                    audioAttributes = Notification.AUDIO_ATTRIBUTES_DEFAULT;
                 }
                 mSoundNotification = record;
                 // do not play notifications if stream volume is 0 (typically because
                 // ringer mode is silent) or if there is a user of exclusive audio focus
-                if ((mAudioManager.getStreamVolume(audioStreamType) != 0)
-                        && !mAudioManager.isAudioFocusExclusive()) {
+                if ((mAudioManager.getStreamVolume(
+                        AudioAttributes.toLegacyStreamType(audioAttributes)) != 0)
+                            && !mAudioManager.isAudioFocusExclusive()) {
                     final long identity = Binder.clearCallingIdentity();
                     try {
                         final IRingtonePlayer player =
                                 mAudioManager.getRingtonePlayer();
                         if (player != null) {
                             if (DBG) Slog.v(TAG, "Playing sound " + soundUri
-                                    + " on stream " + audioStreamType);
+                                    + " with attributes " + audioAttributes);
                             player.playAsync(soundUri, record.sbn.getUser(), looping,
-                                    audioStreamType);
+                                    audioAttributes);
                             buzzBeepBlinked = true;
                         }
                     } catch (RemoteException e) {
@@ -2424,8 +2425,9 @@
                 // pulse repeatedly
                 mNotificationLight.setFlashing(ledARGB, Light.LIGHT_FLASH_TIMED,
                         ledOnMS, ledOffMS);
-                mStatusBar.notificationLightPulse(ledARGB, ledOnMS, ledOffMS);
             }
+            // let SystemUI make an independent decision
+            mStatusBar.notificationLightPulse(ledARGB, ledOnMS, ledOffMS);
         }
     }
 
diff --git a/services/core/java/com/android/server/notification/ZenLog.java b/services/core/java/com/android/server/notification/ZenLog.java
index b22ed2d..525f5f8 100644
--- a/services/core/java/com/android/server/notification/ZenLog.java
+++ b/services/core/java/com/android/server/notification/ZenLog.java
@@ -22,8 +22,10 @@
 import android.os.Build;
 import android.os.RemoteException;
 import android.provider.Settings.Global;
+import android.service.notification.Condition;
 import android.service.notification.IConditionProvider;
 import android.service.notification.ZenModeConfig;
+import android.util.ArraySet;
 import android.util.Slog;
 
 import java.io.PrintWriter;
@@ -52,13 +54,14 @@
     private static final int TYPE_ALLOW_DISABLE = 2;
     private static final int TYPE_SET_RINGER_MODE = 3;
     private static final int TYPE_DOWNTIME = 4;
-    private static final int TYPE_ZEN_MODE = 5;
-    private static final int TYPE_EXIT_CONDITION = 6;
-    private static final int TYPE_SUBSCRIBE = 7;
-    private static final int TYPE_UNSUBSCRIBE = 8;
-    private static final int TYPE_CONFIG = 9;
-    private static final int TYPE_FOLLOW_RINGER_MODE = 10;
-    private static final int TYPE_NOT_INTERCEPTED = 11;
+    private static final int TYPE_SET_ZEN_MODE = 5;
+    private static final int TYPE_UPDATE_ZEN_MODE = 6;
+    private static final int TYPE_EXIT_CONDITION = 7;
+    private static final int TYPE_SUBSCRIBE = 8;
+    private static final int TYPE_UNSUBSCRIBE = 9;
+    private static final int TYPE_CONFIG = 10;
+    private static final int TYPE_FOLLOW_RINGER_MODE = 11;
+    private static final int TYPE_NOT_INTERCEPTED = 12;
 
     private static int sNext;
     private static int sSize;
@@ -82,17 +85,20 @@
         append(TYPE_SET_RINGER_MODE, ringerModeToString(ringerMode));
     }
 
-    public static void traceDowntime(boolean enter, int day, int[] days) {
-        append(TYPE_DOWNTIME, enter + ",day=" + day + ",days=" + (days != null ? Arrays.asList(days)
-                : null));
+    public static void traceDowntime(boolean inDowntime, int day, ArraySet<Integer> days) {
+        append(TYPE_DOWNTIME, inDowntime + ",day=" + day + ",days=" + days);
+    }
+
+    public static void traceSetZenMode(int mode, String reason) {
+        append(TYPE_SET_ZEN_MODE, zenModeToString(mode) + "," + reason);
     }
 
     public static void traceUpdateZenMode(int fromMode, int toMode) {
-        append(TYPE_ZEN_MODE, zenModeToString(fromMode) + " -> " + zenModeToString(toMode));
+        append(TYPE_UPDATE_ZEN_MODE, zenModeToString(fromMode) + " -> " + zenModeToString(toMode));
     }
 
-    public static void traceExitCondition(Uri id, ComponentName component, String reason) {
-        append(TYPE_EXIT_CONDITION, id + "," + componentToString(component) + "," + reason);
+    public static void traceExitCondition(Condition c, ComponentName component, String reason) {
+        append(TYPE_EXIT_CONDITION, c + "," + componentToString(component) + "," + reason);
     }
 
     public static void traceSubscribe(Uri uri, IConditionProvider provider, RemoteException e) {
@@ -122,7 +128,8 @@
             case TYPE_ALLOW_DISABLE: return "allow_disable";
             case TYPE_SET_RINGER_MODE: return "set_ringer_mode";
             case TYPE_DOWNTIME: return "downtime";
-            case TYPE_ZEN_MODE: return "zen_mode";
+            case TYPE_SET_ZEN_MODE: return "set_zen_mode";
+            case TYPE_UPDATE_ZEN_MODE: return "update_zen_mode";
             case TYPE_EXIT_CONDITION: return "exit_condition";
             case TYPE_SUBSCRIBE: return "subscribe";
             case TYPE_UNSUBSCRIBE: return "unsubscribe";
diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
index 9282283..758f334 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -20,10 +20,8 @@
 import static android.media.AudioAttributes.USAGE_NOTIFICATION_RINGTONE;
 import static android.media.AudioAttributes.USAGE_UNKNOWN;
 
-import android.app.AlarmManager;
 import android.app.AppOpsManager;
 import android.app.Notification;
-import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -44,6 +42,7 @@
 import android.service.notification.NotificationListenerService;
 import android.service.notification.ZenModeConfig;
 import android.telecomm.TelecommManager;
+import android.util.Log;
 import android.util.Slog;
 
 import com.android.internal.R;
@@ -57,8 +56,6 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
 import java.util.Objects;
 
 /**
@@ -66,12 +63,7 @@
  */
 public class ZenModeHelper {
     private static final String TAG = "ZenModeHelper";
-
-    private static final String ACTION_ENTER_ZEN = "enter_zen";
-    private static final int REQUEST_CODE_ENTER = 100;
-    private static final String ACTION_EXIT_ZEN = "exit_zen";
-    private static final int REQUEST_CODE_EXIT = 101;
-    private static final String EXTRA_TIME = "time";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
     private final Context mContext;
     private final Handler mHandler;
@@ -96,10 +88,8 @@
         mSettingsObserver.observe();
 
         final IntentFilter filter = new IntentFilter();
-        filter.addAction(ACTION_ENTER_ZEN);
-        filter.addAction(ACTION_EXIT_ZEN);
         filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
-        mContext.registerReceiver(new ZenBroadcastReceiver(), filter);
+        mContext.registerReceiver(mReceiver, filter);
     }
 
     public static ZenModeConfig readDefaultConfig(Resources resources) {
@@ -156,7 +146,7 @@
     public void requestFromListener(int hints) {
         final int newZen = zenFromListenerHint(hints, -1);
         if (newZen != -1) {
-            setZenMode(newZen);
+            setZenMode(newZen, "listener");
         }
     }
 
@@ -179,24 +169,19 @@
                     return false;
                 }
             }
-            // audience has veto power over all following rules
-            if (!audienceMatches(record)) {
-                ZenLog.traceIntercepted(record, "!audienceMatches");
-                return true;
-            }
             if (isCall(record)) {
                 if (!mConfig.allowCalls) {
                     ZenLog.traceIntercepted(record, "!allowCalls");
                     return true;
                 }
-                return false;
+                return shouldInterceptAudience(record);
             }
             if (isMessage(record)) {
                 if (!mConfig.allowMessages) {
                     ZenLog.traceIntercepted(record, "!allowMessages");
                     return true;
                 }
-                return false;
+                return shouldInterceptAudience(record);
             }
             ZenLog.traceIntercepted(record, "!allowed");
             return true;
@@ -204,11 +189,20 @@
         return false;
     }
 
+    private boolean shouldInterceptAudience(NotificationRecord record) {
+        if (!audienceMatches(record)) {
+            ZenLog.traceIntercepted(record, "!audienceMatches");
+            return true;
+        }
+        return false;
+    }
+
     public int getZenMode() {
         return mZenMode;
     }
 
-    public void setZenMode(int zenModeValue) {
+    public void setZenMode(int zenModeValue, String reason) {
+        ZenLog.traceSetZenMode(zenModeValue, reason);
         Global.putInt(mContext.getContentResolver(), Global.ZEN_MODE, zenModeValue);
     }
 
@@ -216,9 +210,6 @@
         final int mode = Global.getInt(mContext.getContentResolver(),
                 Global.ZEN_MODE, Global.ZEN_MODE_OFF);
         if (mode != mZenMode) {
-            Slog.d(TAG, String.format("updateZenMode: %s -> %s",
-                    Global.zenModeToString(mZenMode),
-                    Global.zenModeToString(mode)));
             ZenLog.traceUpdateZenMode(mZenMode, mode);
         }
         mZenMode = mode;
@@ -255,12 +246,12 @@
             if (mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS) {
                 if (ringerMode != AudioManager.RINGER_MODE_SILENT) {
                     mPreviousRingerMode = ringerMode;
-                    Slog.d(TAG, "Silencing ringer");
+                    if (DEBUG) Slog.d(TAG, "Silencing ringer");
                     forcedRingerMode = AudioManager.RINGER_MODE_SILENT;
                 }
             } else {
                 if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
-                    Slog.d(TAG, "Unsilencing ringer");
+                    if (DEBUG) Slog.d(TAG, "Unsilencing ringer");
                     forcedRingerMode = mPreviousRingerMode != -1 ? mPreviousRingerMode
                             : AudioManager.RINGER_MODE_NORMAL;
                     mPreviousRingerMode = -1;
@@ -318,7 +309,6 @@
         dispatchOnConfigChanged();
         final String val = Integer.toString(mConfig.hashCode());
         Global.putString(mContext.getContentResolver(), Global.ZEN_MODE_CONFIG_ETAG, val);
-        updateAlarms();
         updateZenMode();
         return true;
     }
@@ -339,7 +329,7 @@
             }
             if (newZen != -1) {
                 ZenLog.traceFollowRingerMode(ringerMode, mZenMode, newZen);
-                setZenMode(newZen);
+                setZenMode(newZen, "ringerMode");
             }
         }
     }
@@ -377,7 +367,7 @@
             final TelecommManager telecomm =
                     (TelecommManager) mContext.getSystemService(Context.TELECOMM_SERVICE);
             mDefaultPhoneApp = telecomm != null ? telecomm.getDefaultPhoneApp() : null;
-            Slog.d(TAG, "Default phone app: " + mDefaultPhoneApp);
+            if (DEBUG) Slog.d(TAG, "Default phone app: " + mDefaultPhoneApp);
         }
         return pkg != null && mDefaultPhoneApp != null
                 && pkg.equals(mDefaultPhoneApp.getPackageName());
@@ -409,40 +399,6 @@
         }
     }
 
-    private void updateAlarms() {
-        updateAlarm(ACTION_ENTER_ZEN, REQUEST_CODE_ENTER,
-                mConfig.sleepStartHour, mConfig.sleepStartMinute);
-        updateAlarm(ACTION_EXIT_ZEN, REQUEST_CODE_EXIT,
-                mConfig.sleepEndHour, mConfig.sleepEndMinute);
-    }
-
-    private void updateAlarm(String action, int requestCode, int hr, int min) {
-        final AlarmManager alarms = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
-        final long now = System.currentTimeMillis();
-        final Calendar c = Calendar.getInstance();
-        c.setTimeInMillis(now);
-        c.set(Calendar.HOUR_OF_DAY, hr);
-        c.set(Calendar.MINUTE, min);
-        c.set(Calendar.SECOND, 0);
-        c.set(Calendar.MILLISECOND, 0);
-        if (c.getTimeInMillis() <= now) {
-            c.add(Calendar.DATE, 1);
-        }
-        final long time = c.getTimeInMillis();
-        final PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, requestCode,
-                new Intent(action).putExtra(EXTRA_TIME, time), PendingIntent.FLAG_UPDATE_CURRENT);
-        alarms.cancel(pendingIntent);
-        if (mConfig.sleepMode != null) {
-            Slog.d(TAG, String.format("Scheduling %s for %s, %s in the future, now=%s",
-                    action, ts(time), time - now, ts(now)));
-            alarms.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent);
-        }
-    }
-
-    private static String ts(long time) {
-        return new Date(time) + " (" + time + ")";
-    }
-
     private final Runnable mRingerModeChanged = new Runnable() {
         @Override
         public void run() {
@@ -475,47 +431,12 @@
         }
     }
 
-    private class ZenBroadcastReceiver extends BroadcastReceiver {
-        private final Calendar mCalendar = Calendar.getInstance();
-
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            if (ACTION_ENTER_ZEN.equals(intent.getAction())) {
-                setZenMode(intent, Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
-            } else if (ACTION_EXIT_ZEN.equals(intent.getAction())) {
-                setZenMode(intent, Global.ZEN_MODE_OFF);
-            } else if (AudioManager.RINGER_MODE_CHANGED_ACTION.equals(intent.getAction())) {
-                mHandler.post(mRingerModeChanged);
-            }
+            mHandler.post(mRingerModeChanged);
         }
-
-        private void setZenMode(Intent intent, int zenModeValue) {
-            final long schTime = intent.getLongExtra(EXTRA_TIME, 0);
-            final long now = System.currentTimeMillis();
-            Slog.d(TAG, String.format("%s scheduled for %s, fired at %s, delta=%s",
-                    intent.getAction(), ts(schTime), ts(now), now - schTime));
-
-            final int[] days = ZenModeConfig.tryParseDays(mConfig.sleepMode);
-            boolean enter = false;
-            final int day = getDayOfWeek(schTime);
-            if (days != null) {
-                for (int i = 0; i < days.length; i++) {
-                    if (days[i] == day) {
-                        enter = true;
-                        ZenModeHelper.this.setZenMode(zenModeValue);
-                        break;
-                    }
-                }
-            }
-            ZenLog.traceDowntime(enter, day, days);
-            updateAlarms();
-        }
-
-        private int getDayOfWeek(long time) {
-            mCalendar.setTimeInMillis(time);
-            return mCalendar.get(Calendar.DAY_OF_WEEK);
-        }
-    }
+    };
 
     public static class Callback {
         void onConfigChanged() {}
diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
index b261ef5..d1e03ec 100644
--- a/services/core/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -16,33 +16,23 @@
 
 package com.android.server.pm;
 
-import com.android.server.SystemService;
-
 import android.content.Context;
 import android.content.pm.PackageStats;
-import android.net.LocalSocket;
-import android.net.LocalSocketAddress;
+import android.os.Build;
 import android.util.Slog;
+import dalvik.system.VMRuntime;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.List;
+import com.android.internal.os.InstallerConnection;
+import com.android.server.SystemService;
 
 public final class Installer extends SystemService {
     private static final String TAG = "Installer";
 
-    private static final boolean LOCAL_DEBUG = false;
-
-    InputStream mIn;
-    OutputStream mOut;
-    LocalSocket mSocket;
-
-    byte buf[] = new byte[1024];
-    int buflen = 0;
+    private final InstallerConnection mInstaller;
 
     public Installer(Context context) {
         super(context);
+        mInstaller = new InstallerConnection();
     }
 
     @Override
@@ -51,154 +41,6 @@
         ping();
     }
 
-    private boolean connect() {
-        if (mSocket != null) {
-            return true;
-        }
-        Slog.i(TAG, "connecting...");
-        try {
-            mSocket = new LocalSocket();
-
-            LocalSocketAddress address = new LocalSocketAddress("installd",
-                    LocalSocketAddress.Namespace.RESERVED);
-
-            mSocket.connect(address);
-
-            mIn = mSocket.getInputStream();
-            mOut = mSocket.getOutputStream();
-        } catch (IOException ex) {
-            disconnect();
-            return false;
-        }
-        return true;
-    }
-
-    private void disconnect() {
-        Slog.i(TAG, "disconnecting...");
-        try {
-            if (mSocket != null)
-                mSocket.close();
-        } catch (IOException ex) {
-        }
-        try {
-            if (mIn != null)
-                mIn.close();
-        } catch (IOException ex) {
-        }
-        try {
-            if (mOut != null)
-                mOut.close();
-        } catch (IOException ex) {
-        }
-        mSocket = null;
-        mIn = null;
-        mOut = null;
-    }
-
-    private boolean readBytes(byte buffer[], int len) {
-        int off = 0, count;
-        if (len < 0)
-            return false;
-        while (off != len) {
-            try {
-                count = mIn.read(buffer, off, len - off);
-                if (count <= 0) {
-                    Slog.e(TAG, "read error " + count);
-                    break;
-                }
-                off += count;
-            } catch (IOException ex) {
-                Slog.e(TAG, "read exception");
-                break;
-            }
-        }
-        if (LOCAL_DEBUG) {
-            Slog.i(TAG, "read " + len + " bytes");
-        }
-        if (off == len)
-            return true;
-        disconnect();
-        return false;
-    }
-
-    private boolean readReply() {
-        int len;
-        buflen = 0;
-        if (!readBytes(buf, 2))
-            return false;
-        len = (((int) buf[0]) & 0xff) | ((((int) buf[1]) & 0xff) << 8);
-        if ((len < 1) || (len > 1024)) {
-            Slog.e(TAG, "invalid reply length (" + len + ")");
-            disconnect();
-            return false;
-        }
-        if (!readBytes(buf, len))
-            return false;
-        buflen = len;
-        return true;
-    }
-
-    private boolean writeCommand(String _cmd) {
-        byte[] cmd = _cmd.getBytes();
-        int len = cmd.length;
-        if ((len < 1) || (len > 1024))
-            return false;
-        buf[0] = (byte) (len & 0xff);
-        buf[1] = (byte) ((len >> 8) & 0xff);
-        try {
-            mOut.write(buf, 0, 2);
-            mOut.write(cmd, 0, len);
-        } catch (IOException ex) {
-            Slog.e(TAG, "write error");
-            disconnect();
-            return false;
-        }
-        return true;
-    }
-
-    private synchronized String transaction(String cmd) {
-        if (!connect()) {
-            Slog.e(TAG, "connection failed");
-            return "-1";
-        }
-
-        if (!writeCommand(cmd)) {
-            /*
-             * If installd died and restarted in the background (unlikely but
-             * possible) we'll fail on the next write (this one). Try to
-             * reconnect and write the command one more time before giving up.
-             */
-            Slog.e(TAG, "write command failed? reconnect!");
-            if (!connect() || !writeCommand(cmd)) {
-                return "-1";
-            }
-        }
-        if (LOCAL_DEBUG) {
-            Slog.i(TAG, "send: '" + cmd + "'");
-        }
-        if (readReply()) {
-            String s = new String(buf, 0, buflen);
-            if (LOCAL_DEBUG) {
-                Slog.i(TAG, "recv: '" + s + "'");
-            }
-            return s;
-        } else {
-            if (LOCAL_DEBUG) {
-                Slog.i(TAG, "fail");
-            }
-            return "-1";
-        }
-    }
-
-    private int execute(String cmd) {
-        String res = transaction(cmd);
-        try {
-            return Integer.parseInt(res);
-        } catch (NumberFormatException ex) {
-            return -1;
-        }
-    }
-
     public int install(String name, int uid, int gid, String seinfo) {
         StringBuilder builder = new StringBuilder("install");
         builder.append(' ');
@@ -209,11 +51,16 @@
         builder.append(gid);
         builder.append(' ');
         builder.append(seinfo != null ? seinfo : "!");
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int patchoat(String apkPath, int uid, boolean isPublic, String pkgName,
             String instructionSet) {
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
         StringBuilder builder = new StringBuilder("patchoat");
         builder.append(' ');
         builder.append(apkPath);
@@ -224,37 +71,34 @@
         builder.append(pkgName);
         builder.append(' ');
         builder.append(instructionSet);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int patchoat(String apkPath, int uid, boolean isPublic, String instructionSet) {
-        StringBuilder builder = new StringBuilder("patchoat");
-        builder.append(' ');
-        builder.append(apkPath);
-        builder.append(' ');
-        builder.append(uid);
-        builder.append(isPublic ? " 1" : " 0");
-        builder.append(" *");         // No pkgName arg present
-        builder.append(' ');
-        builder.append(instructionSet);
-        return execute(builder.toString());
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
+        return mInstaller.patchoat(apkPath, uid, isPublic, instructionSet);
     }
 
     public int dexopt(String apkPath, int uid, boolean isPublic, String instructionSet) {
-        StringBuilder builder = new StringBuilder("dexopt");
-        builder.append(' ');
-        builder.append(apkPath);
-        builder.append(' ');
-        builder.append(uid);
-        builder.append(isPublic ? " 1" : " 0");
-        builder.append(" *");         // No pkgName arg present
-        builder.append(' ');
-        builder.append(instructionSet);
-        return execute(builder.toString());
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
+        return mInstaller.dexopt(apkPath, uid, isPublic, instructionSet);
     }
 
     public int dexopt(String apkPath, int uid, boolean isPublic, String pkgName,
             String instructionSet) {
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
         StringBuilder builder = new StringBuilder("dexopt");
         builder.append(' ');
         builder.append(apkPath);
@@ -265,7 +109,7 @@
         builder.append(pkgName);
         builder.append(' ');
         builder.append(instructionSet);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int idmap(String targetApkPath, String overlayApkPath, int uid) {
@@ -276,10 +120,15 @@
         builder.append(overlayApkPath);
         builder.append(' ');
         builder.append(uid);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int movedex(String srcPath, String dstPath, String instructionSet) {
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
         StringBuilder builder = new StringBuilder("movedex");
         builder.append(' ');
         builder.append(srcPath);
@@ -287,16 +136,21 @@
         builder.append(dstPath);
         builder.append(' ');
         builder.append(instructionSet);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int rmdex(String codePath, String instructionSet) {
+        if (!isValidInstructionSet(instructionSet)) {
+            Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+            return -1;
+        }
+
         StringBuilder builder = new StringBuilder("rmdex");
         builder.append(' ');
         builder.append(codePath);
         builder.append(' ');
         builder.append(instructionSet);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int remove(String name, int userId) {
@@ -305,7 +159,7 @@
         builder.append(name);
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int rename(String oldname, String newname) {
@@ -314,7 +168,7 @@
         builder.append(oldname);
         builder.append(' ');
         builder.append(newname);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int fixUid(String name, int uid, int gid) {
@@ -325,7 +179,7 @@
         builder.append(uid);
         builder.append(' ');
         builder.append(gid);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int deleteCacheFiles(String name, int userId) {
@@ -334,7 +188,7 @@
         builder.append(name);
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int deleteCodeCacheFiles(String name, int userId) {
@@ -343,7 +197,7 @@
         builder.append(name);
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int createUserData(String name, int uid, int userId, String seinfo) {
@@ -356,21 +210,21 @@
         builder.append(userId);
         builder.append(' ');
         builder.append(seinfo != null ? seinfo : "!");
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int createUserConfig(int userId) {
         StringBuilder builder = new StringBuilder("mkuserconfig");
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int removeUserDataDirs(int userId) {
         StringBuilder builder = new StringBuilder("rmuser");
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int clearUserData(String name, int userId) {
@@ -379,11 +233,11 @@
         builder.append(name);
         builder.append(' ');
         builder.append(userId);
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public boolean ping() {
-        if (execute("ping") < 0) {
+        if (mInstaller.execute("ping") < 0) {
             return false;
         } else {
             return true;
@@ -391,18 +245,25 @@
     }
 
     public int pruneDexCache(String cacheSubDir) {
-        return execute("prunedexcache " + cacheSubDir);
+        return mInstaller.execute("prunedexcache " + cacheSubDir);
     }
 
     public int freeCache(long freeStorageSize) {
         StringBuilder builder = new StringBuilder("freecache");
         builder.append(' ');
         builder.append(String.valueOf(freeStorageSize));
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public int getSizeInfo(String pkgName, int persona, String apkPath, String libDirPath,
             String fwdLockApkPath, String asecPath, String[] instructionSets, PackageStats pStats) {
+        for (String instructionSet : instructionSets) {
+            if (!isValidInstructionSet(instructionSet)) {
+                Slog.e(TAG, "Invalid instruction set: " + instructionSet);
+                return -1;
+            }
+        }
+
         StringBuilder builder = new StringBuilder("getsize");
         builder.append(' ');
         builder.append(pkgName);
@@ -423,7 +284,7 @@
         // just the primary.
         builder.append(instructionSets[0]);
 
-        String s = transaction(builder.toString());
+        String s = mInstaller.transact(builder.toString());
         String res[] = s.split(" ");
 
         if ((res == null) || (res.length != 5)) {
@@ -441,7 +302,7 @@
     }
 
     public int moveFiles() {
-        return execute("movefiles");
+        return mInstaller.execute("movefiles");
     }
 
     /**
@@ -467,7 +328,7 @@
         builder.append(' ');
         builder.append(userId);
 
-        return execute(builder.toString());
+        return mInstaller.execute(builder.toString());
     }
 
     public boolean restoreconData(String pkgName, String seinfo, int uid) {
@@ -478,6 +339,23 @@
         builder.append(seinfo != null ? seinfo : "!");
         builder.append(' ');
         builder.append(uid);
-        return (execute(builder.toString()) == 0);
+        return (mInstaller.execute(builder.toString()) == 0);
+    }
+
+    /**
+     * Returns true iff. {@code instructionSet} is a valid instruction set.
+     */
+    private static boolean isValidInstructionSet(String instructionSet) {
+        if (instructionSet == null) {
+            return false;
+        }
+
+        for (String abi : Build.SUPPORTED_ABIS) {
+            if (instructionSet.equals(VMRuntime.getInstructionSet(abi))) {
+                return true;
+            }
+        }
+
+        return false;
     }
 }
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index c7e3fb7..dca8ad4 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -36,19 +36,23 @@
 
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
+import android.app.PackageDeleteObserver;
+import android.app.PackageInstallObserver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.IPackageDeleteObserver2;
+import android.content.IntentSender;
+import android.content.IntentSender.SendIntentException;
 import android.content.pm.IPackageInstaller;
 import android.content.pm.IPackageInstallerCallback;
 import android.content.pm.IPackageInstallerSession;
-import android.content.pm.InstallSessionInfo;
-import android.content.pm.InstallSessionParams;
 import android.content.pm.PackageInstaller;
+import android.content.pm.PackageInstaller.SessionInfo;
+import android.content.pm.PackageInstaller.SessionParams;
 import android.content.pm.PackageManager;
 import android.graphics.Bitmap;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Bundle;
 import android.os.Environment;
 import android.os.FileUtils;
 import android.os.Handler;
@@ -63,6 +67,7 @@
 import android.os.UserManager;
 import android.system.ErrnoException;
 import android.system.Os;
+import android.text.TextUtils;
 import android.text.format.DateUtils;
 import android.util.ArraySet;
 import android.util.AtomicFile;
@@ -279,8 +284,8 @@
         final File sessionStageDir = new File(readStringAttribute(in, ATTR_SESSION_STAGE_DIR));
         final boolean sealed = readBooleanAttribute(in, ATTR_SEALED);
 
-        final InstallSessionParams params = new InstallSessionParams(
-                InstallSessionParams.MODE_INVALID);
+        final SessionParams params = new SessionParams(
+                SessionParams.MODE_INVALID);
         params.mode = readIntAttribute(in, ATTR_MODE);
         params.installFlags = readIntAttribute(in, ATTR_INSTALL_FLAGS);
         params.installLocation = readIntAttribute(in, ATTR_INSTALL_LOCATION);
@@ -292,9 +297,9 @@
         params.referrerUri = readUriAttribute(in, ATTR_REFERRER_URI);
         params.abiOverride = readStringAttribute(in, ATTR_ABI_OVERRIDE);
 
-        return new PackageInstallerSession(mInternalCallback, mPm, mInstallThread.getLooper(),
-                sessionId, userId, installerPackageName, params, createdMillis, sessionStageDir,
-                sealed);
+        return new PackageInstallerSession(mInternalCallback, mContext, mPm,
+                mInstallThread.getLooper(), sessionId, userId, installerPackageName, params,
+                createdMillis, sessionStageDir, sealed);
     }
 
     private void writeSessionsLocked() {
@@ -326,7 +331,7 @@
 
     private void writeSessionLocked(XmlSerializer out, PackageInstallerSession session)
             throws IOException {
-        final InstallSessionParams params = session.params;
+        final SessionParams params = session.params;
         final Snapshot snapshot = session.snapshot();
 
         out.startTag(null, TAG_SESSION);
@@ -366,7 +371,7 @@
     }
 
     @Override
-    public int createSession(InstallSessionParams params, String installerPackageName, int userId) {
+    public int createSession(SessionParams params, String installerPackageName, int userId) {
         final int callingUid = Binder.getCallingUid();
         mPm.enforceCrossUserPermission(callingUid, userId, true, "createSession");
 
@@ -389,8 +394,8 @@
         }
 
         switch (params.mode) {
-            case InstallSessionParams.MODE_FULL_INSTALL:
-            case InstallSessionParams.MODE_INHERIT_EXISTING:
+            case SessionParams.MODE_FULL_INSTALL:
+            case SessionParams.MODE_INHERIT_EXISTING:
                 break;
             default:
                 throw new IllegalArgumentException("Params must have valid mode set");
@@ -437,7 +442,7 @@
             final long createdMillis = System.currentTimeMillis();
             final File sessionStageDir = prepareSessionStageDir(sessionId);
 
-            session = new PackageInstallerSession(mInternalCallback, mPm,
+            session = new PackageInstallerSession(mInternalCallback, mContext, mPm,
                     mInstallThread.getLooper(), sessionId, userId, installerPackageName, params,
                     createdMillis, sessionStageDir, false);
             mSessions.put(sessionId, session);
@@ -501,7 +506,7 @@
     }
 
     @Override
-    public InstallSessionInfo getSessionInfo(int sessionId) {
+    public SessionInfo getSessionInfo(int sessionId) {
         synchronized (mSessions) {
             final PackageInstallerSession session = mSessions.get(sessionId);
             if (!isCallingUidOwner(session)) {
@@ -512,11 +517,11 @@
     }
 
     @Override
-    public List<InstallSessionInfo> getAllSessions(int userId) {
+    public List<SessionInfo> getAllSessions(int userId) {
         mPm.enforceCrossUserPermission(Binder.getCallingUid(), userId, true, "getAllSessions");
         enforceCallerCanReadSessions();
 
-        final List<InstallSessionInfo> result = new ArrayList<>();
+        final List<SessionInfo> result = new ArrayList<>();
         synchronized (mSessions) {
             for (int i = 0; i < mSessions.size(); i++) {
                 final PackageInstallerSession session = mSessions.valueAt(i);
@@ -529,11 +534,11 @@
     }
 
     @Override
-    public List<InstallSessionInfo> getMySessions(String installerPackageName, int userId) {
+    public List<SessionInfo> getMySessions(String installerPackageName, int userId) {
         mPm.enforceCrossUserPermission(Binder.getCallingUid(), userId, true, "getMySessions");
         mAppOps.checkPackage(Binder.getCallingUid(), installerPackageName);
 
-        final List<InstallSessionInfo> result = new ArrayList<>();
+        final List<SessionInfo> result = new ArrayList<>();
         synchronized (mSessions) {
             for (int i = 0; i < mSessions.size(); i++) {
                 final PackageInstallerSession session = mSessions.valueAt(i);
@@ -547,37 +552,26 @@
     }
 
     @Override
-    public void uninstall(String packageName, int flags, IPackageDeleteObserver2 observer,
-            int userId) {
+    public void uninstall(String packageName, int flags, IntentSender statusReceiver, int userId) {
         mPm.enforceCrossUserPermission(Binder.getCallingUid(), userId, true, "uninstall");
 
+        final PackageDeleteObserverAdapter adapter = new PackageDeleteObserverAdapter(mContext,
+                statusReceiver);
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DELETE_PACKAGES)
                 == PackageManager.PERMISSION_GRANTED) {
             // Sweet, call straight through!
-            mPm.deletePackage(packageName, observer, userId, flags);
+            mPm.deletePackage(packageName, adapter.getBinder(), userId, flags);
 
         } else {
             // Take a short detour to confirm with user
             final Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE);
             intent.setData(Uri.fromParts("package", packageName, null));
-            intent.putExtra(PackageInstaller.EXTRA_CALLBACK, observer.asBinder());
-            try {
-                observer.onUserActionRequired(intent);
-            } catch (RemoteException ignored) {
-            }
+            intent.putExtra(PackageInstaller.EXTRA_CALLBACK, adapter.getBinder().asBinder());
+            adapter.onUserActionRequired(intent);
         }
     }
 
     @Override
-    public void uninstallSplit(String basePackageName, String overlayName, int flags,
-            IPackageDeleteObserver2 observer, int userId) {
-        mPm.enforceCrossUserPermission(Binder.getCallingUid(), userId, true, "uninstallSplit");
-
-        // TODO: flesh out once PM has split support
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
     public void setPermissionsResult(int sessionId, boolean accepted) {
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INSTALL_PACKAGES, TAG);
 
@@ -636,6 +630,87 @@
         }
     }
 
+    static class PackageDeleteObserverAdapter extends PackageDeleteObserver {
+        private final Context mContext;
+        private final IntentSender mTarget;
+
+        public PackageDeleteObserverAdapter(Context context, IntentSender target) {
+            mContext = context;
+            mTarget = target;
+        }
+
+        @Override
+        public void onUserActionRequired(Intent intent) {
+            final Intent fillIn = new Intent();
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS,
+                    PackageInstaller.STATUS_USER_ACTION_REQUIRED);
+            fillIn.putExtra(Intent.EXTRA_INTENT, intent);
+            try {
+                mTarget.sendIntent(mContext, 0, fillIn, null, null);
+            } catch (SendIntentException ignored) {
+            }
+        }
+
+        @Override
+        public void onPackageDeleted(String basePackageName, int returnCode, String msg) {
+            final Intent fillIn = new Intent();
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS,
+                    PackageManager.deleteStatusToPublicStatus(returnCode));
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS_MESSAGE,
+                    PackageManager.deleteStatusToString(returnCode, msg));
+            fillIn.putExtra(PackageInstaller.EXTRA_LEGACY_STATUS, returnCode);
+            try {
+                mTarget.sendIntent(mContext, 0, fillIn, null, null);
+            } catch (SendIntentException ignored) {
+            }
+        }
+    }
+
+    static class PackageInstallObserverAdapter extends PackageInstallObserver {
+        private final Context mContext;
+        private final IntentSender mTarget;
+
+        public PackageInstallObserverAdapter(Context context, IntentSender target) {
+            mContext = context;
+            mTarget = target;
+        }
+
+        @Override
+        public void onUserActionRequired(Intent intent) {
+            final Intent fillIn = new Intent();
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS,
+                    PackageInstaller.STATUS_USER_ACTION_REQUIRED);
+            fillIn.putExtra(Intent.EXTRA_INTENT, intent);
+            try {
+                mTarget.sendIntent(mContext, 0, fillIn, null, null);
+            } catch (SendIntentException ignored) {
+            }
+        }
+
+        @Override
+        public void onPackageInstalled(String basePackageName, int returnCode, String msg,
+                Bundle extras) {
+            final Intent fillIn = new Intent();
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS,
+                    PackageManager.installStatusToPublicStatus(returnCode));
+            fillIn.putExtra(PackageInstaller.EXTRA_STATUS_MESSAGE,
+                    PackageManager.installStatusToString(returnCode, msg));
+            fillIn.putExtra(PackageInstaller.EXTRA_LEGACY_STATUS, returnCode);
+            if (extras != null) {
+                final String existing = extras.getString(
+                        PackageManager.EXTRA_FAILURE_EXISTING_PACKAGE);
+                if (!TextUtils.isEmpty(existing)) {
+                    fillIn.putExtra(PackageInstaller.EXTRA_PACKAGE_NAMES, new String[] {
+                            existing });
+                }
+            }
+            try {
+                mTarget.sendIntent(mContext, 0, fillIn, null, null);
+            } catch (SendIntentException ignored) {
+            }
+        }
+    }
+
     private static class Callbacks extends Handler {
         private static final int MSG_SESSION_CREATED = 1;
         private static final int MSG_SESSION_OPENED = 2;
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index a3184f0..5ef24f2 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -25,13 +25,15 @@
 import static android.system.OsConstants.O_RDONLY;
 import static android.system.OsConstants.O_WRONLY;
 
+import android.content.Context;
 import android.content.Intent;
+import android.content.IntentSender;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageInstallObserver2;
 import android.content.pm.IPackageInstallerSession;
-import android.content.pm.InstallSessionInfo;
-import android.content.pm.InstallSessionParams;
 import android.content.pm.PackageInstaller;
+import android.content.pm.PackageInstaller.SessionInfo;
+import android.content.pm.PackageInstaller.SessionParams;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
 import android.content.pm.PackageParser.ApkLite;
@@ -59,6 +61,7 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.internal.util.Preconditions;
+import com.android.server.pm.PackageInstallerService.PackageInstallObserverAdapter;
 
 import libcore.io.Libcore;
 
@@ -81,13 +84,14 @@
     // TODO: treat INHERIT_EXISTING as installExistingPackage()
 
     private final PackageInstallerService.InternalCallback mCallback;
+    private final Context mContext;
     private final PackageManagerService mPm;
     private final Handler mHandler;
 
     final int sessionId;
     final int userId;
     final String installerPackageName;
-    final InstallSessionParams params;
+    final SessionParams params;
     final long createdMillis;
     final File sessionStageDir;
 
@@ -159,10 +163,11 @@
     };
 
     public PackageInstallerSession(PackageInstallerService.InternalCallback callback,
-            PackageManagerService pm, Looper looper, int sessionId, int userId,
-            String installerPackageName, InstallSessionParams params, long createdMillis,
+            Context context, PackageManagerService pm, Looper looper, int sessionId, int userId,
+            String installerPackageName, SessionParams params, long createdMillis,
             File sessionStageDir, boolean sealed) {
         mCallback = callback;
+        mContext = context;
         mPm = pm;
         mHandler = new Handler(looper, mHandlerCallback);
 
@@ -188,8 +193,8 @@
         computeProgressLocked();
     }
 
-    public InstallSessionInfo generateInfo() {
-        final InstallSessionInfo info = new InstallSessionInfo();
+    public SessionInfo generateInfo() {
+        final SessionInfo info = new SessionInfo();
 
         info.sessionId = sessionId;
         info.installerPackageName = installerPackageName;
@@ -246,8 +251,8 @@
     }
 
     @Override
-    public String[] list() {
-        assertNotSealed("list");
+    public String[] getNames() {
+        assertNotSealed("getNames");
         return sessionStageDir.list();
     }
 
@@ -337,9 +342,12 @@
     }
 
     @Override
-    public void commit(IPackageInstallObserver2 observer) {
-        Preconditions.checkNotNull(observer);
-        mHandler.obtainMessage(MSG_COMMIT, observer).sendToTarget();
+    public void commit(IntentSender statusReceiver) {
+        Preconditions.checkNotNull(statusReceiver);
+
+        final PackageInstallObserverAdapter adapter = new PackageInstallObserverAdapter(mContext,
+                statusReceiver);
+        mHandler.obtainMessage(MSG_COMMIT, adapter.getBinder()).sendToTarget();
     }
 
     private void commitLocked() throws PackageManagerException {
@@ -385,7 +393,7 @@
 
         // Inherit any packages and native libraries from existing install that
         // haven't been overridden.
-        if (params.mode == InstallSessionParams.MODE_INHERIT_EXISTING) {
+        if (params.mode == SessionParams.MODE_INHERIT_EXISTING) {
             spliceExistingFilesIntoStage();
         }
 
@@ -396,7 +404,6 @@
 
         // We've reached point of no return; call into PMS to install the stage.
         // Regardless of success or failure we always destroy session.
-        final IPackageInstallObserver2 remoteObserver = mRemoteObserver;
         final IPackageInstallObserver2 localObserver = new IPackageInstallObserver2.Stub() {
             @Override
             public void onUserActionRequired(Intent intent) {
@@ -488,7 +495,7 @@
         // currently relying on PMS to do this.
         // TODO: teach about compatible upgrade keysets.
 
-        if (params.mode == InstallSessionParams.MODE_FULL_INSTALL) {
+        if (params.mode == SessionParams.MODE_FULL_INSTALL) {
             // Full installs must include a base package
             if (!seenSplits.contains(null)) {
                 throw new PackageManagerException(INSTALL_FAILED_INVALID_APK,
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 6be6b60..63f3c0f 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -107,12 +107,12 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.IPackageMoveObserver;
 import android.content.pm.IPackageStatsObserver;
-import android.content.pm.InstallSessionParams;
 import android.content.pm.InstrumentationInfo;
 import android.content.pm.ManifestDigest;
 import android.content.pm.PackageCleanItem;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageInfoLite;
+import android.content.pm.PackageInstaller;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.LegacyPackageDeleteObserver;
 import android.content.pm.PackageParser.ActivityIntentInfo;
@@ -253,6 +253,10 @@
     // package apks to install directory.
     private static final String INSTALL_PACKAGE_SUFFIX = "-";
 
+    // Special value for {@code PackageParser.Package#cpuAbiOverride} to indicate
+    // that the cpuAbiOverride must be clear.
+    private static final String CLEAR_ABI_OVERRIDE = "-";
+
     static final int SCAN_MONITOR = 1<<0;
     static final int SCAN_NO_DEX = 1<<1;
     static final int SCAN_FORCE_DEX = 1<<2;
@@ -1390,16 +1394,27 @@
              * list of process files because dexopt will have been run
              * if necessary during zygote startup.
              */
-            String bootClassPath = System.getProperty("java.boot.class.path");
+            final String bootClassPath = System.getenv("BOOTCLASSPATH");
+            final String systemServerClassPath = System.getenv("SYSTEMSERVERCLASSPATH");
+
             if (bootClassPath != null) {
-                String[] paths = splitString(bootClassPath, ':');
-                for (int i=0; i<paths.length; i++) {
-                    alreadyDexOpted.add(paths[i]);
+                String[] bootClassPathElements = splitString(bootClassPath, ':');
+                for (String element : bootClassPathElements) {
+                    alreadyDexOpted.add(element);
                 }
             } else {
                 Slog.w(TAG, "No BOOTCLASSPATH found!");
             }
 
+            if (systemServerClassPath != null) {
+                String[] systemServerClassPathElements = splitString(systemServerClassPath, ':');
+                for (String element : systemServerClassPathElements) {
+                    alreadyDexOpted.add(element);
+                }
+            } else {
+                Slog.w(TAG, "No SYSTEMSERVERCLASSPATH found!");
+            }
+
             boolean didDexOptLibraryOrTool = false;
 
             final List<String> allInstructionSets = getAllInstructionSets();
@@ -3195,7 +3210,7 @@
         if (fromSource != null) {
             packageNames = fromSource.get(targetUserId);
         }
-        if (packageNames.contains(intent.getPackage())) {
+        if (packageNames != null && packageNames.contains(intent.getPackage())) {
             return true;
         }
         // We need the package name, so we try to resolve with the loosest flags possible
@@ -4093,8 +4108,7 @@
                 continue;
             }
             try {
-                scanPackageLI(file, flags | PackageParser.PARSE_MUST_BE_APK, scanMode, currentTime,
-                        null, null);
+                scanPackageLI(file, flags | PackageParser.PARSE_MUST_BE_APK, scanMode, currentTime, null);
             } catch (PackageManagerException e) {
                 Slog.w(TAG, "Failed to parse " + file + ": " + e.getMessage());
 
@@ -4175,7 +4189,7 @@
      *  Returns null in case of errors and the error code is stored in mLastScanError
      */
     private PackageParser.Package scanPackageLI(File scanFile, int parseFlags, int scanMode,
-            long currentTime, UserHandle user, String abiOverride) throws PackageManagerException {
+            long currentTime, UserHandle user) throws PackageManagerException {
         if (DEBUG_INSTALL) Slog.d(TAG, "Parsing: " + scanFile);
         parseFlags |= mDefParseFlags;
         PackageParser pp = new PackageParser();
@@ -4371,7 +4385,7 @@
 
         // Note that we invoke the following method only if we are about to unpack an application
         PackageParser.Package scannedPkg = scanPackageLI(pkg, parseFlags, scanMode
-                | SCAN_UPDATE_SIGNATURE, currentTime, user, abiOverride);
+                | SCAN_UPDATE_SIGNATURE, currentTime, user);
 
         /*
          * If the system app should be overridden by a previously installed
@@ -4998,8 +5012,26 @@
         return res;
     }
 
+    /**
+     * Derive the value of the {@code cpuAbiOverride} based on the provided
+     * value and an optional stored value from the package settings.
+     */
+    private static String deriveAbiOverride(String abiOverride, PackageSetting settings) {
+        String cpuAbiOverride = null;
+
+        if (CLEAR_ABI_OVERRIDE.equals(abiOverride)) {
+            cpuAbiOverride = null;
+        } else if (abiOverride != null) {
+            cpuAbiOverride = abiOverride;
+        } else if (settings != null) {
+            cpuAbiOverride = settings.cpuAbiOverrideString;
+        }
+
+        return cpuAbiOverride;
+    }
+
     private PackageParser.Package scanPackageLI(PackageParser.Package pkg, int parseFlags,
-            int scanMode, long currentTime, UserHandle user, String abiOverride)
+            int scanMode, long currentTime, UserHandle user)
             throws PackageManagerException {
         final File scanFile = new File(pkg.codePath);
         if (pkg.applicationInfo.getCodePath() == null ||
@@ -5155,7 +5187,7 @@
                 Slog.w(TAG, "Package " + pkg.packageName
                         + " was transferred to another, but its .apk remains");
             }
-            
+
             // Just create the setting, don't add it yet. For already existing packages
             // the PkgSetting exists already and doesn't have to be created.
             pkgSetting = mSettings.getPackageLPw(pkg, origPackage, realName, suid, destCodeFile,
@@ -5435,14 +5467,8 @@
 
         final String path = scanFile.getPath();
         final String codePath = pkg.applicationInfo.getCodePath();
+        final String cpuAbiOverride = deriveAbiOverride(pkg.cpuAbiOverride, pkgSetting);
         if (isSystemApp(pkg) && !isUpdatedSystemApp(pkg)) {
-            // For the case where we had previously uninstalled an update, get rid
-            // of any native binaries we might have unpackaged. Note that this assumes
-            // that system app updates were not installed via ASEC.
-            //
-            // TODO(multiArch): Is this cleanup really necessary ?
-            NativeLibraryHelper.removeNativeBinariesFromDirLI(
-                    new File(codePath, LIB_DIR_NAME), false /* delete dirs */);
             setBundledAppAbisAndRoots(pkg, pkgSetting);
 
             // If we haven't found any native libraries for the app, check if it has
@@ -5497,7 +5523,7 @@
                     // Warn if we've set an abiOverride for multi-lib packages..
                     // By definition, we need to copy both 32 and 64 bit libraries for
                     // such packages.
-                    if (abiOverride != null) {
+                    if (pkg.cpuAbiOverride != null && !CLEAR_ABI_OVERRIDE.equals(pkg.cpuAbiOverride)) {
                         Slog.w(TAG, "Ignoring abiOverride for multi arch application.");
                     }
 
@@ -5540,15 +5566,15 @@
                         }
                     }
                 } else {
-                    String[] abiList = (abiOverride != null) ?
-                            new String[] { abiOverride } : Build.SUPPORTED_ABIS;
+                    String[] abiList = (cpuAbiOverride != null) ?
+                            new String[] { cpuAbiOverride } : Build.SUPPORTED_ABIS;
 
                     // Enable gross and lame hacks for apps that are built with old
                     // SDK tools. We must scan their APKs for renderscript bitcode and
                     // not launch them if it's present. Don't bother checking on devices
                     // that don't have 64 bit support.
                     boolean needsRenderScriptOverride = false;
-                    if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && abiOverride == null &&
+                    if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && cpuAbiOverride == null &&
                             NativeLibraryHelper.hasRenderscriptBitcode(handle)) {
                         abiList = Build.SUPPORTED_32_BIT_ABIS;
                         needsRenderScriptOverride = true;
@@ -5569,8 +5595,8 @@
 
                     if (copyRet >= 0) {
                         pkg.applicationInfo.primaryCpuAbi = abiList[copyRet];
-                    } else if (copyRet == PackageManager.NO_NATIVE_LIBRARIES && abiOverride != null) {
-                        pkg.applicationInfo.primaryCpuAbi = abiOverride;
+                    } else if (copyRet == PackageManager.NO_NATIVE_LIBRARIES && cpuAbiOverride != null) {
+                        pkg.applicationInfo.primaryCpuAbi = cpuAbiOverride;
                     } else if (needsRenderScriptOverride) {
                         pkg.applicationInfo.primaryCpuAbi = abiList[0];
                     }
@@ -5615,6 +5641,10 @@
 
         pkgSetting.primaryCpuAbiString = pkg.applicationInfo.primaryCpuAbi;
         pkgSetting.secondaryCpuAbiString = pkg.applicationInfo.secondaryCpuAbi;
+        pkgSetting.cpuAbiOverrideString = cpuAbiOverride;
+        // Copy the derived override back to the parsed package, so that we can
+        // update the package settings accordingly.
+        pkg.cpuAbiOverride = cpuAbiOverride;
 
         Slog.d(TAG, "Resolved nativeLibraryRoot for " + pkg.applicationInfo.packageName
                 + " to root=" + pkg.applicationInfo.nativeLibraryRootDir + ", isa="
@@ -6241,7 +6271,7 @@
         }
     }
 
-    private static String calculateApkRoot(final String codePathString) {
+    private static String calculateBundledApkRoot(final String codePathString) {
         final File codePath = new File(codePathString);
         final File codeRoot;
         if (FileUtils.contains(Environment.getRootDirectory(), codePath)) {
@@ -6281,14 +6311,9 @@
         final ApplicationInfo info = pkg.applicationInfo;
         final String codePath = pkg.codePath;
         final File codeFile = new File(codePath);
-        // If "/system/lib64/apkname" exists, assume that is the per-package
-        // native library directory to use; otherwise use "/system/lib/apkname".
-        final String apkRoot = calculateApkRoot(info.sourceDir);
-
         final boolean bundledApp = isSystemApp(info) && !isUpdatedSystemApp(info);
         final boolean asecApp = isForwardLocked(info) || isExternal(info);
 
-
         info.nativeLibraryRootDir = null;
         info.nativeLibraryRootRequiresIsa = false;
         info.nativeLibraryDir = null;
@@ -6297,6 +6322,9 @@
         if (isApkFile(codeFile)) {
             // Monolithic install
             if (bundledApp) {
+                // If "/system/lib64/apkname" exists, assume that is the per-package
+                // native library directory to use; otherwise use "/system/lib/apkname".
+                final String apkRoot = calculateBundledApkRoot(info.sourceDir);
                 final boolean is64Bit = VMRuntime.is64BitInstructionSet(
                         getPrimaryInstructionSet(info));
 
@@ -6352,7 +6380,7 @@
 
         // If "/system/lib64/apkname" exists, assume that is the per-package
         // native library directory to use; otherwise use "/system/lib/apkname".
-        final String apkRoot = calculateApkRoot(pkg.applicationInfo.sourceDir);
+        final String apkRoot = calculateBundledApkRoot(pkg.applicationInfo.sourceDir);
         setBundledAppAbi(pkg, apkRoot, apkName);
         // pkgSetting might be null during rescan following uninstall of updates
         // to a bundled app, so accommodate that possibility.  The settings in
@@ -7818,7 +7846,7 @@
     }
 
     void installStage(String packageName, File stageDir, IPackageInstallObserver2 observer,
-            InstallSessionParams params, String installerPackageName, int installerUid,
+            PackageInstaller.SessionParams params, String installerPackageName, int installerUid,
             UserHandle user) {
         final VerificationParams verifParams = new VerificationParams(null, params.originatingUri,
                 params.referrerUri, installerUid, null);
@@ -9278,7 +9306,7 @@
                     // Warn if we've set an abiOverride for multi-lib packages..
                     // By definition, we need to copy both 32 and 64 bit libraries for
                     // such packages.
-                    if (abiOverride != null) {
+                    if (abiOverride != null &&  !CLEAR_ABI_OVERRIDE.equals(abiOverride)) {
                         Slog.w(TAG, "Ignoring abiOverride for multi arch application.");
                     }
 
@@ -9295,10 +9323,11 @@
                         maybeThrowExceptionForMultiArchCopy("Failure copying 64 bit native libraries", copyRet);
                     }
                 } else {
-                    String[] abiList = (abiOverride != null) ?
-                            new String[] { abiOverride } : Build.SUPPORTED_ABIS;
+                    final String cpuAbiOverride = deriveAbiOverride(this.abiOverride, null /* package setting */);
+                    String[] abiList = (cpuAbiOverride != null) ?
+                            new String[] { cpuAbiOverride } : Build.SUPPORTED_ABIS;
 
-                    if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && abiOverride == null &&
+                    if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && cpuAbiOverride == null &&
                             NativeLibraryHelper.hasRenderscriptBitcode(handle)) {
                         abiList = Build.SUPPORTED_32_BIT_ABIS;
                     }
@@ -9566,7 +9595,7 @@
 
             final String newCachePath = imcs.copyPackageToContainer(
                     originFile.getAbsolutePath(), cid, getEncryptKey(), isExternal(),
-                    isFwdLocked(), abiOverride);
+                    isFwdLocked(), deriveAbiOverride(abiOverride, null /* settings */));
 
             if (newCachePath != null) {
                 setCachePath(newCachePath);
@@ -9917,7 +9946,7 @@
      */
     private void installNewPackageLI(PackageParser.Package pkg,
             int parseFlags, int scanMode, UserHandle user,
-            String installerPackageName, PackageInstalledInfo res, String abiOverride) {
+            String installerPackageName, PackageInstalledInfo res) {
         // Remember this for later, in case we need to rollback this install
         String pkgName = pkg.packageName;
 
@@ -9944,7 +9973,7 @@
 
         try {
             PackageParser.Package newPackage = scanPackageLI(pkg, parseFlags, scanMode,
-                    System.currentTimeMillis(), user, abiOverride);
+                    System.currentTimeMillis(), user);
 
             updateSettingsLI(newPackage, installerPackageName, null, null, res);
             // delete the partially installed application. the data directory will have to be
@@ -9980,7 +10009,7 @@
 
     private void replacePackageLI(PackageParser.Package pkg,
             int parseFlags, int scanMode, UserHandle user,
-            String installerPackageName, PackageInstalledInfo res, String abiOverride) {
+            String installerPackageName, PackageInstalledInfo res) {
         PackageParser.Package oldPackage;
         String pkgName = pkg.packageName;
         int[] allUsers;
@@ -10019,19 +10048,17 @@
         boolean sysPkg = (isSystemApp(oldPackage));
         if (sysPkg) {
             replaceSystemPackageLI(oldPackage, pkg, parseFlags, scanMode,
-                    user, allUsers, perUserInstalled, installerPackageName, res,
-                    abiOverride);
+                    user, allUsers, perUserInstalled, installerPackageName, res);
         } else {
             replaceNonSystemPackageLI(oldPackage, pkg, parseFlags, scanMode,
-                    user, allUsers, perUserInstalled, installerPackageName, res,
-                    abiOverride);
+                    user, allUsers, perUserInstalled, installerPackageName, res);
         }
     }
 
     private void replaceNonSystemPackageLI(PackageParser.Package deletedPackage,
             PackageParser.Package pkg, int parseFlags, int scanMode, UserHandle user,
             int[] allUsers, boolean[] perUserInstalled,
-            String installerPackageName, PackageInstalledInfo res, String abiOverride) {
+            String installerPackageName, PackageInstalledInfo res) {
         String pkgName = deletedPackage.packageName;
         boolean deletedPkg = true;
         boolean updatedSettings = false;
@@ -10056,7 +10083,7 @@
             deleteCodeCacheDirsLI(pkgName);
             try {
                 final PackageParser.Package newPackage = scanPackageLI(pkg, parseFlags,
-                        scanMode | SCAN_UPDATE_TIME, System.currentTimeMillis(), user, abiOverride);
+                        scanMode | SCAN_UPDATE_TIME, System.currentTimeMillis(), user);
                 updateSettingsLI(newPackage, installerPackageName, allUsers, perUserInstalled, res);
                 updatedSettings = true;
             } catch (PackageManagerException e) {
@@ -10089,8 +10116,7 @@
                 int oldScanMode = (oldOnSd ? 0 : SCAN_MONITOR) | SCAN_UPDATE_SIGNATURE
                         | SCAN_UPDATE_TIME;
                 try {
-                    scanPackageLI(restoreFile, oldParseFlags, oldScanMode, origUpdateTime, null,
-                            null);
+                    scanPackageLI(restoreFile, oldParseFlags, oldScanMode, origUpdateTime, null);
                 } catch (PackageManagerException e) {
                     Slog.e(TAG, "Failed to restore package : " + pkgName + " after failed upgrade: "
                             + e.getMessage());
@@ -10112,7 +10138,7 @@
     private void replaceSystemPackageLI(PackageParser.Package deletedPackage,
             PackageParser.Package pkg, int parseFlags, int scanMode, UserHandle user,
             int[] allUsers, boolean[] perUserInstalled,
-            String installerPackageName, PackageInstalledInfo res, String abiOverride) {
+            String installerPackageName, PackageInstalledInfo res) {
         if (DEBUG_INSTALL) Slog.d(TAG, "replaceSystemPackageLI: new=" + pkg
                 + ", old=" + deletedPackage);
         boolean updatedSettings = false;
@@ -10172,7 +10198,7 @@
 
         PackageParser.Package newPackage = null;
         try {
-            newPackage = scanPackageLI(pkg, parseFlags, scanMode, 0, user, abiOverride);
+            newPackage = scanPackageLI(pkg, parseFlags, scanMode, 0, user);
             if (newPackage.mExtras != null) {
                 final PackageSetting newPkgSetting = (PackageSetting) newPackage.mExtras;
                 newPkgSetting.firstInstallTime = oldPkgSetting.firstInstallTime;
@@ -10204,8 +10230,7 @@
             }
             // Add back the old system package
             try {
-                scanPackageLI(oldPkg, parseFlags, SCAN_MONITOR | SCAN_UPDATE_SIGNATURE, 0, user,
-                        null);
+                scanPackageLI(oldPkg, parseFlags, SCAN_MONITOR | SCAN_UPDATE_SIGNATURE, 0, user);
             } catch (PackageManagerException e) {
                 Slog.e(TAG, "Failed to restore original package: " + e.getMessage());
             }
@@ -10336,6 +10361,9 @@
             return;
         }
 
+        // Mark that we have an install time CPU ABI override.
+        pkg.cpuAbiOverride = args.abiOverride;
+
         String pkgName = res.name = pkg.packageName;
         if ((pkg.applicationInfo.flags&ApplicationInfo.FLAG_TEST_ONLY) != 0) {
             if ((pFlags&PackageManager.INSTALL_ALLOW_TEST) == 0) {
@@ -10454,10 +10482,10 @@
 
         if (replace) {
             replacePackageLI(pkg, parseFlags, scanMode, args.user,
-                    installerPackageName, res, args.abiOverride);
+                    installerPackageName, res);
         } else {
             installNewPackageLI(pkg, parseFlags, scanMode | SCAN_DELETE_DATA_ON_FAILURES, args.user,
-                    installerPackageName, res, args.abiOverride);
+                    installerPackageName, res);
         }
         synchronized (mPackages) {
             final PackageSetting ps = mSettings.mPackages.get(pkgName);
@@ -10893,8 +10921,7 @@
 
         final PackageParser.Package newPkg;
         try {
-            newPkg = scanPackageLI(disabledPs.codePath, parseFlags, SCAN_MONITOR | SCAN_NO_PATHS, 0,
-                    null, null);
+            newPkg = scanPackageLI(disabledPs.codePath, parseFlags, SCAN_MONITOR | SCAN_NO_PATHS, 0, null);
         } catch (PackageManagerException e) {
             Slog.w(TAG, "Failed to restore system package:" + newPs.name + ": " + e.getMessage());
             return false;
@@ -12852,7 +12879,7 @@
                 synchronized (mInstallLock) {
                     PackageParser.Package pkg = null;
                     try {
-                        pkg = scanPackageLI(new File(codePath), parseFlags, 0, 0, null, null);
+                        pkg = scanPackageLI(new File(codePath), parseFlags, 0, 0, null);
                     } catch (PackageManagerException e) {
                         Slog.w(TAG, "Failed to scan " + codePath + ": " + e.getMessage());
                     }
diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
index a6571cf..696aa34 100644
--- a/services/core/java/com/android/server/pm/PackageSetting.java
+++ b/services/core/java/com/android/server/pm/PackageSetting.java
@@ -31,9 +31,11 @@
 
     PackageSetting(String name, String realName, File codePath, File resourcePath,
             String legacyNativeLibraryPathString, String primaryCpuAbiString,
-            String secondaryCpuAbiString, int pVersionCode, int pkgFlags) {
+            String secondaryCpuAbiString, String cpuAbiOverrideString,
+            int pVersionCode, int pkgFlags) {
         super(name, realName, codePath, resourcePath, legacyNativeLibraryPathString,
-                primaryCpuAbiString, secondaryCpuAbiString, pVersionCode, pkgFlags);
+                primaryCpuAbiString, secondaryCpuAbiString, cpuAbiOverrideString,
+                pVersionCode, pkgFlags);
     }
 
     /**
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index e29332c..bf13fd9 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -64,8 +64,25 @@
     @Deprecated
     String legacyNativeLibraryPathString;
 
+    /**
+     * The primary CPU abi for this package. This value is regenerated at every
+     * boot scan.
+     */
     String primaryCpuAbiString;
+
+    /**
+     * The secondary CPU abi for this package. This value is regenerated at every
+     * boot scan.
+     */
     String secondaryCpuAbiString;
+
+    /**
+     * The install time CPU override, if any. This value is written at install time
+     * and doesn't change during the life of an install. If non-null,
+     * {@code primaryCpuAbiString} will contain the same value.
+     */
+    String cpuAbiOverrideString;
+
     long timeStamp;
     long firstInstallTime;
     long lastUpdateTime;
@@ -94,12 +111,13 @@
     String installerPackageName;
     PackageSettingBase(String name, String realName, File codePath, File resourcePath,
             String legacyNativeLibraryPathString, String primaryCpuAbiString,
-            String secondaryCpuAbiString, int pVersionCode, int pkgFlags) {
+            String secondaryCpuAbiString, String cpuAbiOverrideString,
+            int pVersionCode, int pkgFlags) {
         super(pkgFlags);
         this.name = name;
         this.realName = realName;
         init(codePath, resourcePath, legacyNativeLibraryPathString, primaryCpuAbiString,
-                secondaryCpuAbiString, pVersionCode);
+                secondaryCpuAbiString, cpuAbiOverrideString, pVersionCode);
     }
 
     /**
@@ -118,6 +136,7 @@
         legacyNativeLibraryPathString = base.legacyNativeLibraryPathString;
         primaryCpuAbiString = base.primaryCpuAbiString;
         secondaryCpuAbiString = base.secondaryCpuAbiString;
+        cpuAbiOverrideString = base.cpuAbiOverrideString;
         timeStamp = base.timeStamp;
         firstInstallTime = base.firstInstallTime;
         lastUpdateTime = base.lastUpdateTime;
@@ -145,7 +164,8 @@
     }
 
     void init(File codePath, File resourcePath, String legacyNativeLibraryPathString,
-              String primaryCpuAbiString, String secondaryCpuAbiString, int pVersionCode) {
+              String primaryCpuAbiString, String secondaryCpuAbiString,
+              String cpuAbiOverrideString, int pVersionCode) {
         this.codePath = codePath;
         this.codePathString = codePath.toString();
         this.resourcePath = resourcePath;
@@ -153,6 +173,7 @@
         this.legacyNativeLibraryPathString = legacyNativeLibraryPathString;
         this.primaryCpuAbiString = primaryCpuAbiString;
         this.secondaryCpuAbiString = secondaryCpuAbiString;
+        this.cpuAbiOverrideString = cpuAbiOverrideString;
         this.versionCode = pVersionCode;
     }
 
@@ -185,6 +206,7 @@
 
         primaryCpuAbiString = base.primaryCpuAbiString;
         secondaryCpuAbiString = base.secondaryCpuAbiString;
+        cpuAbiOverrideString = base.cpuAbiOverrideString;
         timeStamp = base.timeStamp;
         firstInstallTime = base.firstInstallTime;
         lastUpdateTime = base.lastUpdateTime;
diff --git a/services/core/java/com/android/server/pm/PendingPackage.java b/services/core/java/com/android/server/pm/PendingPackage.java
index 85be651..5d30e76 100644
--- a/services/core/java/com/android/server/pm/PendingPackage.java
+++ b/services/core/java/com/android/server/pm/PendingPackage.java
@@ -22,10 +22,12 @@
     final int sharedId;
 
     PendingPackage(String name, String realName, File codePath, File resourcePath,
-            String nativeLibrary32PathString, String nativeLibrary64PathString,
-            String requiredCpuAbiString, int sharedId, int pVersionCode, int pkgFlags) {
-        super(name, realName, codePath, resourcePath, nativeLibrary32PathString, nativeLibrary64PathString,
-                requiredCpuAbiString, pVersionCode, pkgFlags);
+            String legacyNativeLibraryPathString, String primaryCpuAbiString,
+            String secondaryCpuAbiString, String cpuAbiOverrideString, int sharedId,
+            int pVersionCode, int pkgFlags) {
+        super(name, realName, codePath, resourcePath, legacyNativeLibraryPathString,
+                primaryCpuAbiString, secondaryCpuAbiString, cpuAbiOverrideString,
+                pVersionCode, pkgFlags);
         this.sharedId = sharedId;
     }
 }
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index cd2aa22..c346f71 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -325,8 +325,8 @@
 
     PackageSetting getPackageLPw(PackageParser.Package pkg, PackageSetting origPackage,
             String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
-            String legacyNativeLibraryPathString, String primaryCpuAbi, String secondaryCpuAbi, int pkgFlags,
-            UserHandle user, boolean add) {
+            String legacyNativeLibraryPathString, String primaryCpuAbi, String secondaryCpuAbi,
+            int pkgFlags, UserHandle user, boolean add) {
         final String name = pkg.packageName;
         PackageSetting p = getPackageLPw(name, origPackage, realName, sharedUser, codePath,
                 resourcePath, legacyNativeLibraryPathString, primaryCpuAbi, secondaryCpuAbi,
@@ -417,7 +417,8 @@
         }
         PackageSetting ret = addPackageLPw(name, p.realName, p.codePath, p.resourcePath,
                 p.legacyNativeLibraryPathString, p.primaryCpuAbiString,
-                p.secondaryCpuAbiString, p.appId, p.versionCode, p.pkgFlags);
+                p.secondaryCpuAbiString, p.secondaryCpuAbiString,
+                p.appId, p.versionCode, p.pkgFlags);
         mDisabledSysPackages.remove(name);
         return ret;
     }
@@ -432,7 +433,7 @@
 
     PackageSetting addPackageLPw(String name, String realName, File codePath, File resourcePath,
             String legacyNativeLibraryPathString, String primaryCpuAbiString, String secondaryCpuAbiString,
-            int uid, int vc, int pkgFlags) {
+            String cpuAbiOverrideString, int uid, int vc, int pkgFlags) {
         PackageSetting p = mPackages.get(name);
         if (p != null) {
             if (p.appId == uid) {
@@ -443,7 +444,8 @@
             return null;
         }
         p = new PackageSetting(name, realName, codePath, resourcePath,
-                legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString, vc, pkgFlags);
+                legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString,
+                cpuAbiOverrideString, vc, pkgFlags);
         p.appId = uid;
         if (addUserIdLPw(uid, p, name)) {
             mPackages.put(name, p);
@@ -512,11 +514,13 @@
     private PackageSetting getPackageLPw(String name, PackageSetting origPackage,
             String realName, SharedUserSetting sharedUser, File codePath, File resourcePath,
             String legacyNativeLibraryPathString, String primaryCpuAbiString, String secondaryCpuAbiString,
-            int vc, int pkgFlags, UserHandle installUser, boolean add, boolean allowInstall) {
+            int vc, int pkgFlags, UserHandle installUser, boolean add,
+            boolean allowInstall) {
         PackageSetting p = mPackages.get(name);
         if (p != null) {
             p.primaryCpuAbiString = primaryCpuAbiString;
             p.secondaryCpuAbiString = secondaryCpuAbiString;
+
             if (!p.codePath.equals(codePath)) {
                 // Check to see if its a disabled system app
                 if ((p.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0) {
@@ -560,7 +564,8 @@
             if (origPackage != null) {
                 // We are consuming the data from an existing package.
                 p = new PackageSetting(origPackage.name, name, codePath, resourcePath,
-                        legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString, vc, pkgFlags);
+                        legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString,
+                        null /* cpuAbiOverrideString */, vc, pkgFlags);
                 if (PackageManagerService.DEBUG_UPGRADE) Log.v(PackageManagerService.TAG, "Package "
                         + name + " is adopting original package " + origPackage.name);
                 // Note that we will retain the new package's signature so
@@ -577,7 +582,8 @@
                 p.setTimeStamp(codePath.lastModified());
             } else {
                 p = new PackageSetting(name, realName, codePath, resourcePath,
-                        legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString, vc, pkgFlags);
+                        legacyNativeLibraryPathString, primaryCpuAbiString, secondaryCpuAbiString,
+                        null /* cpuAbiOverrideString */, vc, pkgFlags);
                 p.setTimeStamp(codePath.lastModified());
                 p.sharedUser = sharedUser;
                 // If this is not a system app, it starts out stopped.
@@ -720,6 +726,7 @@
         // Update the required Cpu Abi
         p.primaryCpuAbiString = pkg.applicationInfo.primaryCpuAbi;
         p.secondaryCpuAbiString = pkg.applicationInfo.secondaryCpuAbi;
+        p.cpuAbiOverrideString = pkg.cpuAbiOverride;
         // Update version code if needed
         if (pkg.mVersionCode != p.versionCode) {
             p.versionCode = pkg.mVersionCode;
@@ -1888,6 +1895,9 @@
         if (pkg.secondaryCpuAbiString != null) {
             serializer.attribute(null, "secondaryCpuAbi", pkg.secondaryCpuAbiString);
         }
+        if (pkg.cpuAbiOverrideString != null) {
+            serializer.attribute(null, "cpuAbiOverride", pkg.cpuAbiOverrideString);
+        }
 
         if (pkg.sharedUser == null) {
             serializer.attribute(null, "userId", Integer.toString(pkg.appId));
@@ -1938,6 +1948,9 @@
         if (pkg.secondaryCpuAbiString != null) {
             serializer.attribute(null, "secondaryCpuAbi", pkg.secondaryCpuAbiString);
         }
+        if (pkg.cpuAbiOverrideString != null) {
+            serializer.attribute(null, "cpuAbiOverride", pkg.cpuAbiOverrideString);
+        }
 
         serializer.attribute(null, "flags", Integer.toString(pkg.pkgFlags));
         serializer.attribute(null, "ft", Long.toHexString(pkg.timeStamp));
@@ -2248,8 +2261,8 @@
                 PackageSetting p = getPackageLPw(pp.name, null, pp.realName,
                         (SharedUserSetting) idObj, pp.codePath, pp.resourcePath,
                         pp.legacyNativeLibraryPathString, pp.primaryCpuAbiString,
-                        pp.secondaryCpuAbiString, pp.versionCode, pp.pkgFlags,
-                        null, true /* add */, false /* allowInstall */);
+                        pp.secondaryCpuAbiString, pp.versionCode, pp.pkgFlags, null,
+                        true /* add */, false /* allowInstall */);
                 if (p == null) {
                     PackageManagerService.reportSettingsProblem(Log.WARN,
                             "Unable to create application package for " + pp.name);
@@ -2673,6 +2686,7 @@
 
         String primaryCpuAbiStr = parser.getAttributeValue(null, "primaryCpuAbi");
         String secondaryCpuAbiStr = parser.getAttributeValue(null, "secondaryCpuAbi");
+        String cpuAbiOverrideStr = parser.getAttributeValue(null, "cpuAbiOverride");
 
         if (primaryCpuAbiStr == null && legacyCpuAbiStr != null) {
             primaryCpuAbiStr = legacyCpuAbiStr;
@@ -2698,7 +2712,7 @@
         }
         PackageSetting ps = new PackageSetting(name, realName, codePathFile,
                 new File(resourcePathStr), legacyNativeLibraryPathStr, primaryCpuAbiStr,
-                secondaryCpuAbiStr, versionCode, pkgFlags);
+                secondaryCpuAbiStr, cpuAbiOverrideStr, versionCode, pkgFlags);
         String timeStampStr = parser.getAttributeValue(null, "ft");
         if (timeStampStr != null) {
             try {
@@ -2768,6 +2782,7 @@
         String legacyNativeLibraryPathStr = null;
         String primaryCpuAbiString = null;
         String secondaryCpuAbiString = null;
+        String cpuAbiOverrideString = null;
         String systemStr = null;
         String installerPackageName = null;
         String uidError = null;
@@ -2792,6 +2807,7 @@
             legacyNativeLibraryPathStr = parser.getAttributeValue(null, "nativeLibraryPath");
             primaryCpuAbiString = parser.getAttributeValue(null, "primaryCpuAbi");
             secondaryCpuAbiString = parser.getAttributeValue(null, "secondaryCpuAbi");
+            cpuAbiOverrideString = parser.getAttributeValue(null, "cpuAbiOverride");
 
             if (primaryCpuAbiString == null && legacyCpuAbiString != null) {
                 primaryCpuAbiString = legacyCpuAbiString;
@@ -2874,7 +2890,7 @@
             } else if (userId > 0) {
                 packageSetting = addPackageLPw(name.intern(), realName, new File(codePathStr),
                         new File(resourcePathStr), legacyNativeLibraryPathStr, primaryCpuAbiString,
-                        secondaryCpuAbiString, userId, versionCode, pkgFlags);
+                        secondaryCpuAbiString, cpuAbiOverrideString, userId, versionCode, pkgFlags);
                 if (PackageManagerService.DEBUG_SETTINGS)
                     Log.i(PackageManagerService.TAG, "Reading package " + name + ": userId="
                             + userId + " pkg=" + packageSetting);
@@ -2892,7 +2908,8 @@
                 if (userId > 0) {
                     packageSetting = new PendingPackage(name.intern(), realName, new File(
                             codePathStr), new File(resourcePathStr), legacyNativeLibraryPathStr,
-                            primaryCpuAbiString, legacyCpuAbiString, userId, versionCode, pkgFlags);
+                            primaryCpuAbiString, secondaryCpuAbiString, cpuAbiOverrideString,
+                            userId, versionCode, pkgFlags);
                     packageSetting.setTimeStamp(timeStamp);
                     packageSetting.firstInstallTime = firstInstallTime;
                     packageSetting.lastUpdateTime = lastUpdateTime;
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 33ecc4d..ad87993 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -125,6 +125,10 @@
     // Number of attempts before jumping to the next BACKOFF_TIMES slot
     private static final int BACKOFF_INC_INTERVAL = 5;
 
+    // Maximum number of managed profiles permitted is 1. This cannot be increased
+    // without first making sure that the rest of the framework is prepared for it.
+    private static final int MAX_MANAGED_PROFILES = 1;
+
     // Amount of time to force the user to wait before entering the PIN again, after failing
     // BACKOFF_INC_INTERVAL times.
     private static final int[] BACKOFF_TIMES = { 0, 30*1000, 60*1000, 5*60*1000, 30*60*1000 };
@@ -510,7 +514,8 @@
         // Skip over users being removed
         for (int i = 0; i < totalUserCount; i++) {
             UserInfo user = mUsers.valueAt(i);
-            if (!mRemovingUserIds.get(user.id)) {
+            if (!mRemovingUserIds.get(user.id)
+                    && !user.isGuest()) {
                 aliveUserCount++;
             }
         }
@@ -1093,6 +1098,7 @@
             Log.w(LOG_TAG, "Cannot add user. DISALLOW_ADD_USER is enabled.");
             return null;
         }
+        final boolean isGuest = (flags & UserInfo.FLAG_GUEST) != 0;
         final long ident = Binder.clearCallingIdentity();
         UserInfo userInfo = null;
         try {
@@ -1103,7 +1109,21 @@
                         parent = getUserInfoLocked(parentId);
                         if (parent == null) return null;
                     }
-                    if (isUserLimitReachedLocked()) return null;
+                    // If we're not adding a guest user and the limit has been reached,
+                    // cannot add a user.
+                    if (!isGuest && isUserLimitReachedLocked()) {
+                        return null;
+                    }
+                    // If we're adding a guest and there already exists one, bail.
+                    if (isGuest && numberOfUsersOfTypeLocked(UserInfo.FLAG_GUEST, true) > 0) {
+                        return null;
+                    }
+                    // Limit number of managed profiles that can be created
+                    if ((flags & UserInfo.FLAG_MANAGED_PROFILE) != 0
+                            && numberOfUsersOfTypeLocked(UserInfo.FLAG_MANAGED_PROFILE, true)
+                                >= MAX_MANAGED_PROFILES) {
+                        return null;
+                    }
                     int userId = getNextAvailableIdLocked();
                     userInfo = new UserInfo(userId, name, null, flags);
                     File userPath = new File(mBaseUserPath, Integer.toString(userId));
@@ -1142,6 +1162,19 @@
         return userInfo;
     }
 
+    private int numberOfUsersOfTypeLocked(int flags, boolean excludeDying) {
+        int count = 0;
+        for (int i = mUsers.size() - 1; i >= 0; i--) {
+            UserInfo user = mUsers.valueAt(i);
+            if (!excludeDying || !mRemovingUserIds.get(user.id)) {
+                if ((user.flags & flags) != 0) {
+                    count++;
+                }
+            }
+        }
+        return count;
+    }
+
     /**
      * Removes a user and all data directories created for that user. This method should be called
      * after the user's processes have been terminated.
diff --git a/services/core/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
index 2b4a24a..46497242 100644
--- a/services/core/java/com/android/server/power/Notifier.java
+++ b/services/core/java/com/android/server/power/Notifier.java
@@ -406,7 +406,6 @@
 
     private void sendNextBroadcast() {
         final int powerState;
-        final int goToSleepReason;
         synchronized (mLock) {
             if (mBroadcastedPowerState == POWER_STATE_UNKNOWN) {
                 // Broadcasted power state is unknown.  Send wake up.
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index 14cbd66..41db2c3 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -56,10 +56,9 @@
 import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.os.SystemService;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.os.WorkSource;
-import android.os.Parcel;
-import android.os.ServiceManager;
 import android.provider.Settings;
 import android.service.dreams.DreamManagerInternal;
 import android.util.EventLog;
@@ -709,7 +708,6 @@
         if (mLowPowerModeEnabled != lowPowerModeEnabled) {
             mLowPowerModeEnabled = lowPowerModeEnabled;
             powerHintInternal(POWER_HINT_LOW_POWER_MODE, lowPowerModeEnabled ? 1 : 0);
-            setSurfaceFlingerLowPowerMode(lowPowerModeEnabled ? 1 : 0);
             mLowPowerModeEnabled = lowPowerModeEnabled;
             BackgroundThread.getHandler().post(new Runnable() {
                 @Override
@@ -771,7 +769,7 @@
                 notifyAcquire = true;
             }
 
-            applyWakeLockFlagsOnAcquireLocked(wakeLock);
+            applyWakeLockFlagsOnAcquireLocked(wakeLock, uid);
             mDirty |= DIRTY_WAKE_LOCKS;
             updatePowerStateLocked();
             if (notifyAcquire) {
@@ -796,10 +794,10 @@
         return false;
     }
 
-    private void applyWakeLockFlagsOnAcquireLocked(WakeLock wakeLock) {
+    private void applyWakeLockFlagsOnAcquireLocked(WakeLock wakeLock, int uid) {
         if ((wakeLock.mFlags & PowerManager.ACQUIRE_CAUSES_WAKEUP) != 0
                 && isScreenLock(wakeLock)) {
-            wakeUpNoUpdateLocked(SystemClock.uptimeMillis());
+            wakeUpNoUpdateLocked(SystemClock.uptimeMillis(), uid);
         }
     }
 
@@ -820,17 +818,12 @@
                         + " [" + wakeLock.mTag + "], flags=0x" + Integer.toHexString(flags));
             }
 
-            mWakeLocks.remove(index);
-            notifyWakeLockReleasedLocked(wakeLock);
-            wakeLock.mLock.unlinkToDeath(wakeLock, 0);
-
             if ((flags & PowerManager.WAIT_FOR_PROXIMITY_NEGATIVE) != 0) {
                 mRequestWaitForNegativeProximity = true;
             }
 
-            applyWakeLockFlagsOnReleaseLocked(wakeLock);
-            mDirty |= DIRTY_WAKE_LOCKS;
-            updatePowerStateLocked();
+            wakeLock.mLock.unlinkToDeath(wakeLock, 0);
+            removeWakeLockLocked(wakeLock, index);
         }
     }
 
@@ -846,15 +839,19 @@
                 return;
             }
 
-            mWakeLocks.remove(index);
-            notifyWakeLockReleasedLocked(wakeLock);
-
-            applyWakeLockFlagsOnReleaseLocked(wakeLock);
-            mDirty |= DIRTY_WAKE_LOCKS;
-            updatePowerStateLocked();
+            removeWakeLockLocked(wakeLock, index);
         }
     }
 
+    private void removeWakeLockLocked(WakeLock wakeLock, int index) {
+        mWakeLocks.remove(index);
+        notifyWakeLockReleasedLocked(wakeLock);
+
+        applyWakeLockFlagsOnReleaseLocked(wakeLock);
+        mDirty |= DIRTY_WAKE_LOCKS;
+        updatePowerStateLocked();
+    }
+
     private void applyWakeLockFlagsOnReleaseLocked(WakeLock wakeLock) {
         if ((wakeLock.mFlags & PowerManager.ON_AFTER_RELEASE) != 0
                 && isScreenLock(wakeLock)) {
@@ -975,36 +972,41 @@
             return false;
         }
 
-        mNotifier.onUserActivity(event, uid);
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "userActivity");
+        try {
+            mNotifier.onUserActivity(event, uid);
 
-        if ((flags & PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS) != 0) {
-            if (eventTime > mLastUserActivityTimeNoChangeLights
-                    && eventTime > mLastUserActivityTime) {
-                mLastUserActivityTimeNoChangeLights = eventTime;
-                mDirty |= DIRTY_USER_ACTIVITY;
-                return true;
+            if ((flags & PowerManager.USER_ACTIVITY_FLAG_NO_CHANGE_LIGHTS) != 0) {
+                if (eventTime > mLastUserActivityTimeNoChangeLights
+                        && eventTime > mLastUserActivityTime) {
+                    mLastUserActivityTimeNoChangeLights = eventTime;
+                    mDirty |= DIRTY_USER_ACTIVITY;
+                    return true;
+                }
+            } else {
+                if (eventTime > mLastUserActivityTime) {
+                    mLastUserActivityTime = eventTime;
+                    mDirty |= DIRTY_USER_ACTIVITY;
+                    return true;
+                }
             }
-        } else {
-            if (eventTime > mLastUserActivityTime) {
-                mLastUserActivityTime = eventTime;
-                mDirty |= DIRTY_USER_ACTIVITY;
-                return true;
-            }
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
         }
         return false;
     }
 
-    private void wakeUpInternal(long eventTime) {
+    private void wakeUpInternal(long eventTime, int uid) {
         synchronized (mLock) {
-            if (wakeUpNoUpdateLocked(eventTime)) {
+            if (wakeUpNoUpdateLocked(eventTime, uid)) {
                 updatePowerStateLocked();
             }
         }
     }
 
-    private boolean wakeUpNoUpdateLocked(long eventTime) {
+    private boolean wakeUpNoUpdateLocked(long eventTime, int uid) {
         if (DEBUG_SPEW) {
-            Slog.d(TAG, "wakeUpNoUpdateLocked: eventTime=" + eventTime);
+            Slog.d(TAG, "wakeUpNoUpdateLocked: eventTime=" + eventTime + ", uid=" + uid);
         }
 
         if (eventTime < mLastSleepTime || mWakefulness == WAKEFULNESS_AWAKE
@@ -1012,31 +1014,36 @@
             return false;
         }
 
-        switch (mWakefulness) {
-            case WAKEFULNESS_ASLEEP:
-                Slog.i(TAG, "Waking up from sleep...");
-                break;
-            case WAKEFULNESS_DREAMING:
-                Slog.i(TAG, "Waking up from dream...");
-                break;
-            case WAKEFULNESS_DOZING:
-                Slog.i(TAG, "Waking up from dozing...");
-                break;
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "wakeUp");
+        try {
+            switch (mWakefulness) {
+                case WAKEFULNESS_ASLEEP:
+                    Slog.i(TAG, "Waking up from sleep (uid " + uid +")...");
+                    break;
+                case WAKEFULNESS_DREAMING:
+                    Slog.i(TAG, "Waking up from dream (uid " + uid +")...");
+                    break;
+                case WAKEFULNESS_DOZING:
+                    Slog.i(TAG, "Waking up from dozing (uid " + uid +")...");
+                    break;
+            }
+
+            mLastWakeTime = eventTime;
+            mDirty |= DIRTY_WAKEFULNESS;
+            mWakefulness = WAKEFULNESS_AWAKE;
+            setInteractiveStateLocked(true, 0);
+
+            userActivityNoUpdateLocked(
+                    eventTime, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, uid);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
         }
-
-        mLastWakeTime = eventTime;
-        mDirty |= DIRTY_WAKEFULNESS;
-        mWakefulness = WAKEFULNESS_AWAKE;
-        setInteractiveStateLocked(true, 0);
-
-        userActivityNoUpdateLocked(
-                eventTime, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
         return true;
     }
 
-    private void goToSleepInternal(long eventTime, int reason, int flags) {
+    private void goToSleepInternal(long eventTime, int reason, int flags, int uid) {
         synchronized (mLock) {
-            if (goToSleepNoUpdateLocked(eventTime, reason, flags)) {
+            if (goToSleepNoUpdateLocked(eventTime, reason, flags, uid)) {
                 updatePowerStateLocked();
             }
         }
@@ -1045,10 +1052,10 @@
     // This method is called goToSleep for historical reasons but we actually start
     // dozing before really going to sleep.
     @SuppressWarnings("deprecation")
-    private boolean goToSleepNoUpdateLocked(long eventTime, int reason, int flags) {
+    private boolean goToSleepNoUpdateLocked(long eventTime, int reason, int flags, int uid) {
         if (DEBUG_SPEW) {
             Slog.d(TAG, "goToSleepNoUpdateLocked: eventTime=" + eventTime
-                    + ", reason=" + reason + ", flags=" + flags);
+                    + ", reason=" + reason + ", flags=" + flags + ", uid=" + uid);
         }
 
         if (eventTime < mLastWakeTime
@@ -1058,58 +1065,73 @@
             return false;
         }
 
-        switch (reason) {
-            case PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN:
-                Slog.i(TAG, "Going to sleep due to device administration policy...");
-                break;
-            case PowerManager.GO_TO_SLEEP_REASON_TIMEOUT:
-                Slog.i(TAG, "Going to sleep due to screen timeout...");
-                break;
-            default:
-                Slog.i(TAG, "Going to sleep by user request...");
-                reason = PowerManager.GO_TO_SLEEP_REASON_USER;
-                break;
-        }
-
-        mLastSleepTime = eventTime;
-        mDirty |= DIRTY_WAKEFULNESS;
-        mWakefulness = WAKEFULNESS_DOZING;
-        mSandmanSummoned = true;
-        setInteractiveStateLocked(false, reason);
-
-        // Report the number of wake locks that will be cleared by going to sleep.
-        int numWakeLocksCleared = 0;
-        final int numWakeLocks = mWakeLocks.size();
-        for (int i = 0; i < numWakeLocks; i++) {
-            final WakeLock wakeLock = mWakeLocks.get(i);
-            switch (wakeLock.mFlags & PowerManager.WAKE_LOCK_LEVEL_MASK) {
-                case PowerManager.FULL_WAKE_LOCK:
-                case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:
-                case PowerManager.SCREEN_DIM_WAKE_LOCK:
-                    numWakeLocksCleared += 1;
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "goToSleep");
+        try {
+            switch (reason) {
+                case PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN:
+                    Slog.i(TAG, "Going to sleep due to device administration policy "
+                            + "(uid " + uid +")...");
+                    break;
+                case PowerManager.GO_TO_SLEEP_REASON_TIMEOUT:
+                    Slog.i(TAG, "Going to sleep due to screen timeout (uid " + uid +")...");
+                    break;
+                case PowerManager.GO_TO_SLEEP_REASON_LID_SWITCH:
+                    Slog.i(TAG, "Going to sleep due to lid switch (uid " + uid +")...");
+                    break;
+                case PowerManager.GO_TO_SLEEP_REASON_POWER_BUTTON:
+                    Slog.i(TAG, "Going to sleep due to power button (uid " + uid +")...");
+                    break;
+                case PowerManager.GO_TO_SLEEP_REASON_HDMI:
+                    Slog.i(TAG, "Going to sleep due to HDMI standby (uid " + uid +")...");
+                    break;
+                default:
+                    Slog.i(TAG, "Going to sleep by application request (uid " + uid +")...");
+                    reason = PowerManager.GO_TO_SLEEP_REASON_APPLICATION;
                     break;
             }
-        }
-        EventLog.writeEvent(EventLogTags.POWER_SLEEP_REQUESTED, numWakeLocksCleared);
 
-        // Skip dozing if requested.
-        if ((flags & PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE) != 0) {
-            reallyGoToSleepNoUpdateLocked(eventTime);
+            mLastSleepTime = eventTime;
+            mDirty |= DIRTY_WAKEFULNESS;
+            mWakefulness = WAKEFULNESS_DOZING;
+            mSandmanSummoned = true;
+            setInteractiveStateLocked(false, reason);
+
+            // Report the number of wake locks that will be cleared by going to sleep.
+            int numWakeLocksCleared = 0;
+            final int numWakeLocks = mWakeLocks.size();
+            for (int i = 0; i < numWakeLocks; i++) {
+                final WakeLock wakeLock = mWakeLocks.get(i);
+                switch (wakeLock.mFlags & PowerManager.WAKE_LOCK_LEVEL_MASK) {
+                    case PowerManager.FULL_WAKE_LOCK:
+                    case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:
+                    case PowerManager.SCREEN_DIM_WAKE_LOCK:
+                        numWakeLocksCleared += 1;
+                        break;
+                }
+            }
+            EventLog.writeEvent(EventLogTags.POWER_SLEEP_REQUESTED, numWakeLocksCleared);
+
+            // Skip dozing if requested.
+            if ((flags & PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE) != 0) {
+                reallyGoToSleepNoUpdateLocked(eventTime, uid);
+            }
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
         }
         return true;
     }
 
-    private void napInternal(long eventTime) {
+    private void napInternal(long eventTime, int uid) {
         synchronized (mLock) {
-            if (napNoUpdateLocked(eventTime)) {
+            if (napNoUpdateLocked(eventTime, uid)) {
                 updatePowerStateLocked();
             }
         }
     }
 
-    private boolean napNoUpdateLocked(long eventTime) {
+    private boolean napNoUpdateLocked(long eventTime, int uid) {
         if (DEBUG_SPEW) {
-            Slog.d(TAG, "napNoUpdateLocked: eventTime=" + eventTime);
+            Slog.d(TAG, "napNoUpdateLocked: eventTime=" + eventTime + ", uid=" + uid);
         }
 
         if (eventTime < mLastWakeTime || mWakefulness != WAKEFULNESS_AWAKE
@@ -1117,19 +1139,25 @@
             return false;
         }
 
-        Slog.i(TAG, "Nap time...");
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "nap");
+        try {
+            Slog.i(TAG, "Nap time (uid " + uid +")...");
 
-        mDirty |= DIRTY_WAKEFULNESS;
-        mWakefulness = WAKEFULNESS_DREAMING;
-        mSandmanSummoned = true;
-        setInteractiveStateLocked(true, 0);
+            mDirty |= DIRTY_WAKEFULNESS;
+            mWakefulness = WAKEFULNESS_DREAMING;
+            mSandmanSummoned = true;
+            setInteractiveStateLocked(true, 0);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
+        }
         return true;
     }
 
     // Done dozing, drop everything and go to sleep.
-    private boolean reallyGoToSleepNoUpdateLocked(long eventTime) {
+    private boolean reallyGoToSleepNoUpdateLocked(long eventTime, int uid) {
         if (DEBUG_SPEW) {
-            Slog.d(TAG, "reallyGoToSleepNoUpdateLocked: eventTime=" + eventTime);
+            Slog.d(TAG, "reallyGoToSleepNoUpdateLocked: eventTime=" + eventTime
+                    + ", uid=" + uid);
         }
 
         if (eventTime < mLastWakeTime || mWakefulness == WAKEFULNESS_ASLEEP
@@ -1137,11 +1165,16 @@
             return false;
         }
 
-        Slog.i(TAG, "Sleeping...");
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "reallyGoToSleep");
+        try {
+            Slog.i(TAG, "Sleeping (uid " + uid +")...");
 
-        mDirty |= DIRTY_WAKEFULNESS;
-        mWakefulness = WAKEFULNESS_ASLEEP;
-        setInteractiveStateLocked(false, PowerManager.GO_TO_SLEEP_REASON_TIMEOUT);
+            mDirty |= DIRTY_WAKEFULNESS;
+            mWakefulness = WAKEFULNESS_ASLEEP;
+            setInteractiveStateLocked(false, PowerManager.GO_TO_SLEEP_REASON_TIMEOUT);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
+        }
         return true;
     }
 
@@ -1178,40 +1211,45 @@
             Slog.wtf(TAG, "Power manager lock was not held when calling updatePowerStateLocked");
         }
 
-        // Phase 0: Basic state updates.
-        updateIsPoweredLocked(mDirty);
-        updateStayOnLocked(mDirty);
+        Trace.traceBegin(Trace.TRACE_TAG_POWER, "updatePowerState");
+        try {
+            // Phase 0: Basic state updates.
+            updateIsPoweredLocked(mDirty);
+            updateStayOnLocked(mDirty);
 
-        // Phase 1: Update wakefulness.
-        // Loop because the wake lock and user activity computations are influenced
-        // by changes in wakefulness.
-        final long now = SystemClock.uptimeMillis();
-        int dirtyPhase2 = 0;
-        for (;;) {
-            int dirtyPhase1 = mDirty;
-            dirtyPhase2 |= dirtyPhase1;
-            mDirty = 0;
+            // Phase 1: Update wakefulness.
+            // Loop because the wake lock and user activity computations are influenced
+            // by changes in wakefulness.
+            final long now = SystemClock.uptimeMillis();
+            int dirtyPhase2 = 0;
+            for (;;) {
+                int dirtyPhase1 = mDirty;
+                dirtyPhase2 |= dirtyPhase1;
+                mDirty = 0;
 
-            updateWakeLockSummaryLocked(dirtyPhase1);
-            updateUserActivitySummaryLocked(now, dirtyPhase1);
-            if (!updateWakefulnessLocked(dirtyPhase1)) {
-                break;
+                updateWakeLockSummaryLocked(dirtyPhase1);
+                updateUserActivitySummaryLocked(now, dirtyPhase1);
+                if (!updateWakefulnessLocked(dirtyPhase1)) {
+                    break;
+                }
             }
+
+            // Phase 2: Update dreams and display power state.
+            updateDreamLocked(dirtyPhase2);
+            updateDisplayPowerStateLocked(dirtyPhase2);
+
+            // Phase 3: Send notifications, if needed.
+            if (mDisplayReady) {
+                finishInteractiveStateChangeLocked();
+            }
+
+            // Phase 4: Update suspend blocker.
+            // Because we might release the last suspend blocker here, we need to make sure
+            // we finished everything else first!
+            updateSuspendBlockerLocked();
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_POWER);
         }
-
-        // Phase 2: Update dreams and display power state.
-        updateDreamLocked(dirtyPhase2);
-        updateDisplayPowerStateLocked(dirtyPhase2);
-
-        // Phase 3: Send notifications, if needed.
-        if (mDisplayReady) {
-            finishInteractiveStateChangeLocked();
-        }
-
-        // Phase 4: Update suspend blocker.
-        // Because we might release the last suspend blocker here, we need to make sure
-        // we finished everything else first!
-        updateSuspendBlockerLocked();
     }
 
     /**
@@ -1251,7 +1289,7 @@
                 final long now = SystemClock.uptimeMillis();
                 if (shouldWakeUpWhenPluggedOrUnpluggedLocked(wasPowered, oldPlugType,
                         dockedOnWirelessCharger)) {
-                    wakeUpNoUpdateLocked(now);
+                    wakeUpNoUpdateLocked(now, Process.SYSTEM_UID);
                 }
                 userActivityNoUpdateLocked(
                         now, PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
@@ -1509,10 +1547,10 @@
                 }
                 final long time = SystemClock.uptimeMillis();
                 if (shouldNapAtBedTimeLocked()) {
-                    changed = napNoUpdateLocked(time);
+                    changed = napNoUpdateLocked(time, Process.SYSTEM_UID);
                 } else {
                     changed = goToSleepNoUpdateLocked(time,
-                            PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0);
+                            PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0, Process.SYSTEM_UID);
                 }
             }
         }
@@ -1659,10 +1697,10 @@
                 // Dream has ended or will be stopped.  Update the power state.
                 if (isItBedTimeYetLocked()) {
                     goToSleepNoUpdateLocked(SystemClock.uptimeMillis(),
-                            PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0);
+                            PowerManager.GO_TO_SLEEP_REASON_TIMEOUT, 0, Process.SYSTEM_UID);
                     updatePowerStateLocked();
                 } else {
-                    wakeUpNoUpdateLocked(SystemClock.uptimeMillis());
+                    wakeUpNoUpdateLocked(SystemClock.uptimeMillis(), Process.SYSTEM_UID);
                     updatePowerStateLocked();
                 }
             } else if (wakefulness == WAKEFULNESS_DOZING) {
@@ -1671,7 +1709,7 @@
                 }
 
                 // Doze has ended or will be stopped.  Update the power state.
-                reallyGoToSleepNoUpdateLocked(SystemClock.uptimeMillis());
+                reallyGoToSleepNoUpdateLocked(SystemClock.uptimeMillis(), Process.SYSTEM_UID);
                 updatePowerStateLocked();
             }
         }
@@ -1982,7 +2020,12 @@
                 Slog.d(TAG, "Setting HAL auto-suspend mode to " + enable);
             }
             mHalAutoSuspendModeEnabled = enable;
-            nativeSetAutoSuspend(enable);
+            Trace.traceBegin(Trace.TRACE_TAG_POWER, "setHalAutoSuspend(" + enable + ")");
+            try {
+                nativeSetAutoSuspend(enable);
+            } finally {
+                Trace.traceEnd(Trace.TRACE_TAG_POWER);
+            }
         }
     }
 
@@ -1992,7 +2035,12 @@
                 Slog.d(TAG, "Setting HAL interactive mode to " + enable);
             }
             mHalInteractiveModeEnabled = enable;
-            nativeSetInteractive(enable);
+            Trace.traceBegin(Trace.TRACE_TAG_POWER, "setHalInteractive(" + enable + ")");
+            try {
+                nativeSetInteractive(enable);
+            } finally {
+                Trace.traceEnd(Trace.TRACE_TAG_POWER);
+            }
         }
     }
 
@@ -2187,21 +2235,6 @@
         nativeSendPowerHint(hintId, data);
     }
 
-    private static void setSurfaceFlingerLowPowerMode(int enabled) {
-        try {
-            final IBinder flinger = ServiceManager.getService("SurfaceFlinger");
-            if (flinger != null) {
-                final Parcel data = Parcel.obtain();
-                data.writeInterfaceToken("android.ui.ISurfaceComposer");
-                data.writeInt(enabled);
-                flinger.transact(1016, data, null, 0);
-                data.recycle();
-            }
-        } catch (RemoteException ex) {
-            Slog.e(TAG, "Failed to reduce refresh rate", ex);
-        }
-    }
-
     /**
      * Low-level function turn the device off immediately, without trying
      * to be clean.  Most people should use {@link ShutdownThread} for a clean shutdown.
@@ -2594,20 +2627,23 @@
 
     private final class SuspendBlockerImpl implements SuspendBlocker {
         private final String mName;
+        private final String mTraceName;
         private int mReferenceCount;
 
         public SuspendBlockerImpl(String name) {
             mName = name;
+            mTraceName = "SuspendBlocker (" + name + ")";
         }
 
         @Override
         protected void finalize() throws Throwable {
             try {
                 if (mReferenceCount != 0) {
-                    Log.wtf(TAG, "Suspend blocker \"" + mName
+                    Slog.wtf(TAG, "Suspend blocker \"" + mName
                             + "\" was finalized without being released!");
                     mReferenceCount = 0;
                     nativeReleaseSuspendBlocker(mName);
+                    Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
                 }
             } finally {
                 super.finalize();
@@ -2622,6 +2658,7 @@
                     if (DEBUG_SPEW) {
                         Slog.d(TAG, "Acquiring suspend blocker \"" + mName + "\".");
                     }
+                    Trace.asyncTraceBegin(Trace.TRACE_TAG_POWER, mTraceName, 0);
                     nativeAcquireSuspendBlocker(mName);
                 }
             }
@@ -2636,8 +2673,9 @@
                         Slog.d(TAG, "Releasing suspend blocker \"" + mName + "\".");
                     }
                     nativeReleaseSuspendBlocker(mName);
+                    Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, mTraceName, 0);
                 } else if (mReferenceCount < 0) {
-                    Log.wtf(TAG, "Suspend blocker \"" + mName
+                    Slog.wtf(TAG, "Suspend blocker \"" + mName
                             + "\" was released without being acquired!", new Throwable());
                     mReferenceCount = 0;
                 }
@@ -2653,6 +2691,8 @@
     }
 
     private final class ScreenOnBlockerImpl implements ScreenOnBlocker {
+        private static final String TRACE_NAME = "ScreenOnBlocker";
+
         private int mNestCount;
 
         public boolean isHeld() {
@@ -2665,9 +2705,12 @@
         public void acquire() {
             synchronized (this) {
                 mNestCount += 1;
-                if (DEBUG) {
+                if (DEBUG || true) {
                     Slog.d(TAG, "Screen on blocked: mNestCount=" + mNestCount);
                 }
+                if (mNestCount == 1) {
+                    Trace.asyncTraceBegin(Trace.TRACE_TAG_POWER, TRACE_NAME, 0);
+                }
             }
         }
 
@@ -2675,17 +2718,17 @@
         public void release() {
             synchronized (this) {
                 mNestCount -= 1;
-                if (mNestCount < 0) {
-                    Log.wtf(TAG, "Screen on blocker was released without being acquired!",
+                if (mNestCount == 0) {
+                    if (DEBUG || true) {
+                        Slog.d(TAG, "Screen on unblocked: mNestCount=" + mNestCount);
+                    }
+                    mHandler.sendEmptyMessage(MSG_SCREEN_ON_BLOCKER_RELEASED);
+                    Trace.asyncTraceEnd(Trace.TRACE_TAG_POWER, TRACE_NAME, 0);
+                } else if (mNestCount < 0) {
+                    Slog.wtf(TAG, "Screen on blocker was released without being acquired!",
                             new Throwable());
                     mNestCount = 0;
                 }
-                if (mNestCount == 0) {
-                    mHandler.sendEmptyMessage(MSG_SCREEN_ON_BLOCKER_RELEASED);
-                }
-                if (DEBUG) {
-                    Slog.d(TAG, "Screen on unblocked: mNestCount=" + mNestCount);
-                }
             }
         }
 
@@ -2852,9 +2895,10 @@
             mContext.enforceCallingOrSelfPermission(
                     android.Manifest.permission.DEVICE_POWER, null);
 
+            final int uid = Binder.getCallingUid();
             final long ident = Binder.clearCallingIdentity();
             try {
-                wakeUpInternal(eventTime);
+                wakeUpInternal(eventTime, uid);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -2869,9 +2913,10 @@
             mContext.enforceCallingOrSelfPermission(
                     android.Manifest.permission.DEVICE_POWER, null);
 
+            final int uid = Binder.getCallingUid();
             final long ident = Binder.clearCallingIdentity();
             try {
-                goToSleepInternal(eventTime, reason, flags);
+                goToSleepInternal(eventTime, reason, flags, uid);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
@@ -2886,9 +2931,10 @@
             mContext.enforceCallingOrSelfPermission(
                     android.Manifest.permission.DEVICE_POWER, null);
 
+            final int uid = Binder.getCallingUid();
             final long ident = Binder.clearCallingIdentity();
             try {
-                napInternal(eventTime);
+                napInternal(eventTime, uid);
             } finally {
                 Binder.restoreCallingIdentity(ident);
             }
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index 21905f0..297dacf 100644
--- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -48,9 +48,7 @@
  * A note on locking:  We rely on the fact that calls onto mBar are oneway or
  * if they are local, that they just enqueue messages to not deadlock.
  */
-public class StatusBarManagerService extends IStatusBarService.Stub
-    implements WindowManagerService.OnHardKeyboardStatusChangeListener
-{
+public class StatusBarManagerService extends IStatusBarService.Stub {
     private static final String TAG = "StatusBarManagerService";
     private static final boolean SPEW = false;
 
@@ -95,7 +93,6 @@
     public StatusBarManagerService(Context context, WindowManagerService windowManager) {
         mContext = context;
         mWindowManager = windowManager;
-        mWindowManager.setOnHardKeyboardStatusChangeListener(this);
 
         final Resources res = context.getResources();
         mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons));
@@ -394,29 +391,6 @@
     }
 
     @Override
-    public void setHardKeyboardEnabled(final boolean enabled) {
-        mHandler.post(new Runnable() {
-            public void run() {
-                mWindowManager.setHardKeyboardEnabled(enabled);
-            }
-        });
-    }
-
-    @Override
-    public void onHardKeyboardStatusChange(final boolean available, final boolean enabled) {
-        mHandler.post(new Runnable() {
-            public void run() {
-                if (mBar != null) {
-                    try {
-                        mBar.setHardKeyboardStatus(available, enabled);
-                    } catch (RemoteException ex) {
-                    }
-                }
-            }
-        });
-    }
-
-    @Override
     public void toggleRecentApps() {
         if (mBar != null) {
             try {
@@ -510,11 +484,9 @@
             switches[2] = mMenuVisible ? 1 : 0;
             switches[3] = mImeWindowVis;
             switches[4] = mImeBackDisposition;
-            switches[7] = mShowImeSwitcher ? 1 : 0;
+            switches[5] = mShowImeSwitcher ? 1 : 0;
             binders.add(mImeToken);
         }
-        switches[5] = mWindowManager.isHardKeyboardAvailable() ? 1 : 0;
-        switches[6] = mWindowManager.isHardKeyboardEnabled() ? 1 : 0;
     }
 
     /**
diff --git a/services/core/java/com/android/server/trust/TrustArchive.java b/services/core/java/com/android/server/trust/TrustArchive.java
index d4ed86d..7253716 100644
--- a/services/core/java/com/android/server/trust/TrustArchive.java
+++ b/services/core/java/com/android/server/trust/TrustArchive.java
@@ -129,8 +129,8 @@
             }
             switch (ev.type) {
                 case TYPE_GRANT_TRUST:
-                    writer.printf(", message=\"%s\", duration=%s",
-                            ev.message, formatDuration(ev.duration));
+                    writer.printf(", message=\"%s\", duration=%s, initiatedByUser=%d",
+                            ev.message, formatDuration(ev.duration), ev.userInitiated ? 1 : 0);
                     break;
                 case TYPE_MANAGING_TRUST:
                     writer.printf(", managingTrust=" + ev.managingTrust);
diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java
index badead6..490536e 100644
--- a/services/core/java/com/android/server/trust/TrustManagerService.java
+++ b/services/core/java/com/android/server/trust/TrustManagerService.java
@@ -93,7 +93,7 @@
 
     private final ArraySet<AgentInfo> mActiveAgents = new ArraySet<AgentInfo>();
     private final ArrayList<ITrustListener> mTrustListeners = new ArrayList<ITrustListener>();
-    private final DevicePolicyReceiver mDevicePolicyReceiver = new DevicePolicyReceiver();
+    private final Receiver mReceiver = new Receiver();
     private final SparseBooleanArray mUserHasAuthenticatedSinceBoot = new SparseBooleanArray();
     /* package */ final TrustArchive mArchive = new TrustArchive();
     private final Context mContext;
@@ -115,7 +115,7 @@
     public void onBootPhase(int phase) {
         if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY && !isSafeMode()) {
             mPackageMonitor.register(mContext, mHandler.getLooper(), UserHandle.ALL, true);
-            mDevicePolicyReceiver.register(mContext);
+            mReceiver.register(mContext);
             refreshAgentList();
         }
     }
@@ -373,7 +373,13 @@
             }
         }
 
-        if (successful && !mUserHasAuthenticatedSinceBoot.get(userId)) {
+        if (successful) {
+            updateUserHasAuthenticated(userId);
+        }
+    }
+
+    private void updateUserHasAuthenticated(int userId) {
+        if (!mUserHasAuthenticatedSinceBoot.get(userId)) {
             mUserHasAuthenticatedSinceBoot.put(userId, true);
             updateTrust(userId, false);
         }
@@ -597,7 +603,7 @@
         }
     };
 
-    private class DevicePolicyReceiver extends BroadcastReceiver {
+    private class Receiver extends BroadcastReceiver {
 
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -605,14 +611,18 @@
                     intent.getAction())) {
                 refreshAgentList();
                 updateDevicePolicyFeatures(getSendingUserId());
+            } else if (Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
+                updateUserHasAuthenticated(getSendingUserId());
             }
         }
 
         public void register(Context context) {
+            IntentFilter filter = new IntentFilter();
+            filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
+            filter.addAction(Intent.ACTION_USER_PRESENT);
             context.registerReceiverAsUser(this,
                     UserHandle.ALL,
-                    new IntentFilter(
-                            DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED),
+                    filter,
                     null /* permission */,
                     null /* scheduler */);
         }
diff --git a/services/core/java/com/android/server/tv/PersistentDataStore.java b/services/core/java/com/android/server/tv/PersistentDataStore.java
index 852e640..fcfaaea 100644
--- a/services/core/java/com/android/server/tv/PersistentDataStore.java
+++ b/services/core/java/com/android/server/tv/PersistentDataStore.java
@@ -20,6 +20,7 @@
 import android.content.Intent;
 import android.media.tv.TvContentRating;
 import android.media.tv.TvInputManager;
+import android.os.Environment;
 import android.os.Handler;
 import android.os.UserHandle;
 import android.text.TextUtils;
@@ -44,6 +45,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -68,7 +70,8 @@
     // The atomic file used to safely read or write the file.
     private final AtomicFile mAtomicFile;
 
-    private final List<TvContentRating> mBlockedRatings = new ArrayList<TvContentRating>();
+    private final List<TvContentRating> mBlockedRatings =
+            Collections.synchronizedList(new ArrayList<TvContentRating>());
 
     private boolean mBlockedRatingsChanged;
 
@@ -81,8 +84,13 @@
 
     public PersistentDataStore(Context context, int userId) {
         mContext = context;
-        mAtomicFile = new AtomicFile(new File("/data/system/tv/" + userId
-                + "/tv-input-manager-state.xml"));
+        File userDir = Environment.getUserSystemDirectory(userId);
+        if (!userDir.exists()) {
+            if (!userDir.mkdirs()) {
+                throw new IllegalStateException("User dir cannot be created: " + userDir);
+            }
+        }
+        mAtomicFile = new AtomicFile(new File(userDir, "tv-input-manager-state.xml"));
     }
 
     public boolean isParentalControlsEnabled() {
@@ -91,6 +99,7 @@
     }
 
     public void setParentalControlsEnabled(boolean enabled) {
+        loadIfNeeded();
         if (mParentalControlsEnabled != enabled) {
             mParentalControlsEnabled = enabled;
             mParentalControlsEnabledChanged = true;
@@ -100,9 +109,11 @@
 
     public boolean isRatingBlocked(TvContentRating rating) {
         loadIfNeeded();
-        for (TvContentRating blcokedRating : mBlockedRatings) {
-            if (rating.contains(blcokedRating)) {
-                return true;
+        synchronized (mBlockedRatings) {
+            for (TvContentRating blcokedRating : mBlockedRatings) {
+                if (rating.contains(blcokedRating)) {
+                    return true;
+                }
             }
         }
         return false;
@@ -114,6 +125,7 @@
     }
 
     public void addBlockedRating(TvContentRating rating) {
+        loadIfNeeded();
         if (rating != null && !mBlockedRatings.contains(rating)) {
             mBlockedRatings.add(rating);
             mBlockedRatingsChanged = true;
@@ -122,6 +134,7 @@
     }
 
     public void removeBlockedRating(TvContentRating rating) {
+        loadIfNeeded();
         if (rating != null && mBlockedRatings.contains(rating)) {
             mBlockedRatings.remove(rating);
             mBlockedRatingsChanged = true;
@@ -262,10 +275,12 @@
         serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
         serializer.startTag(null, TAG_TV_INPUT_MANAGER_STATE);
         serializer.startTag(null, TAG_BLOCKED_RATINGS);
-        for (TvContentRating rating : mBlockedRatings) {
-            serializer.startTag(null, TAG_RATING);
-            serializer.attribute(null, ATTR_STRING, rating.flattenToString());
-            serializer.endTag(null, TAG_RATING);
+        synchronized (mBlockedRatings) {
+            for (TvContentRating rating : mBlockedRatings) {
+                serializer.startTag(null, TAG_RATING);
+                serializer.attribute(null, ATTR_STRING, rating.flattenToString());
+                serializer.endTag(null, TAG_RATING);
+            }
         }
         serializer.endTag(null, TAG_BLOCKED_RATINGS);
         serializer.startTag(null, TAG_PARENTAL_CONTROLS);
diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
index 7f12489..ae9ae13 100644
--- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java
+++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
@@ -55,6 +55,7 @@
 import android.view.KeyEvent;
 import android.view.Surface;
 
+import com.android.internal.os.SomeArgs;
 import com.android.server.SystemService;
 
 import java.util.ArrayList;
@@ -284,7 +285,7 @@
         return -1;
     }
 
-    public void addHdmiTvInput(int logicalAddress, TvInputInfo info) {
+    public void addHdmiTvInput(int id, TvInputInfo info) {
         if (info.getType() != TvInputInfo.TYPE_HDMI) {
             throw new IllegalArgumentException("info (" + info + ") has non-HDMI type.");
         }
@@ -294,13 +295,13 @@
             if (parentIndex < 0) {
                 throw new IllegalArgumentException("info (" + info + ") has invalid parentId.");
             }
-            String oldInputId = mHdmiInputIdMap.get(logicalAddress);
+            String oldInputId = mHdmiInputIdMap.get(id);
             if (oldInputId != null) {
                 Slog.w(TAG, "Trying to override previous registration: old = "
-                        + mInputMap.get(oldInputId) + ":" + logicalAddress + ", new = "
-                        + info + ":" + logicalAddress);
+                        + mInputMap.get(oldInputId) + ":" + id + ", new = "
+                        + info + ":" + id);
             }
-            mHdmiInputIdMap.put(logicalAddress, info.getId());
+            mHdmiInputIdMap.put(id, info.getId());
             mInputMap.put(info.getId(), info);
         }
     }
@@ -565,14 +566,7 @@
             @Override
             public void onAudioPortListUpdate(AudioPort[] portList) {
                 synchronized (mImplLock) {
-                    updateAudioSinkLocked();
-                    if (mInfo.getAudioType() != AudioManager.DEVICE_NONE && mAudioSource == null) {
-                        mAudioSource = findAudioDevicePort(mInfo.getAudioType(),
-                                mInfo.getAudioAddress());
-                        if (mActiveConfig != null) {
-                            updateAudioPatchLocked();
-                        }
-                    }
+                    updateAudioConfigLocked();
                 }
             }
 
@@ -671,14 +665,7 @@
                 if (surface == null && mActiveConfig == null) {
                     return false;
                 }
-                if (mAudioSource != null && mAudioSink != null) {
-                    if (surface != null) {
-                        updateAudioPatchLocked();
-                    } else {
-                        mAudioManager.releaseAudioPatch(mAudioPatch);
-                        mAudioPatch = null;
-                    }
-                }
+
                 int result = TvInputHal.ERROR_UNKNOWN;
                 if (surface == null) {
                     result = mHal.removeStream(mInfo.getDeviceId(), mActiveConfig);
@@ -696,15 +683,24 @@
                         mActiveConfig = config;
                     }
                 }
+                updateAudioConfigLocked();
                 return result == TvInputHal.SUCCESS;
             }
         }
 
-        private void updateAudioPatchLocked() {
-            if (mAudioSource == null || mAudioSink == null) {
+        /**
+         * Update audio configuration (source, sink, patch) all up to current state.
+         */
+        private void updateAudioConfigLocked() {
+            boolean sinkUpdated = updateAudioSinkLocked();
+            boolean sourceUpdated = updateAudioSourceLocked();
+            // We can't do updated = updateAudioSinkLocked() || updateAudioSourceLocked() here
+            // because Java won't evaluate the latter if the former is true.
+
+            if (mAudioSource == null || mAudioSink == null || mActiveConfig == null) {
                 if (mAudioPatch != null) {
-                    throw new IllegalStateException("Audio patch should be null if audio source "
-                            + "or sink is null.");
+                    mAudioManager.releaseAudioPatch(mAudioPatch);
+                    mAudioPatch = null;
                 }
                 return;
             }
@@ -744,7 +740,7 @@
             AudioPortConfig sourceConfig = mAudioSource.activeConfig();
             AudioPortConfig sinkConfig = mAudioSink.activeConfig();
             AudioPatch[] audioPatchArray = new AudioPatch[] { mAudioPatch };
-            boolean shouldRecreateAudioPatch = false;
+            boolean shouldRecreateAudioPatch = sourceUpdated || sinkUpdated;
             if (sinkConfig == null
                     || (mDesiredSamplingRate != 0
                             && sinkConfig.samplingRate() != mDesiredSamplingRate)
@@ -778,7 +774,7 @@
                     throw new IllegalStateException("Device already released.");
                 }
                 mVolume = volume;
-                updateAudioPatchLocked();
+                updateAudioConfigLocked();
             }
         }
 
@@ -827,10 +823,21 @@
             }
         }
 
-        private void updateAudioSinkLocked() {
+        private boolean updateAudioSourceLocked() {
             if (mInfo.getAudioType() == AudioManager.DEVICE_NONE) {
-                return;
+                return false;
             }
+            AudioDevicePort previousSource = mAudioSource;
+            mAudioSource = findAudioDevicePort(mInfo.getAudioType(), mInfo.getAudioAddress());
+            return mAudioSource == null ? (previousSource != null)
+                    : !mAudioSource.equals(previousSource);
+        }
+
+        private boolean updateAudioSinkLocked() {
+            if (mInfo.getAudioType() == AudioManager.DEVICE_NONE) {
+                return false;
+            }
+            AudioDevicePort previousSink = mAudioSink;
             if (mOverrideAudioType == AudioManager.DEVICE_NONE) {
                 mAudioSink = findAudioSinkFromAudioPolicy();
             } else {
@@ -840,12 +847,12 @@
                     mAudioSink = audioSink;
                 }
             }
+            return mAudioSink == null ? (previousSink != null) : !mAudioSink.equals(previousSink);
         }
 
         private void handleAudioSinkUpdated() {
             synchronized (mImplLock) {
-                updateAudioSinkLocked();
-                updateAudioPatchLocked();
+                updateAudioConfigLocked();
             }
         }
 
@@ -855,15 +862,12 @@
             synchronized (mImplLock) {
                 mOverrideAudioType = audioType;
                 mOverrideAudioAddress = audioAddress;
-                updateAudioSinkLocked();
 
                 mDesiredSamplingRate = samplingRate;
                 mDesiredChannelMask = channelMask;
                 mDesiredFormat = format;
 
-                if (mAudioPatch != null) {
-                    updateAudioPatchLocked();
-                }
+                updateAudioConfigLocked();
             }
         }
     }
@@ -874,7 +878,7 @@
         public void onHardwareDeviceRemoved(TvInputHardwareInfo info);
         public void onHdmiDeviceAdded(HdmiDeviceInfo device);
         public void onHdmiDeviceRemoved(HdmiDeviceInfo device);
-        public void onHdmiDeviceUpdated(HdmiDeviceInfo device);
+        public void onHdmiDeviceUpdated(String inputId, HdmiDeviceInfo device);
     }
 
     private class ListenerHandler extends Handler {
@@ -915,8 +919,11 @@
                     break;
                 }
                 case HDMI_DEVICE_UPDATED: {
-                    HdmiDeviceInfo info = (HdmiDeviceInfo) msg.obj;
-                    mListener.onHdmiDeviceUpdated(info);
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    String inputId = (String) args.arg1;
+                    HdmiDeviceInfo info = (HdmiDeviceInfo) args.arg2;
+                    args.recycle();
+                    mListener.onHdmiDeviceUpdated(inputId, info);
                 }
                 default: {
                     Slog.w(TAG, "Unhandled message: " + msg);
@@ -953,6 +960,7 @@
         public void onStatusChanged(HdmiDeviceInfo deviceInfo, int status) {
             synchronized (mLock) {
                 int messageType = 0;
+                Object obj = null;
                 switch (status) {
                     case HdmiControlManager.DEVICE_EVENT_ADD_DEVICE: {
                         if (!mHdmiDeviceList.contains(deviceInfo)) {
@@ -962,6 +970,7 @@
                             return;
                         }
                         messageType = ListenerHandler.HDMI_DEVICE_ADDED;
+                        obj = deviceInfo;
                         break;
                     }
                     case HdmiControlManager.DEVICE_EVENT_REMOVE_DEVICE: {
@@ -970,6 +979,7 @@
                             return;
                         }
                         messageType = ListenerHandler.HDMI_DEVICE_REMOVED;
+                        obj = deviceInfo;
                         break;
                     }
                     case HdmiControlManager.DEVICE_EVENT_UPDATE_DEVICE: {
@@ -979,11 +989,16 @@
                         }
                         mHdmiDeviceList.add(deviceInfo);
                         messageType = ListenerHandler.HDMI_DEVICE_UPDATED;
+                        String inputId = mHdmiInputIdMap.get(deviceInfo.getLogicalAddress());
+                        SomeArgs args = SomeArgs.obtain();
+                        args.arg1 = inputId;
+                        args.arg2 = deviceInfo;
+                        obj = args;
                         break;
                     }
                 }
 
-                Message msg = mHandler.obtainMessage(messageType, 0, 0, deviceInfo);
+                Message msg = mHandler.obtainMessage(messageType, 0, 0, obj);
                 if (findHardwareInfoForHdmiPortLocked(deviceInfo.getPortId()) != null) {
                     msg.sendToTarget();
                 } else {
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java
index dc5bc84..88ce860 100644
--- a/services/core/java/com/android/server/tv/TvInputManagerService.java
+++ b/services/core/java/com/android/server/tv/TvInputManagerService.java
@@ -17,6 +17,7 @@
 package com.android.server.tv;
 
 import static android.media.tv.TvInputManager.INPUT_STATE_CONNECTED;
+import static android.media.tv.TvInputManager.INPUT_STATE_CONNECTED_STANDBY;
 import static android.media.tv.TvInputManager.INPUT_STATE_DISCONNECTED;
 
 import android.app.ActivityManager;
@@ -36,6 +37,7 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.graphics.Rect;
+import android.hardware.hdmi.HdmiControlManager;
 import android.hardware.hdmi.HdmiDeviceInfo;
 import android.media.tv.ITvInputClient;
 import android.media.tv.ITvInputHardware;
@@ -212,8 +214,6 @@
 
     private void buildTvInputListLocked(int userId) {
         UserState userState = getUserStateLocked(userId);
-
-        Map<String, TvInputState> inputMap = new HashMap<String, TvInputState>();
         userState.packageSet.clear();
 
         if (DEBUG) Slog.d(TAG, "buildTvInputList");
@@ -229,41 +229,42 @@
                         + android.Manifest.permission.BIND_TV_INPUT);
                 continue;
             }
-            try {
-                inputList.clear();
-                ComponentName component = new ComponentName(si.packageName, si.name);
-                if (hasHardwarePermission(pm, component)) {
-                    ServiceState serviceState = userState.serviceStateMap.get(component);
-                    if (serviceState == null) {
-                        // We see this hardware TV input service for the first time; we need to
-                        // prepare the ServiceState object so that we can connect to the service and
-                        // let it add TvInputInfo objects to mInputList if there's any.
-                        serviceState = new ServiceState(component, userId);
-                        userState.serviceStateMap.put(component, serviceState);
-                    } else {
-                        inputList.addAll(serviceState.mInputList);
-                    }
+
+            ComponentName component = new ComponentName(si.packageName, si.name);
+            if (hasHardwarePermission(pm, component)) {
+                ServiceState serviceState = userState.serviceStateMap.get(component);
+                if (serviceState == null) {
+                    // We see this hardware TV input service for the first time; we need to
+                    // prepare the ServiceState object so that we can connect to the service and
+                    // let it add TvInputInfo objects to mInputList if there's any.
+                    serviceState = new ServiceState(component, userId);
+                    userState.serviceStateMap.put(component, serviceState);
                 } else {
+                    inputList.addAll(serviceState.mInputList);
+                }
+            } else {
+                try {
                     inputList.add(TvInputInfo.createTvInputInfo(mContext, ri));
+                } catch (XmlPullParserException | IOException e) {
+                    Slog.e(TAG, "Failed to load TV input " + si.name, e);
+                    continue;
                 }
-
-                for (TvInputInfo info : inputList) {
-                    if (DEBUG) Slog.d(TAG, "add " + info.getId());
-                    TvInputState state = userState.inputMap.get(info.getId());
-                    if (state == null) {
-                        state = new TvInputState();
-                    }
-                    state.mInfo = info;
-                    inputMap.put(info.getId(), state);
-                }
-
-                // Reconnect the service if existing input is updated.
-                updateServiceConnectionLocked(component, userId);
-
-                userState.packageSet.add(si.packageName);
-            } catch (IOException | XmlPullParserException e) {
-                Slog.e(TAG, "Can't load TV input " + si.name, e);
             }
+
+            // Reconnect the service if existing input is updated.
+            updateServiceConnectionLocked(component, userId);
+            userState.packageSet.add(si.packageName);
+        }
+
+        Map<String, TvInputState> inputMap = new HashMap<String, TvInputState>();
+        for (TvInputInfo info : inputList) {
+            if (DEBUG) Slog.d(TAG, "add " + info.getId());
+            TvInputState state = userState.inputMap.get(info.getId());
+            if (state == null) {
+                state = new TvInputState();
+            }
+            state.mInfo = info;
+            inputMap.put(info.getId(), state);
         }
 
         for (String inputId : inputMap.keySet()) {
@@ -338,7 +339,6 @@
                         Slog.e(TAG, "error in unregisterCallback", e);
                     }
                 }
-                serviceState.mClientTokens.clear();
                 mContext.unbindService(serviceState.mConnection);
             }
             userState.serviceStateMap.clear();
@@ -401,9 +401,7 @@
     }
 
     private static boolean shouldMaintainConnection(ServiceState serviceState) {
-        return !serviceState.mClientTokens.isEmpty()
-                || !serviceState.mSessionTokens.isEmpty()
-                || serviceState.mIsHardware;
+        return !serviceState.mSessionTokens.isEmpty() || serviceState.mIsHardware;
         // TODO: Find a way to maintain connection only when necessary.
     }
 
@@ -996,12 +994,13 @@
         }
 
         private void ensureParentalControlsPermission() {
-            if (mContext.checkCallingPermission(
-                    android.Manifest.permission.MODIFY_PARENTAL_CONTROLS)
-                    != PackageManager.PERMISSION_GRANTED) {
-                throw new SecurityException(
-                        "The caller does not have parental controls permission");
-            }
+            // STOPSHIP: Uncomment when b/16984416 is resolved.
+            //if (mContext.checkCallingPermission(
+            //        android.Manifest.permission.MODIFY_PARENTAL_CONTROLS)
+            //        != PackageManager.PERMISSION_GRANTED) {
+            //    throw new SecurityException(
+            //            "The caller does not have parental controls permission");
+            //}
         }
 
         @Override
@@ -1224,7 +1223,7 @@
                     try {
                         getSessionLocked(sessionToken, callingUid, resolvedUserId).tune(
                                 channelUri, params);
-                        if (TvContract.isChannelUriForPassthroughTvInput(channelUri)) {
+                        if (TvContract.isChannelUriForPassthroughInput(channelUri)) {
                             // Do not log the watch history for passthrough inputs.
                             return;
                         }
@@ -1610,13 +1609,6 @@
 
                         pw.increaseIndent();
 
-                        pw.println("mClientTokens:");
-                        pw.increaseIndent();
-                        for (IBinder token : service.mClientTokens) {
-                            pw.println("" + token);
-                        }
-                        pw.decreaseIndent();
-
                         pw.println("mSessionTokens:");
                         pw.increaseIndent();
                         for (IBinder token : service.mSessionTokens) {
@@ -1753,7 +1745,6 @@
     }
 
     private final class ServiceState {
-        private final List<IBinder> mClientTokens = new ArrayList<IBinder>();
         private final List<IBinder> mSessionTokens = new ArrayList<IBinder>();
         private final ServiceConnection mConnection;
         private final ComponentName mComponent;
@@ -1808,7 +1799,7 @@
                 // If there are any other sessions based on this session, they should be released.
                 UserState userState = getUserStateLocked(mUserId);
                 for (SessionState sessionState : userState.sessionStateMap.values()) {
-                    if (mSession != null && mSession == sessionState.mHardwareSessionToken) {
+                    if (mSessionToken == sessionState.mHardwareSessionToken) {
                         try {
                             sessionState.mSession.release();
                         } catch (RemoteException e) {
@@ -1971,11 +1962,11 @@
         }
 
         @Override
-        public void addHdmiTvInput(int logicalAddress, TvInputInfo inputInfo) {
+        public void addHdmiTvInput(int id, TvInputInfo inputInfo) {
             ensureHardwarePermission();
             ensureValidInput(inputInfo);
             synchronized (mLock) {
-                mTvInputHardwareManager.addHdmiTvInput(logicalAddress, inputInfo);
+                mTvInputHardwareManager.addHdmiTvInput(id, inputInfo);
                 addTvInputLocked(inputInfo);
             }
         }
@@ -2176,8 +2167,27 @@
         }
 
         @Override
-        public void onHdmiDeviceUpdated(HdmiDeviceInfo deviceInfo) {
-            // TODO: implement here.
+        public void onHdmiDeviceUpdated(String inputId, HdmiDeviceInfo deviceInfo) {
+            synchronized (mLock) {
+                Integer state = null;
+                switch (deviceInfo.getDevicePowerStatus()) {
+                    case HdmiControlManager.POWER_STATUS_ON:
+                        state = INPUT_STATE_CONNECTED;
+                        break;
+                    case HdmiControlManager.POWER_STATUS_STANDBY:
+                    case HdmiControlManager.POWER_STATUS_TRANSIENT_TO_ON:
+                    case HdmiControlManager.POWER_STATUS_TRANSIENT_TO_STANDBY:
+                        state = INPUT_STATE_CONNECTED_STANDBY;
+                        break;
+                    case HdmiControlManager.POWER_STATUS_UNKNOWN:
+                    default:
+                        state = null;
+                        break;
+                }
+                if (state != null) {
+                    setStateLocked(inputId, state.intValue(), mCurrentUserId);
+                }
+            }
         }
     }
 }
diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
index 0e1340c..f6ec86d 100644
--- a/services/core/java/com/android/server/wm/AppTransition.java
+++ b/services/core/java/com/android/server/wm/AppTransition.java
@@ -159,7 +159,7 @@
     private final int mConfigShortAnimTime;
     private final Interpolator mDecelerateInterpolator;
     private final Interpolator mThumbnailFadeoutInterpolator;
-    private final Interpolator mThumbnailCubicInterpolator;
+    private final Interpolator mThumbnailFastOutSlowInInterpolator;
 
     private int mCurrentUserId = 0;
 
@@ -170,7 +170,7 @@
                 com.android.internal.R.integer.config_shortAnimTime);
         mDecelerateInterpolator = AnimationUtils.loadInterpolator(context,
                 com.android.internal.R.interpolator.decelerate_cubic);
-        mThumbnailCubicInterpolator = AnimationUtils.loadInterpolator(context,
+        mThumbnailFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(context,
                 com.android.internal.R.interpolator.fast_out_slow_in);
         mThumbnailFadeoutInterpolator = new Interpolator() {
             @Override
@@ -635,7 +635,7 @@
         }
 
         return prepareThumbnailAnimationWithDuration(a, appWidth, appHeight,
-                THUMBNAIL_APP_TRANSITION_DURATION, mThumbnailCubicInterpolator);
+                THUMBNAIL_APP_TRANSITION_DURATION, mThumbnailFastOutSlowInInterpolator);
     }
 
     /**
diff --git a/services/core/java/com/android/server/wm/AppWindowAnimator.java b/services/core/java/com/android/server/wm/AppWindowAnimator.java
index 9b69ce2..5b05d53 100644
--- a/services/core/java/com/android/server/wm/AppWindowAnimator.java
+++ b/services/core/java/com/android/server/wm/AppWindowAnimator.java
@@ -16,7 +16,6 @@
 
 package com.android.server.wm;
 
-import android.graphics.Bitmap;
 import android.graphics.Matrix;
 import android.os.RemoteException;
 import android.util.Slog;
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 3fcd067..b2575e6 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -252,6 +252,15 @@
         return false;
     }
 
+    void removeAllWindows() {
+        for (int winNdx = allAppWindows.size() - 1; winNdx >= 0; --winNdx) {
+            WindowState win = allAppWindows.get(winNdx);
+            if (WindowManagerService.DEBUG_WINDOW_MOVEMENT) Slog.w(WindowManagerService.TAG,
+                    "removeAllWindows: removing win=" + win);
+            win.mService.removeWindowLocked(win.mSession, win);
+        }
+    }
+
     @Override
     void dump(PrintWriter pw, String prefix) {
         super.dump(pw, prefix);
diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
index dfb1200..238c77e 100644
--- a/services/core/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -155,7 +155,7 @@
                 final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows;
                 for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
                     final WindowStateAnimator winAnimator = windows.get(winNdx).mWinAnimator;
-                    if (winAnimator.isAnimating() && !winAnimator.isDummyAnimation()) {
+                    if (winAnimator.isAnimating() || winAnimator.mWin.mExiting) {
                         return true;
                     }
                 }
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index 27fff1d..4edd5cf 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -88,6 +88,8 @@
     boolean mInitialized = false;
 
     boolean mKeyguardGoingAway;
+    boolean mKeyguardGoingAwayToNotificationShade;
+    boolean mKeyguardGoingAwayDisableWindowAnimations;
 
     // forceHiding states.
     static final int KEYGUARD_NOT_SHOWN     = 0;
@@ -220,6 +222,7 @@
         final WindowList windows = mService.getWindowListLocked(displayId);
         ArrayList<WindowStateAnimator> unForceHiding = null;
         boolean wallpaperInUnForceHiding = false;
+        WindowState wallpaper = null;
 
         if (mKeyguardGoingAway) {
             for (int i = windows.size() - 1; i >= 0; i--) {
@@ -378,6 +381,9 @@
                     appAnimator.thumbnailLayer = winAnimator.mAnimLayer;
                 }
             }
+            if (win.mIsWallpaper) {
+                wallpaper = win;
+            }
         } // end forall windows
 
         // If we have windows that are being show due to them no longer
@@ -385,11 +391,15 @@
         if (unForceHiding != null) {
             boolean startKeyguardExit = true;
             for (int i=unForceHiding.size()-1; i>=0; i--) {
-                Animation a = mPolicy.createForceHideEnterAnimation(wallpaperInUnForceHiding);
+                Animation a = null;
+                if (!mKeyguardGoingAwayDisableWindowAnimations) {
+                    a = mPolicy.createForceHideEnterAnimation(wallpaperInUnForceHiding,
+                            mKeyguardGoingAwayToNotificationShade);
+                }
                 if (a != null) {
                     final WindowStateAnimator winAnimator = unForceHiding.get(i);
                     winAnimator.setAnimation(a);
-                    winAnimator.mAnimationIsEntrance = true;
+                    winAnimator.keyguardGoingAwayAnimation = true;
                     if (startKeyguardExit && mKeyguardGoingAway) {
                         // Do one time only.
                         mPolicy.startKeyguardExitAnimation(mCurrentTime + a.getStartOffset(),
@@ -399,6 +409,17 @@
                     }
                 }
             }
+
+            // Wallpaper is going away in un-force-hide motion, animate it as well.
+            if (!wallpaperInUnForceHiding && wallpaper != null
+                    && !mKeyguardGoingAwayDisableWindowAnimations) {
+                Animation a = mPolicy.createForceHideWallpaperExitAnimation(
+                        mKeyguardGoingAwayToNotificationShade);
+                if (a != null) {
+                    WindowStateAnimator animator = wallpaper.mWinAnimator;
+                    animator.setAnimation(a);
+                }
+            }
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 4e711ba..112972f 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -462,6 +462,9 @@
     int mRotation = 0;
     int mForcedAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
     boolean mAltOrientation = false;
+
+    private boolean mKeyguardWaitingForActivityDrawn;
+
     class RotationWatcher {
         IRotationWatcher watcher;
         IBinder.DeathRecipient deathRecipient;
@@ -534,7 +537,7 @@
     final ArrayList<WindowState> mInputMethodDialogs = new ArrayList<WindowState>();
 
     boolean mHardKeyboardAvailable;
-    boolean mHardKeyboardEnabled;
+    boolean mShowImeWithHardKeyboard;
     OnHardKeyboardStatusChangeListener mHardKeyboardStatusChangeListener;
 
     final ArrayList<WindowToken> mWallpaperTokens = new ArrayList<WindowToken>();
@@ -1695,7 +1698,13 @@
             }
             if (DEBUG_WALLPAPER) Slog.v(TAG, "Win #" + i + " " + w + ": isOnScreen="
                     + w.isOnScreen() + " mDrawState=" + w.mWinAnimator.mDrawState);
-            if ((w.mAttrs.flags&FLAG_SHOW_WALLPAPER) != 0 && w.isOnScreen()
+
+            // If the app is executing an animation because the keyguard is going away, keep the
+            // wallpaper during the animation so it doesn't flicker out.
+            final boolean hasWallpaper = (w.mAttrs.flags&FLAG_SHOW_WALLPAPER) != 0
+                    || (w.mAppToken != null
+                            && w.mWinAnimator.keyguardGoingAwayAnimation);
+            if (hasWallpaper && w.isOnScreen()
                     && (mWallpaperTarget == w || w.isDrawFinishedLw())) {
                 if (DEBUG_WALLPAPER) Slog.v(TAG,
                         "Found wallpaper target: #" + i + "=" + w);
@@ -2305,6 +2314,10 @@
                             + attrs.token + ".  Aborting.");
                       return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
                 }
+            } else if (token.appWindowToken != null) {
+                Slog.i(TAG, "Non-null appWindowToken for system window of type=" + type);
+                // app token should be null for any other window types.
+                token.appWindowToken = null;
             }
 
             win = new WindowState(this, session, client, token,
@@ -3579,7 +3592,7 @@
                 return;
             }
             final Task oldTask = mTaskIdToTask.get(atoken.groupId);
-            removeAppFromTaskLocked(atoken);
+            oldTask.removeAppToken(atoken);
 
             atoken.groupId = groupId;
             Task newTask = mTaskIdToTask.get(groupId);
@@ -4621,6 +4634,8 @@
     }
 
     void removeAppFromTaskLocked(AppWindowToken wtoken) {
+        wtoken.removeAllWindows();
+
         final Task task = mTaskIdToTask.get(wtoken.groupId);
         if (task != null) {
             if (!task.removeAppToken(wtoken)) {
@@ -5230,17 +5245,35 @@
     }
 
     @Override
-    public void keyguardGoingAway() {
+    public void keyguardGoingAway(boolean disableWindowAnimations,
+            boolean keyguardGoingToNotificationShade) {
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DISABLE_KEYGUARD)
                 != PackageManager.PERMISSION_GRANTED) {
             throw new SecurityException("Requires DISABLE_KEYGUARD permission");
         }
         synchronized (mWindowMap) {
             mAnimator.mKeyguardGoingAway = true;
+            mAnimator.mKeyguardGoingAwayToNotificationShade = keyguardGoingToNotificationShade;
+            mAnimator.mKeyguardGoingAwayDisableWindowAnimations = disableWindowAnimations;
             requestTraversalLocked();
         }
     }
 
+    public void keyguardWaitingForActivityDrawn() {
+        synchronized (mWindowMap) {
+            mKeyguardWaitingForActivityDrawn = true;
+        }
+    }
+
+    public void notifyActivityDrawnForKeyguard() {
+        synchronized (mWindowMap) {
+            if (mKeyguardWaitingForActivityDrawn) {
+                mPolicy.notifyActivityDrawnForKeyguardLw();
+                mKeyguardWaitingForActivityDrawn = false;
+            }
+        }
+    }
+
     void showGlobalActions() {
         mPolicy.showGlobalActions();
     }
@@ -6982,11 +7015,11 @@
             boolean hardKeyboardAvailable = config.keyboard != Configuration.KEYBOARD_NOKEYS;
             if (hardKeyboardAvailable != mHardKeyboardAvailable) {
                 mHardKeyboardAvailable = hardKeyboardAvailable;
-                mHardKeyboardEnabled = hardKeyboardAvailable;
+                mShowImeWithHardKeyboard = !hardKeyboardAvailable;
                 mH.removeMessages(H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
                 mH.sendEmptyMessage(H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
             }
-            if (!mHardKeyboardEnabled) {
+            if (mShowImeWithHardKeyboard) {
                 config.keyboard = Configuration.KEYBOARD_NOKEYS;
             }
 
@@ -7006,16 +7039,16 @@
         }
     }
 
-    public boolean isHardKeyboardEnabled() {
+    public boolean isShowImeWithHardKeyboardEnabled() {
         synchronized (mWindowMap) {
-            return mHardKeyboardEnabled;
+            return mShowImeWithHardKeyboard;
         }
     }
 
-    public void setHardKeyboardEnabled(boolean enabled) {
+    public void setShowImeWithHardKeyboard(boolean enabled) {
         synchronized (mWindowMap) {
-            if (mHardKeyboardEnabled != enabled) {
-                mHardKeyboardEnabled = enabled;
+            if (mShowImeWithHardKeyboard != enabled) {
+                mShowImeWithHardKeyboard = enabled;
                 mH.sendEmptyMessage(H.SEND_NEW_CONFIGURATION);
             }
         }
@@ -7029,15 +7062,15 @@
     }
 
     void notifyHardKeyboardStatusChange() {
-        final boolean available, enabled;
+        final boolean available, showImeWithHardKeyboard;
         final OnHardKeyboardStatusChangeListener listener;
         synchronized (mWindowMap) {
             listener = mHardKeyboardStatusChangeListener;
             available = mHardKeyboardAvailable;
-            enabled = mHardKeyboardEnabled;
+            showImeWithHardKeyboard = mShowImeWithHardKeyboard;
         }
         if (listener != null) {
-            listener.onHardKeyboardStatusChange(available, enabled);
+            listener.onHardKeyboardStatusChange(available, showImeWithHardKeyboard);
         }
     }
 
@@ -11020,7 +11053,7 @@
     }
 
     public interface OnHardKeyboardStatusChangeListener {
-        public void onHardKeyboardStatusChange(boolean available, boolean enabled);
+        public void onHardKeyboardStatusChange(boolean available, boolean showIme);
     }
 
     void debugLayoutRepeats(final String msg, int pendingLayoutChanges) {
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 85dc810..61c50d6 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -140,6 +140,8 @@
     // an enter animation.
     boolean mEnterAnimationPending;
 
+    boolean keyguardGoingAwayAnimation;
+
     /** This is set when there is no Surface */
     static final int NO_SURFACE = 0;
     /** This is set after the Surface has been created but before the window has been drawn. During
@@ -220,6 +222,7 @@
             mLocalAnimating = false;
             mAnimation.cancel();
             mAnimation = null;
+            keyguardGoingAwayAnimation = false;
         }
     }
 
@@ -341,6 +344,7 @@
             + (mWin.mAppToken != null ? mWin.mAppToken.reportedVisible : false));
 
         mAnimating = false;
+        keyguardGoingAwayAnimation = false;
         mLocalAnimating = false;
         if (mAnimation != null) {
             mAnimation.cancel();
diff --git a/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp b/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
index 2519ff8..37a3eaa 100644
--- a/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
+++ b/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
@@ -66,7 +66,12 @@
   }
 
   ALOGE("Error %d in '%s'", resultCode, methodName);
-  env->FatalError(methodName);
+  // TODO: this layer needs to be refactored to return error codes to Java
+  // raising a FatalError is harsh, and because FLP Hardware Provider is loaded inside the system
+  // service, it can cause the device to reboot, or remain in a reboot loop
+  // a simple exception is still dumped to logcat, but it is handled more gracefully
+  jclass exceptionClass = env->FindClass("java/lang/RuntimeException");
+  env->ThrowNew(exceptionClass, methodName);
 }
 
 static bool IsValidCallbackThread() {
diff --git a/services/core/jni/com_android_server_location_GpsLocationProvider.cpp b/services/core/jni/com_android_server_location_GpsLocationProvider.cpp
index 46327d7..c398908 100644
--- a/services/core/jni/com_android_server_location_GpsLocationProvider.cpp
+++ b/services/core/jni/com_android_server_location_GpsLocationProvider.cpp
@@ -28,6 +28,7 @@
 #include "android_runtime/AndroidRuntime.h"
 #include "android_runtime/Log.h"
 
+#include <arpa/inet.h>
 #include <string.h>
 #include <pthread.h>
 #include <linux/in.h>
@@ -189,8 +190,10 @@
 
     jbyte ipv4[4];
     if (net_order) {
+        ALOGV("Converting IPv4 address(net_order) %x", ip);
         memcpy(ipv4, &ip, sizeof(ipv4));
     } else {
+        ALOGV("Converting IPv4 address(host_order) %x", ip);
         //endianess transparent conversion from int to char[]
         ipv4[0] = (jbyte) (ip & 0xFF);
         ipv4[1] = (jbyte)((ip>>8) & 0xFF);
@@ -210,6 +213,7 @@
 
     size_t status_size = agps_status->size;
     if (status_size == sizeof(AGpsStatus_v3)) {
+      ALOGV("AGpsStatus is V3: %d", status_size);
       switch (agps_status->addr.ss_family)
       {
       case AF_INET:
@@ -220,6 +224,12 @@
             if (byteArray != NULL) {
                 isSupported = true;
             }
+            IF_ALOGD() {
+                // log the IP for reference in case there is a bogus value pushed by HAL
+                char str[INET_ADDRSTRLEN];
+                inet_ntop(AF_INET, &(in->sin_addr), str, INET_ADDRSTRLEN);
+                ALOGD("AGPS IP is v4: %s", str);
+            }
           }
           break;
       case AF_INET6:
@@ -232,6 +242,12 @@
             } else {
                 ALOGE("Unable to allocate byte array for IPv6 address.");
             }
+            IF_ALOGD() {
+                // log the IP for reference in case there is a bogus value pushed by HAL
+                char str[INET6_ADDRSTRLEN];
+                inet_ntop(AF_INET6, &(in6->sin6_addr), str, INET6_ADDRSTRLEN);
+                ALOGD("AGPS IP is v6: %s", str);
+            }
           }
           break;
       default:
@@ -239,14 +255,17 @@
           break;
       }
     } else if (status_size >= sizeof(AGpsStatus_v2)) {
+      ALOGV("AGpsStatus is V2+: %d", status_size);
       // for back-compatibility reasons we check in v2 that the data structure size is greater or
       // equal to the declared size in gps.h
       uint32_t ipaddr = agps_status->ipaddr;
+      ALOGV("AGPS IP is v4: %x", ipaddr);
       byteArray = convert_to_ipv4(ipaddr, false /* net_order */);
       if (ipaddr == INADDR_NONE || byteArray != NULL) {
           isSupported = true;
       }
     } else if (status_size >= sizeof(AGpsStatus_v1)) {
+        ALOGV("AGpsStatus is V1+: %d", status_size);
         // because we have to check for >= with regards to v2, we also need to relax the check here
         // and only make sure that the size is at least what we expect
         isSupported = true;
@@ -255,6 +274,8 @@
     }
 
     if (isSupported) {
+        jsize byteArrayLength = byteArray != NULL ? env->GetArrayLength(byteArray) : 0;
+        ALOGV("Passing AGPS IP addr: size %d", byteArrayLength);
         env->CallVoidMethod(mCallbacksObj, method_reportAGpsStatus, agps_status->type,
                             agps_status->status, byteArray);
 
diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp
index ce2ca9b..39b70a8 100644
--- a/services/core/jni/onload.cpp
+++ b/services/core/jni/onload.cpp
@@ -41,6 +41,8 @@
 int register_android_server_hdmi_HdmiMhlController(JNIEnv* env);
 int register_android_server_tv_TvInputHal(JNIEnv* env);
 int register_android_server_PersistentDataBlockService(JNIEnv* env);
+int register_android_server_fingerprint_FingerprintService(JNIEnv* env);
+int register_android_server_Watchdog(JNIEnv* env);
 };
 
 using namespace android;
@@ -77,6 +79,8 @@
     register_android_server_hdmi_HdmiMhlController(env);
     register_android_server_tv_TvInputHal(env);
     register_android_server_PersistentDataBlockService(env);
+    register_android_server_fingerprint_FingerprintService(env);
+    register_android_server_Watchdog(env);
 
     return JNI_VERSION_1_4;
 }
diff --git a/services/devicepolicy/Android.mk b/services/devicepolicy/Android.mk
index a55d138..7020f17 100644
--- a/services/devicepolicy/Android.mk
+++ b/services/devicepolicy/Android.mk
@@ -7,6 +7,6 @@
 LOCAL_SRC_FILES += \
       $(call all-java-files-under,java)
 
-LOCAL_JAVA_LIBRARIES := conscrypt
+LOCAL_JAVA_LIBRARIES := conscrypt services.core
 
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index fc96991..d46ae42 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -19,6 +19,7 @@
 import static android.Manifest.permission.MANAGE_CA_CERTIFICATES;
 
 import android.app.admin.DevicePolicyManagerInternal;
+
 import com.android.internal.R;
 import com.android.internal.os.storage.ExternalStorageFormatter;
 import com.android.internal.util.FastXmlSerializer;
@@ -58,6 +59,7 @@
 import android.net.Uri;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.database.ContentObserver;
+import android.hardware.usb.UsbManager;
 import android.net.ProxyInfo;
 import android.os.Binder;
 import android.os.Bundle;
@@ -3417,8 +3419,7 @@
         synchronized (this) {
             long ident = Binder.clearCallingIdentity();
             try {
-                mUserManager.setUserRestrictions(new Bundle(),
-                        new UserHandle(UserHandle.USER_OWNER));
+                clearUserRestrictions(new UserHandle(UserHandle.USER_OWNER));
                 if (mDeviceOwner != null) {
                     mDeviceOwner.clearDeviceOwner();
                     mDeviceOwner.writeOwnerFile();
@@ -3481,7 +3482,7 @@
         synchronized (this) {
             long ident = Binder.clearCallingIdentity();
             try {
-                mUserManager.setUserRestrictions(new Bundle(), callingUser);
+                clearUserRestrictions(callingUser);
                 if (mDeviceOwner != null) {
                     mDeviceOwner.removeProfileOwner(callingUser.getIdentifier());
                     mDeviceOwner.writeOwnerFile();
@@ -3492,6 +3493,19 @@
         }
     }
 
+    private void clearUserRestrictions(UserHandle userHandle) {
+        AudioManager audioManager =
+                (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        Bundle userRestrictions = mUserManager.getUserRestrictions();
+        mUserManager.setUserRestrictions(new Bundle(), userHandle);
+        if (userRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME)) {
+            audioManager.setMasterMute(false);
+        }
+        if (userRestrictions.getBoolean(UserManager.DISALLOW_UNMUTE_MICROPHONE)) {
+            audioManager.setMicrophoneMute(false);
+        }
+    }
+
     @Override
     public boolean hasUserSetupCompleted() {
         if (!mHasFeature) {
@@ -4034,7 +4048,57 @@
 
             long id = Binder.clearCallingIdentity();
             try {
+                AudioManager audioManager =
+                        (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+                boolean alreadyRestricted = mUserManager.hasUserRestriction(key);
+
+                if (enabled && !alreadyRestricted) {
+                    if (UserManager.DISALLOW_CONFIG_WIFI.equals(key)) {
+                        Settings.Secure.putIntForUser(mContext.getContentResolver(),
+                                Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0,
+                                userHandle.getIdentifier());
+                    } else if (UserManager.DISALLOW_USB_FILE_TRANSFER.equals(key)) {
+                        UsbManager manager =
+                                (UsbManager) mContext.getSystemService(Context.USB_SERVICE);
+                        manager.setCurrentFunction("none", false);
+                    } else if (UserManager.DISALLOW_SHARE_LOCATION.equals(key)) {
+                        Settings.Secure.putIntForUser(mContext.getContentResolver(),
+                                Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF,
+                                userHandle.getIdentifier());
+                        Settings.Secure.putStringForUser(mContext.getContentResolver(),
+                                Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "",
+                                userHandle.getIdentifier());
+                    } else if (UserManager.DISALLOW_DEBUGGING_FEATURES.equals(key)) {
+                        Settings.Global.putStringForUser(mContext.getContentResolver(),
+                                Settings.Global.ADB_ENABLED, "0", userHandle.getIdentifier());
+                    } else if (UserManager.ENSURE_VERIFY_APPS.equals(key)) {
+                        Settings.Global.putStringForUser(mContext.getContentResolver(),
+                                Settings.Global.PACKAGE_VERIFIER_ENABLE, "1",
+                                userHandle.getIdentifier());
+                        Settings.Global.putStringForUser(mContext.getContentResolver(),
+                                Settings.Global.PACKAGE_VERIFIER_INCLUDE_ADB, "1",
+                                userHandle.getIdentifier());
+                    } else if (UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES.equals(key)) {
+                        Settings.Secure.putIntForUser(mContext.getContentResolver(),
+                                Settings.Secure.INSTALL_NON_MARKET_APPS, 0,
+                                userHandle.getIdentifier());
+                    } else if (UserManager.DISALLOW_UNMUTE_MICROPHONE.equals(key)) {
+                        audioManager.setMicrophoneMute(true);
+                    } else if (UserManager.DISALLOW_ADJUST_VOLUME.equals(key)) {
+                        audioManager.setMasterMute(true);
+                    }
+                }
+
                 mUserManager.setUserRestriction(key, enabled, userHandle);
+
+                if (!enabled && alreadyRestricted) {
+                    if (UserManager.DISALLOW_UNMUTE_MICROPHONE.equals(key)) {
+                        audioManager.setMicrophoneMute(false);
+                    } else if (UserManager.DISALLOW_ADJUST_VOLUME.equals(key)) {
+                        audioManager.setMasterMute(false);
+                    }
+                }
+
             } finally {
                 restoreCallingIdentity(id);
             }
diff --git a/services/print/Android.mk b/services/print/Android.mk
index 33604b7..00eb2e4 100644
--- a/services/print/Android.mk
+++ b/services/print/Android.mk
@@ -7,4 +7,6 @@
 LOCAL_SRC_FILES += \
       $(call all-java-files-under,java)
 
+LOCAL_JAVA_LIBRARIES := services.core
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/restrictions/Android.mk b/services/restrictions/Android.mk
index fcf8626..57d1c46 100644
--- a/services/restrictions/Android.mk
+++ b/services/restrictions/Android.mk
@@ -7,4 +7,6 @@
 LOCAL_SRC_FILES += \
       $(call all-java-files-under,java)
 
+LOCAL_JAVA_LIBRARIES := services.core
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
index 8aae695..c3d4ed9 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
@@ -47,7 +47,6 @@
 import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.isA;
 
-import android.app.AlarmClockInfo;
 import android.app.AlarmManager;
 import android.app.IAlarmManager;
 import android.app.PendingIntent;
@@ -880,7 +879,8 @@
         expectLastCall().anyTimes();
 
         mAlarmManager.set(eq(AlarmManager.ELAPSED_REALTIME), anyLong(), anyLong(), anyLong(),
-                isA(PendingIntent.class), isA(WorkSource.class), isA(AlarmClockInfo.class));
+                isA(PendingIntent.class), isA(WorkSource.class),
+                isA(AlarmManager.AlarmClockInfo.class));
         expectLastCall().atLeastOnce();
 
         mNetManager.setGlobalAlert(anyLong());
diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
index 2e309be..6e13732 100644
--- a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java
@@ -47,6 +47,18 @@
                 }
             }
         }, filter);
+
+        removeExistingUsers();
+    }
+
+    private void removeExistingUsers() {
+        List<UserInfo> list = mUserManager.getUsers();
+        boolean found = false;
+        for (UserInfo user : list) {
+            if (user.id != UserHandle.USER_OWNER) {
+                removeUser(user.id);
+            }
+        }
     }
 
     public void testHasPrimary() throws Exception {
@@ -95,6 +107,29 @@
         assertFalse(findUser(userInfo.id));
     }
 
+    public void testAddGuest() throws Exception {
+        UserInfo userInfo1 = mUserManager.createUser("Guest 1", UserInfo.FLAG_GUEST);
+        UserInfo userInfo2 = mUserManager.createUser("Guest 2", UserInfo.FLAG_GUEST);
+        assertNotNull(userInfo1);
+        assertNull(userInfo2);
+
+        // Cleanup
+        removeUser(userInfo1.id);
+    }
+
+    // Make sure only one managed profile can be created
+    public void testAddManagedProfile() throws Exception {
+        UserInfo userInfo1 = mUserManager.createProfileForUser("Managed 1",
+                UserInfo.FLAG_MANAGED_PROFILE, UserHandle.USER_OWNER);
+        UserInfo userInfo2 = mUserManager.createProfileForUser("Managed 2",
+                UserInfo.FLAG_MANAGED_PROFILE, UserHandle.USER_OWNER);
+        assertNotNull(userInfo1);
+        assertNull(userInfo2);
+
+        // Cleanup
+        removeUser(userInfo1.id);
+    }
+
     private boolean findUser(int id) {
         List<UserInfo> list = mUserManager.getUsers();
 
diff --git a/services/usage/Android.mk b/services/usage/Android.mk
index d4b7fa8..f1cbe98 100644
--- a/services/usage/Android.mk
+++ b/services/usage/Android.mk
@@ -7,4 +7,6 @@
 LOCAL_SRC_FILES += \
       $(call all-java-files-under,java)
 
+LOCAL_JAVA_LIBRARIES := services.core
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index c38391a..82e837d 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -311,11 +311,15 @@
             final int userId = UserHandle.getCallingUserId();
             final long token = Binder.clearCallingIdentity();
             try {
-                return new ParceledListSlice<>(UsageStatsService.this.queryUsageStats(
-                        userId, bucketType, beginTime, endTime));
+                final List<UsageStats> results = UsageStatsService.this.queryUsageStats(
+                        userId, bucketType, beginTime, endTime);
+                if (results != null) {
+                    return new ParceledListSlice<>(results);
+                }
             } finally {
                 Binder.restoreCallingIdentity(token);
             }
+            return null;
         }
 
         @Override
diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
index 2dfd0f6..e489fb3 100644
--- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
@@ -181,7 +181,7 @@
 
         final List<UsageStats> results = mDatabase.queryUsageStats(bucketType, beginTime, endTime);
         if (DEBUG) {
-            Slog.d(TAG, mLogPrefix + "Results: " + results.size());
+            Slog.d(TAG, mLogPrefix + "Results: " + (results == null ? 0 : results.size()));
         }
         return results;
     }
diff --git a/services/usb/java/com/android/server/usb/UsbHostManager.java b/services/usb/java/com/android/server/usb/UsbHostManager.java
index bcbae60..5860fc7 100644
--- a/services/usb/java/com/android/server/usb/UsbHostManager.java
+++ b/services/usb/java/com/android/server/usb/UsbHostManager.java
@@ -314,14 +314,22 @@
         mConnectedUsbCard = cardsParser.getNumCardRecords() - 1;
         mConnectedUsbDeviceNum = 0;
 
-        if (!waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, false)) {
-            return;
-        }
-
         mConnectedHasPlayback = devicesParser.hasPlaybackDevices(mConnectedUsbCard);
         mConnectedHasCapture = devicesParser.hasCaptureDevices(mConnectedUsbCard);
         mConnectedHasMIDI = devicesParser.hasMIDIDevices(mConnectedUsbCard);
 
+        // Playback device file needed/present?
+        if (mConnectedHasPlayback &&
+            !waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, false)) {
+            return;
+        }
+
+        // Capture device file needed/present?
+        if (mConnectedHasCapture &&
+            !waitForAlsaFile(mConnectedUsbCard, mConnectedUsbDeviceNum, true)) {
+            return;
+        }
+
         if (DEBUG_AUDIO) {
             Slog.d(TAG,
                     "usb: hasPlayback:" + mConnectedHasPlayback + " hasCapture:" + mConnectedHasCapture);
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
index f0ecafe..cc0d8df 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/DatabaseHelper.java
@@ -130,8 +130,8 @@
 
         synchronized(this) {
             SQLiteDatabase db = getWritableDatabase();
-            String soundModelClause = SoundModelContract.KEY_MODEL_UUID + "="
-                    + modelUuid.toString();
+            String soundModelClause = SoundModelContract.KEY_MODEL_UUID + "='"
+                    + modelUuid.toString() + "'";
 
             try {
                 return db.delete(SoundModelContract.TABLE, soundModelClause, null) != 0;
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
index cd3684b..a173a5c 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java
@@ -132,14 +132,33 @@
 
         public void initForUser(int userHandle) {
             if (DEBUG) Slog.i(TAG, "initForUser user=" + userHandle);
-            ComponentName curInteractor = getCurInteractor(userHandle);
+            String curInteractorStr = Settings.Secure.getStringForUser(
+                    mContext.getContentResolver(),
+                    Settings.Secure.VOICE_INTERACTION_SERVICE, userHandle);
             ComponentName curRecognizer = getCurRecognizer(userHandle);
+            VoiceInteractionServiceInfo curInteractorInfo = null;
+            if (curInteractorStr == null && curRecognizer != null) {
+                // If there is no interactor setting, that means we are upgrading
+                // from an older platform version.  If the current recognizer is not
+                // set or matches the preferred recognizer, then we want to upgrade
+                // the user to have the default voice interaction service enabled.
+                curInteractorInfo = findAvailInteractor(userHandle, curRecognizer);
+                if (curInteractorInfo != null) {
+                    // Looks good!  We'll apply this one.  To make it happen, we clear the
+                    // recognizer so that we don't think we have anything set and will
+                    // re-apply the settings.
+                    curRecognizer = null;
+                }
+            }
+
             if (curRecognizer != null) {
                 // If we already have at least a recognizer, then we probably want to
                 // leave things as they are...  unless something has disappeared.
                 IPackageManager pm = AppGlobals.getPackageManager();
                 ServiceInfo interactorInfo = null;
                 ServiceInfo recognizerInfo = null;
+                ComponentName curInteractor = !TextUtils.isEmpty(curInteractorStr)
+                        ? ComponentName.unflattenFromString(curInteractorStr) : null;
                 try {
                     recognizerInfo = pm.getServiceInfo(curRecognizer, 0, userHandle);
                     if (curInteractor != null) {
@@ -154,32 +173,27 @@
             }
 
             // Initializing settings, look for an interactor first.
-            curInteractor = findAvailInteractor(userHandle);
-            if (curInteractor != null) {
-                try {
-                    VoiceInteractionServiceInfo info = new VoiceInteractionServiceInfo(
-                            mContext.getPackageManager(), curInteractor, userHandle);
-                    if (info.getParseError() == null) {
-                        setCurInteractor(curInteractor, userHandle);
-                        if (info.getRecognitionService() != null) {
-                            // Eventually it will be an error to not specify this.
-                            curRecognizer = new ComponentName(info.getServiceInfo().packageName,
-                                    info.getRecognitionService());
-                            setCurRecognizer(curRecognizer, userHandle);
-                            return;
-                        }
-                    } else {
-                        Slog.w(TAG, "Bad interaction service " + curInteractor + ": "
-                                + info.getParseError());
-                    }
-                } catch (PackageManager.NameNotFoundException e) {
-                } catch (RemoteException e) {
+            if (curInteractorInfo == null) {
+                curInteractorInfo = findAvailInteractor(userHandle, null);
+            }
+            if (curInteractorInfo != null) {
+                // Eventually it will be an error to not specify this.
+                setCurInteractor(new ComponentName(curInteractorInfo.getServiceInfo().packageName,
+                        curInteractorInfo.getServiceInfo().name), userHandle);
+                if (curInteractorInfo.getRecognitionService() != null) {
+                    setCurRecognizer(
+                            new ComponentName(curInteractorInfo.getServiceInfo().packageName,
+                                    curInteractorInfo.getRecognitionService()), userHandle);
+                    return;
                 }
             }
 
             // No voice interactor, we'll just set up a simple recognizer.
             curRecognizer = findAvailRecognizer(null, userHandle);
             if (curRecognizer != null) {
+                if (curInteractorInfo == null) {
+                    setCurInteractor(null, userHandle);
+                }
                 setCurRecognizer(curRecognizer, userHandle);
             }
         }
@@ -234,7 +248,7 @@
             }
         }
 
-        ComponentName findAvailInteractor(int userHandle) {
+        VoiceInteractionServiceInfo findAvailInteractor(int userHandle, ComponentName recognizer) {
             List<ResolveInfo> available =
                     mContext.getPackageManager().queryIntentServicesAsUser(
                             new Intent(VoiceInteractionService.SERVICE_INTERFACE), 0, userHandle);
@@ -246,23 +260,41 @@
             } else {
                 // Find first system package.  We never want to allow third party services to
                 // be automatically selected, because those require approval of the user.
-                ServiceInfo serviceInfo = null;
+                VoiceInteractionServiceInfo foundInfo = null;
                 for (int i=0; i<numAvailable; i++) {
                     ServiceInfo cur = available.get(i).serviceInfo;
                     if ((cur.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0) {
-                        if (serviceInfo == null) {
-                            serviceInfo = cur;
-                        } else {
-                            Slog.w(TAG, "more than one voice interaction service, picking first "
-                                    + new ComponentName(serviceInfo.packageName, serviceInfo.name)
-                                    + " over "
-                                    + new ComponentName(cur.packageName, cur.name));
+                        ComponentName comp = new ComponentName(cur.packageName, cur.name);
+                        try {
+                            VoiceInteractionServiceInfo info = new VoiceInteractionServiceInfo(
+                                    mContext.getPackageManager(), comp, userHandle);
+                            if (info.getParseError() == null) {
+                                if (recognizer == null || info.getServiceInfo().packageName.equals(
+                                        recognizer.getPackageName())) {
+                                    if (foundInfo == null) {
+                                        foundInfo = info;
+                                    } else {
+                                        Slog.w(TAG, "More than one voice interaction service, "
+                                                + "picking first "
+                                                + new ComponentName(
+                                                        foundInfo.getServiceInfo().packageName,
+                                                        foundInfo.getServiceInfo().name)
+                                                + " over "
+                                                + new ComponentName(cur.packageName, cur.name));
+                                    }
+                                }
+                            } else {
+                                Slog.w(TAG, "Bad interaction service " + comp + ": "
+                                        + info.getParseError());
+                            }
+                        } catch (PackageManager.NameNotFoundException e) {
+                            Slog.w(TAG, "Failure looking up interaction service " + comp);
+                        } catch (RemoteException e) {
                         }
                     }
                 }
 
-                return serviceInfo != null ?
-                        new ComponentName(serviceInfo.packageName, serviceInfo.name) : null;
+                return foundInfo;
             }
         }
 
diff --git a/telecomm/java/android/telecomm/CallAudioState.aidl b/telecomm/java/android/telecomm/AudioState.aidl
similarity index 93%
rename from telecomm/java/android/telecomm/CallAudioState.aidl
rename to telecomm/java/android/telecomm/AudioState.aidl
index ae64567..03772b6 100644
--- a/telecomm/java/android/telecomm/CallAudioState.aidl
+++ b/telecomm/java/android/telecomm/AudioState.aidl
@@ -16,4 +16,7 @@
 
 package android.telecomm;
 
-parcelable CallAudioState;
+/**
+ * {@hide}
+ */
+parcelable AudioState;
diff --git a/telecomm/java/android/telecomm/CallAudioState.java b/telecomm/java/android/telecomm/AudioState.java
similarity index 82%
rename from telecomm/java/android/telecomm/CallAudioState.java
rename to telecomm/java/android/telecomm/AudioState.java
index d9a0090..dc28b16 100644
--- a/telecomm/java/android/telecomm/CallAudioState.java
+++ b/telecomm/java/android/telecomm/AudioState.java
@@ -24,7 +24,7 @@
 /**
  *  Encapsulates all audio states during a call.
  */
-public final class CallAudioState implements Parcelable {
+public final class AudioState implements Parcelable {
     /** Direct the audio stream through the device's earpiece. */
     public static int ROUTE_EARPIECE      = 0x00000001;
 
@@ -57,14 +57,14 @@
     public final int supportedRouteMask;
 
     /** @hide */
-    public CallAudioState(boolean isMuted, int route, int supportedRouteMask) {
+    public AudioState(boolean isMuted, int route, int supportedRouteMask) {
         this.isMuted = isMuted;
         this.route = route;
         this.supportedRouteMask = supportedRouteMask;
     }
 
     /** @hide */
-    public CallAudioState(CallAudioState state) {
+    public AudioState(AudioState state) {
         isMuted = state.isMuted;
         route = state.route;
         supportedRouteMask = state.supportedRouteMask;
@@ -75,10 +75,10 @@
         if (obj == null) {
             return false;
         }
-        if (!(obj instanceof CallAudioState)) {
+        if (!(obj instanceof AudioState)) {
             return false;
         }
-        CallAudioState state = (CallAudioState) obj;
+        AudioState state = (AudioState) obj;
         return isMuted == state.isMuted && route == state.route &&
                 supportedRouteMask == state.supportedRouteMask;
     }
@@ -86,7 +86,7 @@
     @Override
     public String toString() {
         return String.format(Locale.US,
-                "[CallAudioState isMuted: %b, route; %s, supportedRouteMask: %s]",
+                "[AudioState isMuted: %b, route; %s, supportedRouteMask: %s]",
                 isMuted, audioRouteToString(route), audioRouteToString(supportedRouteMask));
     }
 
@@ -121,22 +121,22 @@
     }
 
     /**
-     * Responsible for creating CallAudioState objects for deserialized Parcels.
+     * Responsible for creating AudioState objects for deserialized Parcels.
      */
-    public static final Parcelable.Creator<CallAudioState> CREATOR =
-            new Parcelable.Creator<CallAudioState> () {
+    public static final Parcelable.Creator<AudioState> CREATOR =
+            new Parcelable.Creator<AudioState> () {
 
         @Override
-        public CallAudioState createFromParcel(Parcel source) {
+        public AudioState createFromParcel(Parcel source) {
             boolean isMuted = source.readByte() == 0 ? false : true;
             int route = source.readInt();
             int supportedRouteMask = source.readInt();
-            return new CallAudioState(isMuted, route, supportedRouteMask);
+            return new AudioState(isMuted, route, supportedRouteMask);
         }
 
         @Override
-        public CallAudioState[] newArray(int size) {
-            return new CallAudioState[size];
+        public AudioState[] newArray(int size) {
+            return new AudioState[size];
         }
     };
 
@@ -149,7 +149,7 @@
     }
 
     /**
-     * Writes CallAudioState object into a serializeable Parcel.
+     * Writes AudioState object into a serializeable Parcel.
      */
     @Override
     public void writeToParcel(Parcel destination, int flags) {
diff --git a/telecomm/java/android/telecomm/Call.java b/telecomm/java/android/telecomm/Call.java
index 0a54c71..7223574 100644
--- a/telecomm/java/android/telecomm/Call.java
+++ b/telecomm/java/android/telecomm/Call.java
@@ -18,6 +18,7 @@
 
 import android.app.PendingIntent;
 import android.net.Uri;
+import android.os.Bundle;
 import android.telephony.DisconnectCause;
 
 import java.lang.String;
@@ -26,9 +27,12 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * Represents an ongoing phone call that the in-call app should present to the user.
+ *
+ * {@hide}
  */
 public final class Call {
     /**
@@ -84,11 +88,12 @@
         private final PhoneAccountHandle mAccountHandle;
         private final int mCallCapabilities;
         private final int mDisconnectCauseCode;
-        private final String mDisconnectCauseMsg;
+        private final String mDisconnectCauseMessage;
         private final long mConnectTimeMillis;
         private final GatewayInfo mGatewayInfo;
         private final int mVideoState;
         private final StatusHints mStatusHints;
+        private final Bundle mExtras;
 
         /**
          * @return The handle (e.g., phone number) to which the {@code Call} is currently
@@ -100,7 +105,7 @@
 
         /**
          * @return The presentation requirements for the handle. See
-         * {@link android.telecomm.CallPropertyPresentation} for valid values.
+         * {@link PropertyPresentation} for valid values.
          */
         public int getHandlePresentation() {
             return mHandlePresentation;
@@ -115,7 +120,7 @@
 
         /**
          * @return The presentation requirements for the caller display name. See
-         * {@link android.telecomm.CallPropertyPresentation} for valid values.
+         * {@link PropertyPresentation} for valid values.
          */
         public int getCallerDisplayNamePresentation() {
             return mCallerDisplayNamePresentation;
@@ -131,7 +136,7 @@
 
         /**
          * @return A bitmask of the capabilities of the {@code Call}, as defined in
-         *         {@link CallCapabilities}.
+         *         {@link PhoneCapabilities}.
          */
         public int getCallCapabilities() {
             return mCallCapabilities;
@@ -149,8 +154,8 @@
          * @return For a {@link #STATE_DISCONNECTED} {@code Call}, an optional reason for
          * disconnection expressed as a free text message.
          */
-        public String getDisconnectCauseMsg() {
-            return mDisconnectCauseMsg;
+        public String getDisconnectCauseMessage() {
+            return mDisconnectCauseMessage;
         }
 
         /**
@@ -184,6 +189,13 @@
             return mStatusHints;
         }
 
+        /**
+         * @return A bundle extras to pass with the call
+         */
+        public Bundle getExtras() {
+            return mExtras;
+        }
+
         @Override
         public boolean equals(Object o) {
             if (o instanceof Details) {
@@ -197,11 +209,12 @@
                         Objects.equals(mAccountHandle, d.mAccountHandle) &&
                         Objects.equals(mCallCapabilities, d.mCallCapabilities) &&
                         Objects.equals(mDisconnectCauseCode, d.mDisconnectCauseCode) &&
-                        Objects.equals(mDisconnectCauseMsg, d.mDisconnectCauseMsg) &&
+                        Objects.equals(mDisconnectCauseMessage, d.mDisconnectCauseMessage) &&
                         Objects.equals(mConnectTimeMillis, d.mConnectTimeMillis) &&
                         Objects.equals(mGatewayInfo, d.mGatewayInfo) &&
                         Objects.equals(mVideoState, d.mVideoState) &&
-                        Objects.equals(mStatusHints, d.mStatusHints);
+                        Objects.equals(mStatusHints, d.mStatusHints) &&
+                        Objects.equals(mExtras, d.mExtras);
             }
             return false;
         }
@@ -216,11 +229,12 @@
                     Objects.hashCode(mAccountHandle) +
                     Objects.hashCode(mCallCapabilities) +
                     Objects.hashCode(mDisconnectCauseCode) +
-                    Objects.hashCode(mDisconnectCauseMsg) +
+                    Objects.hashCode(mDisconnectCauseMessage) +
                     Objects.hashCode(mConnectTimeMillis) +
                     Objects.hashCode(mGatewayInfo) +
                     Objects.hashCode(mVideoState) +
-                    Objects.hashCode(mStatusHints);
+                    Objects.hashCode(mStatusHints) +
+                    Objects.hashCode(mExtras);
         }
 
         /** {@hide} */
@@ -232,11 +246,12 @@
                 PhoneAccountHandle accountHandle,
                 int capabilities,
                 int disconnectCauseCode,
-                String disconnectCauseMsg,
+                String disconnectCauseMessage,
                 long connectTimeMillis,
                 GatewayInfo gatewayInfo,
                 int videoState,
-                StatusHints statusHints) {
+                StatusHints statusHints,
+                Bundle extras) {
             mHandle = handle;
             mHandlePresentation = handlePresentation;
             mCallerDisplayName = callerDisplayName;
@@ -244,11 +259,12 @@
             mAccountHandle = accountHandle;
             mCallCapabilities = capabilities;
             mDisconnectCauseCode = disconnectCauseCode;
-            mDisconnectCauseMsg = disconnectCauseMsg;
+            mDisconnectCauseMessage = disconnectCauseMessage;
             mConnectTimeMillis = connectTimeMillis;
             mGatewayInfo = gatewayInfo;
             mVideoState = videoState;
             mStatusHints = statusHints;
+            mExtras = extras;
         }
     }
 
@@ -256,8 +272,6 @@
         /**
          * Invoked when the state of this {@code Call} has changed. See {@link #getState()}.
          *
-         * TODO: Provide previous state also?
-         *
          * @param call The {@code Call} invoking this method.
          * @param state The new state of the {@code Call}.
          */
@@ -351,7 +365,7 @@
     private final InCallAdapter mInCallAdapter;
     private final List<Call> mChildren = new ArrayList<>();
     private final List<Call> mUnmodifiableChildren = Collections.unmodifiableList(mChildren);
-    private final List<Listener> mListeners = new ArrayList<>();
+    private final List<Listener> mListeners = new CopyOnWriteArrayList<>();
     private final List<Call> mConferenceableCalls = new ArrayList<>();
     private final List<Call> mUnmodifiableConferenceableCalls =
             Collections.unmodifiableList(mConferenceableCalls);
@@ -459,8 +473,6 @@
 
     /**
      * Notifies this {@code Call} that the phone account user interface element was touched.
-     *
-     * TODO: Figure out if and how we can generalize this
      */
     public void phoneAccountClicked() {
         mInCallAdapter.phoneAccountClicked(mTelecommCallId);
@@ -495,14 +507,6 @@
     }
 
     /**
-     * Instructs this {@code Call} to swap itself with an existing background call, if one
-     * such call exists.
-     */
-    public void swapWithBackgroundCall() {
-        mInCallAdapter.swapWithBackgroundCall(mTelecommCallId);
-    }
-
-    /**
      * Obtains the parent of this {@code Call} in a conference, if any.
      *
      * @return The parent {@code Call}, or {@code null} if this {@code Call} is not a
@@ -586,7 +590,9 @@
      * @param listener A {@code Listener}.
      */
     public void removeListener(Listener listener) {
-        mListeners.remove(listener);
+        if (listener != null) {
+            mListeners.remove(listener);
+        }
     }
 
     /** {@hide} */
@@ -617,7 +623,8 @@
                 parcelableCall.getConnectTimeMillis(),
                 parcelableCall.getGatewayInfo(),
                 parcelableCall.getVideoState(),
-                parcelableCall.getStatusHints());
+                parcelableCall.getStatusHints(),
+                parcelableCall.getExtras());
         boolean detailsChanged = !Objects.equals(mDetails, details);
         if (detailsChanged) {
             mDetails = details;
@@ -705,94 +712,84 @@
     }
 
     private void fireStateChanged(int newState) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onStateChanged(this, newState);
+        for (Listener listener : mListeners) {
+            listener.onStateChanged(this, newState);
         }
     }
 
     private void fireParentChanged(Call newParent) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onParentChanged(this, newParent);
+        for (Listener listener : mListeners) {
+            listener.onParentChanged(this, newParent);
         }
     }
 
     private void fireChildrenChanged(List<Call> children) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onChildrenChanged(this, children);
+        for (Listener listener : mListeners) {
+            listener.onChildrenChanged(this, children);
         }
     }
 
     private void fireDetailsChanged(Details details) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onDetailsChanged(this, details);
+        for (Listener listener : mListeners) {
+            listener.onDetailsChanged(this, details);
         }
     }
 
     private void fireCannedTextResponsesLoaded(List<String> cannedTextResponses) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onCannedTextResponsesLoaded(this, cannedTextResponses);
+        for (Listener listener : mListeners) {
+            listener.onCannedTextResponsesLoaded(this, cannedTextResponses);
         }
     }
 
     private void fireVideoCallChanged(InCallService.VideoCall videoCall) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onVideoCallChanged(this, videoCall);
+        for (Listener listener : mListeners) {
+            listener.onVideoCallChanged(this, videoCall);
         }
     }
 
     private void firePostDialWait(String remainingPostDialSequence) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onPostDialWait(this, remainingPostDialSequence);
+        for (Listener listener : mListeners) {
+            listener.onPostDialWait(this, remainingPostDialSequence);
         }
     }
 
     private void fireStartActivity(PendingIntent intent) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onStartActivity(this, intent);
+        for (Listener listener : mListeners) {
+            listener.onStartActivity(this, intent);
         }
     }
 
     private void fireCallDestroyed() {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onCallDestroyed(this);
+        for (Listener listener : mListeners) {
+            listener.onCallDestroyed(this);
         }
     }
 
     private void fireConferenceableCallsChanged() {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onConferenceableCallsChanged(this, mUnmodifiableConferenceableCalls);
+        for (Listener listener : mListeners) {
+            listener.onConferenceableCallsChanged(this, mUnmodifiableConferenceableCalls);
         }
     }
 
-    private int stateFromParcelableCallState(CallState parcelableCallState) {
+    private int stateFromParcelableCallState(int parcelableCallState) {
         switch (parcelableCallState) {
-            case NEW:
+            case CallState.NEW:
                 return STATE_NEW;
-            case CONNECTING:
+            case CallState.CONNECTING:
                 return STATE_CONNECTING;
-            case PRE_DIAL_WAIT:
+            case CallState.PRE_DIAL_WAIT:
                 return STATE_PRE_DIAL_WAIT;
-            case DIALING:
+            case CallState.DIALING:
                 return STATE_DIALING;
-            case RINGING:
+            case CallState.RINGING:
                 return STATE_RINGING;
-            case ACTIVE:
+            case CallState.ACTIVE:
                 return STATE_ACTIVE;
-            case ON_HOLD:
+            case CallState.ON_HOLD:
                 return STATE_HOLDING;
-            case DISCONNECTED:
+            case CallState.DISCONNECTED:
                 return STATE_DISCONNECTED;
-            case ABORTED:
+            case CallState.ABORTED:
                 return STATE_DISCONNECTED;
             default:
                 Log.wtf(this, "Unrecognized CallState %s", parcelableCallState);
diff --git a/telecomm/java/android/telecomm/CallState.java b/telecomm/java/android/telecomm/CallState.java
index 0ca4840..73edbe2 100644
--- a/telecomm/java/android/telecomm/CallState.java
+++ b/telecomm/java/android/telecomm/CallState.java
@@ -21,22 +21,27 @@
  * have the notion of normal transitions, due to the volatile nature of telephony systems, code
  * that uses these states should be resilient to unexpected state changes outside of what is
  * considered traditional.
+ *
+ * {@hide}
  */
-public enum CallState {
+public final class CallState {
+
+    private CallState() {}
+
     /**
      * Indicates that a call is new and not connected. This is used as the default state internally
      * within Telecomm and should not be used between Telecomm and call services. Call services are
      * not expected to ever interact with NEW calls, but {@link InCallService}s will see calls in
      * this state.
      */
-    NEW,
+    public static final int NEW = 0;
 
     /**
      * The initial state of an outgoing {@code Call}.
      * Common transitions are to {@link #DIALING} state for a successful call or
      * {@link #DISCONNECTED} if it failed.
      */
-    CONNECTING,
+    public static final int CONNECTING = 1;
 
     /**
      * Indicates that the call is about to go into the outgoing and dialing state but is waiting for
@@ -44,7 +49,7 @@
      * this is the state where the InCallUI is waiting for the user to select a
      * {@link PhoneAccount} to call from.
      */
-    PRE_DIAL_WAIT,
+    public static final int PRE_DIAL_WAIT = 2;
 
     /**
      * Indicates that a call is outgoing and in the dialing state. A call transitions to this state
@@ -52,7 +57,7 @@
      * state usually transition to {@link #ACTIVE} if the call was answered or {@link #DISCONNECTED}
      * if the call was disconnected somehow (e.g., failure or cancellation of the call by the user).
      */
-    DIALING,
+    public static final int DIALING = 3;
 
     /**
      * Indicates that a call is incoming and the user still has the option of answering, rejecting,
@@ -60,14 +65,14 @@
      * ringtone. Normal transitions are to {@link #ACTIVE} if answered or {@link #DISCONNECTED}
      * otherwise.
      */
-    RINGING,
+    public static final int RINGING = 4;
 
     /**
      * Indicates that a call is currently connected to another party and a communication channel is
      * open between them. The normal transition to this state is by the user answering a
      * {@link #DIALING} call or a {@link #RINGING} call being answered by the other party.
      */
-    ACTIVE,
+    public static final int ACTIVE = 5;
 
     /**
      * Indicates that the call is currently on hold. In this state, the call is not terminated
@@ -75,7 +80,7 @@
      * to this state is by the user putting an {@link #ACTIVE} call on hold by explicitly performing
      * an action, such as clicking the hold button.
      */
-    ON_HOLD,
+    public static final int ON_HOLD = 6;
 
     /**
      * Indicates that a call is currently disconnected. All states can transition to this state
@@ -84,12 +89,36 @@
      * the disconnection or communication was lost to the call service currently responsible for
      * this call (e.g., call service crashes).
      */
-    DISCONNECTED,
+    public static final int DISCONNECTED = 7;
 
     /**
      * Indicates that the call was attempted (mostly in the context of outgoing, at least at the
      * time of writing) but cancelled before it was successfully connected.
-     * @hide
      */
-    ABORTED;
+    public static final int ABORTED = 8;
+
+    public static String toString(int callState) {
+        switch (callState) {
+            case NEW:
+                return "NEW";
+            case CONNECTING:
+                return "CONNECTING";
+            case PRE_DIAL_WAIT:
+                return "PRE_DIAL_WAIT";
+            case DIALING:
+                return "DIALING";
+            case RINGING:
+                return "RINGING";
+            case ACTIVE:
+                return "ACTIVE";
+            case ON_HOLD:
+                return "ON_HOLD";
+            case DISCONNECTED:
+                return "DISCONNECTED";
+            case ABORTED:
+                return "ABORTED";
+            default:
+                return "UNKNOWN";
+        }
+    }
 }
diff --git a/telecomm/java/android/telecomm/CallCameraCapabilities.aidl b/telecomm/java/android/telecomm/CameraCapabilities.aidl
similarity index 92%
copy from telecomm/java/android/telecomm/CallCameraCapabilities.aidl
copy to telecomm/java/android/telecomm/CameraCapabilities.aidl
index 25b6106..08e6f43 100644
--- a/telecomm/java/android/telecomm/CallCameraCapabilities.aidl
+++ b/telecomm/java/android/telecomm/CameraCapabilities.aidl
@@ -14,7 +14,9 @@
  * limitations under the License
  */
 
-
 package android.telecomm;
 
-parcelable CallCameraCapabilities;
+/**
+ * {@hide}
+ */
+parcelable CameraCapabilities;
diff --git a/telecomm/java/android/telecomm/CallCameraCapabilities.java b/telecomm/java/android/telecomm/CameraCapabilities.java
similarity index 84%
rename from telecomm/java/android/telecomm/CallCameraCapabilities.java
rename to telecomm/java/android/telecomm/CameraCapabilities.java
index 74904e3..7c7dde1 100644
--- a/telecomm/java/android/telecomm/CallCameraCapabilities.java
+++ b/telecomm/java/android/telecomm/CameraCapabilities.java
@@ -21,9 +21,8 @@
 
 /**
  * Represents the camera capabilities important to a Video Telephony provider.
- * TODO: Add camera capabilities as required.
  */
-public final class CallCameraCapabilities implements Parcelable {
+public final class CameraCapabilities implements Parcelable {
 
     /**
      * Whether the camera supports zoom.
@@ -53,7 +52,7 @@
      * @param width The width of the camera video (in pixels).
      * @param height The height of the camera video (in pixels).
      */
-    public CallCameraCapabilities(boolean zoomSupported, float maxZoom, int width, int height) {
+    public CameraCapabilities(boolean zoomSupported, float maxZoom, int width, int height) {
         mZoomSupported = zoomSupported;
         mMaxZoom = maxZoom;
         mWidth = width;
@@ -63,8 +62,8 @@
     /**
      * Responsible for creating CallCameraCapabilities objects from deserialized Parcels.
      **/
-    public static final Parcelable.Creator<CallCameraCapabilities> CREATOR =
-            new Parcelable.Creator<CallCameraCapabilities> () {
+    public static final Parcelable.Creator<CameraCapabilities> CREATOR =
+            new Parcelable.Creator<CameraCapabilities> () {
                 /**
                  * Creates a CallCameraCapabilities instances from a parcel.
                  *
@@ -72,18 +71,18 @@
                  * @return The CallCameraCapabilities.
                  */
                 @Override
-                public CallCameraCapabilities createFromParcel(Parcel source) {
+                public CameraCapabilities createFromParcel(Parcel source) {
                     boolean supportsZoom = source.readByte() != 0;
                     float maxZoom = source.readFloat();
                     int width = source.readInt();
                     int height = source.readInt();
 
-                    return new CallCameraCapabilities(supportsZoom, maxZoom, width, height);
+                    return new CameraCapabilities(supportsZoom, maxZoom, width, height);
                 }
 
                 @Override
-                public CallCameraCapabilities[] newArray(int size) {
-                    return new CallCameraCapabilities[size];
+                public CameraCapabilities[] newArray(int size) {
+                    return new CameraCapabilities[size];
                 }
             };
 
diff --git a/telecomm/java/android/telecomm/Connection.java b/telecomm/java/android/telecomm/Connection.java
index b323646..78c34a1 100644
--- a/telecomm/java/android/telecomm/Connection.java
+++ b/telecomm/java/android/telecomm/Connection.java
@@ -16,20 +16,52 @@
 
 package android.telecomm;
 
+import com.android.internal.telecomm.IVideoCallback;
+import com.android.internal.telecomm.IVideoProvider;
+
 import android.app.PendingIntent;
 import android.net.Uri;
-import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.telephony.DisconnectCause;
+import android.view.Surface;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * Represents a connection to a remote endpoint that carries voice traffic.
  */
 public abstract class Connection {
 
+    public static final int STATE_INITIALIZING = 0;
+
+    public static final int STATE_NEW = 1;
+
+    public static final int STATE_RINGING = 2;
+
+    public static final int STATE_DIALING = 3;
+
+    public static final int STATE_ACTIVE = 4;
+
+    public static final int STATE_HOLDING = 5;
+
+    public static final int STATE_DISCONNECTED = 6;
+
+    public static final int STATE_FAILED = 7;
+
+    public static final int STATE_CANCELED = 8;
+
+    // Flag controlling whether PII is emitted into the logs
+    private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG);
+
+    private static Connection sNullConnection;
+
     /** @hide */
     public abstract static class Listener {
         public void onStateChanged(Connection c, int state) {}
@@ -37,15 +69,14 @@
         public void onCallerDisplayNameChanged(
                 Connection c, String callerDisplayName, int presentation) {}
         public void onVideoStateChanged(Connection c, int videoState) {}
-        public void onSignalChanged(Connection c, Bundle details) {}
         public void onDisconnected(Connection c, int cause, String message) {}
         public void onPostDialWait(Connection c, String remaining) {}
         public void onRequestingRingback(Connection c, boolean ringback) {}
         public void onDestroyed(Connection c) {}
         public void onCallCapabilitiesChanged(Connection c, int callCapabilities) {}
         public void onParentConnectionChanged(Connection c, Connection parent) {}
-        public void onVideoCallProviderChanged(
-                Connection c, ConnectionService.VideoCallProvider videoCallProvider) {}
+        public void onVideoProviderChanged(
+                Connection c, VideoProvider videoProvider) {}
         public void onAudioModeIsVoipChanged(Connection c, boolean isVoip) {}
         public void onStatusHintsChanged(Connection c, StatusHints statusHints) {}
         public void onStartActivityFromInCall(Connection c, PendingIntent intent) {}
@@ -53,19 +84,359 @@
                 Connection c, List<Connection> conferenceableConnections) {}
     }
 
-    public final class State {
-        private State() {}
+    public static abstract class VideoProvider {
 
-        public static final int INITIALIZING = 0;
-        public static final int NEW = 1;
-        public static final int RINGING = 2;
-        public static final int DIALING = 3;
-        public static final int ACTIVE = 4;
-        public static final int HOLDING = 5;
-        public static final int DISCONNECTED = 6;
-        public static final int FAILED = 7;
-        public static final int CANCELED = 8;
+        /**
+         * Video is not being received (no protocol pause was issued).
+         */
+        public static final int SESSION_EVENT_RX_PAUSE = 1;
 
+        /**
+         * Video reception has resumed after a SESSION_EVENT_RX_PAUSE.
+         */
+        public static final int SESSION_EVENT_RX_RESUME = 2;
+
+        /**
+         * Video transmission has begun. This occurs after a negotiated start of video transmission
+         * when the underlying protocol has actually begun transmitting video to the remote party.
+         */
+        public static final int SESSION_EVENT_TX_START = 3;
+
+        /**
+         * Video transmission has stopped. This occurs after a negotiated stop of video transmission
+         * when the underlying protocol has actually stopped transmitting video to the remote party.
+         */
+        public static final int SESSION_EVENT_TX_STOP = 4;
+
+        /**
+         * A camera failure has occurred for the selected camera.  The In-Call UI can use this as a
+         * cue to inform the user the camera is not available.
+         */
+        public static final int SESSION_EVENT_CAMERA_FAILURE = 5;
+
+        /**
+         * Issued after {@code SESSION_EVENT_CAMERA_FAILURE} when the camera is once again ready for
+         * operation.  The In-Call UI can use this as a cue to inform the user that the camera has
+         * become available again.
+         */
+        public static final int SESSION_EVENT_CAMERA_READY = 6;
+
+        /**
+         * Session modify request was successful.
+         */
+        public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1;
+
+        /**
+         * Session modify request failed.
+         */
+        public static final int SESSION_MODIFY_REQUEST_FAIL = 2;
+
+        /**
+         * Session modify request ignored due to invalid parameters.
+         */
+        public static final int SESSION_MODIFY_REQUEST_INVALID = 3;
+
+        private static final int MSG_SET_VIDEO_LISTENER = 1;
+        private static final int MSG_SET_CAMERA = 2;
+        private static final int MSG_SET_PREVIEW_SURFACE = 3;
+        private static final int MSG_SET_DISPLAY_SURFACE = 4;
+        private static final int MSG_SET_DEVICE_ORIENTATION = 5;
+        private static final int MSG_SET_ZOOM = 6;
+        private static final int MSG_SEND_SESSION_MODIFY_REQUEST = 7;
+        private static final int MSG_SEND_SESSION_MODIFY_RESPONSE = 8;
+        private static final int MSG_REQUEST_CAMERA_CAPABILITIES = 9;
+        private static final int MSG_REQUEST_CALL_DATA_USAGE = 10;
+        private static final int MSG_SET_PAUSE_IMAGE = 11;
+
+        private final VideoProvider.VideoProviderHandler
+                mMessageHandler = new VideoProvider.VideoProviderHandler();
+        private final VideoProvider.VideoProviderBinder mBinder;
+        private IVideoCallback mVideoListener;
+
+        /**
+         * Default handler used to consolidate binder method calls onto a single thread.
+         */
+        private final class VideoProviderHandler extends Handler {
+            @Override
+            public void handleMessage(Message msg) {
+                switch (msg.what) {
+                    case MSG_SET_VIDEO_LISTENER:
+                        mVideoListener = IVideoCallback.Stub.asInterface((IBinder) msg.obj);
+                        break;
+                    case MSG_SET_CAMERA:
+                        onSetCamera((String) msg.obj);
+                        break;
+                    case MSG_SET_PREVIEW_SURFACE:
+                        onSetPreviewSurface((Surface) msg.obj);
+                        break;
+                    case MSG_SET_DISPLAY_SURFACE:
+                        onSetDisplaySurface((Surface) msg.obj);
+                        break;
+                    case MSG_SET_DEVICE_ORIENTATION:
+                        onSetDeviceOrientation(msg.arg1);
+                        break;
+                    case MSG_SET_ZOOM:
+                        onSetZoom((Float) msg.obj);
+                        break;
+                    case MSG_SEND_SESSION_MODIFY_REQUEST:
+                        onSendSessionModifyRequest((VideoProfile) msg.obj);
+                        break;
+                    case MSG_SEND_SESSION_MODIFY_RESPONSE:
+                        onSendSessionModifyResponse((VideoProfile) msg.obj);
+                        break;
+                    case MSG_REQUEST_CAMERA_CAPABILITIES:
+                        onRequestCameraCapabilities();
+                        break;
+                    case MSG_REQUEST_CALL_DATA_USAGE:
+                        onRequestCallDataUsage();
+                        break;
+                    case MSG_SET_PAUSE_IMAGE:
+                        onSetPauseImage((String) msg.obj);
+                        break;
+                    default:
+                        break;
+                }
+            }
+        }
+
+        /**
+         * IVideoProvider stub implementation.
+         */
+        private final class VideoProviderBinder extends IVideoProvider.Stub {
+            public void setVideoListener(IBinder videoListenerBinder) {
+                mMessageHandler.obtainMessage(
+                        MSG_SET_VIDEO_LISTENER, videoListenerBinder).sendToTarget();
+            }
+
+            public void setCamera(String cameraId) {
+                mMessageHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget();
+            }
+
+            public void setPreviewSurface(Surface surface) {
+                mMessageHandler.obtainMessage(MSG_SET_PREVIEW_SURFACE, surface).sendToTarget();
+            }
+
+            public void setDisplaySurface(Surface surface) {
+                mMessageHandler.obtainMessage(MSG_SET_DISPLAY_SURFACE, surface).sendToTarget();
+            }
+
+            public void setDeviceOrientation(int rotation) {
+                mMessageHandler.obtainMessage(MSG_SET_DEVICE_ORIENTATION, rotation).sendToTarget();
+            }
+
+            public void setZoom(float value) {
+                mMessageHandler.obtainMessage(MSG_SET_ZOOM, value).sendToTarget();
+            }
+
+            public void sendSessionModifyRequest(VideoProfile requestProfile) {
+                mMessageHandler.obtainMessage(
+                        MSG_SEND_SESSION_MODIFY_REQUEST, requestProfile).sendToTarget();
+            }
+
+            public void sendSessionModifyResponse(VideoProfile responseProfile) {
+                mMessageHandler.obtainMessage(
+                        MSG_SEND_SESSION_MODIFY_RESPONSE, responseProfile).sendToTarget();
+            }
+
+            public void requestCameraCapabilities() {
+                mMessageHandler.obtainMessage(MSG_REQUEST_CAMERA_CAPABILITIES).sendToTarget();
+            }
+
+            public void requestCallDataUsage() {
+                mMessageHandler.obtainMessage(MSG_REQUEST_CALL_DATA_USAGE).sendToTarget();
+            }
+
+            public void setPauseImage(String uri) {
+                mMessageHandler.obtainMessage(MSG_SET_PAUSE_IMAGE, uri).sendToTarget();
+            }
+        }
+
+        public VideoProvider() {
+            mBinder = new VideoProvider.VideoProviderBinder();
+        }
+
+        /**
+         * Returns binder object which can be used across IPC methods.
+         * @hide
+         */
+        public final IVideoProvider getInterface() {
+            return mBinder;
+        }
+
+        /**
+         * Sets the camera to be used for video recording in a video call.
+         *
+         * @param cameraId The id of the camera.
+         */
+        public abstract void onSetCamera(String cameraId);
+
+        /**
+         * Sets the surface to be used for displaying a preview of what the user's camera is
+         * currently capturing.  When video transmission is enabled, this is the video signal which
+         * is sent to the remote device.
+         *
+         * @param surface The surface.
+         */
+        public abstract void onSetPreviewSurface(Surface surface);
+
+        /**
+         * Sets the surface to be used for displaying the video received from the remote device.
+         *
+         * @param surface The surface.
+         */
+        public abstract void onSetDisplaySurface(Surface surface);
+
+        /**
+         * Sets the device orientation, in degrees.  Assumes that a standard portrait orientation of
+         * the device is 0 degrees.
+         *
+         * @param rotation The device orientation, in degrees.
+         */
+        public abstract void onSetDeviceOrientation(int rotation);
+
+        /**
+         * Sets camera zoom ratio.
+         *
+         * @param value The camera zoom ratio.
+         */
+        public abstract void onSetZoom(float value);
+
+        /**
+         * Issues a request to modify the properties of the current session.  The request is
+         * sent to the remote device where it it handled by the In-Call UI.
+         * Some examples of session modification requests: upgrade call from audio to video,
+         * downgrade call from video to audio, pause video.
+         *
+         * @param requestProfile The requested call video properties.
+         */
+        public abstract void onSendSessionModifyRequest(VideoProfile requestProfile);
+
+        /**te
+         * Provides a response to a request to change the current call session video
+         * properties.
+         * This is in response to a request the InCall UI has received via the InCall UI.
+         *
+         * @param responseProfile The response call video properties.
+         */
+        public abstract void onSendSessionModifyResponse(VideoProfile responseProfile);
+
+        /**
+         * Issues a request to the video provider to retrieve the camera capabilities.
+         * Camera capabilities are reported back to the caller via the In-Call UI.
+         */
+        public abstract void onRequestCameraCapabilities();
+
+        /**
+         * Issues a request to the video telephony framework to retrieve the cumulative data usage
+         * for the current call.  Data usage is reported back to the caller via the
+         * InCall UI.
+         */
+        public abstract void onRequestCallDataUsage();
+
+        /**
+         * Provides the video telephony framework with the URI of an image to be displayed to remote
+         * devices when the video signal is paused.
+         *
+         * @param uri URI of image to display.
+         */
+        public abstract void onSetPauseImage(String uri);
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * @param videoProfile The requested video call profile.
+         */
+        public void receiveSessionModifyRequest(VideoProfile videoProfile) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.receiveSessionModifyRequest(videoProfile);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * @param status Status of the session modify request.  Valid values are
+         *               {@link VideoProvider#SESSION_MODIFY_REQUEST_SUCCESS},
+         *               {@link VideoProvider#SESSION_MODIFY_REQUEST_FAIL},
+         *               {@link VideoProvider#SESSION_MODIFY_REQUEST_INVALID}
+         * @param requestedProfile The original request which was sent to the remote device.
+         * @param responseProfile The actual profile changes made by the remote device.
+         */
+        public void receiveSessionModifyResponse(int status,
+                VideoProfile requestedProfile, VideoProfile responseProfile) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.receiveSessionModifyResponse(
+                            status, requestedProfile, responseProfile);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * Valid values are: {@link VideoProvider#SESSION_EVENT_RX_PAUSE},
+         * {@link VideoProvider#SESSION_EVENT_RX_RESUME},
+         * {@link VideoProvider#SESSION_EVENT_TX_START},
+         * {@link VideoProvider#SESSION_EVENT_TX_STOP}
+         *
+         * @param event The event.
+         */
+        public void handleCallSessionEvent(int event) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.handleCallSessionEvent(event);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * @param width  The updated peer video width.
+         * @param height The updated peer video height.
+         */
+        public void changePeerDimensions(int width, int height) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.changePeerDimensions(width, height);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * @param dataUsage The updated data usage.
+         */
+        public void changeCallDataUsage(int dataUsage) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.changeCallDataUsage(dataUsage);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
+
+        /**
+         * Invokes callback method defined in In-Call UI.
+         *
+         * @param cameraCapabilities The changed camera capabilities.
+         */
+        public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) {
+            if (mVideoListener != null) {
+                try {
+                    mVideoListener.changeCameraCapabilities(cameraCapabilities);
+                } catch (RemoteException ignored) {
+                }
+            }
+        }
     }
 
     private final Listener mConnectionDeathListener = new Listener() {
@@ -77,12 +448,22 @@
         }
     };
 
-    private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
+    private final Set<Listener> mListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<Listener, Boolean>(8, 0.9f, 1));
     private final List<Connection> mChildConnections = new ArrayList<>();
+    private final List<Connection> mUnmodifiableChildConnections =
+            Collections.unmodifiableList(mChildConnections);
     private final List<Connection> mConferenceableConnections = new ArrayList<>();
+    private final List<Connection> mUnmodifiableConferenceableConnections =
+            Collections.unmodifiableList(mConferenceableConnections);
 
-    private int mState = State.NEW;
-    private CallAudioState mCallAudioState;
+    private int mState = STATE_NEW;
+    private AudioState mAudioState;
     private Uri mHandle;
     private int mHandlePresentation;
     private String mCallerDisplayName;
@@ -90,7 +471,7 @@
     private boolean mRequestingRingback = false;
     private int mCallCapabilities;
     private Connection mParentConnection;
-    private ConnectionService.VideoCallProvider mVideoCallProvider;
+    private VideoProvider mVideoProvider;
     private boolean mAudioModeIsVoip;
     private StatusHints mStatusHints;
     private int mVideoState;
@@ -111,7 +492,7 @@
     }
 
     /**
-     * @return The {@link CallPropertyPresentation} which controls how the handle is shown.
+     * @return The {@link PropertyPresentation} which controls how the handle is shown.
      */
     public final int getHandlePresentation() {
         return mHandlePresentation;
@@ -125,7 +506,7 @@
     }
 
     /**
-     * @return The {@link CallPropertyPresentation} which controls how the caller display name is
+     * @return The {@link PropertyPresentation} which controls how the caller display name is
      *         shown.
      */
     public final int getCallerDisplayNamePresentation() {
@@ -141,10 +522,10 @@
 
     /**
      * Returns the video state of the call.
-     * Valid values: {@link android.telecomm.VideoCallProfile.VideoState#AUDIO_ONLY},
-     * {@link android.telecomm.VideoCallProfile.VideoState#BIDIRECTIONAL},
-     * {@link android.telecomm.VideoCallProfile.VideoState#TX_ENABLED},
-     * {@link android.telecomm.VideoCallProfile.VideoState#RX_ENABLED}.
+     * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#TX_ENABLED},
+     * {@link VideoProfile.VideoState#RX_ENABLED}.
      *
      * @return The video state of the call.
      */
@@ -157,8 +538,8 @@
      *         being routed by the system. This is {@code null} if this Connection
      *         does not directly know about its audio state.
      */
-    public final CallAudioState getCallAudioState() {
-        return mCallAudioState;
+    public final AudioState getAudioState() {
+        return mAudioState;
     }
 
     /**
@@ -212,7 +593,9 @@
      * @hide
      */
     public final Connection removeConnectionListener(Listener l) {
-        mListeners.remove(l);
+        if (l != null) {
+            mListeners.remove(l);
+        }
         return this;
     }
 
@@ -236,36 +619,36 @@
      * @param state The new audio state.
      * @hide
      */
-    final void setAudioState(CallAudioState state) {
+    final void setAudioState(AudioState state) {
         Log.d(this, "setAudioState %s", state);
-        mCallAudioState = state;
+        mAudioState = state;
         onSetAudioState(state);
     }
 
     /**
-     * @param state An integer value from {@link State}.
+     * @param state An integer value of a {@code STATE_*} constant.
      * @return A string representation of the value.
      */
     public static String stateToString(int state) {
         switch (state) {
-            case State.INITIALIZING:
-                return "INITIALIZING";
-            case State.NEW:
-                return "NEW";
-            case State.RINGING:
-                return "RINGING";
-            case State.DIALING:
-                return "DIALING";
-            case State.ACTIVE:
-                return "ACTIVE";
-            case State.HOLDING:
-                return "HOLDING";
-            case State.DISCONNECTED:
+            case STATE_INITIALIZING:
+                return "STATE_INITIALIZING";
+            case STATE_NEW:
+                return "STATE_NEW";
+            case STATE_RINGING:
+                return "STATE_RINGING";
+            case STATE_DIALING:
+                return "STATE_DIALING";
+            case STATE_ACTIVE:
+                return "STATE_ACTIVE";
+            case STATE_HOLDING:
+                return "STATE_HOLDING";
+            case STATE_DISCONNECTED:
                 return "DISCONNECTED";
-            case State.FAILED:
-                return "FAILED";
-            case State.CANCELED:
-                return "CANCELED";
+            case STATE_FAILED:
+                return "STATE_FAILED";
+            case STATE_CANCELED:
+                return "STATE_CANCELED";
             default:
                 Log.wtf(Connection.class, "Unknown state %d", state);
                 return "UNKNOWN";
@@ -297,11 +680,11 @@
     }
 
     public final List<Connection> getChildConnections() {
-        return mChildConnections;
+        return mUnmodifiableChildConnections;
     }
 
     /**
-     * Returns the connection's {@link CallCapabilities}
+     * Returns the connection's {@link PhoneCapabilities}
      */
     public final int getCallCapabilities() {
         return mCallCapabilities;
@@ -311,7 +694,7 @@
      * Sets the value of the {@link #getHandle()} property.
      *
      * @param handle The new handle.
-     * @param presentation The {@link CallPropertyPresentation} which controls how the handle is
+     * @param presentation The {@link PropertyPresentation} which controls how the handle is
      *         shown.
      */
     public final void setHandle(Uri handle, int presentation) {
@@ -327,7 +710,7 @@
      * Sets the caller display name (CNAP).
      *
      * @param callerDisplayName The new display name.
-     * @param presentation The {@link CallPropertyPresentation} which controls how the name is
+     * @param presentation The {@link PropertyPresentation} which controls how the name is
      *         shown.
      */
     public final void setCallerDisplayName(String callerDisplayName, int presentation) {
@@ -345,17 +728,17 @@
      */
     public final void setCanceled() {
         Log.d(this, "setCanceled");
-        setState(State.CANCELED);
+        setState(STATE_CANCELED);
     }
 
     /**
-     * Move the {@link Connection} to the {@link State#FAILED} state, with the given code
+     * Move the {@link Connection} to the {@link #STATE_FAILED} state, with the given code
      * ({@see DisconnectCause}) and message. This message is not shown to the user, but is useful
      * for logging and debugging purposes.
      * <p>
      * After calling this, the {@link Connection} will not be used.
      *
-     * @param code The {@link android.telephony.DisconnectCause} indicating why the connection
+     * @param code The {@link DisconnectCause} indicating why the connection
      *             failed.
      * @param message A message explaining why the {@link Connection} failed.
      */
@@ -363,15 +746,15 @@
         Log.d(this, "setFailed (%d: %s)", code, message);
         mFailureCode = code;
         mFailureMessage = message;
-        setState(State.FAILED);
+        setState(STATE_FAILED);
     }
 
     /**
      * Set the video state for the connection.
-     * Valid values: {@link android.telecomm.VideoCallProfile.VideoState#AUDIO_ONLY},
-     * {@link android.telecomm.VideoCallProfile.VideoState#BIDIRECTIONAL},
-     * {@link android.telecomm.VideoCallProfile.VideoState#TX_ENABLED},
-     * {@link android.telecomm.VideoCallProfile.VideoState#RX_ENABLED}.
+     * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#TX_ENABLED},
+     * {@link VideoProfile.VideoState#RX_ENABLED}.
      *
      * @param videoState The new video state.
      */
@@ -389,68 +772,68 @@
      */
     public final void setActive() {
         setRequestingRingback(false);
-        setState(State.ACTIVE);
+        setState(STATE_ACTIVE);
     }
 
     /**
      * Sets state to ringing (e.g., an inbound ringing call).
      */
     public final void setRinging() {
-        setState(State.RINGING);
+        setState(STATE_RINGING);
     }
 
     /**
      * Sets state to initializing (this Connection is not yet ready to be used).
      */
     public final void setInitializing() {
-        setState(State.INITIALIZING);
+        setState(STATE_INITIALIZING);
     }
 
     /**
      * Sets state to initialized (the Connection has been set up and is now ready to be used).
      */
     public final void setInitialized() {
-        setState(State.NEW);
+        setState(STATE_NEW);
     }
 
     /**
      * Sets state to dialing (e.g., dialing an outbound call).
      */
     public final void setDialing() {
-        setState(State.DIALING);
+        setState(STATE_DIALING);
     }
 
     /**
      * Sets state to be on hold.
      */
     public final void setOnHold() {
-        setState(State.HOLDING);
+        setState(STATE_HOLDING);
     }
 
     /**
      * Sets the video call provider.
-     * @param videoCallProvider The video call provider.
+     * @param videoProvider The video provider.
      */
-    public final void setVideoCallProvider(ConnectionService.VideoCallProvider videoCallProvider) {
-        mVideoCallProvider = videoCallProvider;
+    public final void setVideoProvider(VideoProvider videoProvider) {
+        mVideoProvider = videoProvider;
         for (Listener l : mListeners) {
-            l.onVideoCallProviderChanged(this, videoCallProvider);
+            l.onVideoProviderChanged(this, videoProvider);
         }
     }
 
-    public final ConnectionService.VideoCallProvider getVideoCallProvider() {
-        return mVideoCallProvider;
+    public final VideoProvider getVideoProvider() {
+        return mVideoProvider;
     }
 
     /**
      * Sets state to disconnected.
      *
      * @param cause The reason for the disconnection, any of
-     *         {@link android.telephony.DisconnectCause}.
+     *         {@link DisconnectCause}.
      * @param message Optional call-service-provided message about the disconnect.
      */
     public final void setDisconnected(int cause, String message) {
-        setState(State.DISCONNECTED);
+        setState(STATE_DISCONNECTED);
         Log.d(this, "Disconnected with cause %d message %s", cause, message);
         for (Listener l : mListeners) {
             l.onDisconnected(this, cause, message);
@@ -482,7 +865,7 @@
     }
 
     /**
-     * Sets the connection's {@link CallCapabilities}.
+     * Sets the connection's {@link PhoneCapabilities}.
      *
      * @param callCapabilities The new call capabilities.
      */
@@ -499,24 +882,8 @@
      * Tears down the Connection object.
      */
     public final void destroy() {
-        // It is possible that onDestroy() will trigger the listener to remove itself which will
-        // result in a concurrent modification exception. To counteract this we make a copy of the
-        // listeners and iterate on that.
-        for (Listener l : new ArrayList<>(mListeners)) {
-            if (mListeners.contains(l)) {
-                l.onDestroyed(this);
-            }
-        }
-    }
-
-    /**
-     * Sets the current signal levels for the underlying data transport.
-     *
-     * @param details A {@link android.os.Bundle} containing details of the current level.
-     */
-    public final void setSignal(Bundle details) {
         for (Listener l : mListeners) {
-            l.onSignalChanged(this, details);
+            l.onDestroyed(this);
         }
     }
 
@@ -563,6 +930,13 @@
     }
 
     /**
+     * Obtains the connections with which this connection can be conferenced.
+     */
+    public final List<Connection> getConferenceableConnections() {
+        return mUnmodifiableConferenceableConnections;
+    }
+
+    /**
      * Launches an activity for this connection on top of the in-call UI.
      *
      * @param intent The intent to use to start the activity.
@@ -577,17 +951,17 @@
     }
 
     /**
-     * Notifies this Connection that the {@link #getCallAudioState()} property has a new value.
+     * Notifies this Connection that the {@link #getAudioState()} property has a new value.
      *
      * @param state The new call audio state.
      */
-    public void onSetAudioState(CallAudioState state) {}
+    public void onSetAudioState(AudioState state) {}
 
     /**
      * Notifies this Connection of an internal state change. This method is called after the
      * state is changed.
      *
-     * @param state The new state, a {@link Connection.State} member.
+     * @param state The new state, one of the {@code STATE_*} constants.
      */
     public void onSetState(int state) {}
 
@@ -629,7 +1003,7 @@
     public void onUnhold() {}
 
     /**
-     * Notifies this Connection, which is in {@link State#RINGING}, of
+     * Notifies this Connection, which is in {@link #STATE_RINGING}, of
      * a request to accept.
      *
      * @param videoState The video state in which to answer the call.
@@ -637,7 +1011,7 @@
     public void onAnswer(int videoState) {}
 
     /**
-     * Notifies this Connection, which is in {@link State#RINGING}, of
+     * Notifies this Connection, which is in {@link #STATE_RINGING}, of
      * a request to reject.
      */
     public void onReject() {}
@@ -648,12 +1022,6 @@
     public void onPostDialContinue(boolean proceed) {}
 
     /**
-     * Swap this call with a background call. This is used for calls that don't support hold,
-     * e.g. CDMA.
-     */
-    public void onSwapWithBackgroundCall() {}
-
-    /**
      * TODO: Needs documentation.
      */
     public void onChildrenChanged(List<Connection> children) {}
@@ -673,6 +1041,38 @@
      */
     public void onConferenceWith(Connection otherConnection) {}
 
+    static String toLogSafePhoneNumber(String number) {
+        // For unknown number, log empty string.
+        if (number == null) {
+            return "";
+        }
+
+        if (PII_DEBUG) {
+            // When PII_DEBUG is true we emit PII.
+            return number;
+        }
+
+        // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
+        // sanitized phone numbers.
+        StringBuilder builder = new StringBuilder();
+        for (int i = 0; i < number.length(); i++) {
+            char c = number.charAt(i);
+            if (c == '-' || c == '@' || c == '.') {
+                builder.append(c);
+            } else {
+                builder.append('x');
+            }
+        }
+        return builder.toString();
+    }
+
+    static synchronized Connection getNullConnection() {
+        if (sNullConnection == null) {
+            sNullConnection = new Connection() {};
+        }
+        return sNullConnection;
+    }
+
     private void addChild(Connection connection) {
         Log.d(this, "adding child %s", connection);
         mChildConnections.add(connection);
@@ -686,7 +1086,7 @@
     }
 
     private void setState(int state) {
-        if (mState == State.FAILED || mState == State.CANCELED) {
+        if (mState == STATE_FAILED || mState == STATE_CANCELED) {
             Log.d(this, "Connection already %s; cannot transition out of this state.",
                     stateToString(mState));
             return;
@@ -711,7 +1111,7 @@
      * @param message A reason for why the connection failed (not intended to be shown to the user).
      * @return A {@link Connection} which indicates failure.
      */
-    public static Connection getFailedConnection(final int code, final String message) {
+    public static Connection createFailedConnection(final int code, final String message) {
         return new Connection() {{
             setFailed(code, message);
         }};
@@ -723,13 +1123,13 @@
 
     /**
      * Return a {@link Connection} which represents a canceled a connection attempt. The returned
-     * {@link Connection} will have state {@link State#CANCELED}, and cannot be moved out of that
+     * {@link Connection} will have state {@link #STATE_CANCELED}, and cannot be moved out of that
      * state. This connection should not be used for anything, and no other {@link Connection}s
      * should be attempted.
      *
      * @return A {@link Connection} which indicates that the underlying call should be canceled.
      */
-    public static Connection getCanceledConnection() {
+    public static Connection createCanceledConnection() {
         return CANCELED_CONNECTION;
     }
 
diff --git a/telecomm/java/android/telecomm/ConnectionRequest.aidl b/telecomm/java/android/telecomm/ConnectionRequest.aidl
index 72e5c8c..6081c22 100644
--- a/telecomm/java/android/telecomm/ConnectionRequest.aidl
+++ b/telecomm/java/android/telecomm/ConnectionRequest.aidl
@@ -16,4 +16,7 @@
 
 package android.telecomm;
 
+/**
+ * {@hide}
+ */
 parcelable ConnectionRequest;
diff --git a/telecomm/java/android/telecomm/ConnectionRequest.java b/telecomm/java/android/telecomm/ConnectionRequest.java
index 1016091..5ea1d1a 100644
--- a/telecomm/java/android/telecomm/ConnectionRequest.java
+++ b/telecomm/java/android/telecomm/ConnectionRequest.java
@@ -20,8 +20,6 @@
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.os.ResultReceiver;
-import android.telephony.DisconnectCause;
 
 /**
  * Simple data container encapsulating a request to some entity to
@@ -30,10 +28,7 @@
 public final class ConnectionRequest implements Parcelable {
 
     // TODO: Token to limit recursive invocations
-    // TODO: Consider upgrading "mHandle" to ordered list of handles, indicating a set of phone
-    //         numbers that would satisfy the client's needs, in order of preference
     private final PhoneAccountHandle mAccountHandle;
-    private final String mCallId;
     private final Uri mHandle;
     private final int mHandlePresentation;
     private final Bundle mExtras;
@@ -41,22 +36,19 @@
 
     /**
      * @param accountHandle The accountHandle which should be used to place the call.
-     * @param callId An identifier for this call.
      * @param handle The handle (e.g., phone number) to which the {@link Connection} is to connect.
-     * @param handlePresentation The {@link CallPropertyPresentation} which controls how the handle
+     * @param handlePresentation The {@link PropertyPresentation} which controls how the handle
      *         is shown.
      * @param extras Application-specific extra data.
      * @param videoState Determines the video state for the connection.
      */
     public ConnectionRequest(
             PhoneAccountHandle accountHandle,
-            String callId,
             Uri handle,
             int handlePresentation,
             Bundle extras,
             int videoState) {
         mAccountHandle = accountHandle;
-        mCallId = callId;
         mHandle = handle;
         mHandlePresentation = handlePresentation;
         mExtras = extras;
@@ -65,7 +57,6 @@
 
     private ConnectionRequest(Parcel in) {
         mAccountHandle = in.readParcelable(getClass().getClassLoader());
-        mCallId = in.readString();
         mHandle = in.readParcelable(getClass().getClassLoader());
         mHandlePresentation = in.readInt();
         mExtras = in.readParcelable(getClass().getClassLoader());
@@ -78,17 +69,12 @@
     public PhoneAccountHandle getAccountHandle() { return mAccountHandle; }
 
     /**
-     * An identifier for this call.
-     */
-    public String getCallId() { return mCallId; }
-
-    /**
      * The handle (e.g., phone number) to which the {@link Connection} is to connect.
      */
     public Uri getHandle() { return mHandle; }
 
     /**
-     * The {@link CallPropertyPresentation} which controls how the handle is shown.
+     * The {@link PropertyPresentation} which controls how the handle is shown.
      */
     public int getHandlePresentation() { return mHandlePresentation; }
 
@@ -100,11 +86,11 @@
     public Bundle getExtras() { return mExtras; }
 
     /**
-     * Determines the video state for the connection.
-     * Valid values: {@link VideoCallProfile.VideoState#AUDIO_ONLY},
-     * {@link VideoCallProfile.VideoState#BIDIRECTIONAL},
-     * {@link VideoCallProfile.VideoState#TX_ENABLED},
-     * {@link VideoCallProfile.VideoState#RX_ENABLED}.
+     * Describes the video states supported by the client requesting the connection.
+     * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#TX_ENABLED},
+     * {@link VideoProfile.VideoState#RX_ENABLED}.
      *
      * @return The video state for the connection.
      */
@@ -114,10 +100,10 @@
 
     @Override
     public String toString() {
-        return String.format("PhoneConnectionRequest %s %s",
+        return String.format("ConnectionRequest %s %s",
                 mHandle == null
                         ? Uri.EMPTY
-                        : ConnectionService.toLogSafePhoneNumber(mHandle.toString()),
+                        : Connection.toLogSafePhoneNumber(mHandle.toString()),
                 mExtras == null ? "" : mExtras);
     }
 
@@ -144,7 +130,6 @@
     @Override
     public void writeToParcel(Parcel destination, int flags) {
         destination.writeParcelable(mAccountHandle, 0);
-        destination.writeString(mCallId);
         destination.writeParcelable(mHandle, 0);
         destination.writeInt(mHandlePresentation);
         destination.writeParcelable(mExtras, 0);
diff --git a/telecomm/java/android/telecomm/ConnectionService.java b/telecomm/java/android/telecomm/ConnectionService.java
index 80c7bbc..d2d4828 100644
--- a/telecomm/java/android/telecomm/ConnectionService.java
+++ b/telecomm/java/android/telecomm/ConnectionService.java
@@ -17,26 +17,20 @@
 package android.telecomm;
 
 import android.annotation.SdkConstant;
-import android.annotation.SdkConstant.SdkConstantType;
 import android.app.PendingIntent;
 import android.app.Service;
 import android.content.ComponentName;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
 import android.telephony.DisconnectCause;
-import android.os.RemoteException;
-import android.view.Surface;
 
 import com.android.internal.os.SomeArgs;
 import com.android.internal.telecomm.IConnectionService;
 import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoCallCallback;
-import com.android.internal.telecomm.IVideoCallProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 
 import java.util.ArrayList;
@@ -54,7 +48,7 @@
     /**
      * The {@link Intent} that must be declared as handled by the service.
      */
-    @SdkConstant(SdkConstantType.SERVICE_ACTION)
+    @SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION)
     public static final String SERVICE_INTERFACE = "android.telecomm.ConnectionService";
 
     // Flag controlling whether PII is emitted into the logs
@@ -73,12 +67,9 @@
     private static final int MSG_STOP_DTMF_TONE = 11;
     private static final int MSG_CONFERENCE = 12;
     private static final int MSG_SPLIT_FROM_CONFERENCE = 13;
-    private static final int MSG_SWAP_WITH_BACKGROUND_CALL = 14;
-    private static final int MSG_ON_POST_DIAL_CONTINUE = 15;
-    private static final int MSG_ON_PHONE_ACCOUNT_CLICKED = 16;
-    private static final int MSG_REMOVE_CONNECTION_SERVICE_ADAPTER = 17;
-
-    private static Connection sNullConnection;
+    private static final int MSG_ON_POST_DIAL_CONTINUE = 14;
+    private static final int MSG_ON_PHONE_ACCOUNT_CLICKED = 15;
+    private static final int MSG_REMOVE_CONNECTION_SERVICE_ADAPTER = 16;
 
     private final Map<String, Connection> mConnectionById = new HashMap<>();
     private final Map<Connection, String> mIdByConnection = new HashMap<>();
@@ -88,37 +79,6 @@
     private final List<Runnable> mPreInitializationConnectionRequests = new ArrayList<>();
     private final ConnectionServiceAdapter mAdapter = new ConnectionServiceAdapter();
 
-    /**
-     * A callback for providing the result of creating a connection.
-     */
-    public interface CreateConnectionResponse<CONNECTION> {
-        /**
-         * Tells Telecomm that an attempt to create the connection succeeded.
-         *
-         * @param request The original request.
-         * @param connection The connection.
-         */
-        void onSuccess(ConnectionRequest request, CONNECTION connection);
-
-        /**
-         * Tells Telecomm that an attempt to create the connection failed. Telecomm will try a
-         * different service until a service cancels the process or completes it successfully.
-         *
-         * @param request The original request.
-         * @param code An integer code indicating the reason for failure.
-         * @param msg A message explaining the reason for failure.
-         */
-        void onFailure(ConnectionRequest request, int code, String msg);
-
-        /**
-         * Tells Telecomm to cancel creating the connection. Telecomm will stop trying to create
-         * the connection an no more services will be tried.
-         *
-         * @param request The original request.
-         */
-        void onCancel(ConnectionRequest request);
-    }
-
     private final IBinder mBinder = new IConnectionService.Stub() {
         @Override
         public void addConnectionServiceAdapter(IConnectionServiceAdapter adapter) {
@@ -132,11 +92,13 @@
         @Override
         public void createConnection(
                 PhoneAccountHandle connectionManagerPhoneAccount,
+                String id,
                 ConnectionRequest request,
                 boolean isIncoming) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = connectionManagerPhoneAccount;
-            args.arg2 = request;
+            args.arg2 = id;
+            args.arg3 = request;
             args.argi1 = isIncoming ? 1 : 0;
             mHandler.obtainMessage(MSG_CREATE_CONNECTION, args).sendToTarget();
         }
@@ -175,7 +137,7 @@
         }
 
         @Override
-        public void onAudioStateChanged(String callId, CallAudioState audioState) {
+        public void onAudioStateChanged(String callId, AudioState audioState) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = callId;
             args.arg2 = audioState;
@@ -206,11 +168,6 @@
         }
 
         @Override
-        public void swapWithBackgroundCall(String callId) {
-            mHandler.obtainMessage(MSG_SWAP_WITH_BACKGROUND_CALL, callId).sendToTarget();
-        }
-
-        @Override
         public void onPostDialContinue(String callId, boolean proceed) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = callId;
@@ -240,22 +197,27 @@
                     try {
                         final PhoneAccountHandle connectionManagerPhoneAccount =
                                 (PhoneAccountHandle) args.arg1;
-                        final ConnectionRequest request = (ConnectionRequest) args.arg2;
+                        final String id = (String) args.arg2;
+                        final ConnectionRequest request = (ConnectionRequest) args.arg3;
                         final boolean isIncoming = args.argi1 == 1;
                         if (!mAreAccountsInitialized) {
-                            Log.d(this, "Enqueueing pre-init request %s", request.getCallId());
+                            Log.d(this, "Enqueueing pre-init request %s", id);
                             mPreInitializationConnectionRequests.add(new Runnable() {
                                 @Override
                                 public void run() {
                                     createConnection(
                                             connectionManagerPhoneAccount,
+                                            id,
                                             request,
                                             isIncoming);
                                 }
                             });
                         } else {
-                            Log.d(this, "Immediately processing request %s", request.getCallId());
-                            createConnection(connectionManagerPhoneAccount, request, isIncoming);
+                            createConnection(
+                                    connectionManagerPhoneAccount,
+                                    id,
+                                    request,
+                                    isIncoming);
                         }
                     } finally {
                         args.recycle();
@@ -292,7 +254,7 @@
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
                         String callId = (String) args.arg1;
-                        CallAudioState audioState = (CallAudioState) args.arg2;
+                        AudioState audioState = (AudioState) args.arg2;
                         onAudioStateChanged(callId, audioState);
                     } finally {
                         args.recycle();
@@ -319,9 +281,6 @@
                 case MSG_SPLIT_FROM_CONFERENCE:
                     splitFromConference((String) msg.obj);
                     break;
-                case MSG_SWAP_WITH_BACKGROUND_CALL:
-                    swapWithBackgroundCall((String) msg.obj);
-                    break;
                 case MSG_ON_POST_DIAL_CONTINUE: {
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
@@ -348,22 +307,22 @@
             String id = mIdByConnection.get(c);
             Log.d(this, "Adapter set state %s %s", id, Connection.stateToString(state));
             switch (state) {
-                case Connection.State.ACTIVE:
+                case Connection.STATE_ACTIVE:
                     mAdapter.setActive(id);
                     break;
-                case Connection.State.DIALING:
+                case Connection.STATE_DIALING:
                     mAdapter.setDialing(id);
                     break;
-                case Connection.State.DISCONNECTED:
+                case Connection.STATE_DISCONNECTED:
                     // Handled in onDisconnected()
                     break;
-                case Connection.State.HOLDING:
+                case Connection.STATE_HOLDING:
                     mAdapter.setOnHold(id);
                     break;
-                case Connection.State.NEW:
+                case Connection.STATE_NEW:
                     // Nothing to tell Telecomm
                     break;
-                case Connection.State.RINGING:
+                case Connection.STATE_RINGING:
                     mAdapter.setRinging(id);
                     break;
             }
@@ -397,11 +356,6 @@
         }
 
         @Override
-        public void onSignalChanged(Connection c, Bundle details) {
-            // TODO: Unsupported yet
-        }
-
-        @Override
         public void onDestroyed(Connection c) {
             removeConnection(c);
         }
@@ -421,11 +375,11 @@
         }
 
         @Override
-        public void onCallCapabilitiesChanged(Connection c, int callCapabilities) {
+        public void onCallCapabilitiesChanged(Connection c, int capabilities) {
             String id = mIdByConnection.get(c);
-            Log.d(this, "call capabilities: parcelableconnection: %s",
-                    CallCapabilities.toString(callCapabilities));
-            mAdapter.setCallCapabilities(id, callCapabilities);
+            Log.d(this, "capabilities: parcelableconnection: %s",
+                    PhoneCapabilities.toString(capabilities));
+            mAdapter.setCallCapabilities(id, capabilities);
         }
 
         @Override
@@ -436,9 +390,9 @@
         }
 
         @Override
-        public void onVideoCallProviderChanged(Connection c, VideoCallProvider videoCallProvider) {
+        public void onVideoProviderChanged(Connection c, Connection.VideoProvider videoProvider) {
             String id = mIdByConnection.get(c);
-            mAdapter.setVideoCallProvider(id, videoCallProvider);
+            mAdapter.setVideoProvider(id, videoProvider);
         }
 
         @Override
@@ -487,6 +441,7 @@
      */
     private void createConnection(
             final PhoneAccountHandle callManagerAccount,
+            final String callId,
             final ConnectionRequest request,
             boolean isIncoming) {
         Log.d(this, "call %s", request);
@@ -499,64 +454,76 @@
         }
 
         if (createdConnection != null) {
-            if (createdConnection.getState() == Connection.State.INITIALIZING) {
+            Log.d(this, "adapter handleCreateConnectionSuccessful %s", callId);
+            if (createdConnection.getState() == Connection.STATE_INITIALIZING) {
                 // Wait for the connection to become initialized.
                 createdConnection.addConnectionListener(new Connection.Listener() {
                     @Override
                     public void onStateChanged(Connection c, int state) {
                         switch (state) {
-                            case Connection.State.FAILED:
+                            case Connection.STATE_FAILED:
                                 Log.d(this, "Connection (%s) failed (%d: %s)", request,
                                         c.getFailureCode(), c.getFailureMessage());
                                 Log.d(this, "adapter handleCreateConnectionFailed %s",
-                                        request.getCallId());
-                                mAdapter.handleCreateConnectionFailed(request, c.getFailureCode(),
+                                        callId);
+                                mAdapter.handleCreateConnectionFailed(
+                                        callId,
+                                        request,
+                                        c.getFailureCode(),
                                         c.getFailureMessage());
                                 break;
-                            case Connection.State.CANCELED:
+                            case Connection.STATE_CANCELED:
                                 Log.d(this, "adapter handleCreateConnectionCanceled %s",
-                                        request.getCallId());
-                                mAdapter.handleCreateConnectionCancelled(request);
+                                        callId);
+                                mAdapter.handleCreateConnectionCancelled(callId, request);
                                 break;
-                            case Connection.State.INITIALIZING:
-                                Log.d(this, "State changed to INITIALIZING; ignoring");
+                            case Connection.STATE_INITIALIZING:
+                                Log.d(this, "State changed to STATE_INITIALIZING; ignoring");
                                 return; // Don't want to stop listening on this state transition.
-                            default:
-                                Log.d(this, "Connection created in state %s",
-                                        Connection.stateToString(state));
-                                connectionCreated(request, createdConnection);
-                                break;
                         }
                         c.removeConnectionListener(this);
                     }
                 });
-            } else if (createdConnection.getState() == Connection.State.CANCELED) {
+                Log.d(this, "Connection created in state INITIALIZING");
+                connectionCreated(callId, request, createdConnection);
+            } else if (createdConnection.getState() == Connection.STATE_CANCELED) {
                 // Tell telecomm not to attempt any more services.
-                mAdapter.handleCreateConnectionCancelled(request);
-            } else if (createdConnection.getState() == Connection.State.FAILED) {
-                mAdapter.handleCreateConnectionFailed(request, createdConnection.getFailureCode(),
+                mAdapter.handleCreateConnectionCancelled(callId, request);
+            } else if (createdConnection.getState() == Connection.STATE_FAILED) {
+                mAdapter.handleCreateConnectionFailed(
+                        callId,
+                        request,
+                        createdConnection.getFailureCode(),
                         createdConnection.getFailureMessage());
             } else {
-                connectionCreated(request, createdConnection);
+                connectionCreated(callId, request, createdConnection);
             }
         } else {
             // Tell telecomm to try a different service.
-            Log.d(this, "adapter handleCreateConnectionFailed %s", request.getCallId());
-            mAdapter.handleCreateConnectionFailed(request, DisconnectCause.ERROR_UNSPECIFIED, null);
+            Log.d(this, "adapter handleCreateConnectionFailed %s", callId);
+            mAdapter.handleCreateConnectionFailed(
+                    callId,
+                    request,
+                    DisconnectCause.ERROR_UNSPECIFIED,
+                    null);
         }
     }
 
-    private void connectionCreated(ConnectionRequest request, Connection connection) {
-        addConnection(request.getCallId(), connection);
+    private void connectionCreated(
+            String callId,
+            ConnectionRequest request,
+            Connection connection) {
+        addConnection(callId, connection);
         Uri handle = connection.getHandle();
         String number = handle == null ? "null" : handle.getSchemeSpecificPart();
         Log.v(this, "connectionCreated, parcelableconnection: %s, %d, %s",
-                toLogSafePhoneNumber(number),
+                Connection.toLogSafePhoneNumber(number),
                 connection.getState(),
-                CallCapabilities.toString(connection.getCallCapabilities()));
+                PhoneCapabilities.toString(connection.getCallCapabilities()));
 
-        Log.d(this, "adapter handleCreateConnectionSuccessful %s", request.getCallId());
+        Log.d(this, "adapter handleCreateConnectionSuccessful %s", callId);
         mAdapter.handleCreateConnectionSuccessful(
+                callId,
                 request,
                 new ParcelableConnection(
                         request.getAccountHandle(),
@@ -566,9 +533,12 @@
                         connection.getHandlePresentation(),
                         connection.getCallerDisplayName(),
                         connection.getCallerDisplayNamePresentation(),
-                        connection.getVideoCallProvider() == null ?
-                                null : connection.getVideoCallProvider().getInterface(),
-                        connection.getVideoState()));
+                        connection.getVideoProvider() == null ?
+                                null : connection.getVideoProvider().getInterface(),
+                        connection.getVideoState(),
+                        connection.isRequestingRingback(),
+                        connection.getAudioModeIsVoip(),
+                        connection.getStatusHints()));
     }
 
     private void abort(String callId) {
@@ -601,7 +571,7 @@
         findConnectionForAction(callId, "unhold").onUnhold();
     }
 
-    private void onAudioStateChanged(String callId, CallAudioState audioState) {
+    private void onAudioStateChanged(String callId, AudioState audioState) {
         Log.d(this, "onAudioStateChanged %s %s", callId, audioState);
         findConnectionForAction(callId, "onAudioStateChanged").setAudioState(audioState);
     }
@@ -620,7 +590,7 @@
         Log.d(this, "conference %s, %s", conferenceCallId, callId);
 
         Connection connection = findConnectionForAction(callId, "conference");
-        if (connection == getNullConnection()) {
+        if (connection == Connection.getNullConnection()) {
             Log.w(this, "Connection missing in conference request %s.", callId);
             return;
         }
@@ -646,14 +616,15 @@
                     public void onError(String request, int code, String reason) {
                         // no-op
                     }
-                });
+                }
+        );
     }
 
     private void splitFromConference(String callId) {
         Log.d(this, "splitFromConference(%s)", callId);
 
         Connection connection = findConnectionForAction(callId, "splitFromConference");
-        if (connection == getNullConnection()) {
+        if (connection == Connection.getNullConnection()) {
             Log.w(this, "Connection missing in conference request %s.", callId);
             return;
         }
@@ -661,11 +632,6 @@
         // TODO: Find existing conference call and invoke split(connection).
     }
 
-    private void swapWithBackgroundCall(String callId) {
-        Log.d(this, "swapWithBackgroundCall(%s)", callId);
-        findConnectionForAction(callId, "swapWithBackgroundCall").onSwapWithBackgroundCall();
-    }
-
     private void onPostDialContinue(String callId, boolean proceed) {
         Log.d(this, "onPostDialContinue(%s)", callId);
         findConnectionForAction(callId, "stopDtmfTone").onPostDialContinue(proceed);
@@ -792,7 +758,7 @@
      *         making the connection.
      * @param request Details about the outgoing call.
      * @return The {@code Connection} object to satisfy this call, or the result of an invocation
-     *         of {@link Connection#getFailedConnection(int, String)} to not handle the call.
+     *         of {@link Connection#createFailedConnection(int, String)} to not handle the call.
      */
     public Connection onCreateOutgoingConnection(
             PhoneAccountHandle connectionManagerPhoneAccount,
@@ -805,6 +771,9 @@
      * specified connection into a conference call. The specified connection can be any connection
      * which had previously specified itself as conference-capable including both simple connections
      * and connections previously returned from this method.
+     * <p>
+     * TODO: To be refactored out with conference call re-engineering<br/>
+     * TODO: Also remove class {@link Response} once this method is removed
      *
      * @param connection The connection from which the user opted to start a conference call.
      * @param token The token to be passed into the response callback.
@@ -829,31 +798,6 @@
      */
     public void onConnectionRemoved(Connection connection) {}
 
-    static String toLogSafePhoneNumber(String number) {
-        // For unknown number, log empty string.
-        if (number == null) {
-            return "";
-        }
-
-        if (PII_DEBUG) {
-            // When PII_DEBUG is true we emit PII.
-            return number;
-        }
-
-        // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
-        // sanitized phone numbers.
-        StringBuilder builder = new StringBuilder();
-        for (int i = 0; i < number.length(); i++) {
-            char c = number.charAt(i);
-            if (c == '-' || c == '@' || c == '.') {
-                builder.append(c);
-            } else {
-                builder.append('x');
-            }
-        }
-        return builder.toString();
-    }
-
     private void onAccountsInitialized() {
         mAreAccountsInitialized = true;
         for (Runnable r : mPreInitializationConnectionRequests) {
@@ -883,346 +827,6 @@
             return mConnectionById.get(callId);
         }
         Log.w(this, "%s - Cannot find Connection %s", action, callId);
-        return getNullConnection();
-    }
-
-    private final static synchronized Connection getNullConnection() {
-        if (sNullConnection == null) {
-            sNullConnection = new Connection() {};
-        }
-        return sNullConnection;
-    }
-
-    /**
-     * Abstraction for a class which provides video call functionality. This class contains no base
-     * implementation for its methods. It is expected that subclasses will override these
-     * functions to provide the desired behavior if it is supported.
-     */
-    public static abstract class VideoCallProvider {
-        private static final int MSG_SET_VIDEO_CALL_LISTENER = 1;
-        private static final int MSG_SET_CAMERA = 2;
-        private static final int MSG_SET_PREVIEW_SURFACE = 3;
-        private static final int MSG_SET_DISPLAY_SURFACE = 4;
-        private static final int MSG_SET_DEVICE_ORIENTATION = 5;
-        private static final int MSG_SET_ZOOM = 6;
-        private static final int MSG_SEND_SESSION_MODIFY_REQUEST = 7;
-        private static final int MSG_SEND_SESSION_MODIFY_RESPONSE = 8;
-        private static final int MSG_REQUEST_CAMERA_CAPABILITIES = 9;
-        private static final int MSG_REQUEST_CALL_DATA_USAGE = 10;
-        private static final int MSG_SET_PAUSE_IMAGE = 11;
-
-        private final VideoCallProviderHandler mMessageHandler = new VideoCallProviderHandler();
-        private final VideoCallProviderBinder mBinder;
-        private IVideoCallCallback mVideoCallListener;
-
-        /**
-         * Default handler used to consolidate binder method calls onto a single thread.
-         */
-        private final class VideoCallProviderHandler extends Handler {
-            @Override
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case MSG_SET_VIDEO_CALL_LISTENER:
-                        mVideoCallListener = IVideoCallCallback.Stub.asInterface((IBinder) msg.obj);
-                        break;
-                    case MSG_SET_CAMERA:
-                        onSetCamera((String) msg.obj);
-                        break;
-                    case MSG_SET_PREVIEW_SURFACE:
-                        onSetPreviewSurface((Surface) msg.obj);
-                        break;
-                    case MSG_SET_DISPLAY_SURFACE:
-                        onSetDisplaySurface((Surface) msg.obj);
-                        break;
-                    case MSG_SET_DEVICE_ORIENTATION:
-                        onSetDeviceOrientation(msg.arg1);
-                        break;
-                    case MSG_SET_ZOOM:
-                        onSetZoom((Float) msg.obj);
-                        break;
-                    case MSG_SEND_SESSION_MODIFY_REQUEST:
-                        onSendSessionModifyRequest((VideoCallProfile) msg.obj);
-                        break;
-                    case MSG_SEND_SESSION_MODIFY_RESPONSE:
-                        onSendSessionModifyResponse((VideoCallProfile) msg.obj);
-                        break;
-                    case MSG_REQUEST_CAMERA_CAPABILITIES:
-                        onRequestCameraCapabilities();
-                        break;
-                    case MSG_REQUEST_CALL_DATA_USAGE:
-                        onRequestCallDataUsage();
-                        break;
-                    case MSG_SET_PAUSE_IMAGE:
-                        onSetPauseImage((String) msg.obj);
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-
-        /**
-         * IVideoCallProvider stub implementation.
-         */
-        private final class VideoCallProviderBinder extends IVideoCallProvider.Stub {
-            public void setVideoCallListener(IBinder videoCallListenerBinder) {
-                mMessageHandler.obtainMessage(
-                        MSG_SET_VIDEO_CALL_LISTENER, videoCallListenerBinder).sendToTarget();
-            }
-
-            public void setCamera(String cameraId) {
-                mMessageHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget();
-            }
-
-            public void setPreviewSurface(Surface surface) {
-                mMessageHandler.obtainMessage(MSG_SET_PREVIEW_SURFACE, surface).sendToTarget();
-            }
-
-            public void setDisplaySurface(Surface surface) {
-                mMessageHandler.obtainMessage(MSG_SET_DISPLAY_SURFACE, surface).sendToTarget();
-            }
-
-            public void setDeviceOrientation(int rotation) {
-                mMessageHandler.obtainMessage(MSG_SET_DEVICE_ORIENTATION, rotation).sendToTarget();
-            }
-
-            public void setZoom(float value) {
-                mMessageHandler.obtainMessage(MSG_SET_ZOOM, value).sendToTarget();
-            }
-
-            public void sendSessionModifyRequest(VideoCallProfile requestProfile) {
-                mMessageHandler.obtainMessage(
-                        MSG_SEND_SESSION_MODIFY_REQUEST, requestProfile).sendToTarget();
-            }
-
-            public void sendSessionModifyResponse(VideoCallProfile responseProfile) {
-                mMessageHandler.obtainMessage(
-                        MSG_SEND_SESSION_MODIFY_RESPONSE, responseProfile).sendToTarget();
-            }
-
-            public void requestCameraCapabilities() {
-                mMessageHandler.obtainMessage(MSG_REQUEST_CAMERA_CAPABILITIES).sendToTarget();
-            }
-
-            public void requestCallDataUsage() {
-                mMessageHandler.obtainMessage(MSG_REQUEST_CALL_DATA_USAGE).sendToTarget();
-            }
-
-            public void setPauseImage(String uri) {
-                mMessageHandler.obtainMessage(MSG_SET_PAUSE_IMAGE, uri).sendToTarget();
-            }
-        }
-
-        public VideoCallProvider() {
-            mBinder = new VideoCallProviderBinder();
-        }
-
-        /**
-         * Returns binder object which can be used across IPC methods.
-         * @hide
-         */
-        public final IVideoCallProvider getInterface() {
-            return mBinder;
-        }
-
-        /**
-         * Sets the camera to be used for video recording in a video call.
-         *
-         * @param cameraId The id of the camera.
-         */
-        public void onSetCamera(String cameraId) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Sets the surface to be used for displaying a preview of what the user's camera is
-         * currently capturing.  When video transmission is enabled, this is the video signal which
-         * is sent to the remote device.
-         *
-         * @param surface The surface.
-         */
-        public void onSetPreviewSurface(Surface surface) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Sets the surface to be used for displaying the video received from the remote device.
-         *
-         * @param surface The surface.
-         */
-        public void onSetDisplaySurface(Surface surface) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Sets the device orientation, in degrees.  Assumes that a standard portrait orientation of
-         * the device is 0 degrees.
-         *
-         * @param rotation The device orientation, in degrees.
-         */
-        public void onSetDeviceOrientation(int rotation) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Sets camera zoom ratio.
-         *
-         * @param value The camera zoom ratio.
-         */
-        public void onSetZoom(float value) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Issues a request to modify the properties of the current session.  The request is sent to
-         * the remote device where it it handled by
-         * {@link InCallService.VideoCall.Listener#onSessionModifyRequestReceived}.
-         * Some examples of session modification requests: upgrade call from audio to video, downgrade
-         * call from video to audio, pause video.
-         *
-         * @param requestProfile The requested call video properties.
-         */
-        public void onSendSessionModifyRequest(VideoCallProfile requestProfile) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Provides a response to a request to change the current call session video
-         * properties.
-         * This is in response to a request the InCall UI has received via
-         * {@link InCallService.VideoCall.Listener#onSessionModifyRequestReceived}.
-         * The response is handled on the remove device by
-         * {@link InCallService.VideoCall.Listener#onSessionModifyResponseReceived}.
-         *
-         * @param responseProfile The response call video properties.
-         */
-        public void onSendSessionModifyResponse(VideoCallProfile responseProfile) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Issues a request to the video provider to retrieve the camera capabilities.
-         * Camera capabilities are reported back to the caller via
-         * {@link InCallService.VideoCall.Listener#onCameraCapabilitiesChanged(CallCameraCapabilities)}.
-         */
-        public void onRequestCameraCapabilities() {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Issues a request to the video telephony framework to retrieve the cumulative data usage for
-         * the current call.  Data usage is reported back to the caller via
-         * {@link InCallService.VideoCall.Listener#onCallDataUsageChanged}.
-         */
-        public void onRequestCallDataUsage() {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Provides the video telephony framework with the URI of an image to be displayed to remote
-         * devices when the video signal is paused.
-         *
-         * @param uri URI of image to display.
-         */
-        public void onSetPauseImage(String uri) {
-            // To be implemented by subclass.
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * @param videoCallProfile The requested video call profile.
-         */
-        public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.receiveSessionModifyRequest(videoCallProfile);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * @param status Status of the session modify request.  Valid values are
-         *               {@link InCallService.VideoCall#SESSION_MODIFY_REQUEST_SUCCESS},
-         *               {@link InCallService.VideoCall#SESSION_MODIFY_REQUEST_FAIL},
-         *               {@link InCallService.VideoCall#SESSION_MODIFY_REQUEST_INVALID}
-         * @param requestedProfile The original request which was sent to the remote device.
-         * @param responseProfile The actual profile changes made by the remote device.
-         */
-        public void receiveSessionModifyResponse(
-                int status, VideoCallProfile requestedProfile, VideoCallProfile responseProfile) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.receiveSessionModifyResponse(
-                            status, requestedProfile, responseProfile);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * Valid values are: {@link InCallService.VideoCall#SESSION_EVENT_RX_PAUSE},
-         * {@link InCallService.VideoCall#SESSION_EVENT_RX_RESUME},
-         * {@link InCallService.VideoCall#SESSION_EVENT_TX_START},
-         * {@link InCallService.VideoCall#SESSION_EVENT_TX_STOP}
-         *
-         * @param event The event.
-         */
-        public void handleCallSessionEvent(int event) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.handleCallSessionEvent(event);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * @param width  The updated peer video width.
-         * @param height The updated peer video height.
-         */
-        public void changePeerDimensions(int width, int height) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.changePeerDimensions(width, height);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * @param dataUsage The updated data usage.
-         */
-        public void changeCallDataUsage(int dataUsage) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.changeCallDataUsage(dataUsage);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
-
-        /**
-         * Invokes callback method defined in {@link InCallService.VideoCall.Listener}.
-         *
-         * @param callCameraCapabilities The changed camera capabilities.
-         */
-        public void changeCameraCapabilities(CallCameraCapabilities callCameraCapabilities) {
-            if (mVideoCallListener != null) {
-                try {
-                    mVideoCallListener.changeCameraCapabilities(callCameraCapabilities);
-                } catch (RemoteException ignored) {
-                }
-            }
-        }
+        return Connection.getNullConnection();
     }
 }
diff --git a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java b/telecomm/java/android/telecomm/ConnectionServiceAdapter.java
index 9fd3a97..4144b81 100644
--- a/telecomm/java/android/telecomm/ConnectionServiceAdapter.java
+++ b/telecomm/java/android/telecomm/ConnectionServiceAdapter.java
@@ -17,18 +17,13 @@
 package android.telecomm;
 
 import android.app.PendingIntent;
-import android.content.ComponentName;
 import android.net.Uri;
-import android.os.IBinder;
 import android.os.IBinder.DeathRecipient;
 import android.os.RemoteException;
 
-import com.android.internal.telecomm.IConnectionService;
 import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoCallProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -41,8 +36,13 @@
  * @hide
  */
 final class ConnectionServiceAdapter implements DeathRecipient {
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
     private final Set<IConnectionServiceAdapter> mAdapters = Collections.newSetFromMap(
-            new ConcurrentHashMap<IConnectionServiceAdapter, Boolean>(2));
+            new ConcurrentHashMap<IConnectionServiceAdapter, Boolean>(8, 0.9f, 1));
 
     ConnectionServiceAdapter() {
     }
@@ -58,7 +58,7 @@
     }
 
     void removeAdapter(IConnectionServiceAdapter adapter) {
-        if (mAdapters.remove(adapter)) {
+        if (adapter != null && mAdapters.remove(adapter)) {
             adapter.asBinder().unlinkToDeath(this, 0);
         }
     }
@@ -77,28 +77,36 @@
     }
 
     void handleCreateConnectionSuccessful(
-            ConnectionRequest request, ParcelableConnection connection) {
+            String id,
+            ConnectionRequest request,
+            ParcelableConnection connection) {
         for (IConnectionServiceAdapter adapter : mAdapters) {
             try {
-                adapter.handleCreateConnectionSuccessful(request, connection);
+                adapter.handleCreateConnectionSuccessful(id, request, connection);
             } catch (RemoteException e) {
             }
         }
     }
 
-    void handleCreateConnectionFailed(ConnectionRequest request, int errorCode, String errorMsg) {
+    void handleCreateConnectionFailed(
+            String id,
+            ConnectionRequest request,
+            int errorCode,
+            String errorMsg) {
         for (IConnectionServiceAdapter adapter : mAdapters) {
             try {
-                adapter.handleCreateConnectionFailed(request, errorCode, errorMsg);
+                adapter.handleCreateConnectionFailed(id, request, errorCode, errorMsg);
             } catch (RemoteException e) {
             }
         }
     }
 
-    void handleCreateConnectionCancelled(ConnectionRequest request) {
+    void handleCreateConnectionCancelled(
+            String id,
+            ConnectionRequest request) {
         for (IConnectionServiceAdapter adapter : mAdapters) {
             try {
-                adapter.handleCreateConnectionCancelled(request);
+                adapter.handleCreateConnectionCancelled(id, request);
             } catch (RemoteException e) {
             }
         }
@@ -275,15 +283,15 @@
      * Sets the call video provider for a call.
      *
      * @param callId The unique ID of the call to set with the given call video provider.
-     * @param videoCallProvider The call video provider instance to set on the call.
+     * @param videoProvider The call video provider instance to set on the call.
      */
-    void setVideoCallProvider(
-            String callId, ConnectionService.VideoCallProvider videoCallProvider) {
+    void setVideoProvider(
+            String callId, Connection.VideoProvider videoProvider) {
         for (IConnectionServiceAdapter adapter : mAdapters) {
             try {
-                adapter.setVideoCallProvider(
+                adapter.setVideoProvider(
                         callId,
-                        videoCallProvider == null ? null : videoCallProvider.getInterface());
+                        videoProvider == null ? null : videoProvider.getInterface());
             } catch (RemoteException e) {
             }
         }
@@ -334,10 +342,10 @@
     /**
      * Sets the video state associated with a call.
      *
-     * Valid values: {@link android.telecomm.VideoCallProfile#VIDEO_STATE_AUDIO_ONLY},
-     * {@link android.telecomm.VideoCallProfile#VIDEO_STATE_BIDIRECTIONAL},
-     * {@link android.telecomm.VideoCallProfile#VIDEO_STATE_TX_ENABLED},
-     * {@link android.telecomm.VideoCallProfile#VIDEO_STATE_RX_ENABLED}.
+     * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#TX_ENABLED},
+     * {@link VideoProfile.VideoState#RX_ENABLED}.
      *
      * @param callId The unique ID of the call to set the video state for.
      * @param videoState The video state.
diff --git a/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java b/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java
index 1685bd7..2632924 100644
--- a/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java
+++ b/telecomm/java/android/telecomm/ConnectionServiceAdapterServant.java
@@ -24,7 +24,7 @@
 
 import com.android.internal.os.SomeArgs;
 import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoCallProvider;
+import com.android.internal.telecomm.IVideoProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 
 import java.util.List;
@@ -80,8 +80,9 @@
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
                         mDelegate.handleCreateConnectionSuccessful(
-                                (ConnectionRequest) args.arg1,
-                                (ParcelableConnection) args.arg2);
+                                (String) args.arg1,
+                                (ConnectionRequest) args.arg2,
+                                (ParcelableConnection) args.arg3);
                     } finally {
                         args.recycle();
                     }
@@ -91,16 +92,24 @@
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
                         mDelegate.handleCreateConnectionFailed(
-                                (ConnectionRequest) args.arg1,
+                                (String) args.arg1,
+                                (ConnectionRequest) args.arg2,
                                 args.argi1,
-                                (String) args.arg2);
+                                (String) args.arg3);
                     } finally {
                         args.recycle();
                     }
                     break;
                 }
                 case MSG_HANDLE_CREATE_CONNECTION_CANCELLED: {
-                    mDelegate.handleCreateConnectionCancelled((ConnectionRequest) msg.obj);
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    try {
+                        mDelegate.handleCreateConnectionCancelled(
+                                (String) args.arg1,
+                                (ConnectionRequest) args.arg2);
+                    } finally {
+                        args.recycle();
+                    }
                     break;
                 }
                 case MSG_SET_ACTIVE:
@@ -164,8 +173,8 @@
                 case MSG_SET_VIDEO_CALL_PROVIDER: {
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
-                        mDelegate.setVideoCallProvider((String) args.arg1,
-                                (IVideoCallProvider) args.arg2);
+                        mDelegate.setVideoProvider((String) args.arg1,
+                                (IVideoProvider) args.arg2);
                     } finally {
                         args.recycle();
                     }
@@ -229,26 +238,38 @@
     private final IConnectionServiceAdapter mStub = new IConnectionServiceAdapter.Stub() {
         @Override
         public void handleCreateConnectionSuccessful(
-                ConnectionRequest request, ParcelableConnection connection) {
+                String id,
+                ConnectionRequest request,
+                ParcelableConnection connection) {
             SomeArgs args = SomeArgs.obtain();
-            args.arg1 = request;
-            args.arg2 = connection;
+            args.arg1 = id;
+            args.arg2 = request;
+            args.arg3 = connection;
             mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_SUCCESSFUL, args).sendToTarget();
         }
 
         @Override
         public void handleCreateConnectionFailed(
-                ConnectionRequest request, int errorCode, String errorMessage) {
+                String id,
+                ConnectionRequest request,
+                int errorCode,
+                String errorMessage) {
             SomeArgs args = SomeArgs.obtain();
-            args.arg1 = request;
+            args.arg1 = id;
+            args.arg2 = request;
             args.argi1 = errorCode;
-            args.arg2 = errorMessage;
+            args.arg3 = errorMessage;
             mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_FAILED, args).sendToTarget();
         }
 
         @Override
-        public void handleCreateConnectionCancelled(ConnectionRequest request) {
-            mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_CANCELLED, request).sendToTarget();
+        public void handleCreateConnectionCancelled(
+                String id,
+                ConnectionRequest request) {
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = id;
+            args.arg2 = request;
+            mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_CANCELLED, args).sendToTarget();
         }
 
         @Override
@@ -330,11 +351,10 @@
         }
 
         @Override
-        public void setVideoCallProvider(
-                String connectionId, IVideoCallProvider videoCallProvider) {
+        public void setVideoProvider(String connectionId, IVideoProvider videoProvider) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = connectionId;
-            args.arg2 = videoCallProvider;
+            args.arg2 = videoProvider;
             mHandler.obtainMessage(MSG_SET_VIDEO_CALL_PROVIDER, args).sendToTarget();
         }
 
diff --git a/telecomm/java/android/telecomm/GatewayInfo.aidl b/telecomm/java/android/telecomm/GatewayInfo.aidl
index d59e9b4..bd81014 100644
--- a/telecomm/java/android/telecomm/GatewayInfo.aidl
+++ b/telecomm/java/android/telecomm/GatewayInfo.aidl
@@ -16,4 +16,7 @@
 
 package android.telecomm;
 
+/**
+ * {@hide}
+ */
 parcelable GatewayInfo;
diff --git a/telecomm/java/android/telecomm/InCallAdapter.java b/telecomm/java/android/telecomm/InCallAdapter.java
index 08eb03a..80f7b57 100644
--- a/telecomm/java/android/telecomm/InCallAdapter.java
+++ b/telecomm/java/android/telecomm/InCallAdapter.java
@@ -28,6 +28,10 @@
  * given call IDs to execute commands such as {@link #answerCall} for incoming calls or
  * {@link #disconnectCall} for active calls the user would like to end. Some commands are only
  * appropriate for calls in certain states; please consult each method for such limitations.
+ * <p>
+ * The adapter will stop functioning when there are no more calls.
+ *
+ * {@hide}
  */
 public final class InCallAdapter {
     private final IInCallAdapter mAdapter;
@@ -115,7 +119,7 @@
     }
 
     /**
-     * Sets the audio route (speaker, bluetooth, etc...). See {@link CallAudioState}.
+     * Sets the audio route (speaker, bluetooth, etc...). See {@link AudioState}.
      *
      * @param route The audio route to use.
      */
@@ -237,19 +241,6 @@
     }
 
     /**
-     * Swap this call with a background call. This is used for calls that don't support hold,
-     * e.g. CDMA.
-     *
-     * @param callId The unique ID of the call.
-     */
-    public void swapWithBackgroundCall(String callId) {
-        try {
-            mAdapter.swapWithBackgroundCall(callId);
-        } catch (RemoteException ignored) {
-        }
-    }
-
-    /**
      * Instructs Telecomm to turn the proximity sensor on.
      */
     public void turnProximitySensorOn() {
diff --git a/telecomm/java/android/telecomm/InCallService.java b/telecomm/java/android/telecomm/InCallService.java
index b275809..de05d1c 100644
--- a/telecomm/java/android/telecomm/InCallService.java
+++ b/telecomm/java/android/telecomm/InCallService.java
@@ -35,7 +35,8 @@
  * This service is implemented by any app that wishes to provide the user-interface for managing
  * phone calls. Telecomm binds to this service while there exists a live (active or incoming) call,
  * and uses it to notify the in-call app of any live and and recently disconnected calls.
- * TODO: What happens if two or more apps on a given device implement this interface?
+ *
+ * {@hide}
  */
 public abstract class InCallService extends Service {
     private static final int MSG_SET_IN_CALL_ADAPTER = 1;
@@ -73,7 +74,7 @@
                     break;
                 }
                 case MSG_ON_AUDIO_STATE_CHANGED:
-                    mPhone.internalAudioStateChanged((CallAudioState) msg.obj);
+                    mPhone.internalAudioStateChanged((AudioState) msg.obj);
                     break;
                 case MSG_BRING_TO_FOREGROUND:
                     mPhone.internalBringToForeground(msg.arg1 == 1);
@@ -124,7 +125,7 @@
         }
 
         @Override
-        public void onAudioStateChanged(CallAudioState audioState) {
+        public void onAudioStateChanged(AudioState audioState) {
             mHandler.obtainMessage(MSG_ON_AUDIO_STATE_CHANGED, audioState).sendToTarget();
         }
 
@@ -191,56 +192,6 @@
     public static abstract class VideoCall {
 
         /**
-         * Video is not being received (no protocol pause was issued).
-         */
-        public static final int SESSION_EVENT_RX_PAUSE = 1;
-
-        /**
-         * Video reception has resumed after a SESSION_EVENT_RX_PAUSE.
-         */
-        public static final int SESSION_EVENT_RX_RESUME = 2;
-
-        /**
-         * Video transmission has begun. This occurs after a negotiated start of video transmission
-         * when the underlying protocol has actually begun transmitting video to the remote party.
-         */
-        public static final int SESSION_EVENT_TX_START = 3;
-
-        /**
-         * Video transmission has stopped. This occurs after a negotiated stop of video transmission
-         * when the underlying protocol has actually stopped transmitting video to the remote party.
-         */
-        public static final int SESSION_EVENT_TX_STOP = 4;
-
-        /**
-         * A camera failure has occurred for the selected camera.  The In-Call UI can use this as a
-         * cue to inform the user the camera is not available.
-         */
-        public static final int SESSION_EVENT_CAMERA_FAILURE = 5;
-
-        /**
-         * Issued after {@code SESSION_EVENT_CAMERA_FAILURE} when the camera is once again ready for
-         * operation.  The In-Call UI can use this as a cue to inform the user that the camera has
-         * become available again.
-         */
-        public static final int SESSION_EVENT_CAMERA_READY = 6;
-
-        /**
-         * Session modify request was successful.
-         */
-        public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1;
-
-        /**
-         * Session modify request failed.
-         */
-        public static final int SESSION_MODIFY_REQUEST_FAIL = 2;
-
-        /**
-         * Session modify request ignored due to invalid parameters.
-         */
-        public static final int SESSION_MODIFY_REQUEST_INVALID = 3;
-
-        /**
          * Sets a listener to invoke callback methods in the InCallUI after performing video
          * telephony actions.
          *
@@ -295,7 +246,7 @@
          *
          * @param requestProfile The requested call video properties.
          */
-        public abstract void sendSessionModifyRequest(VideoCallProfile requestProfile);
+        public abstract void sendSessionModifyRequest(VideoProfile requestProfile);
 
         /**
          * Provides a response to a request to change the current call session video
@@ -307,12 +258,12 @@
          *
          * @param responseProfile The response call video properties.
          */
-        public abstract void sendSessionModifyResponse(VideoCallProfile responseProfile);
+        public abstract void sendSessionModifyResponse(VideoProfile responseProfile);
 
         /**
          * Issues a request to the video provider to retrieve the camera capabilities.
          * Camera capabilities are reported back to the caller via
-         * {@link VideoCall.Listener#onCameraCapabilitiesChanged(CallCameraCapabilities)}.
+         * {@link VideoCall.Listener#onCameraCapabilitiesChanged(CameraCapabilities)}.
          */
         public abstract void requestCameraCapabilities();
 
@@ -338,43 +289,44 @@
             /**
              * Called when a session modification request is received from the remote device.
              * The remote request is sent via
-             * {@link ConnectionService.VideoCallProvider#onSendSessionModifyRequest}. The InCall UI
+             * {@link Connection.VideoProvider#onSendSessionModifyRequest}. The InCall UI
              * is responsible for potentially prompting the user whether they wish to accept the new
              * call profile (e.g. prompt user if they wish to accept an upgrade from an audio to a
              * video call) and should call
-             * {@link ConnectionService.VideoCallProvider#onSendSessionModifyResponse} to indicate
+             * {@link Connection.VideoProvider#onSendSessionModifyResponse} to indicate
              * the video settings the user has agreed to.
              *
-             * @param videoCallProfile The requested video call profile.
+             * @param videoProfile The requested video call profile.
              */
-            public abstract void onSessionModifyRequestReceived(VideoCallProfile videoCallProfile);
+            public abstract void onSessionModifyRequestReceived(VideoProfile videoProfile);
 
             /**
              * Called when a response to a session modification request is received from the remote
              * device. The remote InCall UI sends the response using
-             * {@link ConnectionService.VideoCallProvider#onSendSessionModifyResponse}.
+             * {@link Connection.VideoProvider#onSendSessionModifyResponse}.
              *
              * @param status Status of the session modify request.  Valid values are
-             *               {@link VideoCall#SESSION_MODIFY_REQUEST_SUCCESS},
-             *               {@link VideoCall#SESSION_MODIFY_REQUEST_FAIL},
-             *               {@link VideoCall#SESSION_MODIFY_REQUEST_INVALID}
+             *               {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_SUCCESS},
+             *               {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_FAIL},
+             *               {@link Connection.VideoProvider#SESSION_MODIFY_REQUEST_INVALID}
              * @param requestedProfile The original request which was sent to the remote device.
              * @param responseProfile The actual profile changes made by the remote device.
              */
             public abstract void onSessionModifyResponseReceived(int status,
-                    VideoCallProfile requestedProfile, VideoCallProfile responseProfile);
+                    VideoProfile requestedProfile, VideoProfile responseProfile);
 
             /**
              * Handles events related to the current session which the client may wish to handle.
              * These are separate from requested changes to the session due to the underlying
              * protocol or connection.
              *
-             * Valid values are: {@link VideoCall#SESSION_EVENT_RX_PAUSE},
-             * {@link VideoCall#SESSION_EVENT_RX_RESUME},
-             * {@link VideoCall#SESSION_EVENT_TX_START},
-             * {@link VideoCall#SESSION_EVENT_TX_STOP},
-             * {@link VideoCall#SESSION_EVENT_CAMERA_FAILURE},
-             * {@link VideoCall#SESSION_EVENT_CAMERA_READY}
+             * Valid values are:
+             * {@link Connection.VideoProvider#SESSION_EVENT_RX_PAUSE},
+             * {@link Connection.VideoProvider#SESSION_EVENT_RX_RESUME},
+             * {@link Connection.VideoProvider#SESSION_EVENT_TX_START},
+             * {@link Connection.VideoProvider#SESSION_EVENT_TX_STOP},
+             * {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_FAILURE},
+             * {@link Connection.VideoProvider#SESSION_EVENT_CAMERA_READY}
              *
              * @param event The event.
              */
@@ -399,10 +351,10 @@
             /**
              * Handles a change in camera capabilities.
              *
-             * @param callCameraCapabilities The changed camera capabilities.
+             * @param cameraCapabilities The changed camera capabilities.
              */
             public abstract void onCameraCapabilitiesChanged(
-                    CallCameraCapabilities callCameraCapabilities);
+                    CameraCapabilities cameraCapabilities);
         }
     }
 }
diff --git a/telecomm/java/android/telecomm/ParcelableCall.aidl b/telecomm/java/android/telecomm/ParcelableCall.aidl
index 8c96638..18691d2 100644
--- a/telecomm/java/android/telecomm/ParcelableCall.aidl
+++ b/telecomm/java/android/telecomm/ParcelableCall.aidl
@@ -16,4 +16,7 @@
 
 package android.telecomm;
 
+/**
+ * {@hide}
+ */
 parcelable ParcelableCall;
diff --git a/telecomm/java/android/telecomm/ParcelableCall.java b/telecomm/java/android/telecomm/ParcelableCall.java
index 360e768..8098b94 100644
--- a/telecomm/java/android/telecomm/ParcelableCall.java
+++ b/telecomm/java/android/telecomm/ParcelableCall.java
@@ -17,24 +17,25 @@
 package android.telecomm;
 
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.RemoteException;
 import android.telephony.DisconnectCause;
 
-import com.android.internal.telecomm.IVideoCallProvider;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import com.android.internal.telecomm.IVideoProvider;
+
 /**
  * Information about a call that is used between InCallService and Telecomm.
  * @hide
  */
 public final class ParcelableCall implements Parcelable {
     private final String mId;
-    private final CallState mState;
+    private final int mState;
     private final int mDisconnectCauseCode;
     private final String mDisconnectCauseMsg;
     private final List<String> mCannedSmsResponses;
@@ -46,17 +47,18 @@
     private final int mCallerDisplayNamePresentation;
     private final GatewayInfo mGatewayInfo;
     private final PhoneAccountHandle mAccountHandle;
-    private final IVideoCallProvider mVideoCallProvider;
+    private final IVideoProvider mVideoCallProvider;
     private InCallService.VideoCall mVideoCall;
     private final String mParentCallId;
     private final List<String> mChildCallIds;
     private final StatusHints mStatusHints;
     private final int mVideoState;
     private final List<String> mConferenceableCallIds;
+    private final Bundle mExtras;
 
     public ParcelableCall(
             String id,
-            CallState state,
+            int state,
             int disconnectCauseCode,
             String disconnectCauseMsg,
             List<String> cannedSmsResponses,
@@ -68,12 +70,13 @@
             int callerDisplayNamePresentation,
             GatewayInfo gatewayInfo,
             PhoneAccountHandle accountHandle,
-            IVideoCallProvider videoCallProvider,
+            IVideoProvider videoCallProvider,
             String parentCallId,
             List<String> childCallIds,
             StatusHints statusHints,
             int videoState,
-            List<String> conferenceableCallIds) {
+            List<String> conferenceableCallIds,
+            Bundle extras) {
         mId = id;
         mState = state;
         mDisconnectCauseCode = disconnectCauseCode;
@@ -93,6 +96,7 @@
         mStatusHints = statusHints;
         mVideoState = videoState;
         mConferenceableCallIds = Collections.unmodifiableList(conferenceableCallIds);
+        mExtras = extras;
     }
 
     /** The unique ID of the call. */
@@ -101,7 +105,7 @@
     }
 
     /** The current state of the call. */
-    public CallState getState() {
+    public int getState() {
         return mState;
     }
 
@@ -143,7 +147,7 @@
         return mHandle;
     }
 
-    /** The {@link CallPropertyPresentation} which controls how the handle is shown. */
+    /** The {@link PropertyPresentation} which controls how the handle is shown. */
     public int getHandlePresentation() {
         return mHandlePresentation;
     }
@@ -153,7 +157,7 @@
         return mCallerDisplayName;
     }
 
-    /** The {@link CallPropertyPresentation} which controls how the caller display name is shown. */
+    /** The {@link PropertyPresentation} which controls how the caller display name is shown. */
     public int getCallerDisplayNamePresentation() {
         return mCallerDisplayNamePresentation;
     }
@@ -220,6 +224,15 @@
         return mVideoState;
     }
 
+    /**
+     * Any extras to pass with the call
+     *
+     * @return a bundle of extras
+     */
+    public Bundle getExtras() {
+        return mExtras;
+    }
+
     /** Responsible for creating ParcelableCall objects for deserialized Parcels. */
     public static final Parcelable.Creator<ParcelableCall> CREATOR =
             new Parcelable.Creator<ParcelableCall> () {
@@ -227,7 +240,7 @@
         public ParcelableCall createFromParcel(Parcel source) {
             ClassLoader classLoader = ParcelableCall.class.getClassLoader();
             String id = source.readString();
-            CallState state = CallState.valueOf(source.readString());
+            int state = source.readInt();
             int disconnectCauseCode = source.readInt();
             String disconnectCauseMsg = source.readString();
             List<String> cannedSmsResponses = new ArrayList<>();
@@ -240,8 +253,8 @@
             int callerDisplayNamePresentation = source.readInt();
             GatewayInfo gatewayInfo = source.readParcelable(classLoader);
             PhoneAccountHandle accountHandle = source.readParcelable(classLoader);
-            IVideoCallProvider videoCallProvider =
-                    IVideoCallProvider.Stub.asInterface(source.readStrongBinder());
+            IVideoProvider videoCallProvider =
+                    IVideoProvider.Stub.asInterface(source.readStrongBinder());
             String parentCallId = source.readString();
             List<String> childCallIds = new ArrayList<>();
             source.readList(childCallIds, classLoader);
@@ -249,11 +262,12 @@
             int videoState = source.readInt();
             List<String> conferenceableCallIds = new ArrayList<>();
             source.readList(conferenceableCallIds, classLoader);
+            Bundle extras = source.readParcelable(classLoader);
             return new ParcelableCall(id, state, disconnectCauseCode, disconnectCauseMsg,
                     cannedSmsResponses, capabilities, connectTimeMillis, handle, handlePresentation,
                     callerDisplayName, callerDisplayNamePresentation, gatewayInfo,
                     accountHandle, videoCallProvider, parentCallId, childCallIds, statusHints,
-                    videoState, conferenceableCallIds);
+                    videoState, conferenceableCallIds, extras);
         }
 
         @Override
@@ -272,7 +286,7 @@
     @Override
     public void writeToParcel(Parcel destination, int flags) {
         destination.writeString(mId);
-        destination.writeString(mState.name());
+        destination.writeInt(mState);
         destination.writeInt(mDisconnectCauseCode);
         destination.writeString(mDisconnectCauseMsg);
         destination.writeList(mCannedSmsResponses);
@@ -291,6 +305,7 @@
         destination.writeParcelable(mStatusHints, 0);
         destination.writeInt(mVideoState);
         destination.writeList(mConferenceableCallIds);
+        destination.writeParcelable(mExtras, 0);
     }
 
     @Override
diff --git a/telecomm/java/android/telecomm/ParcelableConnection.aidl b/telecomm/java/android/telecomm/ParcelableConnection.aidl
index e3c3bd2..143c5a6 100644
--- a/telecomm/java/android/telecomm/ParcelableConnection.aidl
+++ b/telecomm/java/android/telecomm/ParcelableConnection.aidl
@@ -16,4 +16,7 @@
 
 package android.telecomm;
 
+/**
+ * {@hide}
+ */
 parcelable ParcelableConnection;
diff --git a/telecomm/java/android/telecomm/ParcelableConnection.java b/telecomm/java/android/telecomm/ParcelableConnection.java
index 2f79004..7a87b87 100644
--- a/telecomm/java/android/telecomm/ParcelableConnection.java
+++ b/telecomm/java/android/telecomm/ParcelableConnection.java
@@ -20,7 +20,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.internal.telecomm.IVideoCallProvider;
+import com.android.internal.telecomm.IVideoProvider;
 
 /**
  * Information about a connection that is used between Telecomm and the ConnectionService.
@@ -36,8 +36,11 @@
     private int mHandlePresentation;
     private String mCallerDisplayName;
     private int mCallerDisplayNamePresentation;
-    private IVideoCallProvider mVideoCallProvider;
+    private IVideoProvider mVideoProvider;
     private int mVideoState;
+    private boolean mRequestingRingback;
+    private boolean mAudioModeIsVoip;
+    private StatusHints mStatusHints;
 
     /** @hide */
     public ParcelableConnection(
@@ -48,8 +51,11 @@
             int handlePresentation,
             String callerDisplayName,
             int callerDisplayNamePresentation,
-            IVideoCallProvider videoCallProvider,
-            int videoState) {
+            IVideoProvider videoProvider,
+            int videoState,
+            boolean requestingRingback,
+            boolean audioModeIsVoip,
+            StatusHints statusHints) {
         mPhoneAccount = phoneAccount;
         mState = state;
         mCapabilities = capabilities;
@@ -57,8 +63,11 @@
         mHandlePresentation = handlePresentation;
         mCallerDisplayName = callerDisplayName;
         mCallerDisplayNamePresentation = callerDisplayNamePresentation;
-        mVideoCallProvider = videoCallProvider;
+        mVideoProvider = videoProvider;
         mVideoState = videoState;
+        mRequestingRingback = requestingRingback;
+        mAudioModeIsVoip = audioModeIsVoip;
+        mStatusHints = statusHints;
     }
 
     public PhoneAccountHandle getPhoneAccount() {
@@ -90,14 +99,26 @@
         return mCallerDisplayNamePresentation;
     }
 
-    public IVideoCallProvider getVideoCallProvider() {
-        return mVideoCallProvider;
+    public IVideoProvider getVideoProvider() {
+        return mVideoProvider;
     }
 
     public int getVideoState() {
         return mVideoState;
     }
 
+    public boolean isRequestingRingback() {
+        return mRequestingRingback;
+    }
+
+    public boolean getAudioModeIsVoip() {
+        return mAudioModeIsVoip;
+    }
+
+    public final StatusHints getStatusHints() {
+        return mStatusHints;
+    }
+
     @Override
     public String toString() {
         return new StringBuilder()
@@ -106,7 +127,7 @@
                 .append(", state:")
                 .append(mState)
                 .append(", capabilities:")
-                .append(CallCapabilities.toString(mCapabilities))
+                .append(PhoneCapabilities.toString(mCapabilities))
                 .toString();
     }
 
@@ -123,9 +144,12 @@
             int handlePresentation = source.readInt();
             String callerDisplayName = source.readString();
             int callerDisplayNamePresentation = source.readInt();
-            IVideoCallProvider videoCallProvider =
-                    IVideoCallProvider.Stub.asInterface(source.readStrongBinder());
+            IVideoProvider videoCallProvider =
+                    IVideoProvider.Stub.asInterface(source.readStrongBinder());
             int videoState = source.readInt();
+            boolean requestingRingback = source.readByte() == 1;
+            boolean audioModeIsVoip = source.readByte() == 1;
+            StatusHints statusHints = source.readParcelable(classLoader);
 
             return new ParcelableConnection(
                     phoneAccount,
@@ -136,7 +160,10 @@
                     callerDisplayName,
                     callerDisplayNamePresentation,
                     videoCallProvider,
-                    videoState);
+                    videoState,
+                    requestingRingback,
+                    audioModeIsVoip,
+                    statusHints);
         }
 
         @Override
@@ -162,7 +189,10 @@
         destination.writeString(mCallerDisplayName);
         destination.writeInt(mCallerDisplayNamePresentation);
         destination.writeStrongBinder(
-                mVideoCallProvider != null ? mVideoCallProvider.asBinder() : null);
+                mVideoProvider != null ? mVideoProvider.asBinder() : null);
         destination.writeInt(mVideoState);
+        destination.writeByte((byte) (mRequestingRingback ? 1 : 0));
+        destination.writeByte((byte) (mAudioModeIsVoip ? 1 : 0));
+        destination.writeParcelable(mStatusHints, 0);
     }
 }
diff --git a/telecomm/java/android/telecomm/Phone.java b/telecomm/java/android/telecomm/Phone.java
index 4ad572d..03a8676 100644
--- a/telecomm/java/android/telecomm/Phone.java
+++ b/telecomm/java/android/telecomm/Phone.java
@@ -24,9 +24,12 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * A unified virtual device providing a means of voice (and other) communication on a device.
+ *
+ * {@hide}
  */
 public final class Phone {
 
@@ -35,9 +38,9 @@
          * Called when the audio state changes.
          *
          * @param phone The {@code Phone} calling this method.
-         * @param audioState The new {@link CallAudioState}.
+         * @param audioState The new {@link AudioState}.
          */
-        public void onAudioStateChanged(Phone phone, CallAudioState audioState) { }
+        public void onAudioStateChanged(Phone phone, AudioState audioState) { }
 
         /**
          * Called to bring the in-call screen to the foreground. The in-call experience should
@@ -85,9 +88,9 @@
 
     private final InCallAdapter mInCallAdapter;
 
-    private CallAudioState mAudioState;
+    private AudioState mAudioState;
 
-    private final List<Listener> mListeners = new ArrayList<>();
+    private final List<Listener> mListeners = new CopyOnWriteArrayList<>();
 
     /** {@hide} */
     Phone(InCallAdapter adapter) {
@@ -129,10 +132,10 @@
     }
 
     /** {@hide} */
-    final void internalAudioStateChanged(CallAudioState callAudioState) {
-        if (!Objects.equals(mAudioState, callAudioState)) {
-            mAudioState = callAudioState;
-            fireAudioStateChanged(callAudioState);
+    final void internalAudioStateChanged(AudioState audioState) {
+        if (!Objects.equals(mAudioState, audioState)) {
+            mAudioState = audioState;
+            fireAudioStateChanged(audioState);
         }
     }
 
@@ -169,7 +172,9 @@
      * @param listener A {@code Listener} object.
      */
     public final void removeListener(Listener listener) {
-        mListeners.remove(listener);
+        if (listener != null) {
+            mListeners.remove(listener);
+        }
     }
 
     /**
@@ -229,35 +234,31 @@
      *
      * @return An object encapsulating the audio state.
      */
-    public final CallAudioState getAudioState() {
+    public final AudioState getAudioState() {
         return mAudioState;
     }
 
     private void fireCallAdded(Call call) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onCallAdded(this, call);
+        for (Listener listener : mListeners) {
+            listener.onCallAdded(this, call);
         }
     }
 
     private void fireCallRemoved(Call call) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onCallRemoved(this, call);
+        for (Listener listener : mListeners) {
+            listener.onCallRemoved(this, call);
         }
     }
 
-    private void fireAudioStateChanged(CallAudioState audioState) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onAudioStateChanged(this, audioState);
+    private void fireAudioStateChanged(AudioState audioState) {
+        for (Listener listener : mListeners) {
+            listener.onAudioStateChanged(this, audioState);
         }
     }
 
     private void fireBringToForeground(boolean showDialpad) {
-        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
-        for (int i = 0; i < listeners.length; i++) {
-            listeners[i].onBringToForeground(this, showDialpad);
+        for (Listener listener : mListeners) {
+            listener.onBringToForeground(this, showDialpad);
         }
     }
 
diff --git a/telecomm/java/android/telecomm/PhoneAccount.java b/telecomm/java/android/telecomm/PhoneAccount.java
index 0fea7ba..411f48c 100644
--- a/telecomm/java/android/telecomm/PhoneAccount.java
+++ b/telecomm/java/android/telecomm/PhoneAccount.java
@@ -27,7 +27,8 @@
 import java.util.MissingResourceException;
 
 /**
- * Provides user interface description information for a {@code PhoneAccount}.
+ * Describes a distinct account, line of service or call placement method that the system
+ * can use to place phone calls.
  */
 public class PhoneAccount implements Parcelable {
 
@@ -37,9 +38,9 @@
      * will be allowed to manage phone calls including using its own proprietary phone-call
      * implementation (like VoIP calling) to make calls instead of the telephony stack.
      * <p>
-     * When a user opts to place a call using the SIM-based telephony stack, the connection-service
-     * associated with this phone-account will be attempted first if the user has explicitly
-     * selected it to be used as the default connection manager.
+     * When a user opts to place a call using the SIM-based telephony stack, the
+     * {@link ConnectionService} associated with this {@code PhoneAccount} will be attempted first
+     * if the user has explicitly selected it to be used as the default connection manager.
      * <p>
      * See {@link #getCapabilities}
      */
@@ -53,21 +54,25 @@
      * calls from or use the built-in telephony stack to place its calls.
      * <p>
      * See {@link #getCapabilities}
-     *
+     * <p>
      * {@hide}
      */
     public static final int CAPABILITY_CALL_PROVIDER = 0x2;
 
     /**
-     * Flag indicating that this {@code PhoneAccount} represents  built-in PSTN SIM
+     * Flag indicating that this {@code PhoneAccount} represents a built-in PSTN SIM
      * subscription.
      * <p>
-     * Only the android framework can set this capability on a phone account.
+     * Only the Android framework can register a {@code PhoneAccount} having this capability.
+     * <p>
+     * See {@link #getCapabilities}
      */
     public static final int CAPABILITY_SIM_SUBSCRIPTION = 0x4;
 
     /**
-     * Flag indicating that this {@code PhoneAccount} is capable of video calling.
+     * Flag indicating that this {@code PhoneAccount} is capable of placing video calls.
+     * <p>
+     * See {@link #getCapabilities}
      */
     public static final int CAPABILITY_VIDEO_CALLING = 0x8;
 
@@ -79,7 +84,65 @@
     private final CharSequence mLabel;
     private final CharSequence mShortDescription;
 
-    public PhoneAccount(
+    public static class Builder {
+        private PhoneAccountHandle mAccountHandle;
+        private Uri mHandle;
+        private String mSubscriptionNumber;
+        private int mCapabilities;
+        private int mIconResId;
+        private CharSequence mLabel;
+        private CharSequence mShortDescription;
+
+        private Builder() {}
+
+        public Builder withAccountHandle(PhoneAccountHandle value) {
+            this.mAccountHandle = value;
+            return this;
+        }
+
+        public Builder withHandle(Uri value) {
+            this.mHandle = value;
+            return this;
+        }
+
+        public Builder withSubscriptionNumber(String value) {
+            this.mSubscriptionNumber = value;
+            return this;
+        }
+
+        public Builder withCapabilities(int value) {
+            this.mCapabilities = value;
+            return this;
+        }
+
+        public Builder withIconResId(int value) {
+            this.mIconResId = value;
+            return this;
+        }
+
+        public Builder withLabel(CharSequence value) {
+            this.mLabel = value;
+            return this;
+        }
+
+        public Builder withShortDescription(CharSequence value) {
+            this.mShortDescription = value;
+            return this;
+        }
+
+        public PhoneAccount build() {
+            return new PhoneAccount(
+                    mAccountHandle,
+                    mHandle,
+                    mSubscriptionNumber,
+                    mCapabilities,
+                    mIconResId,
+                    mLabel,
+                    mShortDescription);
+        }
+    }
+
+    private PhoneAccount(
             PhoneAccountHandle account,
             Uri handle,
             String subscriptionNumber,
@@ -96,8 +159,10 @@
         mShortDescription = shortDescription;
     }
 
+    public static Builder builder() { return new Builder(); }
+
     /**
-     * The {@code PhoneAccountHandle} to which this metadata pertains.
+     * The unique identifier of this {@code PhoneAccount}.
      *
      * @return A {@code PhoneAccountHandle}.
      */
@@ -118,9 +183,15 @@
     }
 
     /**
-     * The subscription number associated with the underlying transport. This may differ from the
-     * {@link #getHandle()} number; for example, if the number used to talk to the network is not
-     * the same number that will be on the remote party's caller ID display.
+     * The raw callback number used for this {@code PhoneAccount}, as distinct from
+     * {@link #getHandle()}. For the majority of {@code PhoneAccount}s this should be registered
+     * as {@code null}.  It is used by the system for SIM-based {@code PhoneAccount} registration
+     * where {@link android.telephony.TelephonyManager#setLine1NumberForDisplay(String, String)}
+     * or {@link android.telephony.TelephonyManager#setLine1NumberForDisplay(long, String, String)}
+     * has been used to alter the callback number.
+     * <p>
+     * TODO: Should this also be a URI, for consistency? Should it be called the
+     * "subscription handle"?
      *
      * @return The subscription number, suitable for display to the user.
      */
@@ -147,7 +218,7 @@
     }
 
     /**
-     * A short paragraph describing a {@code PhoneAccount}.
+     * A short paragraph describing this {@code PhoneAccount}.
      *
      * @return A description for this {@code PhoneAccount}.
      */
@@ -183,7 +254,7 @@
             return null;
         }
         try {
-            return packageContext.getResources().getDrawable(resId);
+            return packageContext.getDrawable(resId);
         } catch (NotFoundException|MissingResourceException e) {
             Log.e(this, e, "Cannot find icon %d in package %s",
                     resId, mAccountHandle.getComponentName().getPackageName());
diff --git a/telecomm/java/android/telecomm/PhoneAccountHandle.java b/telecomm/java/android/telecomm/PhoneAccountHandle.java
index f14766c..04cd2b0 100644
--- a/telecomm/java/android/telecomm/PhoneAccountHandle.java
+++ b/telecomm/java/android/telecomm/PhoneAccountHandle.java
@@ -23,8 +23,7 @@
 import java.util.Objects;
 
 /**
- * Represents a distinct account, line of service or call placement method that
- * the system can use to place phone calls.
+ * The unique identifier for a {@link PhoneAccount}.
  */
 public class PhoneAccountHandle implements Parcelable {
     private ComponentName mComponentName;
@@ -48,10 +47,18 @@
     }
 
     /**
-     * A unique identifier for this {@code PhoneAccountHandle}, generated by and meaningful to the
-     * {@link android.telecomm.ConnectionService} that created it.
+     * A string that uniquely distinguishes this particular {@code PhoneAccountHandle} from all the
+     * others supported by the {@link ConnectionService} that created it.
+     * <p>
+     * A {@code ConnectionService} must select identifiers that are stable for the lifetime of
+     * their users' relationship with their service, across many Android devices. For example, a
+     * good set of identifiers might be the email addresses with which with users registered for
+     * their accounts with a particular service. Depending on how a service chooses to operate,
+     * a bad set of identifiers might be an increasing series of integers
+     * ({@code 0}, {@code 1}, {@code 2}, ...) that are generated locally on each phone and could
+     * collide with values generated on other phones or after a data wipe of a given phone.
      *
-     * @return A unique identifier for this {@code PhoneAccountHandle}.
+     * @return A service-specific unique identifier for this {@code PhoneAccountHandle}.
      */
     public String getId() {
         return mId;
diff --git a/telecomm/java/android/telecomm/CallCapabilities.java b/telecomm/java/android/telecomm/PhoneCapabilities.java
similarity index 92%
rename from telecomm/java/android/telecomm/CallCapabilities.java
rename to telecomm/java/android/telecomm/PhoneCapabilities.java
index e64fe80..45168d5 100644
--- a/telecomm/java/android/telecomm/CallCapabilities.java
+++ b/telecomm/java/android/telecomm/PhoneCapabilities.java
@@ -16,8 +16,12 @@
 
 package android.telecomm;
 
-/** Defines actions a call currently supports. */
-public final class CallCapabilities {
+/**
+ * Defines capabilities a phone call can support, such as conference calling and video telephony.
+ * Also defines properties of a phone call, such as whether it is using VoLTE technology.
+
+ */
+public final class PhoneCapabilities {
     /** Call can currently be put on hold or unheld. */
     public static final int HOLD               = 0x00000001;
 
@@ -98,5 +102,5 @@
         return builder.toString();
     }
 
-    private CallCapabilities() {}
+    private PhoneCapabilities() {}
 }
diff --git a/telecomm/java/android/telecomm/CallPropertyPresentation.java b/telecomm/java/android/telecomm/PropertyPresentation.java
similarity index 88%
rename from telecomm/java/android/telecomm/CallPropertyPresentation.java
rename to telecomm/java/android/telecomm/PropertyPresentation.java
index 319e565..fe97b3d 100644
--- a/telecomm/java/android/telecomm/CallPropertyPresentation.java
+++ b/telecomm/java/android/telecomm/PropertyPresentation.java
@@ -16,8 +16,10 @@
 
 package android.telecomm;
 
-/** Defines how numbers and names are displayed in caller id. */
-public class CallPropertyPresentation {
+/**
+ * Defines how properties such as phone numbers and names are displayed to the user.
+ */
+public class PropertyPresentation {
     /** Property is displayed normally. */
     public static final int ALLOWED = 1;
 
diff --git a/telecomm/java/android/telecomm/RemoteConnection.java b/telecomm/java/android/telecomm/RemoteConnection.java
index a8636d4..f1cee10 100644
--- a/telecomm/java/android/telecomm/RemoteConnection.java
+++ b/telecomm/java/android/telecomm/RemoteConnection.java
@@ -16,13 +16,13 @@
 
 package android.telecomm;
 
+import com.android.internal.telecomm.IConnectionService;
+
 import android.app.PendingIntent;
 import android.net.Uri;
 import android.os.RemoteException;
 import android.telephony.DisconnectCause;
 
-import com.android.internal.telecomm.IConnectionService;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
@@ -31,7 +31,11 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
- * RemoteConnection object used by RemoteConnectionService.
+ * A connection provided to a {@link ConnectionService} by another {@code ConnectionService}
+ * running in a different process.
+ *
+ * @see ConnectionService#createRemoteOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
+ * @see ConnectionService#createRemoteIncomingConnection(PhoneAccountHandle, ConnectionRequest)
  */
 public final class RemoteConnection {
 
@@ -100,7 +104,7 @@
          * Invoked when the post-dial sequence in the outgoing {@code Connection} has reached a
          * pause character. This causes the post-dial signals to stop pending user confirmation. An
          * implementation should present this choice to the user and invoke
-         * {@link #postDialContinue(boolean)} when the user makes the choice.
+         * {@link RemoteConnection#postDialContinue(boolean)} when the user makes the choice.
          *
          * @param connection The {@code RemoteConnection} invoking this method.
          * @param remainingPostDialSequence The post-dial characters that remain to be sent.
@@ -131,7 +135,7 @@
          *
          * @param connection The {@code RemoteConnection} invoking this method.
          * @param handle The new handle of the {@code RemoteConnection}.
-         * @param presentation The {@link CallPropertyPresentation} which controls how the
+         * @param presentation The {@link PropertyPresentation} which controls how the
          *         handle is shown.
          */
         public void onHandleChanged(RemoteConnection connection, Uri handle, int presentation) {}
@@ -142,7 +146,7 @@
          *
          * @param connection The {@code RemoteConnection} invoking this method.
          * @param callerDisplayName The new caller display name of the {@code RemoteConnection}.
-         * @param presentation The {@link CallPropertyPresentation} which controls how the
+         * @param presentation The {@link PropertyPresentation} which controls how the
          *         caller display name is shown.
          */
         public void onCallerDisplayNameChanged(
@@ -180,11 +184,16 @@
 
     private IConnectionService mConnectionService;
     private final String mConnectionId;
+    /**
+     * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
+     * load factor before resizing, 1 means we only expect a single thread to
+     * access the map so make only a single shard
+     */
     private final Set<Listener> mListeners = Collections.newSetFromMap(
-            new ConcurrentHashMap<Listener, Boolean>(2));
+            new ConcurrentHashMap<Listener, Boolean>(8, 0.9f, 1));
     private final Set<RemoteConnection> mConferenceableConnections = new HashSet<>();
 
-    private int mState = Connection.State.NEW;
+    private int mState = Connection.STATE_NEW;
     private int mDisconnectCauseCode = DisconnectCause.NOT_VALID;
     private String mDisconnectCauseMessage;
     private boolean mRequestingRingback;
@@ -203,12 +212,14 @@
     /**
      * @hide
      */
-    RemoteConnection(IConnectionService connectionService, ConnectionRequest request) {
+    RemoteConnection(
+            String id,
+            IConnectionService connectionService,
+            ConnectionRequest request) {
+        mConnectionId = id;
         mConnectionService = connectionService;
-        mConnectionId = request == null ? "NULL" : request.getCallId();
-
         mConnected = true;
-        mState = Connection.State.INITIALIZING;
+        mState = Connection.STATE_INITIALIZING;
     }
 
     /**
@@ -219,10 +230,10 @@
      * @param failureCode
      * @param failureMessage
      */
-    private RemoteConnection(int failureCode, String failureMessage) {
-        this(null, null);
+    RemoteConnection(int failureCode, String failureMessage) {
+        this("NULL", null, null);
         mConnected = false;
-        mState = Connection.State.FAILED;
+        mState = Connection.STATE_FAILED;
         mFailureCode = failureCode;
         mFailureMessage = failureMessage;
     }
@@ -242,7 +253,9 @@
      * @param listener A {@code Listener}.
      */
     public void removeListener(Listener listener) {
-        mListeners.remove(listener);
+        if (listener != null) {
+            mListeners.remove(listener);
+        }
     }
 
     /**
@@ -271,7 +284,7 @@
     }
 
     /**
-     * @return For a {@link Connection.State#DISCONNECTED} {@code RemoteConnection}, the
+     * @return For a {@link Connection#STATE_DISCONNECTED} {@code RemoteConnection}, the
      * disconnect cause expressed as a code chosen from among those declared in
      * {@link DisconnectCause}.
      */
@@ -280,7 +293,7 @@
     }
 
     /**
-     * @return For a {@link Connection.State#DISCONNECTED} {@code RemoteConnection}, an optional
+     * @return For a {@link Connection#STATE_DISCONNECTED} {@code RemoteConnection}, an optional
      * reason for disconnection expressed as a free text message.
      */
     public String getDisconnectCauseMessage() {
@@ -289,7 +302,7 @@
 
     /**
      * @return A bitmask of the capabilities of the {@code RemoteConnection}, as defined in
-     *         {@link CallCapabilities}.
+     *         {@link PhoneCapabilities}.
      */
     public int getCallCapabilities() {
         return mCallCapabilities;
@@ -303,7 +316,7 @@
     }
 
     /**
-     * @return The current {@link android.telecomm.StatusHints} of this {@code RemoteConnection},
+     * @return The current {@link StatusHints} of this {@code RemoteConnection},
      * or {@code null} if none have been set.
      */
     public StatusHints getStatusHints() {
@@ -320,7 +333,7 @@
 
     /**
      * @return The presentation requirements for the handle. See
-     * {@link android.telecomm.CallPropertyPresentation} for valid values.
+     * {@link PropertyPresentation} for valid values.
      */
     public int getHandlePresentation() {
         return mHandlePresentation;
@@ -335,7 +348,7 @@
 
     /**
      * @return The presentation requirements for the caller display name. See
-     * {@link android.telecomm.CallPropertyPresentation} for valid values.
+     * {@link PropertyPresentation} for valid values.
      */
     public int getCallerDisplayNamePresentation() {
         return mCallerDisplayNamePresentation;
@@ -343,7 +356,7 @@
 
     /**
      * @return The video state of the {@code RemoteConnection}. See
-     * {@link VideoCallProfile.VideoState}.
+     * {@link VideoProfile.VideoState}.
      */
     public int getVideoState() {
         return mVideoState;
@@ -385,7 +398,7 @@
     }
 
     /**
-     * Instructs this {@link Connection.State#RINGING} {@code RemoteConnection} to answer.
+     * Instructs this {@link Connection#STATE_RINGING} {@code RemoteConnection} to answer.
      * @param videoState The video state in which to answer the call.
      */
     public void answer(int videoState) {
@@ -398,7 +411,7 @@
     }
 
     /**
-     * Instructs this {@link Connection.State#RINGING} {@code RemoteConnection} to reject.
+     * Instructs this {@link Connection#STATE_RINGING} {@code RemoteConnection} to reject.
      */
     public void reject() {
         try {
@@ -422,7 +435,7 @@
     }
 
     /**
-     * Instructs this {@link Connection.State#HOLDING} call to release from hold.
+     * Instructs this {@link Connection#STATE_HOLDING} call to release from hold.
      */
     public void unhold() {
         try {
@@ -510,24 +523,11 @@
     }
 
     /**
-     * Instructs this {@code RemoteConnection} to swap itself with an existing background call,
-     * if one such call exists.
-     */
-    public void swapWithBackgroundCall() {
-        try {
-            if (mConnected) {
-                mConnectionService.swapWithBackgroundCall(mConnectionId);
-            }
-        } catch (RemoteException ignored) {
-        }
-    }
-
-    /**
      * Set the audio state of this {@code RemoteConnection}.
      *
      * @param state The audio state of this {@code RemoteConnection}.
      */
-    public void setAudioState(CallAudioState state) {
+    public void setAudioState(AudioState state) {
         try {
             if (mConnected) {
                 mConnectionService.onAudioStateChanged(mConnectionId, state);
@@ -552,8 +552,8 @@
      * @hide
      */
     void setDisconnected(int cause, String message) {
-        if (mState != Connection.State.DISCONNECTED) {
-            mState = Connection.State.DISCONNECTED;
+        if (mState != Connection.STATE_DISCONNECTED) {
+            mState = Connection.STATE_DISCONNECTED;
             mDisconnectCauseCode = cause;
             mDisconnectCauseMessage = message;
 
@@ -591,15 +591,14 @@
     void setDestroyed() {
         if (!mListeners.isEmpty()) {
             // Make sure that the listeners are notified that the call is destroyed first.
-            if (mState != Connection.State.DISCONNECTED) {
+            if (mState != Connection.STATE_DISCONNECTED) {
                 setDisconnected(DisconnectCause.ERROR_UNSPECIFIED, "Connection destroyed.");
             }
 
-            Set<Listener> listeners = new HashSet<Listener>(mListeners);
-            mListeners.clear();
-            for (Listener l : listeners) {
+            for (Listener l : mListeners) {
                 l.onDestroyed(this);
             }
+            mListeners.clear();
 
             mConnected = false;
         }
@@ -676,7 +675,7 @@
     }
 
     /**
-     * Create a RemoteConnection which is in the {@link Connection.State#FAILED} state. Attempting
+     * Create a RemoteConnection which is in the {@link Connection#STATE_FAILED} state. Attempting
      * to use it for anything will almost certainly result in bad things happening. Do not do this.
      *
      * @return a failed {@link RemoteConnection}
diff --git a/telecomm/java/android/telecomm/RemoteConnectionService.java b/telecomm/java/android/telecomm/RemoteConnectionService.java
index 95b62ba..9a1729f 100644
--- a/telecomm/java/android/telecomm/RemoteConnectionService.java
+++ b/telecomm/java/android/telecomm/RemoteConnectionService.java
@@ -11,7 +11,7 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
- R* limitations under the License.
+ * limitations under the License.
  */
 
 package android.telecomm;
@@ -25,7 +25,7 @@
 
 import com.android.internal.telecomm.IConnectionService;
 import com.android.internal.telecomm.IConnectionServiceAdapter;
-import com.android.internal.telecomm.IVideoCallProvider;
+import com.android.internal.telecomm.IVideoProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 
 import java.util.HashMap;
@@ -43,14 +43,17 @@
  */
 final class RemoteConnectionService {
 
-    private static final RemoteConnection NULL_CONNECTION = new RemoteConnection(null, null);
+    private static final RemoteConnection
+            NULL_CONNECTION = new RemoteConnection("NULL", null, null);
 
     private final IConnectionServiceAdapter mServantDelegate = new IConnectionServiceAdapter() {
         @Override
-        public void handleCreateConnectionSuccessful(ConnectionRequest request,
+        public void handleCreateConnectionSuccessful(
+                String id,
+                ConnectionRequest request,
                 ParcelableConnection parcel) {
-            RemoteConnection connection = findConnectionForAction(
-                    request.getCallId(), "handleCreateConnectionSuccessful");
+            RemoteConnection connection =
+                    findConnectionForAction(id, "handleCreateConnectionSuccessful");
             if (connection != NULL_CONNECTION && mPendingConnections.contains(connection)) {
                 mPendingConnections.remove(connection);
                 connection.setState(parcel.getState());
@@ -65,37 +68,40 @@
         }
 
         @Override
-        public void handleCreateConnectionFailed(ConnectionRequest request, int errorCode,
+        public void handleCreateConnectionFailed(
+                String id,
+                ConnectionRequest request,
+                int errorCode,
                 String errorMessage) {
             // TODO: How do we propagate the failure codes?
-            findConnectionForAction(
-                    request.getCallId(), "handleCreateConnectionFailed")
+            findConnectionForAction(id, "handleCreateConnectionFailed")
                     .setDestroyed();
         }
 
         @Override
-        public void handleCreateConnectionCancelled(ConnectionRequest request) {
-            findConnectionForAction(
-                    request.getCallId(), "handleCreateConnectionCancelled")
+        public void handleCreateConnectionCancelled(
+                String id,
+                ConnectionRequest request) {
+            findConnectionForAction(id, "handleCreateConnectionCancelled")
                     .setDestroyed();
         }
 
         @Override
         public void setActive(String callId) {
             findConnectionForAction(callId, "setActive")
-                    .setState(Connection.State.ACTIVE);
+                    .setState(Connection.STATE_ACTIVE);
         }
 
         @Override
         public void setRinging(String callId) {
             findConnectionForAction(callId, "setRinging")
-                    .setState(Connection.State.RINGING);
+                    .setState(Connection.STATE_RINGING);
         }
 
         @Override
         public void setDialing(String callId) {
             findConnectionForAction(callId, "setDialing")
-                    .setState(Connection.State.DIALING);
+                    .setState(Connection.STATE_DIALING);
         }
 
         @Override
@@ -108,7 +114,7 @@
         @Override
         public void setOnHold(String callId) {
             findConnectionForAction(callId, "setOnHold")
-                    .setState(Connection.State.HOLDING);
+                    .setState(Connection.STATE_HOLDING);
         }
 
         @Override
@@ -151,8 +157,7 @@
         }
 
         @Override
-        public void setVideoCallProvider(String callId,
-                IVideoCallProvider videoCallProvider) {
+        public void setVideoProvider(String callId, IVideoProvider videoProvider) {
             // not supported for remote connections.
         }
 
@@ -244,9 +249,9 @@
             PhoneAccountHandle connectionManagerPhoneAccount,
             ConnectionRequest request,
             boolean isIncoming) {
+        final String id = UUID.randomUUID().toString();
         final ConnectionRequest newRequest = new ConnectionRequest(
                 request.getAccountHandle(),
-                UUID.randomUUID().toString(),
                 request.getHandle(),
                 request.getHandlePresentation(),
                 request.getExtras(),
@@ -256,17 +261,18 @@
                 mConnectionService.addConnectionServiceAdapter(mServant.getStub());
             }
             RemoteConnection connection =
-                    new RemoteConnection(mConnectionService, newRequest);
+                    new RemoteConnection(id, mConnectionService, newRequest);
             mPendingConnections.add(connection);
-            mConnectionById.put(newRequest.getCallId(), connection);
+            mConnectionById.put(id, connection);
             mConnectionService.createConnection(
                     connectionManagerPhoneAccount,
+                    id,
                     newRequest,
                     isIncoming);
             connection.addListener(new RemoteConnection.Listener() {
                 @Override
                 public void onDestroyed(RemoteConnection connection) {
-                    mConnectionById.remove(newRequest.getCallId());
+                    mConnectionById.remove(id);
                     if (mConnectionById.isEmpty()) {
                         try {
                             mConnectionService.removeConnectionServiceAdapter(mServant.getStub());
@@ -277,11 +283,13 @@
             });
             return connection;
         } catch (RemoteException e) {
-            return RemoteConnection.failure(DisconnectCause.ERROR_UNSPECIFIED, e.toString());
+            return RemoteConnection
+                    .failure(DisconnectCause.ERROR_UNSPECIFIED, e.toString());
         }
     }
 
-    private RemoteConnection findConnectionForAction(String callId, String action) {
+    private RemoteConnection findConnectionForAction(
+            String callId, String action) {
         if (mConnectionById.containsKey(callId)) {
             return mConnectionById.get(callId);
         }
diff --git a/telecomm/java/android/telecomm/Response.java b/telecomm/java/android/telecomm/Response.java
index 13c0702..f879756 100644
--- a/telecomm/java/android/telecomm/Response.java
+++ b/telecomm/java/android/telecomm/Response.java
@@ -17,7 +17,10 @@
 package android.telecomm;
 
 /**
- * Used to inform a client of asynchronously returned results.
+ * <strong>OBSOLETE</strong> Used to inform a client of asynchronously returned results.
+ * <p>
+ * <strong>TODO:</strong> Remove onCreateConferenceConnection() async method
+ * then delete this interface.
  */
 public interface Response<IN, OUT> {
 
diff --git a/telecomm/java/android/telecomm/SimpleResponse.java b/telecomm/java/android/telecomm/SimpleResponse.java
deleted file mode 100644
index 8e84adb..0000000
--- a/telecomm/java/android/telecomm/SimpleResponse.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.telecomm;
-
-/**
- * Used to inform a client of asynchronously returned results.
- */
-public interface SimpleResponse<IN, OUT> {
-
-    /**
-     * Provide a set of results.
-     *
-     * @param request The original request.
-     * @param result The results.
-     */
-    void onResult(IN request, OUT result);
-
-    /**
-     * Indicates the inability to provide results.
-     *
-     * @param request The original request.
-     */
-    void onError(IN request);
-}
diff --git a/telecomm/java/android/telecomm/StatusHints.java b/telecomm/java/android/telecomm/StatusHints.java
index 50f525a..f7c4f2f 100644
--- a/telecomm/java/android/telecomm/StatusHints.java
+++ b/telecomm/java/android/telecomm/StatusHints.java
@@ -20,13 +20,12 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
-import android.net.Uri;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.util.DisplayMetrics;
 
 import java.util.MissingResourceException;
+import java.util.Objects;
 
 /**
  * Contains status label and icon displayed in the in-call UI.
@@ -35,13 +34,13 @@
 
     private final ComponentName mComponentName;
     private final CharSequence mLabel;
-    private final int mIconId;
+    private final int mIconResId;
     private final Bundle mExtras;
 
-    public StatusHints(ComponentName componentName, CharSequence label, int iconId, Bundle extras) {
+    public StatusHints(ComponentName componentName, CharSequence label, int iconResId, Bundle extras) {
         mComponentName = componentName;
         mLabel = label;
-        mIconId = iconId;
+        mIconResId = iconResId;
         mExtras = extras;
     }
 
@@ -60,17 +59,19 @@
     }
 
     /**
-     * @return The icon resource identifier.
+     * The icon resource ID for the icon to show.
+     *
+     * @return A resource ID.
      */
-    public int getIconId() {
-        return mIconId;
+    public int getIconResId() {
+        return mIconResId;
     }
 
     /**
      * @return An icon displayed in the in-call UI.
      */
     public Drawable getIcon(Context context) {
-        return getIcon(context, mIconId);
+        return getIcon(context, mIconResId);
     }
 
     /**
@@ -89,7 +90,7 @@
     public void writeToParcel(Parcel out, int flags) {
         out.writeParcelable(mComponentName, flags);
         out.writeCharSequence(mLabel);
-        out.writeInt(mIconId);
+        out.writeInt(mIconResId);
         out.writeParcelable(mExtras, 0);
     }
 
@@ -107,8 +108,8 @@
     private StatusHints(Parcel in) {
         mComponentName = in.readParcelable(getClass().getClassLoader());
         mLabel = in.readCharSequence();
-        mIconId = in.readInt();
-        mExtras = (Bundle) in.readParcelable(getClass().getClassLoader());
+        mIconResId = in.readInt();
+        mExtras = in.readParcelable(getClass().getClassLoader());
     }
 
     private Drawable getIcon(Context context, int resId) {
@@ -120,11 +121,29 @@
             return null;
         }
         try {
-            return packageContext.getResources().getDrawable(resId);
+            return packageContext.getDrawable(resId);
         } catch (MissingResourceException e) {
             Log.e(this, e, "Cannot find icon %d in package %s",
                     resId, mComponentName.getPackageName());
             return null;
         }
     }
+
+    @Override
+    public boolean equals(Object other) {
+        if (other != null && other instanceof StatusHints) {
+            StatusHints otherHints = (StatusHints) other;
+            return Objects.equals(otherHints.getComponentName(), getComponentName()) &&
+                    Objects.equals(otherHints.getLabel(), getLabel()) &&
+                    otherHints.getIconResId() == getIconResId() &&
+                    Objects.equals(otherHints.getExtras(), getExtras());
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(mComponentName) + Objects.hashCode(mLabel) + mIconResId +
+                Objects.hashCode(mExtras);
+    }
 }
diff --git a/telecomm/java/android/telecomm/TelecommManager.java b/telecomm/java/android/telecomm/TelecommManager.java
index 0f31c52..5192b0f 100644
--- a/telecomm/java/android/telecomm/TelecommManager.java
+++ b/telecomm/java/android/telecomm/TelecommManager.java
@@ -72,10 +72,10 @@
      * Optional extra for {@link android.content.Intent#ACTION_CALL} containing an integer that
      * determines the desired video state for an outgoing call.
      * Valid options:
-     * {@link android.telecomm.VideoCallProfile.VideoState#AUDIO_ONLY},
-     * {@link android.telecomm.VideoCallProfile.VideoState#BIDIRECTIONAL},
-     * {@link android.telecomm.VideoCallProfile.VideoState#RX_ENABLED},
-     * {@link android.telecomm.VideoCallProfile.VideoState#TX_ENABLED}.
+     * {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#RX_ENABLED},
+     * {@link VideoProfile.VideoState#TX_ENABLED}.
      */
     public static final String EXTRA_START_CALL_WITH_VIDEO_STATE =
             "android.intent.extra.START_CALL_WITH_VIDEO_STATE";
@@ -101,6 +101,17 @@
             "android.intent.extra.INCOMING_CALL_EXTRAS";
 
     /**
+     * Optional extra for {@link android.content.Intent#ACTION_CALL} and
+     * {@link android.content.Intent#ACTION_DIAL} {@code Intent} containing a {@link Bundle}
+     * which contains metadata about the call. This {@link Bundle} will be saved into
+     * {@code Call.Details}.
+     *
+     * @hide
+     */
+    public static final String EXTRA_OUTGOING_CALL_EXTRAS =
+            "android.intent.extra.OUTGOING_CALL_EXTRAS";
+
+    /**
      * Optional extra for {@link android.telephony.TelephonyManager#ACTION_PHONE_STATE_CHANGED}
      * containing the disconnect code.
      */
@@ -282,10 +293,10 @@
     public List<PhoneAccountHandle> getEnabledPhoneAccounts() {
         try {
             if (isServiceConnected()) {
-                return getTelecommService().getEnabledPhoneAccounts();
+                return getTelecommService().getOutgoingPhoneAccounts();
             }
         } catch (RemoteException e) {
-            Log.e(TAG, "Error calling ITelecommService#getEnabledPhoneAccounts", e);
+            Log.e(TAG, "Error calling ITelecommService#getOutgoingPhoneAccounts", e);
         }
         return null;
     }
diff --git a/telecomm/java/android/telecomm/VideoCallImpl.java b/telecomm/java/android/telecomm/VideoCallImpl.java
index c32bcd2..c10865f 100644
--- a/telecomm/java/android/telecomm/VideoCallImpl.java
+++ b/telecomm/java/android/telecomm/VideoCallImpl.java
@@ -25,13 +25,15 @@
 import android.view.Surface;
 
 import com.android.internal.os.SomeArgs;
-import com.android.internal.telecomm.IVideoCallCallback;
-import com.android.internal.telecomm.IVideoCallProvider;
+import com.android.internal.telecomm.IVideoCallback;
+import com.android.internal.telecomm.IVideoProvider;
 
 /**
  * Implementation of a Video Call, which allows InCallUi to communicate commands to the underlying
- * {@link ConnectionService.VideoCallProvider}, and direct callbacks from the
- * {@link ConnectionService.VideoCallProvider} to the appropriate {@link VideoCall.Listener}.
+ * {@link Connection.VideoProvider}, and direct callbacks from the
+ * {@link Connection.VideoProvider} to the appropriate {@link VideoCall.Listener}.
+ *
+ * {@hide}
  */
 public class VideoCallImpl extends VideoCall {
     private static final int MSG_RECEIVE_SESSION_MODIFY_REQUEST = 1;
@@ -41,30 +43,30 @@
     private static final int MSG_CHANGE_CALL_DATA_USAGE = 5;
     private static final int MSG_CHANGE_CAMERA_CAPABILITIES = 6;
 
-    private final IVideoCallProvider mVideoCallProvider;
+    private final IVideoProvider mVideoProvider;
     private final VideoCallListenerBinder mBinder;
     private VideoCall.Listener mVideoCallListener;
 
     private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
         @Override
         public void binderDied() {
-            mVideoCallProvider.asBinder().unlinkToDeath(this, 0);
+            mVideoProvider.asBinder().unlinkToDeath(this, 0);
         }
     };
 
     /**
-     * IVideoCallCallback stub implementation.
+     * IVideoCallback stub implementation.
      */
-    private final class VideoCallListenerBinder extends IVideoCallCallback.Stub {
+    private final class VideoCallListenerBinder extends IVideoCallback.Stub {
         @Override
-        public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile) {
+        public void receiveSessionModifyRequest(VideoProfile videoProfile) {
             mHandler.obtainMessage(MSG_RECEIVE_SESSION_MODIFY_REQUEST,
-                    videoCallProfile).sendToTarget();
+                    videoProfile).sendToTarget();
         }
 
         @Override
-        public void receiveSessionModifyResponse(int status, VideoCallProfile requestProfile,
-                VideoCallProfile responseProfile) {
+        public void receiveSessionModifyResponse(int status, VideoProfile requestProfile,
+                VideoProfile responseProfile) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = status;
             args.arg2 = requestProfile;
@@ -91,7 +93,7 @@
         }
 
         @Override
-        public void changeCameraCapabilities(CallCameraCapabilities cameraCapabilities) {
+        public void changeCameraCapabilities(CameraCapabilities cameraCapabilities) {
             mHandler.obtainMessage(MSG_CHANGE_CAMERA_CAPABILITIES,
                     cameraCapabilities).sendToTarget();
         }
@@ -108,14 +110,14 @@
             SomeArgs args;
             switch (msg.what) {
                 case MSG_RECEIVE_SESSION_MODIFY_REQUEST:
-                    mVideoCallListener.onSessionModifyRequestReceived((VideoCallProfile) msg.obj);
+                    mVideoCallListener.onSessionModifyRequestReceived((VideoProfile) msg.obj);
                     break;
                 case MSG_RECEIVE_SESSION_MODIFY_RESPONSE:
                     args = (SomeArgs) msg.obj;
                     try {
                         int status = (int) args.arg1;
-                        VideoCallProfile requestProfile = (VideoCallProfile) args.arg2;
-                        VideoCallProfile responseProfile = (VideoCallProfile) args.arg3;
+                        VideoProfile requestProfile = (VideoProfile) args.arg2;
+                        VideoProfile responseProfile = (VideoProfile) args.arg3;
 
                         mVideoCallListener.onSessionModifyResponseReceived(
                                 status, requestProfile, responseProfile);
@@ -141,7 +143,7 @@
                     break;
                 case MSG_CHANGE_CAMERA_CAPABILITIES:
                     mVideoCallListener.onCameraCapabilitiesChanged(
-                            (CallCameraCapabilities) msg.obj);
+                            (CameraCapabilities) msg.obj);
                     break;
                 default:
                     break;
@@ -150,12 +152,12 @@
     };
 
     /** {@hide} */
-    VideoCallImpl(IVideoCallProvider videoCallProvider) throws RemoteException {
-        mVideoCallProvider = videoCallProvider;
-        mVideoCallProvider.asBinder().linkToDeath(mDeathRecipient, 0);
+    VideoCallImpl(IVideoProvider videoProvider) throws RemoteException {
+        mVideoProvider = videoProvider;
+        mVideoProvider.asBinder().linkToDeath(mDeathRecipient, 0);
 
         mBinder = new VideoCallListenerBinder();
-        mVideoCallProvider.setVideoCallListener(mBinder);
+        mVideoProvider.setVideoListener(mBinder);
     }
 
     /** {@inheritDoc} */
@@ -166,7 +168,7 @@
     /** {@inheritDoc} */
     public void setCamera(String cameraId) {
         try {
-            mVideoCallProvider.setCamera(cameraId);
+            mVideoProvider.setCamera(cameraId);
         } catch (RemoteException e) {
         }
     }
@@ -174,7 +176,7 @@
     /** {@inheritDoc} */
     public void setPreviewSurface(Surface surface) {
         try {
-            mVideoCallProvider.setPreviewSurface(surface);
+            mVideoProvider.setPreviewSurface(surface);
         } catch (RemoteException e) {
         }
     }
@@ -182,7 +184,7 @@
     /** {@inheritDoc} */
     public void setDisplaySurface(Surface surface) {
         try {
-            mVideoCallProvider.setDisplaySurface(surface);
+            mVideoProvider.setDisplaySurface(surface);
         } catch (RemoteException e) {
         }
     }
@@ -190,7 +192,7 @@
     /** {@inheritDoc} */
     public void setDeviceOrientation(int rotation) {
         try {
-            mVideoCallProvider.setDeviceOrientation(rotation);
+            mVideoProvider.setDeviceOrientation(rotation);
         } catch (RemoteException e) {
         }
     }
@@ -198,23 +200,23 @@
     /** {@inheritDoc} */
     public void setZoom(float value) {
         try {
-            mVideoCallProvider.setZoom(value);
+            mVideoProvider.setZoom(value);
         } catch (RemoteException e) {
         }
     }
 
     /** {@inheritDoc} */
-    public void sendSessionModifyRequest(VideoCallProfile requestProfile) {
+    public void sendSessionModifyRequest(VideoProfile requestProfile) {
         try {
-            mVideoCallProvider.sendSessionModifyRequest(requestProfile);
+            mVideoProvider.sendSessionModifyRequest(requestProfile);
         } catch (RemoteException e) {
         }
     }
 
     /** {@inheritDoc} */
-    public void sendSessionModifyResponse(VideoCallProfile responseProfile) {
+    public void sendSessionModifyResponse(VideoProfile responseProfile) {
         try {
-            mVideoCallProvider.sendSessionModifyResponse(responseProfile);
+            mVideoProvider.sendSessionModifyResponse(responseProfile);
         } catch (RemoteException e) {
         }
     }
@@ -222,7 +224,7 @@
     /** {@inheritDoc} */
     public void requestCameraCapabilities() {
         try {
-            mVideoCallProvider.requestCameraCapabilities();
+            mVideoProvider.requestCameraCapabilities();
         } catch (RemoteException e) {
         }
     }
@@ -230,7 +232,7 @@
     /** {@inheritDoc} */
     public void requestCallDataUsage() {
         try {
-            mVideoCallProvider.requestCallDataUsage();
+            mVideoProvider.requestCallDataUsage();
         } catch (RemoteException e) {
         }
     }
@@ -238,7 +240,7 @@
     /** {@inheritDoc} */
     public void setPauseImage(String uri) {
         try {
-            mVideoCallProvider.setPauseImage(uri);
+            mVideoProvider.setPauseImage(uri);
         } catch (RemoteException e) {
         }
     }
diff --git a/telecomm/java/android/telecomm/VideoCallProfile.aidl b/telecomm/java/android/telecomm/VideoCallProfile.aidl
deleted file mode 100644
index adbf94d..0000000
--- a/telecomm/java/android/telecomm/VideoCallProfile.aidl
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-
-package android.telecomm;
-
-parcelable VideoCallProfile;
diff --git a/telecomm/java/android/telecomm/CallCameraCapabilities.aidl b/telecomm/java/android/telecomm/VideoProfile.aidl
similarity index 93%
rename from telecomm/java/android/telecomm/CallCameraCapabilities.aidl
rename to telecomm/java/android/telecomm/VideoProfile.aidl
index 25b6106..e756fa7 100644
--- a/telecomm/java/android/telecomm/CallCameraCapabilities.aidl
+++ b/telecomm/java/android/telecomm/VideoProfile.aidl
@@ -17,4 +17,7 @@
 
 package android.telecomm;
 
-parcelable CallCameraCapabilities;
+/**
+ * {@hide}
+ */
+parcelable VideoProfile;
diff --git a/telecomm/java/android/telecomm/VideoCallProfile.java b/telecomm/java/android/telecomm/VideoProfile.java
similarity index 81%
rename from telecomm/java/android/telecomm/VideoCallProfile.java
rename to telecomm/java/android/telecomm/VideoProfile.java
index 24c6996..b147978 100644
--- a/telecomm/java/android/telecomm/VideoCallProfile.java
+++ b/telecomm/java/android/telecomm/VideoProfile.java
@@ -22,7 +22,7 @@
 /**
  * Represents attributes of video calls.
  */
-public class VideoCallProfile implements Parcelable {
+public class VideoProfile implements Parcelable {
     /**
      * "High" video quality.
      */
@@ -48,32 +48,32 @@
     private final int mQuality;
 
     /**
-     * Creates an instance of the VideoCallProfile
+     * Creates an instance of the VideoProfile
      *
      * @param videoState The video state.
      */
-    public VideoCallProfile(int videoState) {
+    public VideoProfile(int videoState) {
         this(videoState, QUALITY_DEFAULT);
     }
 
     /**
-     * Creates an instance of the VideoCallProfile
+     * Creates an instance of the VideoProfile
      *
      * @param videoState The video state.
      * @param quality The video quality.
      */
-    public VideoCallProfile(int videoState, int quality) {
+    public VideoProfile(int videoState, int quality) {
         mVideoState = videoState;
         mQuality = quality;
     }
 
     /**
      * The video state of the call.
-     * Valid values: {@link VideoCallProfile.VideoState#AUDIO_ONLY},
-     * {@link VideoCallProfile.VideoState#BIDIRECTIONAL},
-     * {@link VideoCallProfile.VideoState#TX_ENABLED},
-     * {@link VideoCallProfile.VideoState#RX_ENABLED},
-     * {@link VideoCallProfile.VideoState#PAUSED}.
+     * Valid values: {@link VideoProfile.VideoState#AUDIO_ONLY},
+     * {@link VideoProfile.VideoState#BIDIRECTIONAL},
+     * {@link VideoProfile.VideoState#TX_ENABLED},
+     * {@link VideoProfile.VideoState#RX_ENABLED},
+     * {@link VideoProfile.VideoState#PAUSED}.
      */
     public int getVideoState() {
         return mVideoState;
@@ -81,18 +81,18 @@
 
     /**
      * The desired video quality for the call.
-     * Valid values: {@link VideoCallProfile#QUALITY_HIGH}, {@link VideoCallProfile#QUALITY_MEDIUM},
-     * {@link VideoCallProfile#QUALITY_LOW}, {@link VideoCallProfile#QUALITY_DEFAULT}.
+     * Valid values: {@link VideoProfile#QUALITY_HIGH}, {@link VideoProfile#QUALITY_MEDIUM},
+     * {@link VideoProfile#QUALITY_LOW}, {@link VideoProfile#QUALITY_DEFAULT}.
      */
     public int getQuality() {
         return mQuality;
     }
 
     /**
-     * Responsible for creating VideoCallProfile objects from deserialized Parcels.
+     * Responsible for creating VideoProfile objects from deserialized Parcels.
      **/
-    public static final Parcelable.Creator<VideoCallProfile> CREATOR =
-            new Parcelable.Creator<VideoCallProfile> () {
+    public static final Parcelable.Creator<VideoProfile> CREATOR =
+            new Parcelable.Creator<VideoProfile> () {
                 /**
                  * Creates a MediaProfile instances from a parcel.
                  *
@@ -100,17 +100,17 @@
                  * @return The MediaProfile.
                  */
                 @Override
-                public VideoCallProfile createFromParcel(Parcel source) {
+                public VideoProfile createFromParcel(Parcel source) {
                     int state = source.readInt();
                     int quality = source.readInt();
 
-                    ClassLoader classLoader = VideoCallProfile.class.getClassLoader();
-                    return new VideoCallProfile(state, quality);
+                    ClassLoader classLoader = VideoProfile.class.getClassLoader();
+                    return new VideoProfile(state, quality);
                 }
 
                 @Override
-                public VideoCallProfile[] newArray(int size) {
-                    return new VideoCallProfile[size];
+                public VideoProfile[] newArray(int size) {
+                    return new VideoProfile[size];
                 }
             };
 
diff --git a/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl b/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl
index 7abb4dd..c412424 100644
--- a/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IConnectionService.aidl
@@ -17,7 +17,7 @@
 package com.android.internal.telecomm;
 
 import android.os.Bundle;
-import android.telecomm.CallAudioState;
+import android.telecomm.AudioState;
 import android.telecomm.ConnectionRequest;
 import android.telecomm.PhoneAccountHandle;
 
@@ -37,6 +37,7 @@
 
     void createConnection(
             in PhoneAccountHandle connectionManagerPhoneAccount,
+            String callId,
             in ConnectionRequest request,
             boolean isIncoming);
 
@@ -52,7 +53,7 @@
 
     void unhold(String callId);
 
-    void onAudioStateChanged(String activeCallId, in CallAudioState audioState);
+    void onAudioStateChanged(String activeCallId, in AudioState audioState);
 
     void playDtmfTone(String callId, char digit);
 
@@ -62,8 +63,6 @@
 
     void splitFromConference(String callId);
 
-    void swapWithBackgroundCall(String callId);
-
     void onPostDialContinue(String callId, boolean proceed);
 
     void onPhoneAccountClicked(String callId);
diff --git a/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl b/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl
index c6f9712..fd4e931 100644
--- a/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl
@@ -22,7 +22,7 @@
 import android.telecomm.ParcelableConnection;
 import android.telecomm.StatusHints;
 
-import com.android.internal.telecomm.IVideoCallProvider;
+import com.android.internal.telecomm.IVideoProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 
 /**
@@ -34,12 +34,18 @@
  */
 oneway interface IConnectionServiceAdapter {
     void handleCreateConnectionSuccessful(
-            in ConnectionRequest request, in ParcelableConnection connection);
+            String callId,
+            in ConnectionRequest request,
+            in ParcelableConnection connection);
 
     void handleCreateConnectionFailed(
-            in ConnectionRequest request, int errorCode, String errorMessage);
+            String callId,
+            in ConnectionRequest request,
+            int errorCode, String errorMessage);
 
-    void handleCreateConnectionCancelled(in ConnectionRequest request);
+    void handleCreateConnectionCancelled(
+            String callId,
+            in ConnectionRequest request);
 
     void setActive(String callId);
 
@@ -65,7 +71,7 @@
 
     void queryRemoteConnectionServices(RemoteServiceCallback callback);
 
-    void setVideoCallProvider(String callId, IVideoCallProvider videoCallProvider);
+    void setVideoProvider(String callId, IVideoProvider videoProvider);
 
     void setVideoState(String callId, int videoState);
 
diff --git a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl b/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
index 8bc950f..2ce5c6b 100644
--- a/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl
@@ -16,7 +16,6 @@
 
 package com.android.internal.telecomm;
 
-import android.telecomm.CallAudioState;
 import android.telecomm.PhoneAccountHandle;
 
 /**
@@ -55,8 +54,6 @@
 
     void splitFromConference(String callId);
 
-    void swapWithBackgroundCall(String callId);
-
     void turnOnProximitySensor();
 
     void turnOffProximitySensor(boolean screenOnImmediately);
diff --git a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl b/telecomm/java/com/android/internal/telecomm/IInCallService.aidl
index 8ec6196..5d4992f 100644
--- a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IInCallService.aidl
@@ -17,7 +17,7 @@
 package com.android.internal.telecomm;
 
 import android.app.PendingIntent;
-import android.telecomm.CallAudioState;
+import android.telecomm.AudioState;
 import android.telecomm.ParcelableCall;
 
 import com.android.internal.telecomm.IInCallAdapter;
@@ -40,7 +40,7 @@
 
     void setPostDialWait(String callId, String remaining);
 
-    void onAudioStateChanged(in CallAudioState audioState);
+    void onAudioStateChanged(in AudioState audioState);
 
     void bringToForeground(boolean showDialpad);
 
diff --git a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl b/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
index 5036948..3c1dea6 100644
--- a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
+++ b/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
@@ -40,9 +40,9 @@
     PhoneAccountHandle getDefaultOutgoingPhoneAccount();
 
     /**
-     * @see TelecommManager#getEnabledPhoneAccounts
+     * @see TelecommManager#getOutgoingPhoneAccounts
      */
-    List<PhoneAccountHandle> getEnabledPhoneAccounts();
+    List<PhoneAccountHandle> getOutgoingPhoneAccounts();
 
     /**
      * @see TelecommManager#getPhoneAccount
diff --git a/telecomm/java/com/android/internal/telecomm/IVideoCallCallback.aidl b/telecomm/java/com/android/internal/telecomm/IVideoCallCallback.aidl
deleted file mode 100644
index 1a8f68e..0000000
--- a/telecomm/java/com/android/internal/telecomm/IVideoCallCallback.aidl
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telecomm;
-
-import android.telecomm.CallCameraCapabilities;
-import android.telecomm.VideoCallProfile;
-
-/**
- * Internal definition of a callback interface, used for an InCallUi to respond to video telephony
- * changes.
- *
- * @see android.telecomm.InCallService.VideoCall.Listener
- *
- * {@hide}
- */
-oneway interface IVideoCallCallback {
-    void receiveSessionModifyRequest(in VideoCallProfile videoCallProfile);
-
-    void receiveSessionModifyResponse(int status, in VideoCallProfile requestedProfile,
-        in VideoCallProfile responseProfile);
-
-    void handleCallSessionEvent(int event);
-
-    void changePeerDimensions(int width, int height);
-
-    void changeCallDataUsage(int dataUsage);
-
-    void changeCameraCapabilities(in CallCameraCapabilities callCameraCapabilities);
-}
diff --git a/telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl b/telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl
new file mode 100644
index 0000000..186f083
--- /dev/null
+++ b/telecomm/java/com/android/internal/telecomm/IVideoCallback.aidl
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.internal.telecomm;
+
+import android.telecomm.CameraCapabilities;
+import android.telecomm.VideoProfile;
+
+ /**
+  * Internal definition of a callback interface, used for an InCallUi to respond to video
+  * telephony changes.
+  *
+  * @see android.telecomm.InCallService.VideoCall.Listener
+  *
+  * {@hide}
+  */
+oneway interface IVideoCallback {
+    void receiveSessionModifyRequest(in VideoProfile videoProfile);
+
+    void receiveSessionModifyResponse(
+            int status,
+            in VideoProfile requestedProfile,
+            in VideoProfile responseProfile);
+
+    void handleCallSessionEvent(int event);
+
+    void changePeerDimensions(int width, int height);
+
+    void changeCallDataUsage(int dataUsage);
+
+    void changeCameraCapabilities(in CameraCapabilities cameraCapabilities);
+}
diff --git a/telecomm/java/com/android/internal/telecomm/IVideoCallProvider.aidl b/telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl
similarity index 76%
rename from telecomm/java/com/android/internal/telecomm/IVideoCallProvider.aidl
rename to telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl
index c1ba749..9d3ad7f 100644
--- a/telecomm/java/com/android/internal/telecomm/IVideoCallProvider.aidl
+++ b/telecomm/java/com/android/internal/telecomm/IVideoProvider.aidl
@@ -17,15 +17,15 @@
 package com.android.internal.telecomm;
 
 import android.view.Surface;
-import android.telecomm.VideoCallProfile;
+import android.telecomm.VideoProfile;
 
 /**
  * Internal remote interface for a video call provider.
- * @see android.telecomm.VideoCallProvider
+ * @see android.telecomm.VideoProvider
  * @hide
  */
-oneway interface IVideoCallProvider {
-    void setVideoCallListener(IBinder videoCallListenerBinder);
+oneway interface IVideoProvider {
+    void setVideoListener(IBinder videoListenerBinder);
 
     void setCamera(String cameraId);
 
@@ -37,9 +37,9 @@
 
     void setZoom(float value);
 
-    void sendSessionModifyRequest(in VideoCallProfile reqProfile);
+    void sendSessionModifyRequest(in VideoProfile reqProfile);
 
-    void sendSessionModifyResponse(in VideoCallProfile responseProfile);
+    void sendSessionModifyResponse(in VideoProfile responseProfile);
 
     void requestCameraCapabilities();
 
diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java
index 13b39c9..72578a4 100644
--- a/telephony/java/android/telephony/CellIdentityLte.java
+++ b/telephony/java/android/telephony/CellIdentityLte.java
@@ -130,7 +130,7 @@
                 return mMcc == o.mMcc &&
                         mMnc == o.mMnc &&
                         mCi == o.mCi &&
-                        mPci == o.mCi &&
+                        mPci == o.mPci &&
                         mTac == o.mTac;
             } catch (ClassCastException e) {
                 return false;
diff --git a/telephony/java/com/android/ims/ImsCallProfile.java b/telephony/java/com/android/ims/ImsCallProfile.java
index adcb435..dcd0b79 100644
--- a/telephony/java/com/android/ims/ImsCallProfile.java
+++ b/telephony/java/com/android/ims/ImsCallProfile.java
@@ -19,7 +19,7 @@
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.telecomm.VideoCallProfile;
+import android.telecomm.VideoProfile;
 
 /**
  * Parcelable object to handle IMS call profile.
@@ -290,7 +290,7 @@
 
     /**
      * Converts from the call types defined in {@link com.android.ims.ImsCallProfile} to the
-     * video state values defined in {@link android.telecomm.VideoCallProfile}.
+     * video state values defined in {@link VideoProfile}.
      *
      * @param callType The call type.
      * @return The video state.
@@ -298,32 +298,32 @@
     public static int getVideoStateFromCallType(int callType) {
         switch (callType) {
             case CALL_TYPE_VT_NODIR:
-                return VideoCallProfile.VideoState.PAUSED |
-                        VideoCallProfile.VideoState.BIDIRECTIONAL;
+                return VideoProfile.VideoState.PAUSED |
+                        VideoProfile.VideoState.BIDIRECTIONAL;
             case CALL_TYPE_VT_TX:
-                return VideoCallProfile.VideoState.TX_ENABLED;
+                return VideoProfile.VideoState.TX_ENABLED;
             case CALL_TYPE_VT_RX:
-                return VideoCallProfile.VideoState.RX_ENABLED;
+                return VideoProfile.VideoState.RX_ENABLED;
             case CALL_TYPE_VT:
-                return VideoCallProfile.VideoState.BIDIRECTIONAL;
+                return VideoProfile.VideoState.BIDIRECTIONAL;
             case CALL_TYPE_VOICE:
-                return VideoCallProfile.VideoState.AUDIO_ONLY;
+                return VideoProfile.VideoState.AUDIO_ONLY;
             default:
-                return VideoCallProfile.VideoState.AUDIO_ONLY;
+                return VideoProfile.VideoState.AUDIO_ONLY;
         }
     }
 
     /**
-     * Converts from the video state values defined in {@link android.telecomm.VideoCallProfile}
+     * Converts from the video state values defined in {@link VideoProfile}
      * to the call types defined in {@link ImsCallProfile}.
      *
      * @param videoState The video state.
      * @return The call type.
      */
     public static int getCallTypeFromVideoState(int videoState) {
-        boolean videoTx = isVideoStateSet(videoState, VideoCallProfile.VideoState.TX_ENABLED);
-        boolean videoRx = isVideoStateSet(videoState, VideoCallProfile.VideoState.RX_ENABLED);
-        boolean isPaused = isVideoStateSet(videoState, VideoCallProfile.VideoState.PAUSED);
+        boolean videoTx = isVideoStateSet(videoState, VideoProfile.VideoState.TX_ENABLED);
+        boolean videoRx = isVideoStateSet(videoState, VideoProfile.VideoState.RX_ENABLED);
+        boolean isPaused = isVideoStateSet(videoState, VideoProfile.VideoState.PAUSED);
         if (isPaused) {
             return ImsCallProfile.CALL_TYPE_VT_NODIR;
         } else if (videoTx && !videoRx) {
diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
index 6b8ec52..67bfe41 100644
--- a/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
+++ b/telephony/java/com/android/ims/internal/IImsVideoCallCallback.aidl
@@ -16,8 +16,8 @@
 
 package com.android.ims.internal;
 
-import android.telecomm.CallCameraCapabilities;
-import android.telecomm.VideoCallProfile;
+import android.telecomm.CameraCapabilities;
+import android.telecomm.VideoProfile;
 
 /**
  * Internal remote interface for IMS's video call provider.
@@ -32,10 +32,10 @@
  * {@hide}
  */
 oneway interface IImsVideoCallCallback {
-    void receiveSessionModifyRequest(in VideoCallProfile videoCallProfile);
+    void receiveSessionModifyRequest(in VideoProfile videoProfile);
 
-    void receiveSessionModifyResponse(int status, in VideoCallProfile requestedProfile,
-        in VideoCallProfile responseProfile);
+    void receiveSessionModifyResponse(int status, in VideoProfile requestedProfile,
+        in VideoProfile responseProfile);
 
     void handleCallSessionEvent(int event);
 
@@ -43,5 +43,5 @@
 
     void changeCallDataUsage(int dataUsage);
 
-    void changeCameraCapabilities(in CallCameraCapabilities callCameraCapabilities);
+    void changeCameraCapabilities(in CameraCapabilities cameraCapabilities);
 }
diff --git a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
index f8389ec..4db0d14 100644
--- a/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
+++ b/telephony/java/com/android/ims/internal/IImsVideoCallProvider.aidl
@@ -17,7 +17,7 @@
 package com.android.ims.internal;
 
 import android.view.Surface;
-import android.telecomm.VideoCallProfile;
+import android.telecomm.VideoProfile;
 
 import com.android.ims.internal.IImsVideoCallCallback;
 
@@ -52,9 +52,9 @@
 
     void setZoom(float value);
 
-    void sendSessionModifyRequest(in VideoCallProfile reqProfile);
+    void sendSessionModifyRequest(in VideoProfile reqProfile);
 
-    void sendSessionModifyResponse(in VideoCallProfile responseProfile);
+    void sendSessionModifyResponse(in VideoProfile responseProfile);
 
     void requestCameraCapabilities();
 
diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java
index cf87bec..b4b1ea5 100644
--- a/telephony/java/com/android/internal/telephony/PhoneConstants.java
+++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java
@@ -187,4 +187,7 @@
         REASON_RADIO_UNAVAILABLE,
         REASON_SIM_REFRESH_RESET
     };
+
+    // Initial MTU value.
+    public static final int UNSET_MTU = 0;
 }
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 1529859..a8a9057 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -287,6 +287,7 @@
     int RIL_REQUEST_ALLOW_DATA = 123;
     int RIL_REQUEST_GET_HARDWARE_CONFIG = 124;
     int RIL_REQUEST_SIM_AUTHENTICATION = 125;
+    int RIL_REQUEST_SET_DATA_PROFILE = 128;
 
     int RIL_UNSOL_RESPONSE_BASE = 1000;
     int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000;
diff --git a/tests/FeatureSplit/feature1/Android.mk b/tests/FeatureSplit/feature1/Android.mk
index 3059824..adfb575 100644
--- a/tests/FeatureSplit/feature1/Android.mk
+++ b/tests/FeatureSplit/feature1/Android.mk
@@ -26,7 +26,6 @@
 localRStamp := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,COMMON)/src/R.stamp
 $(localRStamp): $(featureOfApk)
 
-$(info $(localRStamp))
 LOCAL_AAPT_FLAGS := --feature-of $(featureOfApk)
 
 include $(BUILD_PACKAGE)
diff --git a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/AppListFragment.java b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/AppListFragment.java
index c0f3a7f..526ea5d 100644
--- a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/AppListFragment.java
+++ b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/AppListFragment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2014 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/BrowserListFragment.java b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/BrowserListFragment.java
index 3fc468d..2fc77dc 100644
--- a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/BrowserListFragment.java
+++ b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/BrowserListFragment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2014 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/MainActivity.java b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/MainActivity.java
index ed91aad..4c28234 100644
--- a/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/MainActivity.java
+++ b/tests/MusicBrowserDemo/src/com/example/android/musicbrowserdemo/MainActivity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2014 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/tests/OneMedia/AndroidManifest.xml b/tests/OneMedia/AndroidManifest.xml
index 9d78ca5..95072a4 100644
--- a/tests/OneMedia/AndroidManifest.xml
+++ b/tests/OneMedia/AndroidManifest.xml
@@ -23,7 +23,7 @@
         </activity>
         <service
             android:name="com.android.onemedia.OnePlayerService"
-            android:exported="false"
+            android:exported="true"
             android:process="com.android.onemedia.service" />
         <service
             android:name=".provider.OneMediaRouteProvider"
diff --git a/tests/OneMedia/res/drawable/ic_fast_forward.xml b/tests/OneMedia/res/drawable/ic_fast_forward.xml
new file mode 100644
index 0000000..8daf07d
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_fast_forward.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M4.0,18.0l8.5,-6.0L4.0,6.0L4.0,18.0zM13.0,6.0l0.0,12.0l8.5,-6.0L13.0,6.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_fast_rewind.xml b/tests/OneMedia/res/drawable/ic_fast_rewind.xml
new file mode 100644
index 0000000..4ed1f54
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_fast_rewind.xml
@@ -0,0 +1,24 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M11.0,18.0L11.0,6.0l-8.5,6.0L11.0,18.0zM11.5,12.0l8.5,6.0L20.0,6.0L11.5,12.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_pause.xml b/tests/OneMedia/res/drawable/ic_pause.xml
new file mode 100644
index 0000000..15d0756
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_pause.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M6.0,19.0l4.0,0.0L10.0,5.0L6.0,5.0L6.0,19.0zM14.0,5.0l0.0,14.0l4.0,0.0L18.0,5.0L14.0,5.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_play_arrow.xml b/tests/OneMedia/res/drawable/ic_play_arrow.xml
new file mode 100644
index 0000000..49d766d
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_play_arrow.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M8.0,5.0l0.0,14.0 11.0,-7.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_skip_next.xml b/tests/OneMedia/res/drawable/ic_skip_next.xml
new file mode 100644
index 0000000..8a6ceca
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_skip_next.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M6.0,18.0l8.5,-6.0L6.0,6.0L6.0,18.0zM16.0,6.0l0.0,12.0l2.0,0.0L18.0,6.0L16.0,6.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_skip_previous.xml b/tests/OneMedia/res/drawable/ic_skip_previous.xml
new file mode 100644
index 0000000..c5d07db
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_skip_previous.xml
@@ -0,0 +1,28 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M6.0,6.0l2.0,0.0l0.0,12.0l-2.0,0.0z"/>
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M9.5,12.0l8.5,6.0 0.0,-12.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/drawable/ic_stop.xml b/tests/OneMedia/res/drawable/ic_stop.xml
new file mode 100644
index 0000000..6043fdb
--- /dev/null
+++ b/tests/OneMedia/res/drawable/ic_stop.xml
@@ -0,0 +1,25 @@
+<!--
+Copyright (C) 2014 The Android Open Source Project
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="36dp"
+    android:height="36dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24" >
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M6.0,6.0l12.0,0.0l0.0,12.0l-12.0,0.0z"/>
+</vector>
diff --git a/tests/OneMedia/res/layout/activity_one_player.xml b/tests/OneMedia/res/layout/activity_one_player.xml
index 516562f..ce2d641 100644
--- a/tests/OneMedia/res/layout/activity_one_player.xml
+++ b/tests/OneMedia/res/layout/activity_one_player.xml
@@ -33,6 +33,19 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/has_video" />
+    <ImageView
+            android:id="@+id/art"
+            android:layout_width="match_parent"
+            android:layout_height="96dp"
+            android:scaleType="centerCrop"
+            android:visibility="gone"
+            />
+    <Button
+            android:id="@+id/art_picker"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/art_picker"
+            />
     <LinearLayout
             android:id="@+id/controls"
             android:layout_width="match_parent"
diff --git a/tests/OneMedia/res/values/strings.xml b/tests/OneMedia/res/values/strings.xml
index 3735c8d..86657fd 100644
--- a/tests/OneMedia/res/values/strings.xml
+++ b/tests/OneMedia/res/values/strings.xml
@@ -12,5 +12,5 @@
     <string name="media_next_hint">Next content</string>
     <string name="has_video">Is video</string>
     <string name="has_duration">Has duration</string>
-
+    <string name="art_picker">Choose artwork</string>
 </resources>
diff --git a/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl b/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl
index d4df4c5..f53eac0 100644
--- a/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl
+++ b/tests/OneMedia/src/com/android/onemedia/IPlayerService.aidl
@@ -15,6 +15,7 @@
 
 package com.android.onemedia;
 
+import android.graphics.Bitmap;
 import android.media.session.MediaSession;
 import android.os.Bundle;
 
@@ -26,4 +27,5 @@
     void registerCallback(in IPlayerCallback cb);
     void unregisterCallback(in IPlayerCallback cb);
     void sendRequest(String action, in Bundle params, in IRequestCallback cb);
+    void setIcon(in Bitmap icon);
 }
diff --git a/tests/OneMedia/src/com/android/onemedia/NotificationHelper.java b/tests/OneMedia/src/com/android/onemedia/NotificationHelper.java
new file mode 100644
index 0000000..a5bcda5
--- /dev/null
+++ b/tests/OneMedia/src/com/android/onemedia/NotificationHelper.java
@@ -0,0 +1,234 @@
+package com.android.onemedia;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Bitmap;
+import android.media.MediaMetadata;
+import android.media.session.MediaController;
+import android.media.session.MediaSession;
+import android.media.session.PlaybackState;
+import android.text.format.DateUtils;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.onemedia.playback.RequestUtils;
+
+/**
+ * Keeps track of a notification and updates it automatically for a given
+ * MediaSession.
+ */
+public class NotificationHelper extends BroadcastReceiver {
+    private static final String TAG = "NotificationHelper";
+
+    private static final int NOTIFICATION_ID = 433; // John Cage, 1952
+
+    private final Service mService;
+    private final MediaSession mSession;
+    private final MediaController mController;
+    private final MediaController.TransportControls mTransportControls;
+    private final SparseArray<PendingIntent> mIntents = new SparseArray<PendingIntent>();
+
+    private PlaybackState mPlaybackState;
+    private MediaMetadata mMetadata;
+
+    private boolean mStarted = false;
+
+    public NotificationHelper(Service service, MediaSession session) {
+        mService = service;
+        mSession = session;
+        mController = session.getController();
+        mTransportControls = mController.getTransportControls();
+        String pkg = mService.getPackageName();
+
+        mIntents.put(R.drawable.ic_pause, PendingIntent.getBroadcast(mService, 100, new Intent(
+                com.android.onemedia.playback.RequestUtils.ACTION_PAUSE).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+        mIntents.put(R.drawable.ic_play_arrow, PendingIntent.getBroadcast(mService, 100,
+                new Intent(com.android.onemedia.playback.RequestUtils.ACTION_PLAY).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+        mIntents.put(R.drawable.ic_skip_previous, PendingIntent.getBroadcast(mService, 100,
+                new Intent(com.android.onemedia.playback.RequestUtils.ACTION_PREV).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+        mIntents.put(R.drawable.ic_skip_next, PendingIntent.getBroadcast(mService, 100,
+                new Intent(com.android.onemedia.playback.RequestUtils.ACTION_NEXT).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+        mIntents.put(R.drawable.ic_fast_rewind, PendingIntent.getBroadcast(mService, 100,
+                new Intent(com.android.onemedia.playback.RequestUtils.ACTION_REW).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+        mIntents.put(R.drawable.ic_fast_forward, PendingIntent.getBroadcast(mService, 100,
+                new Intent(com.android.onemedia.playback.RequestUtils.ACTION_FFWD).setPackage(pkg),
+                PendingIntent.FLAG_CANCEL_CURRENT));
+    }
+
+    /**
+     * Posts the notification and starts tracking the session to keep it
+     * updated. The notification will automatically be removed if the session is
+     * destroyed before {@link #onStop} is called.
+     */
+    public void onStart() {
+        mController.addCallback(mCb);
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(RequestUtils.ACTION_FFWD);
+        filter.addAction(RequestUtils.ACTION_NEXT);
+        filter.addAction(RequestUtils.ACTION_PAUSE);
+        filter.addAction(RequestUtils.ACTION_PLAY);
+        filter.addAction(RequestUtils.ACTION_PREV);
+        filter.addAction(RequestUtils.ACTION_REW);
+        mService.registerReceiver(this, filter);
+
+        mMetadata = mController.getMetadata();
+        mPlaybackState = mController.getPlaybackState();
+
+        mStarted = true;
+        // The notification must be updated after setting started to true
+        updateNotification();
+    }
+
+    /**
+     * Removes the notification and stops tracking the session. If the session
+     * was destroyed this has no effect.
+     */
+    public void onStop() {
+        mStarted = false;
+        mController.removeCallback(mCb);
+        mService.unregisterReceiver(this);
+        updateNotification();
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        final String action = intent.getAction();
+        Log.d(TAG, "Received intent with action " + action);
+        if (RequestUtils.ACTION_PAUSE.equals(action)) {
+            mTransportControls.pause();
+        } else if (RequestUtils.ACTION_PLAY.equals(action)) {
+            mTransportControls.play();
+        } else if (RequestUtils.ACTION_NEXT.equals(action)) {
+            mTransportControls.skipToNext();
+        } else if (RequestUtils.ACTION_PREV.equals(action)) {
+            mTransportControls.skipToPrevious();
+        } else if (RequestUtils.ACTION_REW.equals(action)) {
+            mTransportControls.rewind();
+        } else if (RequestUtils.ACTION_FFWD.equals(action)) {
+            mTransportControls.fastForward();
+        }
+
+    }
+
+    private final MediaController.Callback mCb = new MediaController.Callback() {
+        @Override
+        public void onPlaybackStateChanged(PlaybackState state) {
+            mPlaybackState = state;
+            Log.d(TAG, "Received new playback state" + state);
+            updateNotification();
+        }
+
+        @Override
+        public void onMetadataChanged(MediaMetadata metadata) {
+            mMetadata = metadata;
+            Log.d(TAG, "Received new metadata " + metadata);
+            updateNotification();
+        }
+    };
+
+    NotificationManager mNoMan = null;
+
+    private void updateNotification() {
+        if (mNoMan == null) {
+            mNoMan = (NotificationManager) mService.getSystemService(Context.NOTIFICATION_SERVICE);
+        }
+        if (mPlaybackState == null) {
+            mNoMan.cancel(NOTIFICATION_ID);
+            return;
+        }
+        if (!mStarted) {
+            mNoMan.cancel(NOTIFICATION_ID);
+            return;
+        }
+
+        String status;
+        final int state = mPlaybackState.getState();
+        switch (state) {
+            case PlaybackState.STATE_PLAYING:
+                status = "PLAYING: ";
+                break;
+            case PlaybackState.STATE_PAUSED:
+                status = "PAUSED: ";
+                break;
+            case PlaybackState.STATE_STOPPED:
+                status = "STOPPED: ";
+                break;
+            case PlaybackState.STATE_ERROR:
+                status = "ERROR: ";
+                break;
+            case PlaybackState.STATE_BUFFERING:
+                status = "BUFFERING: ";
+                break;
+            case PlaybackState.STATE_NONE:
+            default:
+                status = "";
+                break;
+        }
+        CharSequence title, text;
+        Bitmap art;
+        if (mMetadata == null) {
+            title = status;
+            text = "Empty metadata!";
+            art = null;
+        } else {
+            MediaMetadata.Description description = mMetadata.getDescription();
+            title = description.getTitle();
+            text = description.getSubtitle();
+            art = description.getIcon();
+        }
+
+        String playPauseLabel = "";
+        int playPauseIcon;
+        if (state == PlaybackState.STATE_PLAYING) {
+            playPauseLabel = "Pause";
+            playPauseIcon = R.drawable.ic_pause;
+        } else {
+            playPauseLabel = "Play";
+            playPauseIcon = R.drawable.ic_play_arrow;
+        }
+
+        final long pos = mPlaybackState.getPosition();
+        final long end = mMetadata == null ? 0 : mMetadata
+                .getLong(MediaMetadata.METADATA_KEY_DURATION);
+        Notification notification = new Notification.Builder(mService)
+                .setSmallIcon(android.R.drawable.stat_notify_chat)
+                .setContentTitle(title)
+                .setContentText(text)
+                .setShowWhen(false)
+                .setContentInfo(DateUtils.formatElapsedTime(pos))
+                .setProgress((int) end, (int) pos, false)
+                .setLargeIcon(art)
+                .addAction(R.drawable.ic_skip_previous, "Previous",
+                        mIntents.get(R.drawable.ic_skip_previous))
+                .addAction(R.drawable.ic_fast_rewind, "Rewind",
+                        mIntents.get(R.drawable.ic_fast_rewind))
+                .addAction(playPauseIcon, playPauseLabel,
+                        mIntents.get(playPauseIcon))
+                .addAction(R.drawable.ic_fast_forward, "Fast Forward",
+                        mIntents.get(R.drawable.ic_fast_forward))
+                .addAction(R.drawable.ic_skip_next, "Next",
+                        mIntents.get(R.drawable.ic_skip_next))
+                .setStyle(new Notification.MediaStyle()
+                        .setShowActionsInCompactView(2)
+                        .setMediaSession(mSession.getSessionToken()))
+                .setColor(0xFFDB4437)
+                .build();
+
+        mService.startForeground(NOTIFICATION_ID, notification);
+    }
+
+}
diff --git a/tests/OneMedia/src/com/android/onemedia/OnePlayerActivity.java b/tests/OneMedia/src/com/android/onemedia/OnePlayerActivity.java
index 894377b..2ff3e20 100644
--- a/tests/OneMedia/src/com/android/onemedia/OnePlayerActivity.java
+++ b/tests/OneMedia/src/com/android/onemedia/OnePlayerActivity.java
@@ -17,20 +17,35 @@
 
 
 import android.app.Activity;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.media.MediaMetadata;
 import android.media.session.PlaybackState;
+import android.net.Uri;
 import android.os.Bundle;
+import android.provider.MediaStore;
+import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.Menu;
 import android.view.View;
 import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.EditText;
+import android.widget.ImageView;
 import android.widget.TextView;
 
+import java.io.IOException;
+
 public class OnePlayerActivity extends Activity {
     private static final String TAG = "OnePlayerActivity";
 
+    private static final int READ_REQUEST_CODE = 42;
+
     protected PlayerController mPlayer;
 
     private Button mStartButton;
@@ -41,8 +56,10 @@
     private EditText mContentText;
     private EditText mNextContentText;
     private CheckBox mHasVideo;
+    private ImageView mArtView;
 
-    private int mPlaybackState;
+    private PlaybackState mPlaybackState;
+    private Bitmap mAlbumArtBitmap;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -58,6 +75,10 @@
         mContentText = (EditText) findViewById(R.id.content);
         mNextContentText = (EditText) findViewById(R.id.next_content);
         mHasVideo = (CheckBox) findViewById(R.id.has_video);
+        mArtView = (ImageView) findViewById(R.id.art);
+
+        final Button artPicker = (Button) findViewById(R.id.art_picker);
+        artPicker.setOnClickListener(mButtonListener);
 
         mStartButton.setOnClickListener(mButtonListener);
         mPlayButton.setOnClickListener(mButtonListener);
@@ -86,6 +107,31 @@
         super.onPause();
     }
 
+    @Override
+    public void onActivityResult(int requestCode, int resultCode,
+            Intent resultData) {
+        if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
+            Uri uri = null;
+            if (resultData != null) {
+                uri = resultData.getData();
+                Log.i(TAG, "Uri: " + uri.toString());
+                mAlbumArtBitmap = null;
+                try {
+                    mAlbumArtBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
+                } catch (IOException e) {
+                    Log.v(TAG, "Couldn't load album art", e);
+                }
+                mArtView.setImageBitmap(mAlbumArtBitmap);
+                if (mAlbumArtBitmap != null) {
+                    mArtView.setVisibility(View.VISIBLE);
+                } else {
+                    mArtView.setVisibility(View.GONE);
+                }
+                mPlayer.setArt(mAlbumArtBitmap);
+            }
+        }
+    }
+
     private void setControlsEnabled(boolean enabled) {
         mStartButton.setEnabled(enabled);
         mPlayButton.setEnabled(enabled);
@@ -94,36 +140,46 @@
     private View.OnClickListener mButtonListener = new View.OnClickListener() {
         @Override
         public void onClick(View v) {
+            final int state = mPlaybackState.getState();
             switch (v.getId()) {
                 case R.id.play_button:
-                    Log.d(TAG, "Play button pressed, in state " + mPlaybackState);
-                    if (mPlaybackState == PlaybackState.STATE_PAUSED
-                            || mPlaybackState == PlaybackState.STATE_STOPPED) {
+                    Log.d(TAG, "Play button pressed, in state " + state);
+                    if (state == PlaybackState.STATE_PAUSED
+                            || state == PlaybackState.STATE_STOPPED) {
                         mPlayer.play();
-                    } else if (mPlaybackState == PlaybackState.STATE_PLAYING) {
+                    } else if (state == PlaybackState.STATE_PLAYING) {
                         mPlayer.pause();
                     }
                     break;
                 case R.id.start_button:
-                    Log.d(TAG, "Start button pressed, in state " + mPlaybackState);
+                    Log.d(TAG, "Start button pressed, in state " + state);
                     mPlayer.setContent(mContentText.getText().toString());
                     break;
                 case R.id.route_button:
                     mPlayer.showRoutePicker();
                     break;
+                case R.id.art_picker:
+                    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+                    intent.addCategory(Intent.CATEGORY_OPENABLE);
+                    intent.setType("image/*");
+
+                    startActivityForResult(intent, READ_REQUEST_CODE);
+                    break;
             }
 
         }
     };
 
     private PlayerController.Listener mListener = new PlayerController.Listener() {
+        public MediaMetadata mMetadata;
+
         @Override
         public void onPlaybackStateChange(PlaybackState state) {
-            mPlaybackState = state.getState();
+            mPlaybackState = state;
             boolean enablePlay = false;
             boolean enableControls = true;
             StringBuilder statusBuilder = new StringBuilder();
-            switch (mPlaybackState) {
+            switch (mPlaybackState.getState()) {
                 case PlaybackState.STATE_PLAYING:
                     statusBuilder.append("playing");
                     mPlayButton.setText("Pause");
@@ -172,7 +228,7 @@
 
         @Override
         public void onMetadataChange(MediaMetadata metadata) {
-            Log.d(TAG, "Metadata update! Title: " + metadata);
+            mMetadata = metadata;
         }
     };
 }
diff --git a/tests/OneMedia/src/com/android/onemedia/PlayerController.java b/tests/OneMedia/src/com/android/onemedia/PlayerController.java
index c0799fc..c8d72ca 100644
--- a/tests/OneMedia/src/com/android/onemedia/PlayerController.java
+++ b/tests/OneMedia/src/com/android/onemedia/PlayerController.java
@@ -30,6 +30,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.graphics.Bitmap;
 import android.util.Log;
 
 import com.android.onemedia.playback.RequestUtils;
@@ -52,6 +53,7 @@
     private Handler mHandler = new Handler();
 
     private boolean mResumed;
+    private Bitmap mArt;
 
     public PlayerController(Activity context, Intent serviceIntent) {
         mContext = context;
@@ -89,6 +91,16 @@
         unbindFromService();
     }
 
+    public void setArt(Bitmap art) {
+        mArt = art;
+        if (mBinder != null) {
+            try {
+                mBinder.setIcon(art);
+            } catch (RemoteException e) {
+            }
+        }
+    }
+
     public void play() {
         if (mTransportControls != null) {
             mTransportControls.play();
@@ -125,6 +137,16 @@
         // TODO
     }
 
+    public MediaSession.Token getSessionToken() {
+        if (mBinder != null) {
+            try {
+                return mBinder.getSessionToken();
+            } catch (RemoteException e) {
+            }
+        }
+        return null;
+    }
+
     private void unbindFromService() {
         mContext.unbindService(mServiceConnection);
     }
@@ -165,6 +187,9 @@
             mContext.setMediaController(mController);
             mController.addCallback(mControllerCb, mHandler);
             mTransportControls = mController.getTransportControls();
+            if (mArt != null) {
+                setArt(mArt);
+            }
             Log.d(TAG, "Ready to use PlayerService");
 
             if (mListener != null) {
@@ -194,6 +219,9 @@
                 return;
             }
             Log.d(TAG, "Received metadata change, " + metadata.getDescription());
+            if (mListener != null) {
+                mListener.onMetadataChange(metadata);
+            }
         }
     }
 
diff --git a/tests/OneMedia/src/com/android/onemedia/PlayerService.java b/tests/OneMedia/src/com/android/onemedia/PlayerService.java
index 58ee4a1..9967c99 100644
--- a/tests/OneMedia/src/com/android/onemedia/PlayerService.java
+++ b/tests/OneMedia/src/com/android/onemedia/PlayerService.java
@@ -17,6 +17,7 @@
 
 import android.app.Service;
 import android.content.Intent;
+import android.graphics.Bitmap;
 import android.media.session.MediaSession;
 import android.media.session.PlaybackState;
 import android.os.Bundle;
@@ -34,6 +35,7 @@
 
     private PlayerBinder mBinder;
     private PlayerSession mSession;
+    private NotificationHelper mNotifyHelper;
     private Intent mIntent;
     private boolean mStarted = false;
 
@@ -47,6 +49,7 @@
             mSession = onCreatePlayerController();
             mSession.createSession();
             mSession.setListener(mPlayerListener);
+            mNotifyHelper = new NotificationHelper(this, mSession.mSession);
         }
     }
 
@@ -75,6 +78,7 @@
         if (!mStarted) {
             Log.d(TAG, "Starting self");
             startService(onCreateServiceIntent());
+            mNotifyHelper.onStart();
             mStarted = true;
         }
     }
@@ -82,6 +86,7 @@
     public void onPlaybackEnded() {
         if (mStarted) {
             Log.d(TAG, "Stopping self");
+            mNotifyHelper.onStop();
             stopSelf();
             mStarted = false;
         }
@@ -150,8 +155,17 @@
 
         @Override
         public MediaSession.Token getSessionToken() throws RemoteException {
+            if (mSession == null) {
+                Log.e(TAG, "Error in PlayerService: mSession=null in getSessionToken()");
+                return null;
+            }
             return mSession.getSessionToken();
         }
+
+        @Override
+        public void setIcon(Bitmap icon) {
+            mSession.setIcon(icon);
+        }
     }
 
 }
diff --git a/tests/OneMedia/src/com/android/onemedia/PlayerSession.java b/tests/OneMedia/src/com/android/onemedia/PlayerSession.java
index 890d68d..9afcf24 100644
--- a/tests/OneMedia/src/com/android/onemedia/PlayerSession.java
+++ b/tests/OneMedia/src/com/android/onemedia/PlayerSession.java
@@ -17,6 +17,8 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.Bitmap;
+import android.media.MediaMetadata;
 import android.media.routing.MediaRouteSelector;
 import android.media.routing.MediaRouter;
 import android.media.routing.MediaRouter.ConnectionRequest;
@@ -50,6 +52,7 @@
     protected Renderer mRenderer;
     protected MediaSession.Callback mCallback;
     protected Renderer.Listener mRenderListener;
+    protected MediaMetadata.Builder mMetadataBuilder;
 
     protected PlaybackState mPlaybackState;
     protected Listener mListener;
@@ -66,6 +69,8 @@
         mPlaybackState = psBob.build();
 
         mRenderer.registerListener(mRenderListener);
+
+        initMetadata();
     }
 
     public void createSession() {
@@ -92,6 +97,7 @@
                 | MediaSession.FLAG_HANDLES_MEDIA_BUTTONS);
         mSession.setMediaRouter(mRouter);
         mSession.setActive(true);
+        updateMetadata();
     }
 
     public void onDestroy() {
@@ -130,6 +136,19 @@
         mRenderer.setNextContent(request);
     }
 
+    public void setIcon(Bitmap icon) {
+        mMetadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_DISPLAY_ICON, icon);
+        updateMetadata();
+    }
+
+    private void updateMetadata() {
+        // This is a mild abuse of metadata and shouldn't be duplicated in real
+        // code
+        if (mSession != null && mSession.isActive()) {
+            mSession.setMetadata(mMetadataBuilder.build());
+        }
+    }
+
     private void updateState(int newState) {
         float rate = newState == PlaybackState.STATE_PLAYING ? 1 : 0;
         long position = mRenderer == null ? -1 : mRenderer.getSeekPosition();
@@ -140,6 +159,14 @@
         mSession.setPlaybackState(mPlaybackState);
     }
 
+    private void initMetadata() {
+        mMetadataBuilder = new MediaMetadata.Builder();
+        mMetadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE,
+                "OneMedia display title");
+        mMetadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE,
+                "OneMedia display subtitle");
+    }
+
     public interface Listener {
         public void onPlayStateChanged(PlaybackState state);
     }
diff --git a/tests/OneMedia/src/com/android/onemedia/playback/RequestUtils.java b/tests/OneMedia/src/com/android/onemedia/playback/RequestUtils.java
index 3778c5f..1688395 100644
--- a/tests/OneMedia/src/com/android/onemedia/playback/RequestUtils.java
+++ b/tests/OneMedia/src/com/android/onemedia/playback/RequestUtils.java
@@ -26,6 +26,12 @@
 public class RequestUtils {
     public static final String ACTION_SET_CONTENT = "set_content";
     public static final String ACTION_SET_NEXT_CONTENT = "set_next_content";
+    public static final String ACTION_PAUSE = "com.android.onemedia.pause";
+    public static final String ACTION_PLAY = "com.android.onemedia.play";
+    public static final String ACTION_REW = "com.android.onemedia.rew";
+    public static final String ACTION_FFWD = "com.android.onemedia.ffwd";
+    public static final String ACTION_PREV = "com.android.onemedia.prev";
+    public static final String ACTION_NEXT = "com.android.onemedia.next";
 
     public static final String EXTRA_KEY_SOURCE = "source";
     public static final String EXTRA_KEY_METADATA = "metadata";
diff --git a/tests/UsesFeature2Test/AndroidManifest.xml b/tests/UsesFeature2Test/AndroidManifest.xml
index 6b6c4da..8caf4a1 100644
--- a/tests/UsesFeature2Test/AndroidManifest.xml
+++ b/tests/UsesFeature2Test/AndroidManifest.xml
@@ -33,12 +33,5 @@
         <uses-feature android:name="android.hardware.opengles.aep" />
     </feature-group>
 
-    <application android:label="@string/app_title">
-        <activity android:name="ActivityMain">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
+    <application android:label="@string/app_title" android:hasCode="false" />
 </manifest>
diff --git a/tools/aapt/ApkBuilder.cpp b/tools/aapt/ApkBuilder.cpp
index 12f6040..01e02e2 100644
--- a/tools/aapt/ApkBuilder.cpp
+++ b/tools/aapt/ApkBuilder.cpp
@@ -85,11 +85,24 @@
         if (mName.size() > 0) {
             mName.append(",");
             mDirName.append("_");
+            mPackageSafeName.append(".");
         }
 
         String8 configStr = iter->toString();
+        String8 packageConfigStr(configStr);
+        size_t len = packageConfigStr.length();
+        if (len > 0) {
+            char* buf = packageConfigStr.lockBuffer(len);
+            for (char* end = buf + len; buf < end; ++buf) {
+                if (*buf == '-') {
+                    *buf = '_';
+                }
+            }
+            packageConfigStr.unlockBuffer(len);
+        }
         mName.append(configStr);
         mDirName.append(configStr);
+        mPackageSafeName.append(packageConfigStr);
     }
 }
 
diff --git a/tools/aapt/ApkBuilder.h b/tools/aapt/ApkBuilder.h
index db23c84..0d7f06b 100644
--- a/tools/aapt/ApkBuilder.h
+++ b/tools/aapt/ApkBuilder.h
@@ -95,6 +95,10 @@
         return mDirName;
     }
 
+    const android::String8& getPackageSafeName() const {
+        return mPackageSafeName;
+    }
+
     bool isBase() const {
         return mIsBase;
     }
@@ -111,6 +115,7 @@
     const bool mIsBase;
     String8 mName;
     String8 mDirName;
+    String8 mPackageSafeName;
     std::set<OutputEntry> mFiles;
 };
 
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index ccbdadd..5d146d6 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -764,12 +764,9 @@
         return 1;
     }
 
+    // The dynamicRefTable can be null if there are no resources for this asset cookie.
+    // This fine.
     const DynamicRefTable* dynamicRefTable = res.getDynamicRefTableForCookie(assetsCookie);
-    if (dynamicRefTable == NULL) {
-        fprintf(stderr, "ERROR: failed to find dynamic reference table for asset cookie %d\n",
-                assetsCookie);
-        return 1;
-    }
 
     Asset* asset = NULL;
 
@@ -992,6 +989,10 @@
             bool hasReadCallLogPermission = false;
             bool hasWriteCallLogPermission = false;
 
+            // If an app declares itself as multiArch, we report the
+            // native libraries differently.
+            bool hasMultiArch = false;
+
             // This next group of variables is used to implement a group of
             // backward-compatibility heuristics necessitated by the addition of
             // some new uses-feature constants in 2.1 and 2.2. In most cases, the
@@ -1163,8 +1164,15 @@
                         fprintf(stderr, "ERROR getting 'android:versionName' attribute: %s\n", error.string());
                         goto bail;
                     }
-                    printf("versionName='%s'\n",
+                    printf("versionName='%s'",
                             ResTable::normalizeForOutput(versionName.string()).string());
+
+                    String8 splitName = getAttribute(tree, NULL, "split", NULL);
+                    if (!splitName.isEmpty()) {
+                        printf(" split='%s'", ResTable::normalizeForOutput(
+                                    splitName.string()).string());
+                    }
+                    printf("\n");
                 } else if (depth == 2) {
                     withinApplication = false;
                     if (tag == "application") {
@@ -1229,6 +1237,20 @@
                         if (debuggable != 0) {
                             printf("application-debuggable\n");
                         }
+
+                        // We must search by name because the multiArch flag hasn't been API
+                        // frozen yet.
+                        int32_t multiArchIndex = tree.indexOfAttribute(RESOURCES_ANDROID_NAMESPACE,
+                                "multiArch");
+                        if (multiArchIndex >= 0) {
+                            Res_value value;
+                            if (tree.getAttributeValue(multiArchIndex, &value) != NO_ERROR) {
+                                if (value.dataType >= Res_value::TYPE_FIRST_INT &&
+                                        value.dataType <= Res_value::TYPE_LAST_INT) {
+                                    hasMultiArch = value.data;
+                                }
+                            }
+                        }
                     } else if (tag == "uses-sdk") {
                         int32_t code = getIntegerAttribute(tree, MIN_SDK_VERSION_ATTR, &error);
                         if (error != "") {
@@ -1669,12 +1691,8 @@
 
                         String8 name = getResolvedAttribute(&res, tree, NAME_ATTR, &error);
                         if (name != "" && error == "") {
-                            int required = getIntegerAttribute(tree, REQUIRED_ATTR, NULL, 1);
-                            top.features.add(name, required);
-                            if (required) {
-                                addParentFeatures(&top, name);
-                            }
-
+                            top.features.add(name, true);
+                            addParentFeatures(&top, name);
                         } else {
                             int vers = getIntegerAttribute(tree, GL_ES_VERSION_ATTR, &error);
                             if (error == "") {
@@ -2044,12 +2062,54 @@
             AssetDir* dir = assets.openNonAssetDir(assetsCookie, "lib");
             if (dir != NULL) {
                 if (dir->getFileCount() > 0) {
-                    printf("native-code:");
+                    SortedVector<String8> architectures;
                     for (size_t i=0; i<dir->getFileCount(); i++) {
-                        printf(" '%s'", ResTable::normalizeForOutput(
-                                dir->getFileName(i).string()).string());
+                        architectures.add(ResTable::normalizeForOutput(
+                                dir->getFileName(i).string()));
                     }
-                    printf("\n");
+
+                    bool outputAltNativeCode = false;
+                    // A multiArch package is one that contains 64-bit and
+                    // 32-bit versions of native code and expects 3rd-party
+                    // apps to load these native code libraries. Since most
+                    // 64-bit systems also support 32-bit apps, the apps
+                    // loading this multiArch package's code may be either
+                    // 32-bit or 64-bit.
+                    if (hasMultiArch) {
+                        // If this is a multiArch package, report the 64-bit
+                        // version only. Then as a separate entry, report the
+                        // rest.
+                        //
+                        // If we report the 32-bit architecture, this APK will
+                        // be installed on a 32-bit device, causing a large waste
+                        // of bandwidth and disk space. This assumes that
+                        // the developer of the multiArch package has also
+                        // made a version that is 32-bit only.
+                        String8 intel64("x86_64");
+                        String8 arm64("arm64-v8a");
+                        ssize_t index = architectures.indexOf(intel64);
+                        if (index < 0) {
+                            index = architectures.indexOf(arm64);
+                        }
+
+                        if (index >= 0) {
+                            printf("native-code: '%s'\n", architectures[index].string());
+                            architectures.removeAt(index);
+                            outputAltNativeCode = true;
+                        }
+                    }
+
+                    const size_t archCount = architectures.size();
+                    if (archCount > 0) {
+                        if (outputAltNativeCode) {
+                            printf("alt-");
+                        }
+                        printf("native-code:");
+                        for (size_t i = 0; i < archCount; i++) {
+                            printf(" '%s'", architectures[i].string());
+                        }
+                        printf("\n");
+                    }
                 }
                 delete dir;
             }
diff --git a/tools/aapt/Images.cpp b/tools/aapt/Images.cpp
index cf3dd0a..137c85c 100644
--- a/tools/aapt/Images.cpp
+++ b/tools/aapt/Images.cpp
@@ -485,9 +485,13 @@
     find_max_opacity(image->rows, innerStartX, innerStartY, innerMidX, innerMidY, 1, 1,
             &diagonalInset);
 
-    // Determine source radius based upon inset
-    // radius = 1 / (sqrt(2) - 1) * inset
-    image->outlineRadius = 2.4142f * diagonalInset;
+    /* Determine source radius based upon inset:
+     *     sqrt(r^2 + r^2) = sqrt(i^2 + i^2) + r
+     *     sqrt(2) * r = sqrt(2) * i + r
+     *     (sqrt(2) - 1) * r = sqrt(2) * i
+     *     r = sqrt(2) / (sqrt(2) - 1) * i
+     */
+    image->outlineRadius = 3.4142f * diagonalInset;
 
     NOISY(printf("outline insets %d %d %d %d, rad %f, alpha %x\n",
             image->outlineInsetsLeft,
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 2401b3a..0a80805 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -937,8 +937,8 @@
     }
 
     // Add the 'split' attribute which describes the configurations included.
-    String8 splitName("config_");
-    splitName.append(split->getDirectorySafeName());
+    String8 splitName("config.");
+    splitName.append(split->getPackageSafeName());
     manifest->addAttribute(String16(), String16("split"), String16(splitName));
 
     // Build an empty <application> tag (required).
@@ -1470,6 +1470,8 @@
     String16 action16("action");
     String16 category16("category");
     String16 data16("scheme");
+    String16 feature_group16("feature-group");
+    String16 uses_feature16("uses-feature");
     const char* packageIdentChars = "abcdefghijklmnopqrstuvwxyz"
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ._0123456789";
     const char* packageIdentCharsWithTheStupid = "abcdefghijklmnopqrstuvwxyz"
@@ -1680,10 +1682,43 @@
                                  schemeIdentChars, true) != ATTR_OKAY) {
                     hasErrors = true;
                 }
+            } else if (strcmp16(block.getElementName(&len), feature_group16.string()) == 0) {
+                int depth = 1;
+                while ((code=block.next()) != ResXMLTree::END_DOCUMENT
+                       && code > ResXMLTree::BAD_DOCUMENT) {
+                    if (code == ResXMLTree::START_TAG) {
+                        depth++;
+                        if (strcmp16(block.getElementName(&len), uses_feature16.string()) == 0) {
+                            ssize_t idx = block.indexOfAttribute(
+                                    RESOURCES_ANDROID_NAMESPACE, "required");
+                            if (idx < 0) {
+                                continue;
+                            }
+
+                            int32_t data = block.getAttributeData(idx);
+                            if (data == 0) {
+                                fprintf(stderr, "%s:%d: Tag <uses-feature> can not have "
+                                        "android:required=\"false\" when inside a "
+                                        "<feature-group> tag.\n",
+                                        manifestPath.string(), block.getLineNumber());
+                                hasErrors = true;
+                            }
+                        }
+                    } else if (code == ResXMLTree::END_TAG) {
+                        depth--;
+                        if (depth == 0) {
+                            break;
+                        }
+                    }
+                }
             }
         }
     }
 
+    if (hasErrors) {
+        return UNKNOWN_ERROR;
+    }
+
     if (resFile != NULL) {
         // These resources are now considered to be a part of the included
         // resources, for others to reference.
diff --git a/tools/layoutlib/.idea/copyright/profiles_settings.xml b/tools/layoutlib/.idea/copyright/profiles_settings.xml
index e7bedf3..20145de 100644
--- a/tools/layoutlib/.idea/copyright/profiles_settings.xml
+++ b/tools/layoutlib/.idea/copyright/profiles_settings.xml
@@ -1,3 +1,3 @@
 <component name="CopyrightManager">
-  <settings default="" />
+  <settings default="Android" />
 </component>
\ No newline at end of file
diff --git a/tools/layoutlib/bridge/resources/bars/README b/tools/layoutlib/bridge/resources/bars/README
new file mode 100644
index 0000000..c84ef80
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/README
@@ -0,0 +1,8 @@
+The directory contains the resources for StatusBar and Navigation Bar.
+
+The resources are not arranged as per the standard resources configuration.
+They are stored per API. However, to prevent duplication of resources, each API
+resource directory is used as a backup for all earlier API levels.
+
+For example, for the back icon for ICS, we search first in v18, where we don't
+find it, and then in v19.
diff --git a/tools/layoutlib/bridge/resources/bars/status_bar.xml b/tools/layoutlib/bridge/resources/bars/status_bar.xml
index 51b474d..75bfb6e 100644
--- a/tools/layoutlib/bridge/resources/bars/status_bar.xml
+++ b/tools/layoutlib/bridge/resources/bars/status_bar.xml
@@ -13,5 +13,5 @@
 			android:layout_width="wrap_content"
 			android:layout_marginLeft="3dp"
 			android:layout_marginRight="5dp"
-			android:layout_marginTop="1dp"/>
+			android:layout_marginTop="2dp"/>
 </merge>
diff --git a/tools/layoutlib/bridge/resources/bars/v11/README b/tools/layoutlib/bridge/resources/bars/v11/README
deleted file mode 100644
index ae094e2..0000000
--- a/tools/layoutlib/bridge/resources/bars/v11/README
+++ /dev/null
@@ -1 +0,0 @@
-Resources for Api level 11-20
diff --git a/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..c920ec4
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..931daed
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/hdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..943332e
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..6e1ac91
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/mdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..36c61e1
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..625c61d
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v18/xhdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_home.png b/tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_home.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_home.png
rename to tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_home.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/hdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/hdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/hdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v19/hdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..6248cfd
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/hdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-hdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-hdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-hdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-hdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-hdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-hdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-hdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-hdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-mdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-mdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-mdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-mdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-mdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-mdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-mdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-mdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-xhdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-xhdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-xhdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-xhdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/ldrtl-xhdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/ldrtl-xhdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/ldrtl-xhdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/ldrtl-xhdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_home.png b/tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_home.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_home.png
rename to tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_home.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/mdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/mdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/mdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v19/mdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..441de0c
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/mdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_back.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_back.png
rename to tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_home.png b/tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_home.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_home.png
rename to tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_home.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_recent.png
similarity index 100%
rename from tools/layoutlib/bridge/resources/bars/v11/xhdpi/ic_sysbar_recent.png
rename to tools/layoutlib/bridge/resources/bars/v19/xhdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/xhdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v19/xhdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..459a1a2
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/xhdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_back.png b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_back.png
new file mode 100644
index 0000000..79cfcee
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_back.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_home.png b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_home.png
new file mode 100644
index 0000000..64f6a22
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_home.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_recent.png b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_recent.png
new file mode 100644
index 0000000..6e0b071
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/ic_sysbar_recent.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..494b005
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v19/xxhdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..f17189a
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_charge_anim100.png b/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_charge_anim100.png
deleted file mode 100644
index 829378e..0000000
--- a/tools/layoutlib/bridge/resources/bars/v21/hdpi/stat_sys_battery_charge_anim100.png
+++ /dev/null
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/hdpi/status_bar_background.9.png b/tools/layoutlib/bridge/resources/bars/v21/hdpi/status_bar_background.9.png
deleted file mode 100644
index a4be298..0000000
--- a/tools/layoutlib/bridge/resources/bars/v21/hdpi/status_bar_background.9.png
+++ /dev/null
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..2a9757d
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_charge_anim100.png b/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_charge_anim100.png
deleted file mode 100644
index 2773a70..0000000
--- a/tools/layoutlib/bridge/resources/bars/v21/mdpi/stat_sys_battery_charge_anim100.png
+++ /dev/null
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/mdpi/status_bar_background.9.png b/tools/layoutlib/bridge/resources/bars/v21/mdpi/status_bar_background.9.png
deleted file mode 100644
index eb7c1a4..0000000
--- a/tools/layoutlib/bridge/resources/bars/v21/mdpi/status_bar_background.9.png
+++ /dev/null
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..555bcd9
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_charge_anim100.png b/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_charge_anim100.png
deleted file mode 100644
index c7fd719..0000000
--- a/tools/layoutlib/bridge/resources/bars/v21/xhdpi/stat_sys_battery_charge_anim100.png
+++ /dev/null
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v21/xxhdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v21/xxhdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..6474aad
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v21/xxhdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..754cdf6
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..b5326d2
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v9/hdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v9/ldpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v9/ldpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..7023ea7
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v9/ldpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_battery_100.png b/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_battery_100.png
new file mode 100644
index 0000000..17a955d
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_wifi_signal_4_fully.png b/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_wifi_signal_4_fully.png
new file mode 100644
index 0000000..19165ab
--- /dev/null
+++ b/tools/layoutlib/bridge/resources/bars/v9/mdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/tools/layoutlib/bridge/src/android/graphics/BidiRenderer.java b/tools/layoutlib/bridge/src/android/graphics/BidiRenderer.java
index 154851b..a4a3b7d 100644
--- a/tools/layoutlib/bridge/src/android/graphics/BidiRenderer.java
+++ b/tools/layoutlib/bridge/src/android/graphics/BidiRenderer.java
@@ -80,6 +80,10 @@
         mText = text;
         mFonts = new ArrayList<Font>(paint.getFonts().size());
         for (FontInfo fontInfo : paint.getFonts()) {
+            if (fontInfo == null) {
+                mFonts.add(null);
+                continue;
+            }
             mFonts.add(fontInfo.mFont);
         }
         mBounds = new RectF();
diff --git a/tools/layoutlib/bridge/src/android/graphics/FontFamily_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/FontFamily_Delegate.java
index de3307f..bd80cb8 100644
--- a/tools/layoutlib/bridge/src/android/graphics/FontFamily_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/FontFamily_Delegate.java
@@ -26,8 +26,13 @@
 import java.awt.Font;
 import java.awt.FontFormatException;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Scanner;
+import java.util.Set;
 
 import static android.graphics.Typeface_Delegate.SYSTEM_FONTS;
 
@@ -50,6 +55,7 @@
     private static final String FONT_SUFFIX_BOLDITALIC = "BoldItalic.ttf";
     private static final String FONT_SUFFIX_BOLD = "Bold.ttf";
     private static final String FONT_SUFFIX_ITALIC = "Italic.ttf";
+    private static final String FN_ALL_FONTS_LIST = "fontsInSdk.txt";
 
     /**
      * A class associating {@link Font} with its metadata.
@@ -68,6 +74,7 @@
     private static String sFontLocation;
     private static final List<FontFamily_Delegate> sPostInitDelegate = new
             ArrayList<FontFamily_Delegate>();
+    private static Set<String> SDK_FONTS;
 
 
     // ---- delegate data ----
@@ -82,6 +89,8 @@
     private FontVariant mVariant;
     // Path of fonts that haven't been created since sFontLoader hasn't been initialized.
     private List<String> mPath = new ArrayList<String>();
+    /** @see #isValid() */
+    private boolean mValid = false;
 
 
     // ---- Public helper class ----
@@ -99,6 +108,31 @@
 
     public static synchronized void setFontLocation(String fontLocation) {
         sFontLocation = fontLocation;
+        // init list of bundled fonts.
+        File allFonts = new File(fontLocation, FN_ALL_FONTS_LIST);
+        // Current number of fonts is 103. Use the next round number to leave scope for more fonts
+        // in the future.
+        Set<String> allFontsList = new HashSet<String>(128);
+        Scanner scanner = null;
+        try {
+            scanner = new Scanner(allFonts);
+            while (scanner.hasNext()) {
+                String name = scanner.next();
+                // Skip font configuration files.
+                if (!name.endsWith(".xml")) {
+                    allFontsList.add(name);
+                }
+            }
+        } catch (FileNotFoundException e) {
+            Bridge.getLog().error(LayoutLog.TAG_BROKEN,
+                    "Unable to load the list of fonts. Try re-installing the SDK Platform from the SDK Manager.",
+                    e, null);
+        } finally {
+            if (scanner != null) {
+                scanner.close();
+            }
+        }
+        SDK_FONTS = Collections.unmodifiableSet(allFontsList);
         for (FontFamily_Delegate fontFamily : sPostInitDelegate) {
             fontFamily.init();
         }
@@ -132,6 +166,16 @@
         return mVariant;
     }
 
+    /**
+     * Returns if the FontFamily should contain any fonts. If this returns true and
+     * {@link #getFont(int)} returns an empty list, it means that an error occurred while loading
+     * the fonts. However, some fonts are deliberately skipped, for example they are not bundled
+     * with the SDK. In such a case, this method returns false.
+     */
+    public boolean isValid() {
+        return mValid;
+    }
+
     /*package*/ static int getFontStyle(String path) {
         int style = Font.PLAIN;
         String fontName = path.substring(path.lastIndexOf('/'));
@@ -228,6 +272,14 @@
     }
 
     private boolean addFont(String path) {
+        // If the font is not in the list of fonts bundled with the SDK, don't try to load it and
+        // mark the FontFamily to be not valid.
+        if (path.startsWith(SYSTEM_FONTS) &&
+                !SDK_FONTS.contains(path.substring(SYSTEM_FONTS.length()))) {
+            return mValid = false;
+        }
+        // Set valid to true, even if the font fails to load.
+        mValid = true;
         Font font = loadFont(path);
         if (font == null) {
             return false;
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
index 73d67a7..7b07404 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
@@ -65,6 +65,8 @@
             new DelegateManager<Paint_Delegate>(Paint_Delegate.class);
 
     // ---- delegate helper data ----
+
+    // This list can contain null elements.
     private List<FontInfo> mFonts;
 
     // ---- delegate data ----
@@ -1171,6 +1173,12 @@
             // and skew info.
             ArrayList<FontInfo> infoList = new ArrayList<FontInfo>(fonts.size());
             for (Font font : fonts) {
+                if (font == null) {
+                    // If the font is null, add null to infoList. When rendering the text, if this
+                    // null is reached, a warning will be logged.
+                    infoList.add(null);
+                    continue;
+                }
                 FontInfo info = new FontInfo();
                 info.mFont = font.deriveFont(mTextSize);
                 if (mTextScaleX != 1.0 || mTextSkewX != 0) {
diff --git a/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java
index f044def..72fe61c 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Typeface_Delegate.java
@@ -74,6 +74,10 @@
      * Return a list of fonts that match the style and variant. The list is ordered according to
      * preference of fonts.
      *
+     * The list may contain null when the font failed to load. If null is reached when trying to
+     * render with this list of fonts, then a warning should be logged letting the user know that
+     * some font failed to load.
+     *
      * @param variant The variant preferred. Can only be {@link FontVariant#COMPACT} or
      *                {@link FontVariant#ELEGANT}
      */
@@ -83,7 +87,7 @@
         List<Font> fonts = new ArrayList<Font>(mFontFamilies.length);
         for (int i = 0; i < mFontFamilies.length; i++) {
             FontFamily_Delegate ffd = mFontFamilies[i];
-            if (ffd != null) {
+            if (ffd != null && ffd.isValid()) {
                 Font font = ffd.getFont(mStyle);
                 if (font != null) {
                     FontVariant ffdVariant = ffd.getVariant();
@@ -107,6 +111,12 @@
                     } else {
                         fonts.add(font2);
                     }
+                } else {
+                    // The FontFamily is valid but doesn't contain any matching font. This means
+                    // that the font failed to load. We add null to the list of fonts. Don't throw
+                    // the warning just yet. If this is a non-english font, we don't want to warn
+                    // users who are trying to render only english text.
+                    fonts.add(null);
                 }
             }
         }
diff --git a/tools/layoutlib/bridge/src/android/util/BridgeXmlPullAttributes.java b/tools/layoutlib/bridge/src/android/util/BridgeXmlPullAttributes.java
index 6ac5b02..691339e 100644
--- a/tools/layoutlib/bridge/src/android/util/BridgeXmlPullAttributes.java
+++ b/tools/layoutlib/bridge/src/android/util/BridgeXmlPullAttributes.java
@@ -22,6 +22,7 @@
 import com.android.layoutlib.bridge.Bridge;
 import com.android.layoutlib.bridge.BridgeConstants;
 import com.android.layoutlib.bridge.android.BridgeContext;
+import com.android.layoutlib.bridge.impl.ResourceHelper;
 import com.android.resources.ResourceType;
 
 import org.xmlpull.v1.XmlPullParser;
@@ -210,6 +211,9 @@
                 value = r.getValue();
             }
 
+            if (value.charAt(0) == '#') {
+                return ResourceHelper.getColor(value);
+            }
             return XmlUtils.convertValueToInt(value, defaultValue);
         }
 
diff --git a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
index 09b57fe..f8bc2ae 100644
--- a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
+++ b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
@@ -444,7 +444,8 @@
     }
 
     @Override
-    public void keyguardGoingAway() throws RemoteException {
+    public void keyguardGoingAway(boolean disableWindowAnimations,
+            boolean keyguardGoingToNotificationShade) throws RemoteException {
     }
 
     @Override
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
index 089cad3..9b814f5 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/Config.java
@@ -16,31 +16,58 @@
 
 package com.android.layoutlib.bridge.bars;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static android.os.Build.VERSION_CODES.GINGERBREAD;
+import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
+import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR2;
+import static android.os.Build.VERSION_CODES.KITKAT;
+
 /**
  * Various helper methods to simulate older versions of platform.
  */
 public class Config {
 
-    public static final String DEFAULT_RESOURCE_DIR = "/bars/v21/";
+    // each of these resource dirs must end in '/'
+    private static final String GINGERBREAD_DIR      = "/bars/v9/";
+    private static final String JELLYBEAN_DIR        = "/bars/v18/";
+    private static final String KITKAT_DIR           = "/bars/v19/";
+    private static final String DEFAULT_RESOURCE_DIR = "/bars/v21/";
+
+    private static final List<String> sDefaultResourceDir =
+            Collections.singletonList(DEFAULT_RESOURCE_DIR);
 
     public static boolean showOnScreenNavBar(int platformVersion) {
-        // return true if ICS or later.
-        return platformVersion >= 14 || platformVersion == 0;
+        return platformVersion == 0 || platformVersion >= ICE_CREAM_SANDWICH;
     }
 
     public static int getStatusBarColor(int platformVersion) {
         // return white for froyo and earlier; black otherwise.
-        return platformVersion >= 9 || platformVersion == 0 ? 0xFF000000 : 0xFFFFFFFF;
+        return platformVersion == 0 || platformVersion >= GINGERBREAD ? 0xFF000000 : 0xFFFFFFFF;
     }
 
-    public static boolean usesCustomResourceDir(int platformVersion) {
-        return platformVersion > 10 && platformVersion < 21;
-    }
-
-    public static String getResourceDir(int platformVersion) {
-        if (usesCustomResourceDir(platformVersion)) {
-            return "/bars/v11/";
+    public static List<String> getResourceDirs(int platformVersion) {
+        // Special case the most used scenario.
+        if (platformVersion == 0) {
+            return sDefaultResourceDir;
         }
-        return DEFAULT_RESOURCE_DIR;
+        List<String> list = new ArrayList<String>(4);
+        // Gingerbread - uses custom battery and wifi icons.
+        if (platformVersion <= GINGERBREAD) {
+            list.add(GINGERBREAD_DIR);
+        }
+        // ICS - JellyBean uses custom battery, wifi.
+        if (platformVersion <= JELLY_BEAN_MR2) {
+            list.add(JELLYBEAN_DIR);
+        }
+        // KitKat - uses custom wifi and nav icons.
+        if (platformVersion <= KITKAT) {
+            list.add(KITKAT_DIR);
+        }
+        list.add(DEFAULT_RESOURCE_DIR);
+
+        return Collections.unmodifiableList(list);
     }
 }
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
index 4da9f04..bed232ab 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java
@@ -47,8 +47,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import static com.android.layoutlib.bridge.bars.Config.DEFAULT_RESOURCE_DIR;
-
 /**
  * Base "bar" class for the window decor around the the edited layout.
  * This is basically an horizontal layout that loads a given layout on creation (it is read
@@ -60,11 +58,6 @@
  */
 abstract class CustomBar extends LinearLayout {
 
-    // An upper-bound on the length of the path to the directory to find the icon in.
-    // This assumes that resource directory name for different api levels have same length.
-    private static final int ICON_PATH_LENGTH = DEFAULT_RESOURCE_DIR.length()
-            + LayoutDirection.RTL.getResourceValue().length() + 9;  // 9 = "-xxxhdpi/".length
-
 
     private final int mSimulatedPlatformVersion;
 
@@ -97,72 +90,6 @@
         }
     }
 
-    private InputStream getIcon(String iconName, Density[] densityInOut, LayoutDirection direction,
-            StringBuilder[] pathOut, boolean tryOtherDensities) {
-        pathOut[0] = new StringBuilder(ICON_PATH_LENGTH + iconName.length());
-
-        if (Config.usesCustomResourceDir(mSimulatedPlatformVersion)) {
-            // current density.
-            Density density = densityInOut[0];
-            InputStream stream = getIcon(iconName, Config.getResourceDir(mSimulatedPlatformVersion),
-                    densityInOut, direction, pathOut, tryOtherDensities);
-            if (stream != null) {
-                return stream;
-            }
-            // reset the density.
-            densityInOut[0] = density;
-        }
-        return getIcon(iconName, DEFAULT_RESOURCE_DIR, densityInOut, direction, pathOut,
-                tryOtherDensities);
-
-    }
-
-    private InputStream getIcon(String iconName, String dir, Density[] densityInOut,
-            LayoutDirection direction, StringBuilder[] pathOut, boolean tryOtherDensities) {
-        // current density
-        Density density = densityInOut[0];
-
-        pathOut[0].setLength(0);
-
-        // bitmap url relative to this class
-        if (direction == LayoutDirection.RTL) {
-            pathOut[0].append(dir)
-                    .append(direction.getResourceValue())
-                    .append('-')
-                    .append(density.getResourceValue())
-                    .append('/')
-                    .append(iconName);
-        } else {
-            // Since we do not have any ldltr resource, skip the check.
-            pathOut[0].append(dir)
-                    .append(density.getResourceValue())
-                    .append('/')
-                    .append(iconName);
-        }
-
-        InputStream stream = getClass().getResourceAsStream(pathOut[0].toString());
-        if (stream == null && tryOtherDensities) {
-            for (Density d : Density.values()) {
-                if (d != density) {
-                    densityInOut[0] = d;
-                    stream = getIcon(iconName, dir, densityInOut, direction, pathOut,
-                            false /*tryOtherDensities*/);
-                    if (stream != null) {
-                        return stream;
-                    }
-                }
-            }
-            // couldn't find resource with direction qualifier, try without.
-            if (direction == LayoutDirection.RTL) {
-                densityInOut[0] = density;
-                stream = getIcon(iconName, dir, densityInOut, null, pathOut,
-                        true /*tryOtherDensities*/);
-            }
-        }
-
-        return stream;
-    }
-
     protected void loadIcon(int index, String iconName, Density density) {
         loadIcon(index, iconName, density, false);
     }
@@ -172,15 +99,14 @@
         if (child instanceof ImageView) {
             ImageView imageView = (ImageView) child;
 
-            StringBuilder[] pathOut = new StringBuilder[1];
-            Density[] densityInOut = new Density[]{density};
             LayoutDirection dir = isRtl ? LayoutDirection.RTL : null;
-            InputStream stream = getIcon(iconName, densityInOut, dir, pathOut,
-                    true /*tryOtherDensities*/);
-            density = densityInOut[0];
-            String path = pathOut[0].toString();
+            IconLoader iconLoader = new IconLoader(iconName, density, mSimulatedPlatformVersion,
+                    dir);
+            InputStream stream = iconLoader.getIcon();
 
             if (stream != null) {
+                density = iconLoader.getDensity();
+                String path = iconLoader.getPath();
                 // look for a cached bitmap
                 Bitmap bitmap = Bridge.getCachedBitmap(path, true /*isFramework*/);
                 if (bitmap == null) {
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/IconLoader.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/IconLoader.java
new file mode 100644
index 0000000..9ab2e82
--- /dev/null
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/IconLoader.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.layoutlib.bridge.bars;
+
+import com.android.resources.Density;
+import com.android.resources.LayoutDirection;
+
+import java.io.InputStream;
+
+public class IconLoader {
+
+    private final String mIconName;
+    private final Density mDesiredDensity;
+    private final int mPlatformVersion;
+    private final LayoutDirection mDirection;
+
+    private Density mCurrentDensity;
+    private StringBuilder mCurrentPath;
+
+    IconLoader(String iconName, Density density, int platformVersion, LayoutDirection direction) {
+        mIconName = iconName;
+        mDesiredDensity = density;
+        mPlatformVersion = platformVersion;
+        mDirection = direction;
+        // An upper bound on the length of the path for the icon: /bars/v21/ldrtl-xxxhdpi/
+        final int iconPathLength = 24;
+        mCurrentPath = new StringBuilder(iconPathLength + iconName.length());
+    }
+
+    public InputStream getIcon() {
+        for (String resourceDir : Config.getResourceDirs(mPlatformVersion)) {
+            mCurrentDensity = null;
+            InputStream stream = getIcon(resourceDir);
+            if (stream != null) {
+                return stream;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Should only be called after {@link #getIcon()}. Returns the density of the icon, if found by
+     * {@code getIcon()}. If no icon was found, then the return value has no meaning.
+     */
+    public Density getDensity() {
+        return mCurrentDensity;
+    }
+
+    /**
+     * Should only be called after {@link #getIcon()}. Returns the path to the icon, if found by
+     * {@code getIcon()}. If no icon was found, then the return value has no meaning.
+     */
+    public String getPath() {
+        return mCurrentPath.toString();
+    }
+
+    /**
+     * Search for icon in the resource directory. This iterates over all densities.
+     * If a match is found, mCurrentDensity will be set to the icon's density.
+     */
+    private InputStream getIcon(String resourceDir) {
+        // First check for the desired density.
+        InputStream stream = getIcon(resourceDir, mDesiredDensity);
+        if (stream != null) {
+            mCurrentDensity = mDesiredDensity;
+            return stream;
+        }
+        // Didn't find in the desired density. Search in all.
+        for (Density density : Density.values()) {
+            if (density == mDesiredDensity) {
+                // Skip the desired density since it's already been checked.
+                continue;
+            }
+            stream = getIcon(resourceDir, density);
+            if (stream != null) {
+                mCurrentDensity = density;
+                return stream;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns the icon for given density present in the given resource directory, taking layout
+     * direction into consideration.
+     */
+    private InputStream getIcon(String resourceDir, Density density) {
+        mCurrentPath.setLength(0);
+        // Currently we don't have any LTR only resources and hence the check is skipped. If they
+        // are ever added, change to:
+        // if (mDirection == LayoutDirection.RTL || mDirection == LayoutDirection.LTR) {
+        if (mDirection == LayoutDirection.RTL) {
+            mCurrentPath.append(resourceDir)
+                    .append(mDirection.getResourceValue())
+                    .append('-')
+                    .append(density.getResourceValue())
+                    .append('/')
+                    .append(mIconName);
+            InputStream stream = getClass().getResourceAsStream(mCurrentPath.toString());
+            if (stream != null) {
+                return stream;
+            }
+            mCurrentPath.setLength(0);
+        }
+        mCurrentPath.append(resourceDir)
+                .append(density.getResourceValue())
+                .append('/')
+                .append(mIconName);
+        return getClass().getResourceAsStream(mCurrentPath.toString());
+    }
+}
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java
index 4cbdd4d..1795db9 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java
@@ -42,7 +42,7 @@
         // We do know the order though.
         // 0 is the spacer
         loadIcon(1, "stat_sys_wifi_signal_4_fully.png", density);
-        loadIcon(2, "stat_sys_battery_charge_anim100.png", density);
+        loadIcon(2, "stat_sys_battery_100.png", density);
     }
 
     @Override
diff --git a/tools/layoutlib/rename_font/build_font_single.py b/tools/layoutlib/rename_font/build_font_single.py
index d648b04..5f7dad9 100755
--- a/tools/layoutlib/rename_font/build_font_single.py
+++ b/tools/layoutlib/rename_font/build_font_single.py
@@ -20,7 +20,7 @@
 OpenType fonts (*.otf) are not currently supported. They are copied to the destination without renaming.
 XML files are also copied in case they are passed there by mistake.
 
-Usage: build_font.py /path/to/input_font.ttf /path/to/output_font.ttf
+Usage: build_font_single.py /path/to/input_font.ttf /path/to/output_font.ttf
 
 """
 
@@ -67,7 +67,8 @@
 
 def main(argv):
   if len(argv) < 2:
-    sys.exit('Usage: build_font.py /path/to/input/font.ttf /path/to/out/font.ttf')
+    print 'Incorrect usage: ' + str(argv)
+    sys.exit('Usage: build_font_single.py /path/to/input/font.ttf /path/to/out/font.ttf')
   dest_path = argv[-1]
   input_path = argv[0]
   extension = os.path.splitext(input_path)[1].lower()